Стратегия отслеживания трендов на основе индикаторов ICHIMOKU Cloud и STOCH

Автор:Чао Чжан, Дата: 2023-11-15 11:19:29
Тэги:

img

Обзор

Эта стратегия основана на индикаторе ICHIMOKU и случайном индикаторе STOCH для определения и отслеживания тенденций.

Принцип стратегии

Стратегия в основном оценивает текущее направление тренда и ситуации перекупки/перепродажи с помощью облачной диаграммы ICHIMOKU и индикатора STOCH.

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

В коде линия конверсии определяется как среднее число самых высоких и самых низких цен последних N1 бар; линия базисная определяется как среднее число самых высоких и самых низких цен последних N2 бар.

Индикатор Stoch определяет пороговые линии перекупленности и перепродажи, а также параметры сглаживания K и D. Бычий сигнал генерируется, когда Stoch отскакивает из зоны перепродажи, а медвежий сигнал генерируется, когда он возвращается из зоны перекупленности.

Объединяя эти два показателя, стратегия определяет направление тренда.

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

Стратегия сочетает в себе индикаторы графического паттерна и индикаторы перекупленности/перепроданности для эффективного определения направления тренда.

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

Диаграмма облаков ICHIMOKU может идентифицировать средне- и долгосрочные тенденции, в то время как индикатор Stoch может обнаруживать краткосрочные ситуации перекупки / перепродажи.

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

Основными рисками этой стратегии являются:

  1. Риск сбоя индикатора в случае черного лебедя.

  2. Есть некоторое отставание, которое может пропустить часть тренда или перевернуть открывающиеся позиции.

  3. Комбинированное многофакторное суждение имеет некоторую субъективность, и неправильные параметры могут вызывать ошибки.

  4. Высокая частота торгов может повлиять на прибыль из-за затрат на транзакции.

Соответствующие меры оптимизации:

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

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

  3. Оптимизировать параметры с помощью обратного тестирования для улучшения научных настроек.

  4. Соответственно увеличить диапазоны получения прибыли и остановки убытков для снижения частоты торговли.

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

Основными направлениями оптимизации этой стратегии являются:

  1. Оптимизировать параметры цикла линии преобразования ICHIMOKU и базовой линии, чтобы лучше соответствовать различным характеристикам рынка.

  2. Оптимизировать параметры сглаживания K, D и пороговые значения перекупа/перепродажи показателя Stoch.

  3. Увеличить количество других показателей для формирования многофакторной модели и повышения надежности системы.

  4. Оптимизируйте точки получения прибыли и остановки потери, чтобы уменьшить частоту торговли и обеспечить прибыльность.

  5. Добавить модуль для оценки чрезвычайных ситуаций и избежать сбоев во время крупных событий.

Резюме

Эта стратегия сочетает в себе графики 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)

Больше