Esta é uma estratégia de quantidade de nuvem Ichimoku de longo prazo. A estratégia julga a direção da tendência através do indicador Ichimoku, combinado com padrões de linha K, médias móveis e o indicador Stochastic RSI para filtrar sinais e ir longo em melhores pontos de entrada quando a tendência sobe.
Os principais critérios de avaliação da estratégia são:
Quando todas as condições acima são satisfeitas ao mesmo tempo, a estratégia abrirá posições longas.
A estratégia usa principalmente a nuvem Ichimoku para determinar a direção da tendência principal, combinada com indicadores auxiliares para filtrar sinais e fazer longos em pontos melhores quando a tendência sobe.
Contramedidas:
Esta estratégia de quantidade de nuvem Ichimoku alcança uma alta taxa de ganho, mas uma estratégia de longo prazo controlada pelo risco, julgando as direções da tendência. As vantagens da estratégia são óbvias e mostra um desempenho excepcional em mercados de alta. O próximo passo é melhorar aspectos como otimização de indicadores, mecanismo de stop loss, gerenciamento de posição para tornar a estratégia mais abrangente e estável.
/*backtest start: 2022-11-17 00:00:00 end: 2023-11-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Ichimoku only Long Strategy", shorttitle="Ichimoku only Long", overlay = true, pyramiding = 0, calc_on_order_fills = false, commission_type = strategy.commission.percent, commission_value = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=10000, currency=currency.USD) // Time Range FromMonth=input(defval=1,title="FromMonth",minval=1,maxval=12) FromDay=input(defval=1,title="FromDay",minval=1,maxval=31) FromYear=input(defval=2017,title="FromYear",minval=2017) ToMonth=input(defval=1,title="ToMonth",minval=1,maxval=12) ToDay=input(defval=1,title="ToDay",minval=1,maxval=31) ToYear=input(defval=9999,title="ToYear",minval=2017) start=timestamp(FromYear,FromMonth,FromDay,00,00) finish=timestamp(ToYear,ToMonth,ToDay,23,59) window()=>true // See if this bar's time happened on/after start date afterStartDate = time >= start and time<=finish?true:false //Enable RSI enableema = input(true, title="Enable EMA?") enablestochrsi = input(false, title="Enable Stochastik RSI?") //EMA emasrc = close, len1 = input(24, minval=1, title="EMA 1") len2 = input(90, minval=1, title="EMA 2") ema1 = ema(emasrc, len1) ema2 = ema(emasrc, len2) col1 = color.lime col2 = color.red //EMA Plots plot(ema1, title="EMA 1", linewidth=1, color=col1) plot(ema2, title="EMA 2", linewidth=1, color=col2) //STOCH RSI smoothK = input(3, minval=1, title="RSI K Line") smoothD = input(3, minval=1, title="RSI D Line") lengthRSI = input(14, minval=1, title="RSI Length") lengthStoch = input(14, minval=1, title="Stochastik Length") src = input(close, title="RSI Source") rsi1 = rsi(src, lengthRSI) k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK) d = sma(k, smoothD) //Ichimoku conversionPeriods = input(9, minval=1, title="Ichi Conversion Line Length") basePeriods = input(26, minval=1, title="Ichi Base Line Length") laggingSpan2Periods = input(52, minval=1, title="Ichi Lagging Span 2 Length") displacement = input(1, minval=0, title="Ichi Displacement") donchian(len) => avg(lowest(len), highest(len)) conversionLine = donchian(conversionPeriods) baseLine = donchian(basePeriods) leadLine1 = avg(conversionLine, baseLine) leadLine2 = donchian(laggingSpan2Periods) p1 = plot(leadLine1, offset = displacement - 1, color=color.green, title="Lead 1") p2 = plot(leadLine2, offset = displacement - 1, color=color.red, title="Lead 2") fill(p1, p2, color = leadLine1 > leadLine2 ? color.green : color.red) //Long Condition crossup = k[0] > d[0] and k[1] <= d[1] ichigreenabovered = leadLine1 > leadLine2 ichimokulong = close > leadLine1 greencandle = close > open redcandle = close < open emacond = ema1 > ema2 longcondition = ichigreenabovered and ichimokulong and greencandle //Exit Condition ichimokuexit = close < leadLine1 exitcondition = ichimokuexit and redcandle //Entrys if (enablestochrsi == false) and (enableema == false) and (longcondition) and (afterStartDate) and (strategy.opentrades < 1) strategy.entry("Long", strategy.long) if (enablestochrsi == true) and (enableema == false) and (longcondition) and (crossup) and (afterStartDate) and (strategy.opentrades < 1) strategy.entry("Long", strategy.long) if (enableema == true) and (enablestochrsi == false) and (longcondition) and (emacond) and (afterStartDate) and (strategy.opentrades < 1) strategy.entry("Long", strategy.long) if (enableema == true) and (enablestochrsi == true) and (longcondition) and (emacond) and (crossup) and (afterStartDate) and (strategy.opentrades < 1) strategy.entry("Long", strategy.long) //Exits if (afterStartDate) strategy.close(id = "Long", when = exitcondition)