یہ حکمت عملی ممکنہ خرید و فروخت کے سگنلز کی نشاندہی کرنے کے لئے ایچیموکو کلاؤڈ ، قلیل مدتی (55) اور طویل مدتی (200) سادہ حرکت پذیر اوسط (ایس ایم اے) کو جوڑتی ہے۔ خرید سگنلز کی ضرورت ہوتی ہے کہ قیمت بادل اور طویل مدتی ایس ایم اے سے اوپر ہو ، اور اس سے اوپر عبور کرنے کے بعد قلیل مدتی ایس ایم اے کو دوبارہ آزمائیں۔ فروخت سگنلز کی ضرورت ہوتی ہے کہ قیمت بادل اور طویل مدتی ایس ایم اے سے نیچے ہو ، اور اس سے نیچے عبور کرنے کے بعد قلیل مدتی ایس ایم اے کو دوبارہ آزمائیں۔ یہ حکمت عملی رینج مارکیٹوں یا اعلی خبروں کے واقعات کے دوران سگنلز پیدا کرنے سے گریز کرتی ہے ، کیونکہ ان ادوار میں زیادہ جعلی آؤٹ ہوتے ہیں۔ بیک ٹسٹنگ سے پتہ چلتا ہے کہ حکمت عملی 1 گھنٹے اور 2 گھنٹے کے ٹائم فریم پر بہترین کارکردگی کا مظاہرہ کرتی ہے۔
یہ حکمت عملی مندرجہ ذیل اصولوں پر مبنی ہے:
یہ کوڈ پہلے مطلوبہ Ichimoku کلاؤڈ اجزاء (تبدیلی لائن ، بیس لائن ، لیڈنگ اسپین A اور B) کے ساتھ ساتھ قلیل مدتی اور طویل مدتی SMAs کا حساب لگاتا ہے۔ اس کے بعد یہ بادل اور حرکت پذیر اوسط کے سلسلے میں قیمت کی پوزیشن کی نشاندہی کرنے کے لئے متعدد شرائط کی وضاحت کرتا ہے۔ جب تمام خرید / فروخت کی شرائط پوری ہوجاتی ہیں تو ، کوڈ بالترتیب خرید اور فروخت کے سگنل تیار کرتا ہے۔
/*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")