এই কৌশলটি প্রবণতা দিক নির্ধারণ এবং তাদের ক্রসওভারের ভিত্তিতে ট্রেডিং সংকেত তৈরি করতে ইএমএ (প্রতিফলনশীল চলমান গড়) এবং এমএএমএ (মেসা অভিযোজিত চলমান গড়) সূচকগুলির উপর ভিত্তি করে। ইএমএ প্রায়শই বাজারের প্রবণতা দিক বিচার করতে ব্যবহৃত হয়, যখন এমএএমএ বাজারের পালা পয়েন্টগুলি আরও সঠিকভাবে ক্যাপচার করতে পারে। উভয় ব্যবহার করে কৌশলটির কর্মক্ষমতা উন্নত করতে পারে।
দ্রুত EMA এবং ধীর EMA গণনা করুন, যা বাজারের স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী প্রবণতা প্রতিফলিত করে।
MAMA এবং FAMA রেখাগুলি গণনা করুন, যা অভিযোজনশীল চলমান গড়।
যখন দ্রুত EMA ধীর EMA এর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উৎপন্ন হয়।
যখন দ্রুত EMA ধীর EMA এর নিচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উৎপন্ন হয়।
যখন MAMA FAMA এর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উৎপন্ন হয়।
যখন MAMA FAMA এর নিচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উৎপন্ন হয়।
MAMA এবং FAMA এর ক্রসওভারগুলি EMA সংকেতগুলি নিশ্চিত করতে বা প্রবণতা বাঁকগুলির প্রাথমিক সনাক্তকরণ সরবরাহ করতে ব্যবহার করা যেতে পারে।
বিশেষ করে, কৌশলটি প্রথমে স্বল্পমেয়াদী এবং দীর্ঘমেয়াদী প্রবণতা প্রতিফলিত করে দ্রুত EMA (fl) এবং ধীর EMA (sl) গণনা করে।
তারপর এটি জন এহেলার্স এর সূত্রের উপর ভিত্তি করে MAMA এবং FAMA গণনা করেঃ
মূল্যের হিলবার্ট ট্রান্সফর্ম গণনা করুন এবং সংকেতটির ফেজ তথ্য বের করুন।
ফেজ তথ্যের উপর ভিত্তি করে তাত্ক্ষণিক ফ্রিকোয়েন্সি p গণনা করুন।
পি মানের উপর ভিত্তি করে ওজন কমানোর ফ্যাক্টর α গণনা করা হয়।
α এর উপর ভিত্তি করে MAMA এবং FAMA গণনা করুন।
অবশেষে, EMA এবং MAMA/FAMA ক্রসওভারের উপর ভিত্তি করে ট্রেডিং সিগন্যাল তৈরি করা হয়ঃ
এই কৌশলটি EMA এবং 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)