اس حکمت عملی کا بنیادی خیال ای ایم اے اشارے کے گولڈن کراس اور ڈیڈ کراس سگنلز کو خرید و فروخت کے فیصلے کرنے کے لئے استعمال کرنا ہے۔ یہ تیز اور سست ای ایم اے کے متعدد سیٹوں کو پلاٹ کرتا ہے اور ان کے کراس اوور کی بنیاد پر تجارتی سگنل تیار کرتا ہے۔
حکمت عملی سب سے پہلے متعدد ای ایم اے لائنز کی وضاحت کرتی ہے ، بشمول تیز ای ایم اے ای ایم اے 1 سے ای ایم اے 6 اور سست ای ایم اے ای ایم اے 7 سے ای ایم اے 12۔ اس کے بعد یہ خرید سگنل خرید_ سگنل اور فروخت سگنل فروخت_ سگنل کی وضاحت کرتا ہے:
خرید سگنل buy_signal پیدا ہوتا ہے جب ema1 ema3 کے اوپر عبور کرتا ہے۔
فروخت کا اشارہ sell_signal پیدا ہوتا ہے جب ema1 ema3 سے نیچے گزر جاتا ہے۔
لہذا جب قلیل مدتی ای ایم اے طویل مدتی ای ایم اے سے اوپر جاتا ہے تو ، یہ مارکیٹ میں بڑھتے ہوئے رجحان کی نشاندہی کرتا ہے اور خریدنے کا اشارہ ہوتا ہے۔ جب قلیل مدتی ای ایم اے طویل مدتی ای ایم اے سے نیچے جاتا ہے تو ، یہ نیچے کے رجحان کی نشاندہی کرتا ہے اور فروخت کا اشارہ ہوتا ہے۔
یہ حکمت عملی EMA لائنوں کے کراس اوور کی نگرانی کرتی ہے تاکہ رجحان کی سمت کا تعین کیا جا سکے اور اس کے مطابق خرید / فروخت کے فیصلے کیے جا سکیں۔
اس حکمت عملی کے فوائد میں شامل ہیں:
رجحان کا تعین کرنے کے لئے ای ایم اے لائنز کا استعمال کرتے ہوئے قلیل مدتی مارکیٹ شور کو فلٹر کر سکتا ہے اور تجارتی سگنل کو زیادہ قابل اعتماد بنا سکتا ہے۔
متعدد ای ایم اے کو پلاٹ کرنے سے رجحان کی تبدیلیوں کی زیادہ درستگی سے نشاندہی کی جاسکتی ہے۔ تیز رفتار اور سست ای ایم اے کے مابین کراس اوورز اہم رجحان کی موڑ کے مقامات کو پکڑنے میں مدد کرتے ہیں۔
حکمت عملی آسان اور واضح ہے۔ تجارتی سگنل ای ایم اے کراسز کے ذریعہ تیار کیے جاتے ہیں ، جس سے کوانٹ ٹریڈنگ کے لئے سمجھنے اور لاگو کرنا آسان ہوجاتا ہے۔
EMA مدت پیرامیٹرز مختلف مصنوعات اور مارکیٹوں کو اپنانے کے لئے اپنی مرضی کے مطابق ہیں.
اس حکمت عملی کے خطرات میں شامل ہیں:
ای ایم اے لائنز میں تاخیر کا اثر ہوتا ہے جس سے ٹریڈنگ سگنل میں تاخیر ہوسکتی ہے۔
EMA پیرامیٹرز کا غلط انتخاب غلط سگنل پیدا کرسکتا ہے۔
ای ایم اے کراسز مختلف مارکیٹوں میں غلط سگنل کو مؤثر طریقے سے فلٹر کرنے میں ناکام رہتے ہیں۔
EMA پیرامیٹرز کے لئے محدود اصلاح کی جگہ کی وجہ سے زیادہ فٹنگ کے خطرات موجود ہیں.
حل:
مختلف مارکیٹوں میں غلط سگنل سے بچنے کے لئے دوسرے اشارے کے ساتھ فلٹرز شامل کریں.
مختلف مدت کے پیرامیٹرز کی جانچ کی استحکام کو روکنے کے لئے.
پیرامیٹرز کو ایڈجسٹ کریں یا خطرات کو کنٹرول کرنے کے لئے باہر نکلنے کے طریقہ کار کو شامل کریں.
اسٹریٹیجی کو مندرجہ ذیل پہلوؤں میں مزید بہتر بنایا جاسکتا ہے:
جب نقصانات ایک حد تک پہنچ جاتے ہیں تو اسٹاپ نقصان کو باہر نکلنے والی پوزیشنوں میں شامل کریں.
اضافی خرید / فروخت سگنل کے ساتھ دوبارہ اندراج منطق کو لاگو کریں.
بہترین نتائج کے لئے EMA کراس پیریڈ پیرامیٹرز کو بہتر بنائیں.
سگنل کے معیار کو بہتر بنانے کے لئے کثیر عوامل کی توثیق کے لئے دیگر اشارے شامل کریں.
ٹیسٹ پیرامیٹر مختلف مصنوعات پر بہتر اطلاق تلاش کرنے کے لئے.
لائیو ٹریڈنگ میں سلائپج پر غور کریں اور بیک ٹسٹنگ کے ذریعے بہتر بنائیں۔
یہ ای ایم اے کراس اوور پر مبنی ایک سادہ رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ رجحان کی تبدیلیوں کی نشاندہی کرسکتا ہے لیکن اس میں تاخیر کے اثرات اور وپساؤ جیسے خطرات بھی ہیں۔ اسٹاپ نقصان ، پیرامیٹر کی اصلاح ، کثیر عنصر کی توثیق وغیرہ کے ساتھ بہتری بیک ٹیسٹنگ اور براہ راست تجارت میں حکمت عملی کی کارکردگی کو مزید بہتر بنا سکتی ہے۔
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-30 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //Companion Strategy script to my Cloud Study. Enjoy! -MP // study("MP's Cloud Study", overlay=true) strategy(title="MP's Cloud Strat'", shorttitle="MP's Cloud Strat", overlay=true, precision=6, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity,calc_on_order_fills= false, calc_on_every_tick=false, default_qty_value=100.0, commission_type=strategy.commission.percent, commission_value=0.05) //bgcolor ( color=black, transp=20, title='Blackground', editable=true) src = close, len1 = input(2, minval=1, title="Short EMA") src2 = close, len3 = input(7, minval=1, title="Long EMA") emaShort = ema(src, len1) emaLong = ema(src2, len3) StartYear = input(2018, "Start Year") StartMonth = input(01, "Start Month") StartDay = input(18, "Start Day") StopYear = input(2018, "Stop Year") StopMonth = input(12, "Stop Month") StopDay = input(26, "Stop Day") tradeStop = timestamp(StopYear,StopMonth,StopDay,0,0) //src = close, //len1 = input(3, minval=1, title="Fast EMA 1") len2 = input(3, minval=1, title="Fast EMA 2") //len3 = input(8, minval=1, title="Fast EMA 3") len4 = input(5, minval=1, title="Fast EMA 4") len5 = input(8, minval=1, title="Fast EMA 5") len6 = input(10, minval=1, title="Fast EMA 6") //Slow EMA len7 = input(30, minval=1, title="Slow EMA 7") len8 = input(35, minval=1, title="Slow EMA 8") len9 = input(40, minval=1, title="Slow EMA 9") len10 = input(45, minval=1, title="Slow EMA 10") len11 = input(50, minval=1, title="Slow EMA 11") len12 = input(60, minval=1, title="Slow EMA 12") //Fast EMA ema1 = ema(src, len1) ema2 = ema(src, len2) ema3 = ema(src, len3) ema4 = ema(src, len4) ema5 = ema(src, len5) ema6 = ema(src, len6) //Slow EMA ema7 = ema(src, len7) ema8 = ema(src, len8) ema9 = ema(src, len9) ema10 = ema(src, len10) ema11 = ema(src, len11) ema12 = ema(src, len12) //Fast EMA Color Rules //colfastL = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4 and ema4 > ema5 and ema5 > ema6) colfastS = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4 and ema4 < ema5 and ema5 < ema6) //Slow EMA Color Rules //colslowL = ema7 > ema8 and ema8 > ema9 and ema9 > ema10 and ema10 > ema11 and ema11 > ema12 //colslowS = ema7 < ema8 and ema8 < ema9 and ema9 < ema10 and ema10 < ema11 and ema11 < ema12 //Fast EMA Final Color Rules //colFinal = colfastL and colslowL? aqua : colfastS and colslowS? orange : gray //Slow EMA Final Color Rules //colFinal2 = colslowL ? lime : colslowS ? red : gray //Fast EMA Plots p1=plot(ema1, title="Fast EMA 1", style=line, linewidth=2, color=silver) plot(ema2, title="Fast EMA 2", style=line, linewidth=1, color=silver) plot(ema3, title="Fast EMA 3", style=line, linewidth=1, color=silver) plot(ema4, title="Fast EMA 4", style=line, linewidth=1, color=silver) plot(ema5, title="Fast EMA 5", style=line, linewidth=1, color=silver) p2=plot(ema6, title="Fast EMA 6", style=line, linewidth=2, color=silver) fill(p1,p2,color=silver, transp=60) //Slow EMA Plots //p3=plot(ema7, title="Slow EMA 7", style=line, linewidth=4, color=colFinal2) //plot(ema8, title="Slow EMA 8", style=line, linewidth=3, color=colFinal2) //plot(ema9, title="Slow EMA 9", style=line, linewidth=3, color=colFinal2) //plot(ema10, title="Slow EMA 10", style=line, linewidth=3, color=colFinal2) //plot(ema11, title="Slow EMA 11", style=line, linewidth=3, color=colFinal2) //p4=plot(ema12, title="Slow EMA 12", style=line, linewidth=4, color=colFinal2) //fill(p3,p4, color=silver, transp=60) //Plot the Ribbon ma1=plot( emaShort,color=rising(emaShort,2)?green:red,linewidth=1,join=true,transp=20,title="Short") ma2=plot( emaLong,color=rising(emaLong,2)?green:red,linewidth=1,join=true,transp=20,title="Long") fcolor = emaShort>emaLong?green:red fill(ma1,ma2,color=fcolor,transp=80,title="Ribbon Fill") //fast = 4, slow = 16 //fastMA = ema(close, fast) //slowMA = ema(close, slow) //plot(fastMA, color=green, title = "buy/sell") //plot(slowMA, color=red, title = "base") //Conditions buy_signal = crossover(ema1,ema3) sell_signal = crossunder(ema1,ema3) plotshape(sell_signal, style=shape.triangleup, color = red, text="Start Short") plotshape(buy_signal, style=shape.triangledown, color = green, text="Start Long") alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=position b=long t=market l= | delay=30 | e= s= b=short l= t=market q=0.01') alertcondition(buy_signal, title = 'Buy/Long', message = 'e= s= c=position b=short t=market l= | delay=30 | e= s= b=long l= t=market q=0.01') //alertcondition(sell_signal, title = 'Sell/Short', message = 'e= s= c=order b=buy | delay=3 | e= b=sell q=99% p=0.70% u=currency') //alertcondition(buy_signal, title = 'Buy/Long', message = 'e= s= c=order b=sell | delay=30 | e= b=buy q=80 p=0.1% u=currency') testStartYear = input(2018, "From Year") testStartMonth = input(1, "From Month") testStartDay = input(1, "From Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2019, "To Year") testStopMonth = input(1, "To Month") testStopDay = input(1, "To Day") testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) testPeriod() => true if testPeriod() if buy_signal strategy.entry("Long", true) if sell_signal strategy.close("Long")