اس حکمت عملی سے لانگ یا شارٹ انٹری سگنل پیدا ہوتے ہیں جب اسٹاک کی قیمت کا تیز 30 دن کا سادہ چلتا ہوا اوسط اور سست 33 دن کا سادہ چلتا ہوا اوسط عبور کرتا ہے۔ جب مخالف سگنل آتا ہے تو یہ فوری طور پر پوزیشن سے باہر نکل جاتا ہے۔ اس سے رجحانات کی تبدیلی کو مؤثر طریقے سے حاصل کیا جاسکتا ہے۔
اس حکمت عملی کا بنیادی مقصد تیز 30 دن کی ایم اے اور سست 33 دن کی ایم اے کا حساب لگانا ہے۔ تیز لائن قیمت کی تبدیلیوں کا تیزی سے جواب دے سکتی ہے جبکہ سست لائن میں بہتر فلٹرنگ اثر ہوتا ہے۔ جب تیز لائن سست لائن کو اوپر کی طرف توڑتی ہے تو ، خرید کا اشارہ پیدا ہوتا ہے۔ اس سے یہ ظاہر ہوتا ہے کہ قیمت بڑھنا شروع ہوجاتی ہے اور تیز لائن نے جواب دیا ہے جبکہ سست لائن اب بھی پیچھے رہ جاتی ہے۔ جب تیز لائن سست لائن کو نیچے کی طرف توڑتی ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔ اس سے یہ ظاہر ہوتا ہے کہ قیمت میں کمی آنا شروع ہوجاتی ہے جبکہ تیز لائن نے جواب دیا ہے لیکن سست لائن اب بھی پیچھے رہ جاتی ہے۔
اس طرح کے تیز اور سست ایم اے کراس اوور ڈیزائن کے ذریعے ، جب کوئی نیا رجحان شروع ہوتا ہے تو یہ تجارتی سگنل تیار کرسکتا ہے ، اور مخالف سگنلز پر باہر نکل سکتا ہے ، درمیانی اور طویل مدتی قیمت کے رجحانات کو مؤثر طریقے سے پکڑ سکتا ہے۔ اس دوران یہ مارکیٹ میں بہت زیادہ اتار چڑھاؤ سے گمراہ ہونے سے بھی بچتا ہے۔
اس حکمت عملی کے مندرجہ ذیل فوائد ہیں:
اس حکمت عملی کے لئے کچھ خطرات بھی ہیں:
پیرامیٹر کی اصلاح، سٹاپ نقصان کی سطح کی ترتیب، صرف اس وقت ٹریڈنگ جب رجحان واضح ہو وغیرہ جیسے طریقوں کا استعمال ان خطرات کو کنٹرول اور کم کرنے کے لئے کیا جاسکتا ہے۔
حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
ٹیسٹنگ اور اصلاح کے ذریعے، حکمت عملی کے قوانین کو مختلف مارکیٹ کے ماحول میں زیادہ قابل اعتماد تجارتی سگنل حاصل کرنے کے لئے مسلسل بہتر بنایا جا سکتا ہے.
خلاصہ میں ، یہ ڈبل ایم اے کراس اوور بریک آؤٹ حکمت عملی کافی آسان اور عملی ہے۔ تیز ایم اے اور سست ایم اے کو جوڑ کر ، یہ درمیانی سے طویل مدتی رجحانات کے آغاز کی مؤثر طریقے سے نشاندہی کرسکتا ہے اور نسبتا reliable قابل اعتماد تجارتی سگنل تیار کرسکتا ہے۔ نیز ، اس کے اسٹاپ نقصان کا اصول نافذ کرنا آسان ہے۔ مزید اصلاح کے ساتھ ، یہ حکمت عملی ایک قابل قدر طویل مدتی مقداری نظام بن سکتی ہے۔
/*backtest start: 2022-11-20 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //future strategy //strategy(title = "es1!_1minute_hull", default_qty_type = strategy.fixed, initial_capital=250000, overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2, calc_on_order_fills=false, calc_on_every_tick=false,pyramiding=0) //strategy.risk.max_position_size(2) //stock strategy strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital=1000000, overlay = false)//, calc_on_order_fills=true, calc_on_every_tick=true) //forex strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true,initial_capital=250000, default_qty_type = strategy.percent_of_equity) //crypto strategy //strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, overlay = true, commission_type=strategy.commission.percent,commission_value=.005,default_qty_value=10000) //strategy.risk.allow_entry_in(strategy.direction.long) // There will be no short entries, only exits from long. testStartYear = 2010 testStartMonth = 1 testStartDay = 1 testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testEndYear = 2039 testEndMonth = 1 testEndDay = 1 testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0) testPeriod() => //true time >= testPeriodStart and time <= testPeriodEnd ? true : false fast_length = 30 slow_length = 33 ema1 = 0.0 ema2 = 0.0 volumeSum1 = sum(volume, fast_length) volumeSum2 = sum(volume, slow_length) //ema1 := (((volumeSum1 - volume) * nz(ema1[1]) + volume * close) / volumeSum1) ema1 := ema(close,fast_length) //ema2 := (((volumeSum2 - volume) * nz(ema2[1]) + volume * close) / volumeSum2) ema2 := ema(close,slow_length) plot(ema1,color=#00ff00, linewidth=3) plot(ema2, color=#ffff00, linewidth=3) go_long = crossover(ema1,ema2) go_short = crossunder(ema1,ema2) if testPeriod() strategy.entry("long_ride", strategy.long, when=go_long) strategy.entry("short_ride", strategy.short,when=go_short) strategy.close("long_ride",when=go_short) strategy.close("short_ride",when=go_long)