
Chiến lược này là chiến lược theo dõi xu hướng được thiết kế dựa trên lý thuyết phá vỡ kênh. Nó xây dựng kênh bằng cách tính toán giá cao nhất và giá thấp nhất trong một chu kỳ nhất định, tạo ra tín hiệu giao dịch khi giá phá vỡ kênh.
Chiến lược này bắt đầu bằng cách tính toán giá cao nhất và giá thấp nhất trong chu kỳ với độ dài là length, xây dựng các đường dẫn lên và xuống. Khi giá tròn phá vỡ đường dẫn lên, hãy làm nhiều hơn; Khi giá tròn phá vỡ đường dẫn xuống, hãy làm trống.
Chiến lược này cùng lúc vẽ chiều dài thành length*Chỉ số EMA 2 đánh giá xu hướng. Khi giá phá vỡ đường dẫn lên đường, nếu EMA đang trong xu hướng tăng, nó sẽ tăng hiệu quả của nhiều quyết định.
Chiến lược này nói chung là một chiến lược theo dõi xu hướng đơn giản dựa trên breakouts kênh để nắm bắt xu hướng. Nó có khả năng theo dõi xu hướng mạnh mẽ, có thể thu được lợi nhuận tốt trong tình huống xu hướng.
/*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 )