ڈبل ای ایم اے کراس اوور ٹرینڈ ٹریکنگ حکمت عملی ایک مقداری تجارتی حکمت عملی ہے جو قیمت کی رجحان کی سمت کا تعین کرنے کے لئے ڈبل ای ایم اے اشارے کا استعمال کرتی ہے۔ یہ حکمت عملی مختلف پیرامیٹرز کے ساتھ دو ای ایم اے اشارے کا حساب لگاتی ہے اور قیمت کے رجحان کا فیصلہ کرنے کے لئے سنہری کراس اور مردہ کراس سگنلز کو جوڑتی ہے۔ جب مختصر مدت ای ایم اے طویل مدت ای ایم اے سے اوپر عبور کرتی ہے تو یہ خرید سگنل تیار کرتی ہے ، اور جب مختصر مدت ای ایم اے طویل مدت ای ایم اے سے نیچے عبور کرتی ہے تو فروخت سگنل تیار کرتی ہے۔
اس حکمت عملی کے بنیادی اشارے ای ایم اے کے دو سیٹ ہیں ، جن میں ایک طویل سائیکل ای ایم اے 1 اور ایک مختصر سائیکل ای ایم اے 2 شامل ہیں۔ ای ایم اے 1 پیرامیٹر 21 ہے اور ای ایم اے 2 پیرامیٹر 10 ہے۔ حکمت عملی ان دونوں ای ایم اے کا حساب 4 گھنٹے کے سائیکل کی بنیاد پر کرتی ہے۔
جب مختصر سائیکل ای ایم اے 2 طویل سائیکل ای ایم اے 1 کے اوپر سے عبور کرتا ہے تو ، خرید کا اشارہ پیدا ہوتا ہے۔ اس سے یہ ظاہر ہوتا ہے کہ قیمتوں کا قلیل مدتی رجحان مضبوط ہوا ہے اور ایک عروج کا رجحان شروع ہو گیا ہے۔ جب مختصر سائیکل ای ایم اے 2 طویل سائیکل ای ایم اے 1 سے نیچے سے عبور کرتا ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔ اس سے یہ ظاہر ہوتا ہے کہ قیمتوں کا قلیل مدتی عروج کا رجحان رک گیا ہے اور ایک نیچے کا رجحان شروع ہو گیا ہے۔
غلط سگنلز کو فلٹر کرنے کے لئے ، حکمت عملی میں سنہری کراس اور مردہ کراس اشارے کے دو سیٹ مقرر کیے گئے ہیں۔ اشارے صرف اس وقت شروع ہوتے ہیں جب اشارے کے دونوں سیٹ ایک ہی سگنل دیتے ہیں ، جو قیمتوں میں اتار چڑھاؤ کی وجہ سے ہونے والی غلطیوں کو مؤثر طریقے سے کم کرسکتے ہیں۔
دوہری ای ایم اے ڈھانچہ مختصر اور درمیانی مدت کے رجحانات میں ہونے والی تبدیلیوں کو مؤثر طریقے سے پکڑ سکتا ہے تاکہ رجحانات کا تعین کیا جا سکے۔
گولڈن کراس اور ڈیڈ کراس اشارے کے دو سیٹوں کی اضافی فلٹرنگ سے غلط سگنل کم ہوسکتے ہیں اور قیمتوں میں اتار چڑھاؤ کی وجہ سے غیر ضروری لین دین سے بچا جاسکتا ہے۔
اشارے کا حساب کرنے کے لئے چار گھنٹے کی سطح کا استعمال اعلی تعدد کی قیمتوں میں اتار چڑھاؤ کا مقابلہ کرسکتا ہے۔
حکمت عملی کی ساخت سادہ اور واضح ہے، سمجھنے اور لاگو کرنے میں آسان ہے، اور مقداری تجارتی ایپلی کیشنز کے لئے موزوں ہے.
ای ایم اے کی دوہری ساخت استحکام کی منڈیوں کا اندازہ کرنے میں کم موثر ہے۔ استحکام کے طویل عرصے سے غلط سگنل پیدا ہوسکتے ہیں۔
4 گھنٹے کی سطح کے اشارے اچانک واقعات کا جواب دینے کے لئے کافی حساس نہیں ہیں۔ بڑی اچانک خبریں 4 گھنٹوں کے اندر بڑی حرکتوں کا سبب بن سکتی ہیں جن پر مؤثر طریقے سے خطرہ کنٹرول نہیں کیا جاسکتا ہے۔
حکمت عملی بنیادی تجزیہ کو یکجا کیے بغیر صرف تکنیکی اشارے پر انحصار کرتی ہے۔ اگر کمپنی کے بنیادی اصولوں میں بڑی تبدیلیاں آتی ہیں تو ، تکنیکی اشارے ناکام ہوسکتے ہیں۔
ان خطرات کو مندرجہ ذیل طریقوں سے کنٹرول کیا جا سکتا ہے:
ماڈل کے مجموعے کو قائم کرنے کے لئے مزید وقت کے سائیکل EMA اشارے شامل کریں.
اہم اچانک واقعات کا تعین کرنے اور متحرک طور پر پوزیشنوں کو ایڈجسٹ کرنے کے لئے متن کے جذبات کا تجزیہ استعمال کریں.
اقتصادی ماحول، پالیسیوں اور کمپنی کے بنیادی اصولوں میں تبدیلیوں کو متحرک طور پر پیرامیٹرز کو ایڈجسٹ کرنے کے لئے منسلک کریں.
حکمت عملی کو مزید بہتر بنایا جا سکتا ہے:
ماڈل کے مجموعے شامل کریں۔ حکمت عملی کے استحکام کو بہتر بنانے کے لئے مختلف پیرامیٹرز کے ساتھ مزید اشارے کے مجموعے قائم کیے جاسکتے ہیں۔
سٹاپ نقصان کے طریقہ کار کو شامل کریں. معقول سٹاپ نقصان کے مقامات مؤثر طریقے سے واحد نقصانات کو کنٹرول کرسکتے ہیں.
متحرک پیرامیٹر کی اصلاح۔ ای ایم اے پیرامیٹرز کو مارکیٹ کے مختلف ماحول کی بنیاد پر خود بخود بہتر بنایا جاسکتا ہے۔
مشین لرننگ کی تکنیکوں کو شامل کریں۔ ٹینسرفلو جیسے ماڈلز کو حقیقی وقت میں قیمت کے رجحانات کو درجہ بندی کرنے کے لئے تربیت دی جاسکتی ہے۔
/*backtest start: 2023-02-22 00:00:00 end: 2024-02-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 /// Component Code Startt testStartYear = input(2017, "Backtest Start Year") testStartMonth = input(01, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2020, "Backtest Stop Year") testStopMonth = input(1, "Backtest Stop Month") testStopDay = input(1, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=bool, defval=false) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true // Component Code Stop strategy(title="Ema cross strat", overlay=true) margin = input(true, title="Margin?") Margin = margin ? margin : false resCustom = input(title="EMA Timeframe", defval="240" ) source = close, len2 = input(21, minval=1, title="EMA1") len3 = input(10, minval=1, title="EMA2") ema2 = request.security(syminfo.tickerid,resCustom,ema(source,len2), lookahead=barmerge.lookahead_off) ema3 = request.security(syminfo.tickerid,resCustom,ema(source,len3), lookahead=barmerge.lookahead_off) mylong = crossover(ema3, ema2) myshort = crossunder(ema3,ema2) last_long = na last_short = na last_long := mylong ? time : nz(last_long[1]) last_short := myshort ? time : nz(last_short[1]) in_long = last_long > last_short ? 2 : 0 in_short = last_short > last_long ? 2 : 0 mylong2 = crossover(ema3, ema2) myshort2 = crossunder(ema3, ema2) last_long2 = na last_short2 = na last_long2 := mylong2 ? time : nz(last_long2[1]) last_short2 := myshort2 ? time : nz(last_short2[1]) in_long2 = last_long2 > last_short2 ? 0 : 0 in_short2 = last_short2 > last_long2 ? 0 : 0 condlongx = in_long + in_long2 condlong = crossover(condlongx, 1.9) condlongclose = crossunder(condlongx, 1.9) condshortx = in_short + in_short2 condshort = crossover(condshortx, 1.9) condshortclose = crossover(condshortx, 1.9) if crossover(condlongx, 1.9) and testPeriod() and strategy.position_size <= 0 strategy.entry("Long", strategy.long, comment="Long") if crossover(condshortx, 1.9) and testPeriod() and strategy.position_size > 0 strategy.close("Long",when = not Margin) if crossover(condshortx, 1.9) and testPeriod() and strategy.position_size >= 0 strategy.entry("Short", strategy.short, comment="Short", when = Margin)