Strategi ini menghitung harga tertinggi terakhir (lastbull) dan harga terendah terakhir (lastbear). kemudian membandingkan harga saat ini dengan lastbull dan lastbear untuk menentukan apakah harga telah memasuki kisaran tertentu dan dengan demikian menghasilkan sinyal perdagangan.
Strategi ini pertama-tama menghitung harga tertinggi terakhir lastbull dan harga terendah terakhir lastbear. kemudian menghitung persentase perubahan ddl dari harga saat ini relatif terhadap lastbull, dan persentase perubahan dds relatif terhadap lastbear.
Ketika ddl lebih rendah dari sinyal ambang sinyal panjang yang dikonfigurasi, sinyal panjang dihasilkan. Ketika dds lebih tinggi dari sinyal ambang sinyal pendek yang dikonfigurasi, sinyal pendek dn dihasilkan.
Setelah menerima sinyal panjang, ia membuka posisi panjang jika parameter needlong benar. Setelah menerima sinyal pendek, ia membuka posisi pendek jika parameter needshort benar. Ukuran modal posisi dihitung dari ekuitas akun.
Hal ini menutup posisi panjang ketika harga naik setelah membuka panjang, dan menutup posisi pendek ketika harga turun setelah membuka pendek.
Strategi ini menggabungkan analisis tren dan rentang. Ini dapat menangkap tren dan menghasilkan sinyal perdagangan dari rentang. Dibandingkan dengan strategi pelacakan tren sederhana, ini dapat dengan cepat menangkap arah tren baru setelah rentang pecah.
Parameter sangat dapat dikonfigurasi untuk produk yang berbeda. rentang waktu perdagangan dapat dikonfigurasi untuk menghindari peristiwa signifikan.
Tidak ada mekanisme stop loss dalam strategi ini untuk membatasi kerugian per perdagangan. Ukuran posisi dapat sangat dipengaruhi oleh fluktuasi harga ketika kisaran perdagangan besar.
Stop loss dapat ditambahkan untuk membatasi kerugian per perdagangan. Algoritma ukuran posisi dapat disesuaikan berdasarkan produk untuk menstabilkan ukuran posisi.
Strategi ini menggabungkan analisis tren dan penyebaran kisaran untuk menghasilkan sinyal perdagangan, yang dapat menangkap tren baru dan mengambil keuntungan dari karakteristik yang terikat kisaran. Parameter sangat dapat dikonfigurasi untuk produk yang berbeda. Ada ruang besar untuk optimasi untuk menyesuaikan lingkungan pasar yang lebih kompleks.
/*backtest start: 2023-01-25 00:00:00 end: 2024-01-31 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2019 //@version=4 strategy(title = "Noro's DDL Strategy", shorttitle = "DDL str", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 3) //Settings needlong = input(true, title = "Long") needshort = input(true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot") signalshort = input(3.0, title = "Short, %") signallong = input(-3.0, title = "Long, %") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Levels bull = close > close[1] ? 1 : 0 bear = close < close[1] ? 1 : 0 lastbull = 0.0 lastbull := bull ? close : lastbull[1] lastbear = 0.0 lastbear := bear ? close : lastbear[1] //Signals ddl = ((close / lastbull) - 1) * 100 up = ddl < signallong dds = ((close / lastbear) - 1) * 100 dn = dds > signalshort //Lines plot(dds, style = plot.style_area, color = color.red, transp = 0) plot(ddl, style = plot.style_area, color = color.lime, transp = 0) plot(0, color = color.black, linewidth = 2, transp = 0) //Background col = (up and needlong) or (dn and needshort) ? color.yellow : na bgcolor(col, transp = 20) //Orders lot = 0.0 lot := strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1] truetime = true if up strategy.entry("Long", strategy.long, lot, when = needlong and truetime) if dn strategy.entry("Short", strategy.short, lot, when = needshort and truetime) if strategy.position_size > 0 and close > open strategy.entry("Close", strategy.short, 0) if strategy.position_size < 0 and close < open strategy.entry("Close", strategy.long, 0)