Это стратегия, основанная на скользящих средних. Он использует индикатор Ichimoku Cloud для определения направления тренда в сочетании с 200-дневной скользящей средней для фильтрации сигналов, таким образом отслеживая тенденцию.
Стратегия в основном использует линию конверсии и базовую линию Ichimoku Cloud для определения направления тренда. Линия конверсии представляет собой 9-дневную среднюю цену, а базовая линия - 26-дневную среднюю цену. Сигнал покупки генерируется, когда линия конверсии пересекается выше базовой линии, а сигнал продажи, когда пересекается ниже.
Стратегия также использует 200-дневную скользящую среднюю для фильтрации сигналов. Только когда цена закрытия выше 200-дневной линии, будет задействован сигнал покупки. Это фильтрует большинство ложных сигналов.
На стороне выхода стратегия просто использует пересечение линии преобразования ниже базовой линии в качестве заключительного сигнала.
Стратегия сочетает в себе индикатор оценки тренда Ichimoku Cloud и долгосрочный индикатор фильтрации тренда 200-дневной линии, который может эффективно отслеживать тенденции и фильтровать большинство ложных сигналов.
По сравнению с использованием только скользящих средних, эта стратегия может лучше улавливать поворотные моменты тренда и своевременно корректировать позиции.
Стратегия опирается в основном на Облако Ичимоку для определения направления тренда, который сам по себе также может генерировать ложные сигналы.
Кроме того, неправильные настройки параметров также могут привести к плохой эффективности стратегии. Если параметр линии преобразования слишком короткий, легко образуются ложные сигналы; если параметр базовой линии слишком длинный, эффект отслеживания ухудшается. Необходимо настройка параметров для баланса.
Подумайте о включении других индикаторов для улучшения качества сигнала, таких как индикатор KDJ для фильтрации сигналов в перекупленных/перепроданных зонах.
С точки зрения параметров, проверьте больше комбинаций, например, настройка параметра линии конверсии на 5 или 7 дней для более чувствительных торговых сигналов.
Кроме того, стоит рассмотреть возможность отключения стратегии в условиях определенной волатильности, чтобы избежать влияния диких колебаний.
Стратегия интегрирует преимущества суждения о тренде и долгосрочных индикаторов фильтрации, которые могут эффективно отслеживать средне- и долгосрочные тенденции. Между тем, параметры настройки и меры контроля риска также нуждаются в постоянной оптимизации для уменьшения ложных сигналов и воздействия колебаний. В целом, стратегия имеет приличную производительность и практическую ценность для фактической торговли.
/*backtest start: 2023-10-27 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title="TK Cross > EMA200 Strat", overlay=true) ema200 = ema(close, 200) conversionPeriods = input(9, minval=1, title="Conversion Line Periods"), basePeriods = input(26, minval=1, title="Base Line Periods") laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"), displacement = input(26, minval=1, title="Displacement") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) plot(conversionLine, color=#0496ff, title="Conversion Line", linewidth=3) plot(baseLine, color=#991515, title="Base Line", linewidth=3) plot(close, offset = -displacement, color=#459915, title="Lagging Span") p1 = plot(leadLine1, offset = displacement, color=green, title="Lead 1") p2 = plot(leadLine2, offset = displacement, color=red, title="Lead 2") fill(p1, p2, color = leadLine1 > leadLine2 ? green : red) plot(ema200, color=purple, linewidth=4,title='ema200') strategy.initial_capital = 50000 strategy.entry('tkcross', strategy.long, strategy.initial_capital / close, when=conversionLine>baseLine and close > ema200) strategy.close('tkcross', when=conversionLine<baseLine) start = input(2, minval=0, maxval=10, title="Start - Default = 2 - Multiplied by .01") increment = input(2, minval=0, maxval=10, title="Step Setting (Sensitivity) - Default = 2 - Multiplied by .01" ) maximum = input(2, minval=1, maxval=10, title="Maximum Step (Sensitivity) - Default = 2 - Multiplied by .10") sus = input(true, "Show Up Trending Parabolic Sar") sds = input(true, "Show Down Trending Parabolic Sar") disc = input(false, title="Start and Step settings are *.01 so 2 = .02 etc, Maximum Step is *.10 so 2 = .2") //"------Step Setting Definition------" //"A higher step moves SAR closer to the price action, which makes a reversal more likely." //"The indicator will reverse too often if the step is set too high." //"------Maximum Step Definition-----") //"The sensitivity of the indicator can also be adjusted using the Maximum Step." //"While the Maximum Step can influence sensitivity, the Step carries more weight" //"because it sets the incremental rate-of-increase as the trend develops" startCalc = start * .01 incrementCalc = increment * .01 maximumCalc = maximum * .10 sarUp = sar(startCalc, incrementCalc, maximumCalc) sarDown = sar(startCalc, incrementCalc, maximumCalc) colUp = close >= sarDown ? lime : na colDown = close <= sarUp ? red : na plot(sus and sarUp ? sarUp : na, title="Up Trending SAR", style=circles, linewidth=3,color=colUp) plot(sds and sarDown ? sarDown : na, title="Up Trending SAR", style=circles, linewidth=3,color=colDown)