Стратегия следования тренду Ichimoku Kinko Hyo


Дата создания: 2023-12-26 16:13:42 Последнее изменение: 2023-12-26 16:13:42
Копировать: 1 Количество просмотров: 678
1
Подписаться
1621
Подписчики

Стратегия следования тренду Ichimoku Kinko Hyo

Обзор

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

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

Эта стратегия основана на показателях Ichimoku Kinko Hyo, чтобы определить направление тренда. Ичимoku Kinko Hyo, также известный как таблица первоочередного равновесия, состоит из линии преобразования ((Tenkan-sen), базовой линии ((Kijun-sen), ведущей линии ((Senkou Span A) и линии подтверждения ((Senkou Span B), образующей равновесную зону между передней и задней стороной, называемую полосой хмурого облака.

Эта стратегия объединяет отношения цены и средней линии, чтобы определить направление тренда. Когда цена пересекает базовую линию и линию конверсии, она создает сигнал покупки; когда цена пересекает облачную полосу, она создает сигнал продажи. Благодаря такому сочетанию, можно эффективно отфильтровать ложные прорывы и блокировать направление тренда.

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

  • Используйте индикатор Ichimoku Kinko Hyo для определения тенденций, чтобы не быть вводящим в заблуждение ложными рыночными прорывами
  • Среднелинейные параметры настраиваются и оптимизируются для различных циклов
  • Эффективное определение направления тенденции в сочетании с равнолинейным отношением
  • Применение облачных поясов позволяет вести сделки с низким уровнем риска

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

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

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

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

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

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

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

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

//@version=3
// Credit for the initial code to nathanhoffer - I simply added the ability to select a time period
//
strategy("Cloud Breakout", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Component Code Start ///////////////
testStartYear = input(2016, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

Ten = input(18, minval=1, title="Tenkan")
Kij = input(60, minval=1, title="Kijun")
LeadSpan = input(30, 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")
sc = input(true, title="Show Chikou")

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(sc and KS ? KS : na, title="Chikou", linewidth = 2, color = orange)
p5 = plot(sc and Displace ? close: na, 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

Long_Breakout = (SpanA_Top ==1 and crossover(source, SpanAA)) or (SpanB_Top ==1 and crossover(source, SpanBB))

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

Short_Breakout = (SpanA_Top ==1 and crossunder(source, SpanBB)) or (SpanB_Top ==1 and crossunder(source, SpanAA))

//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

Chikou_Above = close > Chikou
Chikou_Below = close < Chikou

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

if testPeriod()
    strategy.entry("long", strategy.long, when=Long_Breakout)
    strategy.entry("short", strategy.short, when=Short_Breakout)