Эта стратегия называется
Стратегия основана в основном на системе Ichimoku Kinko Hyo, которая включает в себя несколько технических индикаторов для трендовой торговли.
Kijun Sen: представляет собой направление тренда рынка. Это средняя точка самой высокой и самой низкой цены за последние 26 дней, действует как линия поддержки и сопротивления. Сигналы покупки и продажи генерируются, когда цена закрытия пересекает Kijun Sen.
Тенкан Сен: представляет собой динамику цены. Это средняя точка наивысшей и самой низкой цены за последние 9 дней, помогает определить лучшие точки входа и выхода.
Сенку Спан А: представляет собой среднюю линию Ичимоку. Это среднее значение Кидзун Сен и Тенкан Сен, выступает в качестве предупредительной линии Ичимоку.
Senkou Span B: представляет собой долгосрочную линию тренда. Это средняя точка за последние 52 дня. Формирует облако Ичимоку для определения долгосрочных и краткосрочных тенденций.
Кроме того, стратегия также включает в себя индикатор RSI для генерирования торговых сигналов в зонах перекупа и перепродажи.
Сигналы покупки генерируются, когда цена закрытия прерывается выше Kijun Sen и расположена выше облака. Сигналы продажи генерируются, когда цена закрытия прерывается ниже Kijun Sen и расположена ниже облака.
Система Ичимоку точно определяет тенденции с относительно высоким показателем выигрыша.
Включение нескольких показателей позволяет избежать упущенных возможностей.
RSI эффективно определяет точки переворота.
Облако интуитивно показывает долгосрочные и краткосрочные тенденции.
Система Ичимоку имеет определенное отставание, нуждается в включении других показателей.
Работает очень хорошо на трендовых рынках, но скромно на рыночных рынках.
Параметры RSI нуждаются в корректировке на основе рынков.
Строительство облаков сложное дело, требующее умелой манипуляции.
Параметры Ичимоку можно оптимизировать или добавить больше показателей.
Оптимизируйте параметры Ичимоку, чтобы быстрее определить тенденции.
Добавьте больше показателей, таких как скользящие средние, чтобы улучшить точность сигнала.
Настройка параметра RSI на основе различных рынков.
Подумайте о добавлении механизмов стоп-лосса для контроля рисков.
Ичимоку в сочетании с такими индикаторами, как 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))))