یہ حکمت عملی رجحان کی سمت کا تعین کرنے اور ان کے کراس اوور کے مطابق تجارتی سگنل پیدا کرنے کے لئے ای ایم اے (اضافی حرکت پذیر اوسط) اور ایم اے ایم اے (ایم ای ایس اے موافقت پذیر حرکت پذیر اوسط) اشارے پر مبنی ہے۔ ای ایم اے اکثر مارکیٹ کے رجحان کی سمت کا فیصلہ کرنے کے لئے استعمال ہوتا ہے ، جبکہ ایم اے مارکیٹ کے موڑ کے مقامات کو زیادہ درست طریقے سے پکڑ سکتا ہے۔ دونوں کا استعمال حکمت عملی کی کارکردگی کو بہتر بنا سکتا ہے۔
تیز رفتار EMA اور سست EMA کا حساب لگائیں، جو مارکیٹ کے بالترتیب قلیل مدتی اور طویل مدتی رجحانات کو ظاہر کرتے ہیں۔
MAMA اور FAMA لائنوں کا حساب لگائیں، جو موافقت پذیر چلتی اوسط ہیں۔
جب تیز EMA سست EMA کے اوپر سے عبور کرتا ہے تو خریدنے کا سگنل پیدا ہوتا ہے۔
جب تیز EMA سست EMA سے نیچے گزرتا ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔
جب MAMA FAMA کے اوپر سے گزرتا ہے، تو خریدنے کا اشارہ پیدا ہوتا ہے۔
جب MAMA FAMA سے نیچے گزرتا ہے، تو فروخت کا اشارہ پیدا ہوتا ہے۔
ایم اے ایم اے اور ایف اے ایم اے کے کراس اوورز کا استعمال ای ایم اے سگنلز کی تصدیق یا رجحان موڑ کا ابتدائی پتہ لگانے کے لئے کیا جاسکتا ہے۔
خاص طور پر، حکمت عملی سب سے پہلے تیز رفتار EMA (fl) اور سست EMA (sl) کا حساب لگاتا ہے، جو بالترتیب قلیل مدتی اور طویل مدتی رجحانات کو ظاہر کرتا ہے۔
پھر یہ جان ایلرز کے فارمولے کے مطابق MAMA اور FAMA کا حساب لگاتا ہے:
قیمت کے ہلبرٹ ٹرانسفارمر کا حساب لگائیں اور سگنل کی فیز کی معلومات نکالیں۔
فیز کی معلومات کی بنیاد پر فوری تعدد p کا حساب لگائیں.
وزن کا عنصر α p قدر کی بنیاد پر حساب لگائیں۔
MAMA اور FAMA کا حساب α کی بنیاد پر لگائیں۔
آخر میں، ٹریڈنگ سگنل EMA اور MAMA/FAMA کراس اوورز کی بنیاد پر تیار کیے جاتے ہیں:
یہ حکمت عملی ٹریڈنگ سگنلز کی درستگی کو بہتر بنانے کے لئے EMA اور MAMA اشارے کے فوائد کو یکجا کرتی ہے۔
ای ایم اے کے فوائد:
MAMA کے فوائد:
ان کے امتزاج کے فوائد:
اس حکمت عملی کے اہم خطرات:
حل:
حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
یہ حکمت عملی رجحان کی پیروی کرنے اور بروقت موڑ پر قبضہ کرنے کے لئے ای ایم اے اور ایم اے ایم اے اشارے کی طاقتوں کو مربوط کرتی ہے۔ پیرامیٹر کی اصلاح اور رسک کنٹرول کے ساتھ ، یہ جیت کی شرح اور منافع میں بہتری حاصل کرسکتا ہے۔ لیکن صارفین کو اب بھی ذاتی رسک ترجیح کی بنیاد پر احتیاط برتنی چاہئے۔
/*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=2 strategy("EMAMA strategy", overlay=true) //This entire strategy is courtesy of LazyBear for programming the original EMAMA system, I simply added a strategy element to everything to round things out. src=input(hl2, title="Source") fl=input(.5, title="Fast Limit") sl=input(.05, title="Slow Limit") sp = (4*src + 3*src[1] + 2*src[2] + src[3]) / 10.0 dt = (.0962*sp + .5769*nz(sp[2]) - .5769*nz(sp[4])- .0962*nz(sp[6]))*(.075*nz(p[1]) + .54) q1 = (.0962*dt + .5769*nz(dt[2]) - .5769*nz(dt[4])- .0962*nz(dt[6]))*(.075*nz(p[1]) + .54) i1 = nz(dt[3]) jI = (.0962*i1 + .5769*nz(i1[2]) - .5769*nz(i1[4])- .0962*nz(i1[6]))*(.075*nz(p[1]) + .54) jq = (.0962*q1 + .5769*nz(q1[2]) - .5769*nz(q1[4])- .0962*nz(q1[6]))*(.075*nz(p[1]) + .54) i2_ = i1 - jq q2_ = q1 + jI i2 = .2*i2_ + .8*nz(i2[1]) q2 = .2*q2_ + .8*nz(q2[1]) re_ = i2*nz(i2[1]) + q2*nz(q2[1]) im_ = i2*nz(q2[1]) - q2*nz(i2[1]) re = .2*re_ + .8*nz(re[1]) im = .2*im_ + .8*nz(im[1]) p1 = iff(im!=0 and re!=0, 360/atan(im/re), nz(p[1])) p2 = iff(p1 > 1.5*nz(p1[1]), 1.5*nz(p1[1]), iff(p1 < 0.67*nz(p1[1]), 0.67*nz(p1[1]), p1)) p3 = iff(p2<6, 6, iff (p2 > 50, 50, p2)) p = .2*p3 + .8*nz(p3[1]) spp = .33*p + .67*nz(spp[1]) phase = atan(q1 / i1) dphase_ = nz(phase[1]) - phase dphase = iff(dphase_< 1, 1, dphase_) alpha_ = fl / dphase alpha = iff(alpha_ < sl, sl, iff(alpha_ > fl, fl, alpha_)) mama = alpha*src + (1 - alpha)*nz(mama[1]) fama = .5*alpha*mama + (1 - .5*alpha)*nz(fama[1]) pa=input(false, title="Mark crossover points") plotarrow(pa?(cross(mama, fama)?mama<fama?-1:1:na):na, title="Crossover Markers") fr=input(false, title="Fill MAMA/FAMA Region") duml=plot(fr?(mama>fama?mama:fama):na, style=circles, color=gray, linewidth=0, title="DummyL") mamal=plot(mama, title="MAMA", color=red, linewidth=2) famal=plot(fama, title="FAMA", color=green, linewidth=2) fill(duml, mamal, red, transp=70, title="NegativeFill") fill(duml, famal, green, transp=70, title="PositiveFill") ebc=input(false, title="Enable Bar colors") bc=mama>fama?lime:red barcolor(ebc?bc:na) longCondition = crossover(mama, fama) if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = crossunder(mama, fama) if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)