Торговая стратегия Ichimoku Kinko Hyo


Дата создания: 2023-12-12 17:32:08 Последнее изменение: 2023-12-12 17:32:08
Копировать: 2 Количество просмотров: 707
1
Подписаться
1621
Подписчики

Торговая стратегия Ichimoku Kinko Hyo

Обзор

Эта стратегия, основанная на индексе Ichimoku Kinko Hyo, использует основополагающие принципы равновесия для определения времени входа и выхода на рынок.

Стратегический принцип

Сначала стратегия рассчитывает на первый взгляд сбалансированные составные элементы, включающие в себя ветровую линию ((Tenkan-Sen), базовую линию ((Kijun-Sen), линию опережения ((Senkou Span A) и линию задержки ((Senkou Span B)).

Дополнительный ввод в рынок осуществляется при соблюдении следующих условий:

  • Пересечение на крыльце базовой линии, указывающей на пересечение на краткосрочной средней линии на долгосрочной средней линии, относится к сигналу золотого форка
  • Облачный график цен, показывающий, что цены на акции получили поддержку и начали расти
  • На карте будущих облаков красный цвет указывает на тенденцию к росту.
  • Цены находятся на расстоянии менее чем в 2 раза ATR от шелковой линии, что указывает на то, что цены не высоки и соответствуют стратегии отслеживания шелка
  • Цены находятся на расстоянии менее чем в 3 раза от базовой линии ATR, что указывает на то, что цены не слишком высоки и соответствуют стратегии отслеживания
  • Линия крыши и линия отсчета находятся над облачной картой, что на первый взгляд показывает равновесную тенденцию вверх.

При выполнении следующих условий, игра на равные позиции:

  • Пересечение крыльца под эталонной линией, указывающее на пересечение краткосрочной средней линии под долгосрочной средней, относится к сигналу мертвой форки
  • Цены упали за пределы облачного диаграмма, что указывает на потерю поддержки акций
  • Или прибыль более 30%, придерживаясь стратегии сдерживания.
  • или убыток более 3%, придерживаясь стратегии стоп-лосса

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

  • Высокая точность определения тенденций цен на акции с помощью первичного равновесного показателя
  • В сочетании с ATR, чтобы контролировать хеджирование и предотвратить перекуп и перепродажу
  • Рассматривайте различные сигналы и избегайте ложных
  • Стратегия пополнения запасов может ускорить прибыль

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

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

Направление оптимизации

  • Сигнал может быть подтвержден в сочетании с MACD, KDJ и другими показателями
  • Можно увеличить стоп-магниту, уменьшить ее.
  • Можно автоматически оптимизировать параметры ATR на основе исторических данных
  • Различия в параметрах акций различных отраслей можно исследовать, создавая пул параметров

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2022-12-05 00:00:00
end: 2023-12-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// Author Obarut
//@version=5
strategy("İchimoku Strategy With Money Management",overlay=true)

//Inputs
ts_period = input.int(9, minval=1, title="Tenkan-Sen Period")
ks_period = input.int(26, minval=1, title="Kijun-Sen Period")
ssb_period = input.int(52, minval=1, title="Senkou-Span B Period")
cs_offset = input.int(26, minval=1, title="Chikou-Span Offset")
ss_offset = input.int(26, minval=1, title="Senkou-Span Offset")


// Back Testing Period

fromday = input.int(defval=1,title="Start Date",minval=1,maxval=31) 
frommonth = input.int(defval=1,title="Start Month",minval=1,maxval=12)
fromyear = input.int(defval=1980,title="Start Year",minval=1800, maxval=2100)
today = input.int(defval=1,title="En Date",minval=1,maxval=31)
tomonth = input.int(defval=1,title="End Month",minval=1,maxval=12)
toyear =input.int(defval=2100,title="End Year",minval=1800,maxval=2200)


start=timestamp(fromyear,frommonth,fromday,00,00)
finish=timestamp(toyear,tomonth,today,00,00)
timewindow= time>=start and time<=finish

middle(len) => math.avg(ta.lowest(len), ta.highest(len))

// Ichimoku Components

tenkan = middle(ts_period)
kijun = middle(ks_period)
senkouA = math.avg(tenkan, kijun)
senkouB = middle(ssb_period)


atr = ta.atr(14)
ss_above = math.max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_below = math.min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Price Distance From Tenkan

distance = close - tenkan

// Price Distance from Kijun

distancek = close - kijun

// Entry/Exit Signals

tk_cross_kijun_bull = tenkan >= kijun
tk_cross_kijun_bear = tenkan <= kijun
cs_cross_bull = ta.mom(close, cs_offset-1) > 0
cs_cross_bear = ta.mom(close, cs_offset-1) < 0
price_above_kumo = close > ss_above
pbsenkA = close < ss_above
pasenkB = close > ss_below
price_below_kumo = close < ss_above
future_kumo_bull = senkouA > senkouB
future_kumo_bear = senkouA < senkouB
// Price Distance From Tenken
disbull = distance < 2*atr
//Price Distance From Kijun
disbullk = distancek < 3*atr
//Price Above Tenkan Condition
patk = close > tenkan
// Kijun Above Senkou Span Condition
kjasenkA = kijun > ss_above
// Price Below Kijun Condition
pbkijun = close < kijun

//Bullish Condition

bullish= tk_cross_kijun_bull and cs_cross_bull and price_above_kumo and future_kumo_bull and patk and disbull and disbullk 
     and (tenkan>ss_above) and (kijun>ss_above)

if(bullish and timewindow )
    strategy.entry("Long Entry", strategy.long)

// Bearish Condition

bearish=tk_cross_kijun_bear and pbsenkA and cs_cross_bear  
      or pbkijun or price_below_kumo 

lastentryprice = strategy.opentrades.entry_price(strategy.opentrades - 1)

// Take Profit or Stop Loss in Bearish

if(bearish and timewindow or (close>1.30*lastentryprice and close<kijun ) or (close< 0.93*lastentryprice))
    strategy.close("Long Entry")




if(time>finish)
    strategy.close_all("time up")


plot(tenkan, color=#0496ff, title="Tenkan-Sen")
plot(kijun, color=#991515, title="Kijun-Sen")
plot(close, offset=-cs_offset+1, color=#2e640e, title="Chikou-Span")
sa=plot(senkouA, offset=ss_offset-1, color=color.rgb(17, 122, 21), title="Senkou-Span A")
sb=plot(senkouB, offset=ss_offset-1, color=color.rgb(88, 8, 8), title="Senkou-Span B")
fill(sa, sb, color = senkouA > senkouB ? color.rgb(198, 234, 198) : color.rgb(208, 153, 153), title="Cloud color")