یہ حکمت عملی مارکیٹ کے رجحانات میں ہونے والی تبدیلیوں کا تعین کرنے کے لئے دو چلتی اوسط کی کراس اوور کا استعمال کرتی ہے اور رجحان کی سمت کی بنیاد پر خرید / فروخت کے فیصلے کرتی ہے۔ جب قلیل مدتی ایم اے طویل مدتی ایم اے سے تجاوز کرتا ہے تو یہ طویل ہوجاتا ہے ، اور جب قلیل مدتی ایم اے طویل مدتی ایم اے سے نیچے گزر جاتا ہے تو یہ مختصر ہوجاتا ہے ، جس کا مقصد رجحان کی پیروی کرنا ہے۔
اس حکمت عملی کا مرکز دو حرکت پذیر اوسط ہیں: ایک تیز رفتار ایم اے (ڈیفالٹ مدت 32) اور ایک سست ایم اے (ڈیفالٹ مدت 32 ، پیرامیٹرز کے ذریعے ایڈجسٹ بھی) ۔ جب اختتامی قیمت ان دونوں ایم اے کے ذریعہ تشکیل شدہ چینل سے اوپر / نیچے عبور کرتی ہے تو ، اس سے رجحان کی تبدیلی کا اشارہ ہوتا ہے ، اور حکمت عملی اس کے مطابق خرید / فروخت کے سگنل پیدا کرتی ہے۔
اس ایم اے کراس اوور طریقہ کار کے ذریعے، حکمت عملی رجحان کی پیروی کر سکتی ہے، جب تک کہ واپسی کا اشارہ ظاہر نہ ہو، اپ ٹرینڈز میں طویل پوزیشنوں اور ڈاؤن ٹرینڈز میں مختصر پوزیشنوں کو برقرار رکھنا.
ان خطرات سے نمٹنے کے ل appropriate ، مناسب فلٹرز ، جیسے اے ٹی آر یا اوسط حقیقی رینج فلٹرز کو شامل کرنے پر غور کیا جاسکتا ہے ، تاکہ رینجنگ مارکیٹوں میں اوور ٹریڈنگ کو کم کیا جاسکے۔ ایک ہی تجارت میں ہونے والے نقصانات کو کنٹرول کرنے کے لئے معقول اسٹاپ نقصانات کا تعین کرنا۔ اور مارکیٹ میں موافقت کے ل continuously پیرامیٹرز کو مستقل طور پر بہتر بنانا۔ تاہم ، حکمت عملی کی موروثی حدود سے مکمل طور پر بچنا مشکل ہے۔
مذکورہ بالا اصلاحات پیچیدہ منڈیوں کو سنبھالنے کی حکمت عملی کی صلاحیت کو بڑھا سکتی ہیں ، لیکن ضرورت سے زیادہ اصلاحات سے بچنے کے لئے محتاط رہنا ضروری ہے جس سے منحنی خطوط کو فٹ ہونے اور مستقبل کی خراب کارکردگی کا باعث بن سکتا ہے۔
ڈبل ایم اے رجحان کے بعد کی حکمت عملی ایم اے کراس اوور کے ذریعہ رجحانات کو پکڑتی ہے۔ یہ آسان ، استعمال میں آسان اور وسیع پیمانے پر قابل اطلاق ہے۔ تاہم ، یہ مختلف مارکیٹوں میں ناقص کارکردگی کا مظاہرہ کرتا ہے ، انتہائی نقل و حرکت کا ناکافی جواب دیتا ہے ، اور پیرامیٹر کی اصلاح میں مشکلات کا سامنا کرتا ہے۔
حکمت عملی کو زیادہ فلٹرنگ اشارے ، متحرک اسٹاپ نقصانات ، پوزیشن سائزنگ ، ملٹی ٹائم فریم تجزیہ ، اور موافقت پذیر پیرامیٹرز متعارف کرانے سے بہتر بنایا جاسکتا ہے۔ لیکن ایم اے حکمت عملیوں کی موروثی حدود سے مکمل طور پر بچنا مشکل ہے ، اور مارکیٹ کی خصوصیات کی بنیاد پر لچکدار ایڈجسٹمنٹ کے ساتھ براہ راست تجارت میں اب بھی احتیاط کی ضرورت ہے۔
مجموعی طور پر، یہ حکمت عملی ایک بنیادی رجحان کی پیروی کرنے والی حکمت عملی کے طور پر کام کر سکتی ہے، لیکن یہ اکیلے کھڑے ہونے کے لئے مشکل ہے اور حکمت عملی کے ایک پورٹ فولیو کے حصے کے طور پر زیادہ مناسب ہے.
/*backtest start: 2023-03-16 00:00:00 end: 2024-03-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 //study(title="Demo - SSL Basic", shorttitle="Demo - SSL Basic", overlay=true) strategy(title='Demo - SSL Basic', shorttitle='Demo - SSL Basic', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=100, commission_value=0.15) // Backtest Date Range start_date_long = input(title='Backtest Long Start Date', defval=timestamp('01 Jan 2018 00:00 +0530')) end_date_long = input(title='Backtest Long End Date', defval=timestamp('25 Jan 2030 00:00 +0530')) backtest_range = true // Inputs maType = input.string(title='SSL MA Type', options=['SMA', 'EMA', 'WMA'], defval='SMA') sslLen = input(title='SSL Length', defval=32) showCross = input(title='Show Crossover?', defval=true) showEntry = input(title='Show Entry?', defval=true) showTrend = input(title='Show Trend Colors?', defval=true) // Calc MA for SSL Channel calc_ma(close, len, type) => float result = 0 if type == 'SMA' // Simple result := ta.sma(close, len) result if type == 'EMA' // Exponential result := ta.ema(close, len) result if type == 'WMA' // Weighted result := ta.wma(close, len) result result // Add SSL Channel maHigh = calc_ma(high, sslLen, maType) maLow = calc_ma(low, sslLen, maType) Hlv = int(na) Hlv := close > maHigh ? 1 : close < maLow ? -1 : Hlv[1] sslDown = Hlv < 0 ? maHigh : maLow sslUp = Hlv < 0 ? maLow : maHigh ss1 = plot(sslDown, title='Down SSL', linewidth=2, color=showTrend ? na : color.red) ss2 = plot(sslUp, title='Up SSL', linewidth=2, color=showTrend ? na : color.lime) // Conditions longCondition = ta.crossover(sslUp, sslDown) shortCondition = ta.crossover(sslDown, sslUp) // Strategy if shortCondition strategy.close('Long', comment='Long Exit', alert_message='JSON') if longCondition strategy.close('Short', comment='Short Exit', alert_message='JSON') if backtest_range and longCondition strategy.entry('Long', strategy.long, comment='Long Entry', alert_message='JSON') if backtest_range and shortCondition strategy.entry('Short', strategy.short, comment= 'Short Entry', alert_message='JSON') // Plots fill(ss1, ss2, color=showTrend ? sslDown < sslUp ? color.new(color.lime, transp=75) : color.new(color.red, transp=75) : na, title='Trend Colors')