ইএমএ ওসিলেশন রিভার্সাল সিস্টেমের কৌশল

লেখক:চাওঝাং, তারিখ: ২০২৩-১০-১৮ ১২ঃ২৩ঃ১৩
ট্যাগঃ

img

সারসংক্ষেপ

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

নীতি

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

বিশেষ করে, ট্রেডিং লজিক নিম্নরূপঃ

  1. দ্রুত এমএ (ডিফল্ট ২০ দিন) এবং ধীর এমএ (ডিফল্ট ৫০ দিন) গণনা করুন।

  2. বোলিংজার ব্যান্ড (ডিফল্ট ৪০ দিনের, ২টি স্ট্যান্ডার্ড ডিভিয়েশন) এর প্রস্থের পরিবর্তনের হার গণনা করুন।

  3. যখন দ্রুত এমএ ধীর এমএ অতিক্রম করে এবং বিবি প্রস্থ পরিবর্তনের হার ডিফল্ট থ্রেশহোল্ড ৯% অতিক্রম করে তখন লম্বা হয়ে যায়।

  4. যখন দ্রুত এমএ ধীর এমএ এর নিচে অতিক্রম করে এবং বিবি প্রস্থের পরিবর্তন হার ডিফল্ট থ্রেশহোল্ড 9% অতিক্রম করে তখন শর্ট করুন।

  5. চ্যান্ডেলিয়ার দীর্ঘ এবং সংক্ষিপ্ত স্টপ গণনা করুন।

  6. লং স্টপ হল সর্বোচ্চ উচ্চ - ATR * গুণক। শর্ট স্টপ হল সর্বনিম্ন নিম্ন + ATR * গুণক।

সুবিধা

  1. এমএ সিস্টেম কার্যকরভাবে প্রবণতা ট্র্যাক করে।

  2. বিবি প্রস্থের পরিবর্তন ওসিলেশনকে ফিল্টার করে, অপ্রয়োজনীয় ট্রেড হ্রাস করে।

  3. চ্যান্ডেলিয়ার সময়মত স্টপ লস থেকে বেরিয়ে আসে যাতে ধরা না পড়ে।

  4. অপ্টিমাইজেশনের জন্য একাধিক নিয়মিত পরামিতি।

  5. পরিষ্কার যুক্তি, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়।

ঝুঁকি

  1. MA বিলম্ব দ্রুত বিপরীত হতে পারে।

  2. ভুল বিবি পরামিতি বৈধ সংকেত ফিল্টার করতে পারে।

  3. অত্যধিক চ্যান্ডেলির আউটসাইড বেশি ট্রেডিংয়ের কারণ হয়।

  4. অপর্যাপ্ত প্যারামিটার অপ্টিমাইজেশান হোল্ডিং ঝুঁকির দিকে পরিচালিত করে।

  5. বড় বড় ঘটনা থেকে বাজারের চরম পরিবর্তনের সাথে মানিয়ে নিতে অক্ষম।

অপ্টিমাইজেশন

  1. সর্বোত্তম পরামিতি খুঁজে পেতে বিভিন্ন এমএ সংমিশ্রণ পরীক্ষা করুন।

  2. সর্বোত্তম ভল্যাটিলিটি ফিল্টারের জন্য বিভিন্ন বিবি পিরিয়ড পরীক্ষা করুন।

  3. প্রবেশ নিশ্চিতকরণের জন্য অন্যান্য সূচক যোগ করুন।

  4. বাজারে আরও ভালভাবে ট্র্যাক করার জন্য গতিশীল স্টপ চালু করুন।

  5. পরিবর্তিত বাজারের জন্য স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করার জন্য মেশিন লার্নিং ব্যবহার করুন।

সংক্ষিপ্তসার

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


/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © juanchez

//@version=4
strategy("CHI", overlay = true, close_entries_rule = "ANY")

n = input(title= "highest high o lowest low period", defval= 22)
f= input(title= "multiplicador", defval= 4)
long = highest(high, n) - atr(n)*f
short= lowest(low, n) + atr(n)*f
plot(long, color= color.red)
plot(short, color= color.green)

//moving averages
period= input(title= "moving averages period", defval= 50)
period2= input(title= "moving averages period2", defval= 20)
type= input(title= "moving averages type", options= ["sma", "ema"], defval= "ema")

//moving average function
mo(p, t) =>
    if t == "sma"
        sma(close[barstate.islast ? 1: 0], p)
    else  if t== "ema"
        ema(close[barstate.islast ? 1: 0], p)

m= mo(period, type)
m2= mo(period2, type)

trend= m2 > m 

plot(m, color = color.maroon, linewidth = 3)
plot(m2, linewidth= 3)


//BOLLINGER BANDS ENTRIES
bb1_period= input(title= "Bollinger bands 1 period", defval=40, minval=1)
bb1_source=input(title="Bollinger band 1 source", defval=close)
bb1_multi=input(title="Bollinger Bands 1 factor", defval=2, minval=1, step=0.1)
show_bb1= input(title="Show Bollinger bands 1", defval=false)
//BOLLINGER BANDS
_bb(src, lenght, multi)=>
    float moving_avg= sma(src[barstate.islast? 1: 0], lenght)
    float deviation= stdev(src[barstate.islast? 1: 0], lenght)
    float lowerband = moving_avg - deviation*multi
    float upperband = moving_avg + deviation*multi
    
    [moving_avg, lowerband, upperband]
    
[bb1, lowerband1, upperband1]= _bb(bb1_source,  bb1_period, bb1_multi)

//FIRST BAND    
plot(show_bb1? bb1 : na, title="BB1 Moving average", linewidth= 3, color= color.fuchsia)
plot(show_bb1? upperband1 : na, title="BB1 Upper Band", linewidth= 3, color= color.green)
plot(show_bb1? lowerband1 : na, title="BB1 Lower Band", linewidth= 3, color= color.red)

//BB's Width threshold 
thresh= input(title= "widen %", defval= 9, minval = 0, step = 1, maxval= 100)

widht= (upperband1 - lowerband1)/bb1
roc= change(widht)/widht[1]*100
cross=crossover(roc, thresh)

// entry
//long
elong= input(true, title= "enable long")
longcondition= m2 > m and cross and elong

//short
eshort= input(true, title= "enable short")
shortcondition= m2 < m and cross and eshort


plotshape(longcondition? true: false , location= location.belowbar, style= shape.labelup, size= size.small, color= color.green, text= "Buy", textcolor= color.white)
plotshape(shortcondition? true: false , location= location.abovebar, style= shape.labeldown, size= size.small, color= color.red, text= "Sell", textcolor= color.white)

out= crossunder(close, long)
outt= crossover(close, short)

strategy.entry("long", strategy.long, when = longcondition)
strategy.close("long", when = out)

strategy.entry("short", strategy.short, when = shortcondition)
strategy.close("short", when = outt)

আরো