Стратегия отслеживания трендов на основе перерывов каналов

Автор:Чао Чжан, Дата: 2023-11-23 14:04:59
Тэги:

img

Обзор

Эта стратегия является стратегией отслеживания тренда, разработанной на основе теории прорыва канала. Она строит канал с использованием самой высокой цены и самой низкой цены за определенный период и генерирует торговые сигналы, когда цена выходит из канала. Эта стратегия подходит для трендовых рынков и может захватить направление тренда цены для отслеживания тренда.

Логика стратегии

Стратегия сначала рассчитывает самую высокую цену и самую низкую цену за длительный период, чтобы построить верхнюю и нижнюю полосы канала. Когда цена закрытия проходит через верхнюю полосу, открывается длинная позиция. Когда цена закрытия проходит через нижнюю полосу, открывается короткая позиция.

При переходе цены через верхнюю полосу, если EMA находится в восходящей тенденции, длинное решение укрепляется.

Анализ преимуществ

  • Стратегия может отслеживать ценовые тенденции и подходит для рынков с высоким потенциалом прибыли.
  • Использование перерывов канала для генерации сигналов может уменьшить ложные перерывы и улучшить качество сигнала.
  • Сочетание с EMA, чтобы избежать торговли против тренда и обеспечить отслеживание основной тенденции.

Анализ рисков

  • Стратегии прорыва, как правило, приводят к частым сделкам во время консолидации цен, что может повлечь за собой высокие затраты на торговлю.
  • Стратегия не может выходить из позиций сразу же, когда тенденция меняется, что может привести к большим потерям.
  • Стратегия чувствительна к параметрам, и разные параметры могут привести к совершенно разным результатам.

Руководство по оптимизации

  • Включите другие индикаторы, такие как MACD, RSI, чтобы избежать ложных прорывов.
  • Использовать алгоритмы машинного обучения для автоматической оптимизации параметров и повышения надежности.
  • Установите стоп-потерю для контроля максимального снижения.

Резюме

В общем, это простая стратегия отслеживания трендов, основанная на прорывах канала для улавливания тенденций. Она имеет сильную способность отслеживания трендов и может достигать хорошей доходности на трендовых рынках. Но она также имеет некоторые риски и нуждается в дальнейшей оптимизации для улучшения стабильности.


/*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 )

Больше