دوہری حرکت پذیر اوسط تجارتی حکمت عملی تیز اور سست حرکت پذیر اوسطوں کا حساب لگاتے ہوئے اور کراسوں پر نظر رکھ کر تجارتی سگنل تیار کرتی ہے۔ جب تیز رفتار اوسط سست حرکت پذیر اوسط سے تجاوز کرتا ہے تو ، ایک لمبی پوزیشن لی جاتی ہے۔ جب تیز رفتار حرکت پذیر اوسط سست حرکت پذیر اوسط سے نیچے عبور کرتا ہے تو ، ایک مختصر پوزیشن لی جاتی ہے۔ یہ حکمت عملی رجحان کی تجارت اور انسداد رجحان کی تجارت دونوں کے لئے استعمال کی جاسکتی ہے۔
حکمت عملی سب سے پہلے تیز رفتار اوسط maFastLength اور سست رفتار اوسط maSlowLength کی لمبائی طے کرتی ہے۔ اس کے بعد یہ تیز رفتار اوسط فاسٹ ایم اے اور سست رفتار اوسط سست ایم اے کا حساب لگاتا ہے۔ تیز رفتار اوسط قیمت کی تبدیلیوں پر تیزی سے رد عمل ظاہر کرتا ہے اور موجودہ رجحان کا فیصلہ کرنے کے لئے استعمال ہوتا ہے ، جبکہ سست رفتار اوسط زیادہ آہستہ رد عمل ظاہر کرتا ہے اور رجحان کی سمت کا تعین کرنے کے لئے استعمال ہوتا ہے۔
جب تیز رفتار حرکت پذیر اوسط سست حرکت پذیر اوسط سے اوپر جاتا ہے تو ، ایک طویل اندراج سگنل goLong (()) تیار کیا جاتا ہے۔ جب تیز رفتار حرکت پذیر اوسط سست حرکت پذیر اوسط سے نیچے جاتا ہے تو ، موجودہ طویل پوزیشنوں کو killLong (()) سگنل کے ساتھ بند کردیا جاتا ہے۔
حکمت عملی کو صرف طویل، صرف مختصر، یا دونوں طویل اور مختصر تجارت کی اجازت دینے کے لئے مقرر کیا جا سکتا ہے.
صرف طویل موڈ میں ، طویل پوزیشنیں goLong() سگنل پر درج کی جاتی ہیں اور killLong() سگنل پر باہر نکلتی ہیں۔
صرف مختصر موڈ میں ، مختصر پوزیشنیں killLong() سگنل پر داخل کی جاتی ہیں اور goLong() سگنل پر باہر نکلتی ہیں۔
سویپنگ موڈ میں ، طویل پوزیشنیں goLong پر درج کی جاتی ہیں (()) ، بند کی جاتی ہیں اور killLong پر مختصر ہوجاتی ہیں۔
اس حکمت عملی میں سٹاپ نقصان، ٹریلنگ سٹاپ، میسجنگ اور دیگر اختیاری خصوصیات بھی شامل ہیں۔
سادہ اور لاگو کرنے میں آسان.
طویل، مختصر یا دونوں جانے کے لئے لچکدار.
اختیاری سٹاپ نقصان اور ٹریلنگ سٹاپ کی خصوصیات.
تجارتی خبروں کو متنبہ کرنے کے لئے اپنی مرضی کے مطابق پیغامات.
مارکیٹ میں رجحان کی تبدیلیوں کے لئے حساس.
ایڈجسٹ پیرامیٹرز مختلف مارکیٹوں کو اپنانے.
غیر مستحکم یا مختلف مارکیٹوں میں زیادہ تجارت پیدا کر سکتا ہے.
اچانک ہونے والی خبروں پر ردعمل ظاہر کرنے میں سست۔
پیرامیٹر کا انتخاب حکمت عملی کی کارکردگی کو متاثر کرتا ہے.
سگنلز پر سختی سے عمل کرنا چاہیے، اختیاری تجارت سے گریز کرنا چاہیے۔
اگر تجارت کے اخراجات پر غور نہ کیا جائے تو منافع میں کمی آسکتی ہے۔
غلط سگنل سے بچنے کے لیے آر ایس آئی جیسے فلٹرز شامل کریں۔
بہترین ترتیبات تلاش کرنے کے لئے پیرامیٹر کی اصلاح کو لاگو کریں.
منافع میں مقفل اور ایڈجسٹ کرنے کے لئے متحرک رک جاتا ہے کا استعمال کریں.
رجحان کی پیش گوئی میں مدد کے لیے مشین لرننگ کو شامل کریں۔
انفرادی تجارتی عادات کے لئے پیغام رسانی کو بہتر بنائیں.
دوہری حرکت پذیر اوسط حکمت عملی نسبتا simple آسان اور مضبوط رجحانات کو پکڑنے کے لئے کارآمد ہے۔ تاہم ، کم رجحان کے ماحول میں وِپساؤ سے بچنے کے لئے محتاط رہنا چاہئے۔ ٹھیک ٹیوننگ پیرامیٹرز اور معاون اشارے یا بہتری شامل کرنے سے استحکام اور موافقت میں مزید بہتری آسکتی ہے۔
/*backtest start: 2022-10-20 00:00:00 end: 2023-10-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SMA Strategy", shorttitle="SMA Strategy", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // === Inputs === // short ma maFastSource = input(defval=close, title="Fast MA Source") maFastLength = input(defval=3, title="Fast MA Period", minval=1) // long ma maSlowSource = input(defval=close, title="Slow MA Source") maSlowLength = input(defval=9, title="Slow MA Period", minval=1) // Trade direction shorting = input(defval=false, title="Short only?") longonly = input(defval=true, title="Long only?") swapping = input(defval=false, title="Swap orders?") // risk management useStop = input(defval=false, title="Use Initial Stop Loss?") slPoints = input(defval=25, title="Initial Stop Loss Points", minval=1) useTS = input(defval=false, title="Use Trailing Stop?") tslPoints = input(defval=120, title="Trail Points", minval=1) useTSO = input(defval=false, title="Use Offset For Trailing Stop?") tslOffset = input(defval=20, title="Trail Offset Points", minval=1) // Messages for buy and sell message_long_entry = input("Long entry message", title="Long entry message") message_long_exit = input("Long exit message", title="Long exit message") message_short_entry = input("Short entry message", title="Short entry message") message_short_exit = input("Short exit message", title="Short exit message") // Calculate start/end date and time condition startDate = input(timestamp("2021-01-01T00:00:00"), type = input.time) finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time) time_cond = true // === Vars and Series === fastMA = sma(maFastSource, maFastLength) slowMA = sma(maSlowSource, maSlowLength) plot(fastMA, color=color.blue) plot(slowMA, color=color.purple) goLong() => crossover(fastMA, slowMA) killLong() => crossunder(fastMA, slowMA) // Long only if longonly strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_long_entry) strategy.close("Buy", when=killLong() and time_cond, alert_message = message_long_exit) // Short only if shorting strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_short_entry) strategy.close("Sell", when=goLong() and time_cond, alert_message = message_short_exit) // Order Swapping if swapping strategy.entry("Buy", strategy.long, when=goLong() and time_cond, alert_message = message_long_entry) strategy.entry("Sell", strategy.short, when=killLong() and time_cond, alert_message = message_short_entry) if useStop strategy.exit("XLS", from_entry="Buy", stop=strategy.position_avg_price / 1.08, alert_message = message_long_exit) strategy.exit("XSS", from_entry="Sell", stop=strategy.position_avg_price * 1.08, alert_message = message_short_exit)