Ичимоку Тренд Следующая стратегия

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

img

Обзор

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

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

Стратегия использует пять линий Ичимоку - Тенкан-сен, Киджун-сен, Сенкоу-Спан А, Сенкоу-Спан В и Чикоу-Спан для определения ценового тренда и уровней поддержки / сопротивления.

  1. Когда перекресток между Киджун-сеном и Киджун-сеном не плоский, запускается сигнал покупки.
  2. Когда перекресток под Киджун-сеном и Киджун-сеном не плоский, запускается сигнал продажи.
  3. Когда закрытие находится над облаком, ликвидность хороша для занятия позиций.
  4. Когда закрытие находится под облаком, ликвидность низкая, и следует избегать позиций.
  5. Когда Чику Спан пересекает закрытие, запускается сигнал покупки.
  6. Когда Чику-Спан пересекает границу, запускается сигнал продажи.

Вышеперечисленные торговые сигналы объединяются для определения времени окончательного входа.

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

Преимущества этой стратегии включают:

  1. Использование Ichimoku для определения тренда может отфильтровать рыночный шум и зафиксировать средне- и долгосрочные тенденции.
  2. Включение облачных условий позволяет избежать позиций с низкой ликвидностью.
  3. Чику-Спан действует как подтверждение, чтобы избежать ложного побега.
  4. Правила просты и понятны для применения.

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

Риски этой стратегии включают:

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

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

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

Стратегия может быть дополнительно оптимизирована в следующих аспектах:

  1. Оптимизируйте параметры Ичимоку, чтобы найти лучшую комбинацию.
  2. Добавьте фильтры цены и объема, чтобы избежать отклонения от тренда.
  3. Включить индикаторы волатильности для определения точек переворота.
  4. Добавьте модели машинного обучения для определения состояния тренда.

Резюме

Эта стратегия использует Ichimoku для определения ценового тренда и условий ликвидности для следования тренду, что может эффективно фильтровать шум и улавливать средне- и долгосрочные тенденции с меньшими снижениями.


/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("My Ichimoku Strat", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, currency=currency.EUR)
// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2017, title = "From Year", minval = 2014)
ToMonth   = input(defval = 1, title = "To Month", minval = 1)
ToDay     = input(defval = 1, title = "To Day", minval = 1)
ToYear    = input(defval = 9999, title = "To Year", minval = 2014)

// === SERIES SETUP ===
//**** Inputs *******
KijunSenLag = input(6,title="KijunSen Lag",minval=1)

//Kijun-sen
//Support resistance line, buy signal when price crosses it
KijunSen = sma((high+low)/2,26)
buy2 = crossover(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))
sell2= crossunder(close,KijunSen) and (rising(KijunSen,KijunSenLag) or falling(KijunSen,KijunSenLag))


//Tenkan-Sen
TenkanSen = sma((high+low)/2,9)

//Senkou Span A 
SenkouSpanA = (KijunSen + TenkanSen)/2

//Senkou Span B 
SenkouSpanB = sma((high+low)/2,52)

//Cloud conditions : ignore buy if price is under the cloud
// Huge cloud means safe support and resistance. Little cloud means danger.
buy3 = close > SenkouSpanA and close > SenkouSpanB
sell3 = close < SenkouSpanA and close < SenkouSpanB


//Chikou Span
//Buy signal : crossover(ChikouSpan,close)
//Sell Signal : crossunder(ChikouSpan,close)
ChikouSpan = close
buy1=crossover(ChikouSpan,close[26])
sell1=crossunder(ChikouSpan,close[26])

plotshape(buy1,style=shape.diamond,color=lime,size=size.small)
plotshape(sell1,style=shape.diamond,color=orange,size=size.small)

//Alerts

buyCompteur = -1
buyCompteur := nz(buyCompteur[1],-1)
buyCompteur := buy2 or buy3 ? 1 : buyCompteur
buyCompteur := buyCompteur > 0 ? buyCompteur + 1 : buyCompteur
buyCompteur := sell2 or sell3 ? -1 : buyCompteur

sellCompteur = -1
sellCompteur := nz(sellCompteur[1],-1)
sellCompteur := sell2 or sell3 ? 1 : sellCompteur
sellCompteur := sellCompteur > 0 ? sellCompteur + 1 : sellCompteur
sellCompteur := buy2 or buy3 ? -1 : sellCompteur

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8)
buy=buy2 and buy3 or (buy1 and sellCompteur <=8)
plotchar(buy,char='B',size=size.small,color=lime)
plotchar(sell,char='S',size=size.small,color=orange)

//plots
plot(KijunSen,title="Kijun-Sen",color=blue,linewidth=4)
plot(TenkanSen,title="Tenkan-Sen",color=red,linewidth=2)
cloudA = plot(SenkouSpanA,title="cloud A", color=lime,offset=26,linewidth=2)
cloudB = plot(SenkouSpanB,title="cloud B", color=orange,offset=26,linewidth=2)
plot(ChikouSpan,title="lag span",color=fuchsia, linewidth=2,offset=-26)
//plot()
fill(cloudA,cloudB,color=SenkouSpanA>SenkouSpanB?lime:orange)
//plot(close,color=silver,linewidth=4)

// === ALERTS ===
strategy.entry("L", strategy.long, when=(buy and (time > timestamp(FromYear, FromMonth, FromDay, 00, 00)) and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))
strategy.close("L", when=(sell and (time < timestamp(ToYear, ToMonth, ToDay, 23, 59))))

Больше