Ehlers MESA অ্যাডাপ্টিভ মুভিং এভারেজের উপর ভিত্তি করে ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-09-28 15:37:13 অবশেষে সংশোধন করুন: 2023-09-28 15:37:13
অনুলিপি: 0 ক্লিকের সংখ্যা: 747

ওভারভিউ

এই কৌশলটি এহলারস এমইএসএ অভিযোজিত চলমান গড়ের উপর ভিত্তি করে তৈরি করা হয়েছে। এটি একটি ট্রেন্ড ট্রেডিং কৌশল যা দুটি গড়ের ক্রসকে অনুসরণ করে। যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে তখন অতিরিক্ত কাজ করা হয় এবং যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে তখন খালি করা হয়। এটি একটি সাধারণ দ্বি-চলমান গড় ক্রস কৌশল।

কৌশল নীতি

এই কৌশলটির কেন্দ্রবিন্দু হল দুটি অভিযোজিত চলমান গড় গণনা করাঃ MAMA লাইন এবং FAMA লাইন। এর মধ্যে, MAMA লাইন গণনা করার সূত্রটি নিম্নরূপঃ

alpha = fl / dphase 
alpha = iff(alpha < sl, sl, iff(alpha > fl, fl, alpha))
mama = alpha*src + (1 - alpha)*nz(mama[1])

এর মধ্যে fl হল দ্রুত সীমাবদ্ধতা, sl হল ধীর সীমাবদ্ধতা, এবং dphase হল ফেজ পার্থক্য। আলফা ফেজ পার্থক্যের উপর ভিত্তি করে গতিশীলভাবে সামঞ্জস্য করে, স্বনির্ধারিত মসৃণতা প্যারামিটারগুলি অর্জন করে।

FAMA লাইন গণনা সূত্রটি নিম্নরূপঃ

fama = .5*alpha*mama + (1 - .5*alpha)*nz(fama[1]) 

FAMA লাইন হল MAMA লাইনের একটি নিম্ন-প্রবাহের তরঙ্গ সমতলতা লাইন।

এই কৌশলটি MAMA লাইন এবং FAMA লাইনের আকারের সাথে তুলনা করে ট্রেডিং সিগন্যাল তৈরি করে।

কৌশলগত শক্তি বিশ্লেষণ

এই কৌশলটির কিছু সুবিধাও রয়েছেঃ

  1. স্বনির্ধারিত মুভিং এভারেজ ব্যবহার করে, প্যারামিটারগুলি বাজারের পরিবর্তনের সাথে স্বয়ংক্রিয়ভাবে সামঞ্জস্য করা হয়, কোনও নির্দিষ্ট প্যারামিটার সেট করার প্রয়োজন হয় না।

  2. ফ্যামা ক্যাবল যুক্ত করা হয়েছে যা ভুয়া ব্রেকিং ফিল্টার করতে পারে।

  3. ডাবল মুভিং এভারেজ ডিজাইন ব্যবহার করে, আপনি বাজারের দীর্ঘ লাইন প্রবণতা অনুসরণ করতে পারেন।

  4. এই নীতিমালাটি সহজ, স্পষ্ট এবং সহজে বোঝা যায় এবং পরিবর্তন করা যায়।

  5. ইন্ডিকেটরগুলিকে দৃশ্যমান করে ট্রেডিং সিগন্যাল স্পষ্টভাবে দেখা যায়।

ঝুঁকি বিশ্লেষণ

এই কৌশলটির কিছু ঝুঁকিও রয়েছেঃ

  1. দ্বি-লাইন ক্রস কৌশলটি একাধিক ট্রেডিং সিগন্যাল তৈরি করতে পারে, যথাযথভাবে ব্যবধান এবং প্রত্যাহার নিয়ন্ত্রণ করার পরামর্শ দেওয়া হয়।

  2. MAMA এবং FAMA লাইন গণনা জটিল, এবং ভুল প্যারামিটার সেট করা হতে পারে কার্ভ বিপরীতমুখী।

  3. স্বনির্ধারিত প্যারামিটারগুলি অত্যধিক অপ্টিমাইজেশনের কারণ হতে পারে এবং অন্যান্য প্রযুক্তিগত সূচকগুলির সাথে মিলিতভাবে যাচাই করা প্রয়োজন।

  4. ডাবল-লাইন ক্রস-এর ক্ষেত্রে, সময়-বিরতি রয়েছে, যার ফলে ট্রেন্ড-পরিবর্তন পয়েন্টটি মিস করা হতে পারে।

  5. ভুয়া ভাঙচুরের ফলে ক্ষতির ঝুঁকি সম্পর্কে সতর্ক থাকুন।

কৌশল অপ্টিমাইজেশনের দিকনির্দেশনা

এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ

  1. প্যারামিটার সেটিং অপ্টিমাইজ করুন এবং দ্রুত বা ধীর সীমাবদ্ধতার জন্য সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে বের করুন।

  2. একক ক্ষতির উপর কঠোর নিয়ন্ত্রণ।

  3. অন্যান্য সূচক যেমন MACD, RSI ইত্যাদির সাথে মিলিত হয়ে ফিল্টারিং সংকেতগুলি মিথ্যা ব্রেকডাউন এড়াতে পারে।

  4. ট্রেডিং এর প্রবণতা নির্ণয় করার জন্য সূচকগুলি বাড়ান এবং বিপরীতমুখী ট্রেডিং এড়িয়ে চলুন।

  5. এদিকে, এফএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স

  6. ট্রেন্ডের শক্তির উপর নির্ভর করে স্টপিংয়ের বিভিন্ন পদ্ধতি অবলম্বন করে স্টপিং কৌশলটি অপ্টিমাইজ করুন।

  7. বিভিন্ন জাতের পরামিতি সেটিংয়ের পার্থক্য পরীক্ষা করে, সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন।

সারসংক্ষেপ

এই কৌশলটি একটি সাধারণ প্রবণতা অনুসরণকারী কৌশল যা Ehlers MESA স্বনির্ধারিত চলমান গড় ব্যবহার করে একটি দৃশ্যমান সূচক তৈরি করে এবং একটি দ্বি-লাইন ক্রস পদ্ধতিতে ট্রেডিং সংকেত উত্পন্ন করে। কৌশলটি প্যারামিটার স্বনির্ধারণ, হাইপার ওয়েভ ফালতু ব্রেক, দৃশ্যমানতার মতো সুবিধা রয়েছে, তবে সময়ের পরে, একাধিক ব্যবসায়ের মতো ঝুঁকিও রয়েছে। ভবিষ্যতে প্যারামিটার অপ্টিমাইজেশন, স্টপ লস কৌশল, সংকেত ফিল্টারিং ইত্যাদির ক্ষেত্রে কৌশলটি আরও স্থিতিশীল এবং নির্ভরযোগ্য করে তুলতে পারে।

কৌশল সোর্স কোড
/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
// @author LazyBear 
// 
// List of my public indicators: http://bit.ly/1LQaPK8 
// List of my app-store indicators: http://blog.tradingview.com/?p=970 
//
strategy("Ehlers MESA Adaptive Moving Average [LazyBear with ekoronin fix]", shorttitle="EMAMA_LB (ekoronin fix)", overlay=false, calc_on_every_tick=true, precision=0)
src=input(close, title="Source")
fl=input(.4, title="Fast Limit")
sl=input(.04, title="Slow Limit")
pi = 3.1415926
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]))
p1 = iff(im!=0 and re!=0, 2*pi/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)
phase = 180/pi * 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)

longSpike=mama>fama? 1:0
shortSpike=mama<fama? 1:0

plot(longSpike, title = "Mama Long", style=line, linewidth=1, color=yellow)
plot(shortSpike, title = "Mama Short", style=line, linewidth=1, color=red)

//possig = iff(reverse and pos == 1, -1,
//          iff(reverse and pos == -1, 1, pos))	   
if (longSpike) 
    strategy.entry("Long", strategy.long)
if (shortSpike)
    strategy.entry("Short", strategy.short)