گولڈن کراس موونگ ایوریج ٹریڈنگ حکمت عملی ایک کلاسک مقداری تجارتی حکمت عملی ہے۔ یہ حکمت عملی طویل اور مختصر پوزیشنوں کے لئے مارکیٹ کے رجحانات کا تعین کرنے کے لئے مختلف ادوار کے موونگ ایوریجز کا استعمال کرتی ہے۔ جب قلیل مدتی موونگ ایوریج طویل مدتی موونگ ایوریج سے تجاوز کرتی ہے تو اسے خرید کا اشارہ سمجھا جاتا ہے۔ جب قلیل مدتی موونگ ایوریج طویل مدتی موونگ ایوریج سے نیچے گزرتی ہے تو اسے فروخت کا اشارہ سمجھا جاتا ہے۔
یہ حکمت عملی مختلف ادوار کے تین سادہ چلنے والے اوسط (ایس ایم اے) پر مبنی ہے: 50 دن ، 100 دن اور 200 دن۔ تجارتی منطق مندرجہ ذیل ہے:
انٹری سگنل: جب 50 دن کا چلتا ہوا اوسط 100 دن کے چلتے ہوئے اوسط سے اوپر جاتا ہے تو ، طویل ہوجائیں۔
باہر نکلنے کا اشارہ: جب 50 دن کا چلتا ہوا اوسط 100 دن کے چلتے ہوئے اوسط سے نیچے جاتا ہے تو ، پوزیشنیں بند کریں۔ یا جب بند ہونے کی قیمت 100 دن کے چلتے ہوئے اوسط سے نیچے ہوتی ہے تو ، باہر نکلیں۔ یا جب 100 دن کا چلتا ہوا اوسط 200 دن کے چلتے ہوئے اوسط سے نیچے جاتا ہے تو ، باہر نکلیں۔
منافع اور سٹاپ نقصان: سیٹ ٹریلنگ منافع اور فکسڈ سٹاپ نقصان.
یہ حکمت عملی مارکیٹ کی اوسط قیمت کے رجحانات کو مؤثر طریقے سے طے کرنے کے لئے چلتی اوسط کی صلاحیت کا استعمال کرتی ہے۔ قلیل مدتی اور طویل مدتی اوسط کے کراس اوور کو مارکیٹ میں اضافے یا کمی کے رجحان میں داخل ہونے کے طور پر دیکھا جاتا ہے ، لہذا طویل یا باہر نکلنے کے سگنل۔ اس سے حکمت عملی کو مارکیٹ کے رجحانات کو مؤثر طریقے سے حاصل کرنے کی اجازت ملتی ہے۔
لاگو کرنا آسان ہے۔ اس کے لیے صرف تین مختلف ادوار کے اوسط کی ضرورت ہوتی ہے۔
انتہائی مستحکم۔ حرکت پذیر اوسطوں میں شور فلٹرنگ کی صلاحیتیں ہیں جو تجارت پر مارکیٹ کے بے ترتیب کے اثرات کو کم کرتی ہیں اور سگنل کو زیادہ قابل اعتماد بناتی ہیں۔
اہم رجحانات کو پکڑنا آسان ہے۔ چلتی اوسط مؤثر طریقے سے اوسط مارکیٹ کی قیمت کے رجحان میں ہونے والی تبدیلیوں کی عکاسی کرتی ہے ، مختصر اور طویل مدتی لائنوں کے مابین کراس اوور کا استعمال کرتے ہوئے اہم رجحانات کی تبدیلیوں کا تعین کرتی ہے۔
انتہائی مرضی کے مطابق۔ متحرک اوسط ادوار کو خطرے کے کنٹرول کی مختلف سطحوں کے لئے ایڈجسٹ کیا جاسکتا ہے۔
بہت سارے غلط سگنل پیدا کرسکتے ہیں۔ جب مختصر اور طویل مدتی اوسط بہت قریب ہوتے ہیں تو کثرت سے کراس اوور ہوسکتے ہیں ، جس کے نتیجے میں بہت زیادہ غلط سگنل ہوتے ہیں۔
اچانک واقعات کا جواب دینے میں سست۔ حرکت پذیر اوسط قیمتوں میں ہونے والی تبدیلیوں کا جواب آہستہ آہستہ دیتے ہیں اور فوری طور پر مارکیٹ کی خبروں اور اہم واقعات پر رد عمل ظاہر نہیں کرسکتے ہیں۔
معمولی اتار چڑھاؤ سے فائدہ اٹھانے سے قاصر ہے۔ شور فلٹرنگ کا مطلب یہ بھی ہے کہ مارکیٹ میں معمولی اتار چڑھاؤ سے منافع سے محروم رہنا۔
ذہنی پیرامیٹرز کا انتخاب۔ مناسب حرکت پذیر اوسط ادوار بڑے پیمانے پر ذہنی ہیں اور مخصوص مارکیٹ پر منحصر ہیں۔
غلط سگنل کو کم کرنے کے لئے فلٹرز شامل کریں ، جیسے قیمت کی حد کے فلٹرز تاکہ سگنل کو ایک خاص مقدار سے اوپر کی نقل و حرکت تک محدود کیا جاسکے۔
مجموعی حکمت عملیوں کے لئے دوسرے اشارے شامل کریں ، جو سگنل کی درستگی کو بہتر بنا سکتے ہیں ، جیسے اتار چڑھاؤ یا حجم کے اشارے۔
مشین لرننگ الگورتھم کی بنیاد پر متحرک اوسط ادوار کو متحرک طور پر بہتر بنانے کے لئے موافقت پذیر اصلاح کے ماڈیول شامل کریں ، جس سے مارکیٹ کے بدلتے ہوئے حالات میں موافقت ممکن ہو۔
اعلی درجے کی خصوصیت نکالنے اور ماڈلنگ کی صلاحیتوں کے لئے چلتی اوسط کے بجائے اعلی درجے کی گہری سیکھنے کے ماڈل شامل کریں.
گولڈن کراس موونگ ایوریج ٹریڈنگ حکمت عملی ایک عام رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ اوسط مارکیٹ کی قیمت کے رجحانات کو آسانی سے اور عملی طور پر ظاہر کرتی ہے ، جو ابتدائیوں کے لئے موزوں ہے۔ تاہم ، اس میں کچھ خامیاں بھی ہیں جن کو سگنل کے معیار کو بڑھانے ، دوسرے تکنیکی اشارے کے ساتھ مل کر ، موافقت پذیر میکانزم متعارف کرانے وغیرہ کے ذریعہ بہتر بنایا جاسکتا ہے تاکہ زیادہ پیچیدہ مارکیٹوں میں موافقت پیدا کی جاسکے۔ مجموعی طور پر ، یہ ایک ایسی حکمت عملی ہے جس میں اعلی حوالہ اور سیکھنے کی قیمت ہے۔
/*backtest start: 2023-12-03 00:00:00 end: 2023-12-10 00:00:00 period: 1m basePeriod: 1m 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/ // © CJDeegan //@version=4 strategy(title = "[LIVE] Golden Cross", overlay=true) // ------------Functions------------ //Percent to Decimal Conversion perToDec(a) => a * 0.01 //Price Difference to Tick diffToTick(a,b) => (a - b) / syminfo.mintick // ------------Strategy Inputs------------ takeProfitInput = input(300, "Take Profit Price (% Gain)") stopLossInput = input(25, "Stop Loss (% Loss)") startDate = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31) startMonth = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12) startYear = input(title="Start Year", type=input.integer, defval=2018, minval=1800, maxval=2100) endDate = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=31) endMonth = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12) endYear = input(title="End Year", type=input.integer, defval=2031, minval=1800, maxval=2100) inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0)) // ------------Populate Indicators------------ //EMA sma50 = sma(close,50) sma100 = sma(close,100) sma200 = sma(close,200) // ------------Entry Logic------------ //Guards entryGuard = true //Triggers entryTrigger = crossover(sma50,sma100) //Conditions entryCondition = entryGuard and entryTrigger //Calculations //Execution if (inDateRange and entryCondition) strategy.entry("Long", strategy.long, when = entryCondition, comment = "Entry") //------------Exit Logic------------ //Guards //Triggers exitTrigger = crossunder(sma50,sma100) or close < sma100 or crossunder(sma100,sma200) //Conditions exitCondition = exitTrigger //Calculations //Take Profit takeProfitPrice = strategy.position_avg_price + (strategy.position_avg_price * perToDec(takeProfitInput)) //Take Profit Ticks takeProfitTicks = diffToTick(takeProfitPrice, strategy.position_avg_price) //StopLoss stopLossPrice = strategy.position_avg_price - (strategy.position_avg_price * perToDec(stopLossInput)) //Execution if (inDateRange) strategy.close("Long", when = exitCondition, comment = "Sell Trigger") strategy.exit("Exit", "Long", comment="Stop", profit=takeProfitTicks, stop=stopLossPrice) //Plots plot(sma50, "SMA 50", color = color.blue) plot(sma100, "SMA 100", color = color.green) plot(sma200, "SMA 200", color = color.yellow) entry = plot(strategy.position_size <= 0 ? na : strategy.position_avg_price, "Entry Price", color = color.yellow, style = plot.style_linebr) profit = plot(strategy.position_size <= 0 ? na : takeProfitPrice, "Take Profit (Price)", color = color.green, style = plot.style_linebr) stop = plot(strategy.position_size <= 0 ? na : stopLossPrice, "Stop Loss", color = color.red, style = plot.style_linebr) fill(entry,profit, color=color.green) fill(entry,stop, color=color.red)