اس حکمت عملی میں خرید و فروخت کے سگنل کے طور پر دو تیزی سے چلنے والے اوسط (ای ایم اے) کے کراس اوور کا استعمال کیا جاتا ہے۔ جب مختصر مدت کا ای ایم اے نیچے سے طویل مدت کے ای ایم اے سے اوپر عبور کرتا ہے تو ، یہ خرید کا سگنل تیار کرتا ہے۔ اس کے برعکس ، جب مختصر مدت کا ای ایم اے اوپر سے طویل مدت کے ای ایم اے سے نیچے عبور کرتا ہے تو ، یہ فروخت کا سگنل تیار کرتا ہے۔ اس کے علاوہ ، حکمت عملی کا تعین کرتی ہے کہ آیا کراس اوور پوائنٹ رجحان کی طاقت کی تصدیق کے لئے آخری 10 تجارتی ادوار کے اندر سب سے زیادہ یا سب سے کم قیمت ہے۔ اگر کراس اوور پوائنٹ سب سے زیادہ قیمت ہے تو ، پس منظر سبز رنگ کا ہوگا؛ اگر یہ سب سے کم قیمت ہے تو ، یہ سرخ رنگ کا ہوگا۔ مزید برآں ، حکمت عملی چارٹ پر کراس اوور پوائنٹ کی قیمت ظاہر کرتی ہے۔
یہ حکمت عملی اپنے بنیادی منطق کے طور پر تیزی سے چلتی اوسط کراس اوورز کا استعمال کرتی ہے ، جبکہ رجحان کی طاقت کا تعین کرنے کے لئے حالیہ مدت میں کراس اوور پوائنٹ کی قیمت کی نسبتا position پوزیشن پر بھی غور کرتی ہے۔ مجموعی طور پر ، حکمت عملی کا منطق واضح ہے ، اور فوائد واضح ہیں ، لیکن اس میں کچھ حدود اور خطرات بھی ہیں۔ مزید معاون فیصلے کے اشارے متعارف کرانے ، معقول رسک کنٹرول کے اقدامات کا تعین کرنے ، اور کلیدی پیرامیٹرز کو بہتر بنانے سے ، اس حکمت عملی کے استحکام اور منافع کو مزید بہتر بنایا جاسکتا ہے۔
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ZenAndTheArtOfTrading // @version=5 strategy("ema giao nhau", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // Get user input emaLength1 = input.int(title="EMA #1 Length", defval=5) emaLength2 = input.int(title="EMA #2 Length", defval=10) // Get MAs ema1 = ta.ema(close, emaLength1) ema2 = ta.ema(close, emaLength2) // Draw MAs plot(ema1, color=color.blue, title="EMA 1") plot(ema2, color=color.red, title="EMA 2") // Detect crossovers bool crossOver = ta.crossover(ema1, ema2) bool crossUnder = ta.crossunder(ema1, ema2) bool cross = crossOver or crossUnder //float crossPrice = ta.valuewhen(cross, close, 0) float crossPrice = cross ? close : na // Check if the crossover price is the highest price over the past 10 bars bool highestPrice = crossOver for i = 1 to 10 if crossPrice <= close[i] highestPrice := false break // Check if the crossover price is the lowest price over the past 10 bars bool lowestPrice = crossUnder for i = 1 to 10 if crossPrice >= close[i] lowestPrice := false break // Flag the bar if it is a high/low close bgcolor(highestPrice ? color.new(color.green, 50) : na) bgcolor(lowestPrice ? color.new(color.red, 50) : na) // Display crossover price if cross highestEmaPrice = ema1 > ema2 ? ema1 : ema2 label myLabel = label.new(bar_index, highestEmaPrice, "CrossPrice=" + str.tostring(crossPrice), color=color.white) if highestPrice and strategy.position_size == 0 strategy.entry(id="Buy", direction=strategy.long) if lowestPrice and strategy.position_size == 0 strategy.entry(id="Sell", direction=strategy.short) // Exit trades when short-term EMA is breached if strategy.position_size > 0 and crossUnder strategy.close("Buy") if strategy.position_size < 0 and crossOver strategy.close("Sell")