Strategi ini adalah strategi pelacakan tren yang dirancang berdasarkan teori penembusan saluran. Ini membangun saluran menggunakan harga tertinggi dan harga terendah selama periode tertentu dan menghasilkan sinyal perdagangan ketika harga keluar dari saluran. Strategi ini cocok untuk pasar tren dan dapat menangkap arah tren harga untuk pelacakan tren.
Strategi ini pertama-tama menghitung harga tertinggi dan harga terendah selama periode panjang untuk membangun band atas dan band bawah saluran. Ketika harga penutupan menembus band atas, posisi panjang dibuka. Ketika harga penutupan menembus band bawah, posisi pendek dibuka. Posisi akan ditutup ketika harga jatuh kembali ke saluran.
Strategi ini juga memetakan indikator EMA dengan panjang *2 untuk menentukan arah tren.
Secara singkat, ini adalah strategi pelacakan tren sederhana berdasarkan penembusan saluran untuk menangkap tren. Ini memiliki kemampuan pelacakan tren yang kuat dan dapat mencapai pengembalian yang baik di pasar tren. Tetapi juga memiliki beberapa risiko dan membutuhkan optimasi lebih lanjut untuk meningkatkan stabilitas. Melalui penyetelan parameter, pengaturan stop loss dan menggabungkan dengan indikator lain, strategi ini dapat diterapkan untuk perdagangan langsung.
/*backtest start: 2023-11-15 00:00:00 end: 2023-11-22 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 initial_capital = 1000, default_qty_value = 90, default_qty_type = strategy.percent_of_equity, pyramiding = 0, commission_value = 0.002, commission_type = strategy.commission.percent, calc_on_every_tick = true length_val = 2 max_bars_back = 1440 risk_max_drawdown = 9 strategy("Channel Break",max_bars_back=max_bars_back,initial_capital = initial_capital,default_qty_value = default_qty_value,default_qty_type = default_qty_type,pyramiding = pyramiding,commission_value = commission_value,commission_type = commission_type,calc_on_every_tick = calc_on_every_tick) // strategy.risk.max_drawdown(risk_max_drawdown, strategy.percent_of_equity) length = input(title="Length", minval=1, maxval=1000, defval=length_val) upBound = highest(high, length) downBound = lowest(low, length) //plot (upBound) //plot (downBound) //plot (close, color=red) //plot (ema(close,length * 2), color=green) // if (not na(close[length]) and time>timestamp(2018, 02, 24, 0, 00) ) strategy.entry("Buy", strategy.long, stop=upBound + syminfo.mintick, comment="Buy") strategy.entry("Short", strategy.short, stop=downBound - syminfo.mintick, comment="Short") position = strategy.position_size //plot(position , title="equity", color=red,style=cross,linewidth=4) plot(variance(position,2)>0?1:0,style=circles,linewidth=4) message = "" if (position > 0) message = "BTCUSD L: " + tostring(strategy.position_size) na(position) if (position < 0) message = "BTCUSD S: " + tostring(strategy.position_size) na(position) alertcondition(variance(strategy.position_size,2) > 0, "test", message )