یہ حکمت عملی دوہری حرکت پذیر اوسط کراس اوور کے اصول پر مبنی ایک مقداری تجارتی حکمت عملی ہے۔ یہ حکمت عملی خرید سگنل پیدا کرتی ہے جب قلیل مدتی ایس ایم اے طویل مدتی ایس ایم اے سے تجاوز کرتی ہے ، اور فروخت سگنل پیدا کرتی ہے جب قلیل مدتی ایس ایم اے طویل مدتی ایس ایم اے سے تجاوز کرتی ہے۔ حکمت عملی کا کوڈ تاریخ کی حد اور ٹائم فریم کی ترتیبات کو بھی متعارف کراتا ہے ، جس سے حکمت عملی کی لچکدار بیک ٹیسٹنگ اور اصلاح کی اجازت ملتی ہے۔
اس حکمت عملی کا بنیادی اصول مختلف ادوار کے متحرک اوسط کے مابین کراس اوور تعلقات کا استعمال کرکے قیمت کے رجحانات میں ہونے والی تبدیلیوں کو پکڑنا ہے۔ متحرک اوسط ایک عام طور پر استعمال ہونے والا تکنیکی اشارے ہے جو قلیل مدتی اتار چڑھاؤ کو فلٹر کرتا ہے اور گذشتہ مدت کے دوران قیمتوں کو اوسط کرکے مجموعی قیمت کے رجحان کو ظاہر کرتا ہے۔ جب قلیل مدتی متحرک اوسط طویل مدتی متحرک اوسط سے تجاوز کرتا ہے تو ، اس سے یہ ظاہر ہوتا ہے کہ قیمت ایک اوپر کا رجحان شروع کرسکتی ہے ، خریدنے کا اشارہ پیدا کرتی ہے۔ اس کے برعکس ، جب قلیل مدتی متحرک اوسط طویل مدتی متحرک اوسط سے نیچے عبور کرتا ہے تو ، اس سے یہ ظاہر ہوتا ہے کہ قیمت نیچے کا رجحان شروع کرسکتی ہے ، فروخت کا اشارہ پیدا کرتی ہے۔
ایس ایم اے ڈبل موونگ ایوریج کراس اوور حکمت عملی ایک سادہ ، سمجھنے میں آسان ، اور انتہائی موافقت پذیر مقداری تجارتی حکمت عملی ہے۔ مختلف ادوار کے ساتھ موونگ ایوریجز کے کراس اوور تعلقات کا استعمال کرتے ہوئے ، حکمت عملی مؤثر طریقے سے قیمت کے رجحانات میں ہونے والی تبدیلیوں کو پکڑ سکتی ہے اور تاجروں کے لئے خرید و فروخت کے سگنل فراہم کرسکتی ہے۔ تاہم ، حکمت عملی کی کارکردگی پیرامیٹر کے انتخاب کے لئے حساس ہوسکتی ہے ، اور جب مارکیٹ انتہائی اتار چڑھاؤ کا شکار ہوتی ہے تو اس سے بار بار تجارت اور تاخیر کے اثرات پیدا ہوسکتے ہیں۔ حکمت عملی کو مزید بہتر بنانے کے ل measures ، دیگر تکنیکی اشارے متعارف کرانے ، پیرامیٹر کے انتخاب کو بہتر بنانے ، فلٹرنگ کی شرائط شامل کرنے ، پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرنے ، اور رسک مینجمنٹ کو شامل کرنے جیسے اقدامات پر غور کیا جاسکتا ہے۔ مجموعی طور پر ، یہ حکمت عملی مقداری تجارت کے لئے بنیادی حکمت عملیوں میں سے ایک کے طور پر کام کرسکتی ہے ، لیکن اسے درخواست میں مخصوص حالات کے مطابق مناسب طریقے سے بہتر اور عملی طور پر بہتر بنانے کی ضرورت ہے۔
/*backtest start: 2023-06-01 00:00:00 end: 2024-06-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMA Crossover Strategy with Date Range and Timeframe", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=1000, currency=currency.USD, pyramiding=0, commission_type=strategy.commission.percent, commission_value=0) // Define the lengths for the short and long SMAs shortSMA_length = input.int(50, title="Short SMA Length", minval=1) longSMA_length = input.int(200, title="Long SMA Length", minval=1) // Define the start and end dates for the backtest startDate = input(timestamp("2024-06-01 00:00"), title="Start Date") endDate = input(timestamp("2024-06-05 00:00"), title="End Date") // Define the timeframe for the SMAs smaTimeframe = input.timeframe("D", title="SMA Timeframe") // Request the short and long SMAs from the selected timeframe dailyShortSMA = request.security(syminfo.tickerid, smaTimeframe, ta.sma(close, shortSMA_length)) dailyLongSMA = request.security(syminfo.tickerid, smaTimeframe, ta.sma(close, longSMA_length)) // Plot the SMAs on the chart plot(dailyShortSMA, color=color.blue, title="Short SMA") plot(dailyLongSMA, color=color.red, title="Long SMA") // Define the crossover conditions based on the selected timeframe SMAs buyCondition = ta.crossover(dailyShortSMA, dailyLongSMA) sellCondition = ta.crossunder(dailyShortSMA, dailyLongSMA) // Generate buy and sell signals only if the current time is within the date range if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.close("Buy") // Optional: Add visual buy/sell markers on the chart plotshape(series=buyCondition and (time >= startDate and time <= endDate), title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(series=sellCondition and (time >= startDate and time <= endDate), title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")