Стратегия Ишимоку Кинко Хё


Дата создания: 2023-10-13 16:48:22 Последнее изменение: 2023-10-13 16:48:22
Копировать: 0 Количество просмотров: 764
1
Подписаться
1617
Подписчики

Обзор

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

Первоначальный анализ

Стратегия основана на концепции “линии первого взгляда” и основывается на использованииdonchian()Функция рассчитывает среднее значение наивысшей и наименьшей цены за определенный период, как среднюю линию. Затем она определяет, не превышает ли цена эту среднюю линию, что создает торговый сигнал.

В частности, стратегия рассчитываетTenСредняя линия циклаTS, в качестве справочной линии. Когда цена пересекает среднюю линию выше, считается, что она входит в трендовую ситуацию, создавая многосигнал; когда цена пересекает среднюю линию ниже, считается, что тенденция реверсируется, создавая сигнал дифференциации.

Кроме того, стратегия рассчитываетKijСредняя линия циклаKSиTSЛиния объединяется, создавая условия фильтрации, чтобы избежать ошибочного сигнала.TSНосить онлайнKSВ случае, если вы используете кабель, он будет запускать сигнал.

В коде также изображены карты облаков, которые помогают определить их местоположение и направление тенденции.ChikouВ качестве вспомогательного критерия можно выделить:

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

  • Процесс оценки тенденций с помощью средней линии прост и понятен.
  • Облачные карты в сочетании с информацией для вынесения решения и повышения точности
  • УвеличениеChikouЛиния в качестве вспомогательного условия для дальнейшей фильтрации сигнала
  • Гибкость при использовании равнолинейных комбинаций различных параметров

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

  • Среднелинейная стратегия чувствительна к параметрам, различные периоды параметров сильно различаются в эффективности
  • Чистое следование за средней линией, невозможность определить тенденции и диапазоны, существует риск потери
  • Невозможность обработки циклов сбора, создание ошибочных сигналов
  • Облачные карты помогают рассуждать неустойчиво и могут вводить в заблуждение

Можно рассмотреть возможность создания сигнала в сочетании с трендовыми индикаторами, такими как MACD; использование однолинейной многокомбинационной системы для повышения стабильности; или добавление стратегии контроля риска с остановкой убытков.

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

  • Повышение динамики в портфеле индикаторов для оценки сильных и слабых тенденций
  • Подумайте о многоосновной системе, такой как многоосновной золотой крест
  • Добавление каналов и показателей волатильности для определения диапазона свертывания
  • Оптимизация параметров, поиск оптимального циклического сочетания
  • Присоединяйтесь к стратегии Stop Loss и контролируйте свои убытки

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

Стратегия сбалансированности с первого взгляда в целом является более простой и прямой, подходит для начинающих, понимает тенденции с помощью равномерной линии; в то же время можно проводить комбинацию из нескольких показателей, обогащая системный эффект. Однако эффективность этой стратегии в реальном мире еще предстоит проверить, все еще требуется постоянная оптимизация тестов, чтобы использовать ее для торговли в реальном мире.

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

//@version=4

strategy(title="Ichimoku Crypto Breakout", shorttitle="Ichimoku Breakout", overlay=true)

Ten = input(18, minval=1, title="Tenkan")
Kij = input(52, minval=1, title="Kijun")
LeadSpan = input(104, minval=1, title="Senkou B")
Displace = input(52, minval=1, title="Senkou A")
SpanOffset = input(52, minval=1, title="Span Offset")

sts = input(true, title="Show Tenkan")
sks = input(true, title="Show Kijun")
ssa = input(true, title="Show Span A")
ssb = input(true, title="Show Span B")

source = close

//Script for Ichimoku Indicator
donchian(len) => avg(lowest(len), highest(len))
TS = donchian(Ten)
KS = donchian(Kij)
SpanA = avg(TS, KS)
SpanB = donchian(LeadSpan)

CloudTop = max(TS, KS)

Chikou = source[Displace]
SpanAA = avg(TS, KS)[SpanOffset]
SpanBB = donchian(LeadSpan)[SpanOffset]

//Kumo Breakout (Long)
SpanA_Top = SpanAA >= SpanBB ? 1 : 0
SpanB_Top = SpanBB >= SpanAA ? 1 : 0

SpanA_Top2 = SpanA >= SpanB ? 1 : 0
SpanB_Top2 = SpanB >= SpanA ? 1 : 0

SpanA1 = SpanA_Top2 ? SpanA : na
SpanA2 = SpanA_Top2 ? SpanB : na

SpanB1 = SpanB_Top2 ? SpanA : na
SpanB2 = SpanB_Top2 ? SpanB : na

//plot for Tenkan and Kijun (Current Timeframe)
p1= plot(sts and TS ? TS : na, title="Tenkan", linewidth = 2, color = gray)
p2 = plot(sks and KS ? KS : na, title="Kijun", linewidth = 2, color = black)
p5 = plot(close, title="Chikou", linewidth = 2, offset=-Displace, color = orange)

//Plot for Kumo Cloud (Dynamic Color)
p3 = plot(ssa and SpanA ? SpanA : na, title="SpanA", linewidth=2, offset=Displace, color=green)
p4 = plot(ssb and SpanB ? SpanB : na, title="SpanB", linewidth=2, offset=Displace, color=red)

p8 = plot(ssa and SpanA1 ? SpanA1 : na, title="Span A1 above", style=linebr, linewidth=1, offset=Displace, color=green)
p9 = plot(ssa and SpanA2 ? SpanA2 : na, title="Span A2 above", style=linebr, linewidth=1, offset=Displace, color=green)
p10 = plot(ssb and SpanB1 ? SpanB1 : na, title="Span B1 above", style=linebr, linewidth=1, offset=Displace, color=red)
p11 = plot(ssb and SpanB2 ? SpanB2 : na, title="Span B2 above", style=linebr, linewidth=1, offset=Displace, color=red)

fill(p8, p9, color = lime, transp=70, title="Kumo Cloud Up")
fill (p10, p11, color=red, transp=70, title="Kumo Cloud Down")

LongSpan = (SpanA_Top and source[1] < SpanAA[1] and source > SpanAA) or (SpanB_Top and source[1] < SpanBB[1] and source > SpanBB) ? 1 : 0
cupSpan = LongSpan  == 1 ? LongSpan : 0

//Kumo Breakout (Long)
//plotarrow(cupSpan, title="Kumo Breakout Long", colorup=green, maxheight=50)

//Kumo Breakout (Long) Alerts
Long_Breakout = (SpanA_Top ==1 and crossover(source, SpanAA)) or (SpanB_Top ==1 and crossover(source, SpanBB))
//Long_Breakout = ((SpanA_Top ==1 and crossover(KS, SpanAA)) or (SpanB_Top ==1 and crossover(KS, SpanBB))) and TS >= KS
//alertcondition(Long_Breakout, title="Kumo Breakout Long", message="Kumo Long")

//Kumo Breakout (Short)
ShortSpan = (SpanB_Top and source[1] > SpanAA[1] and source < SpanAA) or (SpanA_Top and source[1] > SpanBB[1] and source < SpanBB) ? 1 : 0
cdnSpan = ShortSpan == 1 ? ShortSpan : 0

//Kumo Breakout (Short)
//plotarrow(cdnSpan*-1, title="Kumo Breakout Short", colordown=red, maxheight=50)

//Kumo Breakout (Short) Alerts
Short_Breakout = (SpanA_Top ==1 and crossunder(source, SpanBB)) or (SpanB_Top ==1 and crossunder(source, SpanAA))
//alertcondition(Short_Breakout, title="Kumo Breakout Short", message="Kumo Short")

//Kumo Twist
Kumo_Twist_Long = SpanA[1] < SpanB[1] and SpanA > SpanB ? 1 : 0
Kumo_Twist_Short = SpanA[1] > SpanB[1] and SpanA < SpanB ? 1 : 0

cupD = Kumo_Twist_Long == 1 ? Kumo_Twist_Long : 0
cdnD = Kumo_Twist_Short == 1 ? Kumo_Twist_Short : 0

//Kumo Twist (Long/Short)
//plotarrow(cupD, title="Kumo Twist Long", colorup=green, maxheight=50)
//plotarrow(cdnD*-1, title="Kumo Twist Short", colordown=red, maxheight=50)

//Kumo Twist (Long/Short) Alerts
KumoTwistLong_Cross = crossover(SpanA, SpanB)
//alertcondition(KumoTwistLong_Cross, title="Kumo Twist Long", message="Kumo Twist Long")
KumoTwistShort_Cross = crossunder(SpanA, SpanB)
//alertcondition(KumoTwistShort_Cross, title="Kumo Twist Short", message="Kumo Twist Short")

//Kumo Twist (Long/Short) - Bar Color
BarColor = Kumo_Twist_Long ? green : Kumo_Twist_Short ? red : na
barcolor(BarColor)

//Chikou above/below Price
Chikou_Above = close > Chikou
Chikou_Below = close < Chikou

//Kumo Twist (Long/Short) - Plot Character on location of Chikou to Price & Price to Kumo
//plotchar(Kumo_Twist_Long and Chikou_Above, title="Kumo Twist Long and Chikou above Price", char="A", location=location.abovebar, color=green)
//plotchar(Kumo_Twist_Long and Chikou_Below, title="Kumo Twist Long and Chikou below Price", char="B", location=location.abovebar, color=red)
//plotchar(Kumo_Twist_Short and Chikou_Above, title="Kumo Twist Short and Chikou above Price", char="A", location=location.belowbar, color=green)
//plotchar(Kumo_Twist_Short and Chikou_Below, title="Kumo Twist Short and Chikou below Price", char="B", location=location.belowbar, color=red)

//Base and Conversion Line Cross
//long = cross(TS, KS) and TS>KS

long = (cross(TS, SpanA) or cross(TS, SpanB)) and TS>SpanA and TS>SpanB and TS>=KS
short = cross(TS, KS) and KS >= TS

strategy.entry("long", strategy.long, when=Long_Breakout)
strategy.entry("short", strategy.short, when=Short_Breakout)
//strategy.exit("bracket", when=short)