Adaptive Channel Breakout Strategy - это стратегия, основанная на тренде, которая отслеживает ценовые каналы на рынке.
Преимущество этой стратегии заключается в том, что она может автоматически адаптироваться к изменениям на рынке, расширяя каналы для фильтрации шума и производства торговых сигналов, когда тенденция ясна.
Эта стратегия основана на теории прорыва канала. Она рассчитывает два набора самых высоких и самых низких цен в разные периоды (длина входа и длина выхода) для формирования каналов. Когда цены превышают каналы, генерируются сигналы.
В частности, стратегия сначала рассчитывает 20-периодную самую высокую цену (верхнюю) и самую низкую цену (нижнюю) для формирования ценового канала. Затем она рассчитывает 10-периодную самую высокую цену (sup) и самую низкую цену (спад). После того, как сигнал покупки запускается (цены прерываются выше верхней рельсы), 10-периодная самая низкая цена (спад) используется в качестве линии остановки потери. После того, как сигнал продажи запускается (цены прерываются ниже нижней рельсы), 10-периодная самая высокая цена (sup) используется в качестве линии получения прибыли. Это формирует адаптивную систему канала.
Когда цены прорываются через канал, это указывает на то, что формируется тенденция. Стратегия затем будет излучать торговые сигналы. В то же время линии получения прибыли и остановки потерь также будут корректироваться с изменениями цены, чтобы закрепить прибыль и избежать потерь.
К основным рискам этой стратегии относятся:
Потенциальные оптимизации этой стратегии включают:
Adaptive Channel Breakout Strategy обладает четкой логикой и сильной целесообразностью в целом. Он может автоматически отслеживать изменения рынка и генерировать торговые сигналы при формировании тенденций. Двухканальные и стоп-лосс/приобретение прибыли механизмы также помогают контролировать риски. Эта стратегия может быть еще больше улучшена в стабильности и прибыльности за счет оптимизации параметров, фильтрационных условий и т. Д. Стоит дальнейшей проверки и уточнения в режиме реального времени.
/*backtest start: 2024-01-29 00:00:00 end: 2024-02-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Turtle Trade Channels Strategy", shorttitle="TTCS", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) length = input(20,"Entry Length", minval=1) len2=input(10, "Exit Length", minval=1) lower = lowest(length) upper = highest(length) up=highest(high,length) down=lowest(low,length) sup=highest(high,len2) sdown=lowest(low,len2) K1=barssince(high>=up[1])<=barssince(low<=down[1]) ? down : up K2=iff(barssince(high>=up[1])<=barssince(low<=down[1]),sdown,sup) K3=iff(close>K1,down,na) K4=iff(close<K1,up,na) buySignal=high==upper[1] or crossover(high,upper[1]) sellSignal = low==lower[1] or crossover(lower[1],low) buyExit=low==sdown[1] or crossover(sdown[1],low) sellExit = high==sup[1] or crossover(high,sup[1]) strategy.entry("Buy", strategy.long, when = buySignal and barssince(buySignal) < barssince(sellSignal[1])) strategy.entry("Sell", strategy.short, when = sellSignal and barssince(sellSignal) < barssince(buySignal[1])) strategy.exit("Buy Exit", from_entry = "Buy", when = buyExit and barssince(buyExit) < barssince(sellExit[1])) strategy.exit("Sell Exit", from_entry = "Sell", when = sellExit and barssince(sellExit) < barssince(buyExit[1])) plot(K1, title="Trend Line", color=color.red, linewidth=2) e=plot(K2, title="Exit Line", color=color.blue, linewidth=1, style=6)