Ичимоку Кинко Хё Основанная на BTC Стратегия Торговли

Автор:Чао Чжан, Дата: 2023-12-20 13:34:08
Тэги:

img

Обзор

Эта стратегия называется Ichimoku Kinko Hyo Strategy. Это стратегия торговли BTC, основанная на системе Ichimoku Kinko Hyo в сочетании с другими техническими индикаторами.

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

Стратегия основана в основном на системе Ichimoku Kinko Hyo, которая включает в себя несколько технических индикаторов для трендовой торговли.

Kijun Sen: представляет собой направление тренда рынка. Это средняя точка самой высокой и самой низкой цены за последние 26 дней, действует как линия поддержки и сопротивления. Сигналы покупки и продажи генерируются, когда цена закрытия пересекает Kijun Sen.

Тенкан Сен: представляет собой динамику цены. Это средняя точка наивысшей и самой низкой цены за последние 9 дней, помогает определить лучшие точки входа и выхода.

Сенку Спан А: представляет собой среднюю линию Ичимоку. Это среднее значение Кидзун Сен и Тенкан Сен, выступает в качестве предупредительной линии Ичимоку.

Senkou Span B: представляет собой долгосрочную линию тренда. Это средняя точка за последние 52 дня. Формирует облако Ичимоку для определения долгосрочных и краткосрочных тенденций.

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

Сигналы покупки генерируются, когда цена закрытия прерывается выше Kijun Sen и расположена выше облака. Сигналы продажи генерируются, когда цена закрытия прерывается ниже Kijun Sen и расположена ниже облака.

Преимущества

  1. Система Ичимоку точно определяет тенденции с относительно высоким показателем выигрыша.

  2. Включение нескольких показателей позволяет избежать упущенных возможностей.

  3. RSI эффективно определяет точки переворота.

  4. Облако интуитивно показывает долгосрочные и краткосрочные тенденции.

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

  1. Система Ичимоку имеет определенное отставание, нуждается в включении других показателей.

  2. Работает очень хорошо на трендовых рынках, но скромно на рыночных рынках.

  3. Параметры RSI нуждаются в корректировке на основе рынков.

  4. Строительство облаков сложное дело, требующее умелой манипуляции.

Параметры Ичимоку можно оптимизировать или добавить больше показателей.

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

  1. Оптимизируйте параметры Ичимоку, чтобы быстрее определить тенденции.

  2. Добавьте больше показателей, таких как скользящие средние, чтобы улучшить точность сигнала.

  3. Настройка параметра RSI на основе различных рынков.

  4. Подумайте о добавлении механизмов стоп-лосса для контроля рисков.

Заключение

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


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

//@version=3
strategy("My Ichimoku Strat v2", overlay=true,default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.EUR,commission_type=strategy.commission.percent,commission_value=0.05)
// === BACKTEST RANGE ===
FromMonth = input(defval = 3, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2018, 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



//RSI
src = close, len = input(14, minval=1, title="RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
buyRSI = crossover(rsi,40) and close > TenkanSen and rsi[5]<30 and (rsi-rsi[1])>5
sellRSI = crossunder(rsi,60) and close < TenkanSen and rsi[5]>70 and (rsi[1]-rsi)>5
plotshape(buyRSI,style=shape.triangleup,color=lime,transp=0,location=location.belowbar,size=size.small)

sell= sell2 and sell3 or (sell1 and buyCompteur <= 8) or sellRSI
buy=buy2 and buy3 or (buy1 and sellCompteur <=8) or buyRSI
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))))

Больше