Strategi ini mengira harga tertinggi terakhir (lastbull) dan harga terendah terakhir (lastbear). Ia kemudian membandingkan harga semasa dengan lastbull dan lastbear untuk menentukan sama ada harga telah memasuki julat tertentu dan dengan itu menghasilkan isyarat perdagangan.
Strategi pertama mengira harga tertinggi terakhir lastbull dan harga terendah terakhir lastbear. kemudian ia mengira perubahan peratusan ddl harga semasa dekat berbanding lastbull, dan perubahan peratusan dds berbanding lastbear.
Apabila ddl lebih rendah daripada tanda ambang isyarat panjang yang dikonfigurasikan, isyarat panjang dihasilkan. Apabila dds lebih tinggi daripada isyarat ambang isyarat pendek yang dikonfigurasikan, isyarat pendek dn dihasilkan.
Apabila menerima isyarat panjang, ia membuka kedudukan panjang jika parameter needlong benar. Apabila menerima isyarat pendek, ia membuka kedudukan pendek jika parameter needshort benar. Modal saiz kedudukan dikira dari ekuiti akaun.
Ia menutup kedudukan panjang apabila harga meningkat selepas membuka panjang, dan menutup kedudukan pendek apabila harga jatuh selepas membuka pendek.
Strategi ini menggabungkan analisis trend dan julat. Ia boleh menangkap trend dan menjana isyarat dagangan dari penembusan julat. Berbanding dengan strategi penjejakan trend yang mudah, ia dapat dengan cepat menangkap arah trend baru selepas penembusan julat.
Parameter sangat boleh dikonfigurasikan untuk produk yang berbeza. Julat masa perdagangan boleh dikonfigurasikan untuk mengelakkan peristiwa penting.
Tidak ada mekanisme stop loss dalam strategi ini untuk mengehadkan kerugian setiap perdagangan. Ukuran kedudukan boleh dipengaruhi oleh turun naik harga apabila julat perdagangan besar.
Stop loss boleh ditambahkan untuk mengehadkan kerugian setiap perdagangan. Algoritma saiz kedudukan boleh disesuaikan berdasarkan produk untuk menstabilkan saiz kedudukan.
Strategi ini menggabungkan analisis trend dan penembusan julat untuk menjana isyarat perdagangan, yang dapat menangkap trend baru dan memanfaatkan ciri-ciri terikat julat. Parameter sangat boleh dikonfigurasi untuk produk yang berbeza. Terdapat ruang yang besar untuk pengoptimuman untuk menyesuaikan diri dengan persekitaran pasaran 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)