یہ حکمت عملی مختلف قسم کے چلتے ہوئے اوسط (سادہ چلتے ہوئے اوسط ایس ایم اے ، تیزی سے چلتے ہوئے اوسط ای ایم اے ، ہل چلتے ہوئے اوسط ایچ ایم اے اور وزن والے چلتے ہوئے اوسط وی ڈبلیو ایم اے) کا حساب لگاتے ہوئے اور ان کے مابین کراس اوور پوائنٹس کا پتہ لگاتے ہوئے ، مارکیٹ کے رجحان کا تعین کرنے اور اس کی پیروی کرنے کے لئے تجارتی سگنل تیار کرتی ہے۔ یہ خریدنے کے سگنل پیدا کرتی ہے جب قلیل مدتی ایم اے نیچے سے طویل مدتی ایم اے کے اوپر عبور کرتا ہے ، اور جب مخالف کراسنگ ہوتی ہے تو سگنل فروخت کرتا ہے۔
اس حکمت عملی کا بنیادی خیال دو حرکت پذیر اوسطوں کا موازنہ کرکے مارکیٹ کے رجحان کا فیصلہ کرنا ہے۔ خاص طور پر ، یہ ان پٹ پیرامیٹرز کے ذریعہ مختلف اقسام اور لمبائی کے ساتھ دو ایم اے کی تشکیل کی اجازت دیتا ہے۔ پہلے ایم اے میں اہم رجحان کی نمائندگی کرنے کے لئے ایک طویل مدت ہوتی ہے ، جبکہ دوسرے ایم اے میں موجودہ قلیل مدتی رجحان کے لئے ایک مختصر مدت ہوتی ہے۔
جب قلیل مدتی ایم اے نیچے سے طویل مدتی ایم اے کو عبور کرتا ہے تو ، یہ اس بات کی نشاندہی کرتا ہے کہ قلیل مدتی رجحان مضبوط ہو رہا ہے اور مارکیٹ ایک بڑھتی ہوئی رجحان میں داخل ہورہی ہے۔ اس طرح اس کراس اوور پوائنٹ پر خرید کا اشارہ پیدا ہوتا ہے۔ اس کے برعکس ، جب قلیل مدتی ایم اے طویل مدتی ایم اے سے نیچے عبور کرتا ہے تو ، اس سے یہ ظاہر ہوتا ہے کہ قلیل مدتی رجحان کمزور ہو رہا ہے اور مارکیٹ نیچے کی طرف الٹ رہی ہے۔ اس کے مطابق اس وقت فروخت کا اشارہ پیدا ہوتا ہے۔
اس طرح کے ایم اے کراسورز کا پتہ لگاتے ہوئے ، یہ حکمت عملی تجارت کے لئے مارکیٹ کے رجحان کی پیروی کرتی ہے۔
حل:
یہ حکمت عملی اہم رجحان کا پتہ لگانے کے لئے ایم اے کراس اوورز کے استعمال کے کلاسیکی خیال پر مبنی ہے۔ لچکدار ایم اے مجموعوں کے ساتھ ، اس کا نفاذ آسان ہے اور الگورتھمک ٹریڈنگ آٹومیشن کے لئے موزوں ہے۔ مجموعی طور پر یہ معقول حد تک عملی ہے لیکن کارکردگی کو مزید بہتر بنانے کے لئے پیرامیٹر ٹیوننگ ، اضافی فلٹرز وغیرہ جیسی بہتری کے لئے گنجائش ہے۔
/*backtest start: 2023-12-31 00:00:00 end: 2024-01-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //study(title="MA Crossover Strategy", overlay = true) strategy("MA Crossover Strategy", overlay=true) src = input(close, title="Source") price = request.security(syminfo.tickerid, timeframe.period, src) ma1 = input(25, title="1st MA Length") type1 = input("HMA", "1st MA Type", options=["SMA", "EMA", "HMA", "VWMA"]) ma2 = input(7, title="2nd MA Length") type2 = input("HMA", "2nd MA Type", options=["SMA", "EMA", "HMA", "VWMA"]) f_hma(_src, _length)=> _return = wma((2*wma(_src, _length/2))-wma(_src, _length), round(sqrt(_length))) price1 = if (type1 == "SMA") sma(price, ma1) else if (type1 == "EMA") ema(price, ma1) else if (type1 == "VWMA") vwma(price, ma1) else f_hma(price, ma1) price2 = if (type2 == "SMA") sma(price, ma2) else if (type2 == "EMA") ema(price, ma2) else if (type2 == "VWMA") vwma(price, ma2) else f_hma(price, ma2) //plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0) plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0) plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0) longCondition = crossover(price1, price2) if (longCondition) strategy.entry("Long", strategy.long) shortCondition = crossunder(price1, price2) if (shortCondition) strategy.entry("Short", strategy.short)