यह रणनीति इचिमोकू क्लाउड, अल्पकालिक (55) और दीर्घकालिक (200) सरल चलती औसत (एसएमए) को संभावित खरीद और बिक्री संकेतों की पहचान करने के लिए जोड़ती है। खरीद संकेतों के लिए मूल्य को क्लाउड और दीर्घकालिक एसएमए से ऊपर होना चाहिए, और इसके ऊपर पार करने के बाद अल्पकालिक एसएमए का पुनः परीक्षण करना चाहिए। बेच संकेतों के लिए मूल्य को क्लाउड और दीर्घकालिक एसएमए से नीचे होना चाहिए, और इसके नीचे पार करने के बाद अल्पकालिक एसएमए का पुनः परीक्षण करना चाहिए। रणनीति रेंजिंग बाजारों या उच्च समाचार घटनाओं के दौरान संकेत उत्पन्न करने से बचती है, क्योंकि इन अवधि में अधिक नकली-आउट होते हैं। बैकटेस्टिंग से पता चलता है कि रणनीति 1 घंटे और 2 घंटे के समय सीमा पर सबसे अच्छा प्रदर्शन करती है।
यह रणनीति निम्नलिखित सिद्धांतों पर आधारित हैः
कोड पहले आवश्यक इचिमोकू क्लाउड घटकों (परिवर्तन रेखा, आधार रेखा, अग्रणी स्पैन ए और बी), साथ ही अल्पकालिक और दीर्घकालिक एसएमए की गणना करता है। फिर यह क्लाउड और चलती औसत के सापेक्ष मूल्य स्थिति की पहचान करने के लिए कई शर्तों को परिभाषित करता है। जब सभी खरीद / बिक्री शर्तें पूरी होती हैं, तो कोड क्रमशः खरीद और बिक्री संकेत उत्पन्न करता है।
/*backtest start: 2023-05-11 00:00:00 end: 2024-05-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Ichimoku Cloud and Moving Average Strategy", shorttitle="ICMA", overlay=true) // Input parameters shortMA = input.int(55, title="Short-term Moving Average Length") longMA = input.int(200, title="Long-term Moving Average Length") // Calculate moving averages shortSMA = ta.sma(close, shortMA) longSMA = ta.sma(close, longMA) // Ichimoku Cloud settings conversionPeriod = input.int(9, title="Conversion Line Period") basePeriod = input.int(26, title="Base Line Period") spanBPeriod = input.int(52, title="Span B Period") displacement = input.int(26, title="Displacement") // Calculate Ichimoku Cloud components conversionLine = ta.sma(high + low, conversionPeriod) / 2 baseLine = ta.sma(high + low, basePeriod) / 2 leadSpanA = (conversionLine + baseLine) / 2 leadSpanB = ta.sma(high + low, spanBPeriod) / 2 // Plot Ichimoku Cloud components plot(leadSpanA, color=color.blue, title="Leading Span A") plot(leadSpanB, color=color.red, title="Leading Span B") // Entry conditions aboveCloud = close > leadSpanA and close > leadSpanB belowCloud = close < leadSpanA and close < leadSpanB aboveShortMA = close > shortSMA aboveLongMA = close > longSMA belowShortMA = close < shortSMA belowLongMA = close < longSMA // Buy condition (Price retests 55 moving average after being above it) buyCondition = aboveCloud and aboveLongMA and close[1] < shortSMA and close > shortSMA // Sell condition (Price retests 55 moving average after being below it) sellCondition = belowCloud and belowLongMA and close[1] > shortSMA and close < shortSMA // Strategy entry and exit strategy.entry("Buy", strategy.long, when = buyCondition) strategy.entry("Sell", strategy.short, when = sellCondition) // Plot moving averages plot(shortSMA, color=color.green, title="Short-term SMA") plot(longSMA, color=color.red, title="Long-term SMA") // Plot buy and sell signals plotshape(series=buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Buy Signal") plotshape(series=sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Sell Signal")