یہ حکمت عملی ایک ٹرینڈ فالونگ سسٹم ہے جو چلتی اوسط کو آؤٹ بار پیٹرن کی شناخت کے ساتھ جوڑتا ہے۔ اس میں سگنل کی تصدیق کے لئے آؤٹ بار پیٹرن کے ساتھ مل کر 5 پیریڈ اور 9 پیریڈ ایکسپونینشل موونگ اوسط (ای ایم اے) کو بنیادی رجحان اشارے کے طور پر استعمال کیا جاتا ہے۔ اس حکمت عملی میں آؤٹ بار اونچائی کی بنیاد پر متحرک اسٹاپ نقصان اور منافع لینے کی ترتیبات شامل ہیں ، نیز اسٹاپ نقصان کی ہٹ سے متحرک پوزیشن الٹ میکانزم بھی شامل ہے۔
بنیادی منطق مندرجہ ذیل اہم عناصر پر مبنی ہے:
بنیادی رجحان کی سمت کا تعین کرنے کے لئے 5 مدت اور 9 مدت کے EMA کراس اوور کا استعمال
بیرونی بار پیٹرن کے ذریعے مارکیٹ کی اتار چڑھاؤ کی تصدیق (موجودہ بار
یہ ایک حکمت عملی کا نظام ہے جو کلاسیکی تکنیکی تجزیہ کو جدید مقداری تجارتی تصورات کے ساتھ جوڑتا ہے۔ حرکت پذیر اوسط اور آؤٹ بار پیٹرن کا امتزاج بروقت رجحان کی پیروی اور قابل اعتماد سگنل جنریشن دونوں کو یقینی بناتا ہے۔ متحرک اسٹاپ نقصان / منافع لینے اور پوزیشن الٹنے کے میکانزم کا ڈیزائن رسک مینجمنٹ پر مضبوط توجہ کا مظاہرہ کرتا ہے ، جس سے حکمت عملی عملی قابل عمل ہے۔ اگرچہ اصلاح کی گنجائش ہے ، لیکن مجموعی فریم ورک پہلے ہی براہ راست تجارت کے لئے بنیادی شرائط کو پورا کرتا ہے۔
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-15 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy(title="Outside Bar EMA Crossover Strategy with EMA Shift", shorttitle="Outside Bar EMA Cross", overlay=true) // Input for EMA lengths lenEMA1 = input.int(5, title="EMA 5 Length") lenEMA2 = input.int(9, title="EMA 9 Length") // Input for EMA 9 shift emaShift = input.int(1, title="EMA 9 Shift", minval=0) // Calculate EMAs ema1 = ta.ema(close, lenEMA1) ema2 = ta.ema(close, lenEMA2) // Apply shift to EMA 9 ema2Shifted = na(ema2[emaShift]) ? na : ema2[emaShift] // Dịch chuyển EMA 9 bằng cách sử dụng offset // Plot EMAs plot(ema1, title="EMA 5", color=color.blue, linewidth=2) plot(ema2Shifted, title="EMA 9 Shifted", color=color.red, linewidth=2) // Outside Bar condition outsideBar() => high > high[1] and low < low[1] // Cross above EMA 5 and EMA 9 (shifted) crossAboveEMA = close > ema1 and close > ema2Shifted // Cross below EMA 5 and EMA 9 (shifted) crossBelowEMA = close < ema1 and close < ema2Shifted // Outside Bar cross above EMA 5 and EMA 9 (shifted) outsideBarCrossAbove = outsideBar() and crossAboveEMA // Outside Bar cross below EMA 5 and EMA 9 (shifted) outsideBarCrossBelow = outsideBar() and crossBelowEMA // Plot shapes for visual signals plotshape(series=outsideBarCrossAbove, title="Outside Bar Cross Above", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy", textcolor=color.white) plotshape(series=outsideBarCrossBelow, title="Outside Bar Cross Below", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell", textcolor=color.white) // Calculate Outside Bar height outsideBarHeight = high - low // Chiều cao của nến Outside Bar // Calculate TP and SL levels tpRatio = 0.5 // TP = 50% chiều cao nến Outside Bar slRatio = 1.0 // SL = 100% chiều cao nến Outside Bar tpLevelLong = close + outsideBarHeight * tpRatio // TP cho lệnh mua slLevelLong = close - outsideBarHeight * slRatio // SL cho lệnh mua tpLevelShort = close - outsideBarHeight * tpRatio // TP cho lệnh bán slLevelShort = close + outsideBarHeight * slRatio // SL cho lệnh bán // Strategy logic if (outsideBarCrossAbove) strategy.entry("Buy", strategy.long) strategy.exit("Take Profit/Stop Loss", "Buy", stop=slLevelLong, limit=tpLevelLong) // Thêm TP và SL if (outsideBarCrossBelow) strategy.entry("Sell", strategy.short) strategy.exit("Take Profit/Stop Loss", "Sell", stop=slLevelShort, limit=tpLevelShort) // Thêm TP và SL // Logic: Nếu lệnh Buy bị Stop Loss => Vào lệnh Sell if (strategy.position_size > 0 and close <= slLevelLong) strategy.close("Buy") strategy.entry("Sell After Buy SL", strategy.short) // Logic: Nếu lệnh Sell bị Stop Loss => Vào lệnh Buy if (strategy.position_size < 0 and close >= slLevelShort) strategy.close("Sell") strategy.entry("Buy After Sell SL", strategy.long) // Cảnh báo khi label Buy xuất hiện alertcondition(condition=outsideBarCrossAbove, title="Label Buy Xuất Hiện", message="Label Buy xuất hiện tại giá: {{close}}") // Cảnh báo khi label Sell xuất hiện alertcondition(condition=outsideBarCrossBelow, title="Label Sell Xuất Hiện", message="Label Sell xuất hiện tại giá: {{close}}")