Эта стратегия основана на индикаторе ICHIMOKU и случайном индикаторе STOCH для определения и отслеживания тенденций.
Стратегия в основном оценивает текущее направление тренда и ситуации перекупки/перепродажи с помощью облачной диаграммы ICHIMOKU и индикатора STOCH.
Когда линия преобразования пересекает базовую линию и индикатор Stoch отскакивает от зоны перепродажи, это считается бычьим трендом, и стратегия принимает бычье направление.
В коде линия конверсии определяется как среднее число самых высоких и самых низких цен последних N1 бар; линия базисная определяется как среднее число самых высоких и самых низких цен последних N2 бар.
Индикатор Stoch определяет пороговые линии перекупленности и перепродажи, а также параметры сглаживания K и D. Бычий сигнал генерируется, когда Stoch отскакивает из зоны перепродажи, а медвежий сигнал генерируется, когда он возвращается из зоны перекупленности.
Объединяя эти два показателя, стратегия определяет направление тренда.
Стратегия сочетает в себе индикаторы графического паттерна и индикаторы перекупленности/перепроданности для эффективного определения направления тренда.
По сравнению с использованием одного индикатора оценки тренда, эта стратегия всесторонне рассматривает как тенденции, так и ситуации с превышением, и может более точно определить сроки входа.
Диаграмма облаков ICHIMOKU может идентифицировать средне- и долгосрочные тенденции, в то время как индикатор Stoch может обнаруживать краткосрочные ситуации перекупки / перепродажи.
Основными рисками этой стратегии являются:
Риск сбоя индикатора в случае черного лебедя.
Есть некоторое отставание, которое может пропустить часть тренда или перевернуть открывающиеся позиции.
Комбинированное многофакторное суждение имеет некоторую субъективность, и неправильные параметры могут вызывать ошибки.
Высокая частота торгов может повлиять на прибыль из-за затрат на транзакции.
Соответствующие меры оптимизации:
Объединяйте новости, чтобы избежать слепой торговли во время крупных политических событий.
Соответственно сократить параметры цикла, чтобы уменьшить вероятность задержки.
Оптимизировать параметры с помощью обратного тестирования для улучшения научных настроек.
Соответственно увеличить диапазоны получения прибыли и остановки убытков для снижения частоты торговли.
Основными направлениями оптимизации этой стратегии являются:
Оптимизировать параметры цикла линии преобразования ICHIMOKU и базовой линии, чтобы лучше соответствовать различным характеристикам рынка.
Оптимизировать параметры сглаживания K, D и пороговые значения перекупа/перепродажи показателя Stoch.
Увеличить количество других показателей для формирования многофакторной модели и повышения надежности системы.
Оптимизируйте точки получения прибыли и остановки потери, чтобы уменьшить частоту торговли и обеспечить прибыльность.
Добавить модуль для оценки чрезвычайных ситуаций и избежать сбоев во время крупных событий.
Эта стратегия сочетает в себе графики ICHIMOKU Cloud и индикаторы Stoch, чтобы сделать всеобъемлющие суждения о направлении тренда и ситуациях перекупки / перепродажи, которые могут эффективно отслеживать тенденции рынков.
/*backtest start: 2023-10-15 00:00:00 end: 2023-11-14 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("ICHI + STOCH V1", overlay=true) length = input.int(20, minval=1) smoothK = input(5) smoothD = input(3) OverBought = input(25) OverSold = input(65) Profit = input(1800) Stop = input(1200) k = ta.sma(ta.stoch(close, high, low, length), smoothK) d = ta.sma(k, smoothD) co = ta.crossover(k,d) cu = ta.crossunder(k,d) conversionPeriods = input.int(9, minval=1, title="Conversion Line Length") basePeriods = input.int(26, minval=1, title="Base Line Length") laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length") displacement = input.int(1, minval=1, title="Lagging Span") conversionLine = math.avg(ta.lowest(conversionPeriods), ta.highest(conversionPeriods)) baseLine = math.avg(ta.lowest(basePeriods), ta.highest(basePeriods)) leadLine1 = math.avg(conversionLine, baseLine) leadLine2 = math.avg(ta.lowest(laggingSpan2Periods), ta.highest(laggingSpan2Periods)) TREND = ta.ema(math.avg(leadLine1,leadLine2),displacement) //plot(conversionLine, color=#2962FF, title="Conversion Line") //plot(baseLine, color=#B71C1C, title="Base Line") //plot(close, offset = -displacement + 1, color=#43A047, title="Lagging Span") plot(TREND, color=#2962FF, title="TREND") p1 = plot(leadLine1,style=plot.style_line, offset = displacement - 1, color=#A5D6A7, title="Leading Span A") p2 = plot(leadLine2,style=plot.style_line, offset = displacement - 1, color=#EF9A9A, title="Leading Span B") fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90)) close_price = ta.sma(close,1) pc = plot(close_price,style=plot.style_line, color=#2a0ab9, title="Price Close") if (not na(k) and not na(d)) if (co and k < OverSold)and(close_price > TREND) strategy.entry("BUY order", strategy.long, comment="BUY order") strategy.exit("exitBUY", "BUY order", profit = Profit, loss = Stop) if (cu and k > OverBought)and(close_price < TREND) strategy.entry("SELL order", strategy.short, comment="SELL order") strategy.exit("exitSELL", "SELL order", profit = Profit, loss = Stop) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)