ডাবল ইএমএ কৌশল বিশ্লেষণ

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

img

সারসংক্ষেপ

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

কৌশলগত যুক্তি

কৌশলটি মূলত দুটি EMA সূচক, একটি স্বল্পমেয়াদী 9 দিনের EMA এবং একটি দীর্ঘ 21 দিনের EMA এর উপর ভিত্তি করে। তাদের ক্রসওভারগুলি প্রবেশ এবং প্রস্থান সংকেত উত্পন্ন করে।

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

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

সুবিধা

এই কৌশলটির নিম্নলিখিত সুবিধা রয়েছে:

  1. কৌশল ধারণাটি সহজ এবং বোঝা এবং বাস্তবায়ন করা সহজ।
  2. এটি মূল্যের প্রবণতা কার্যকরভাবে চিহ্নিত করতে পারে এবং প্রবণতা অনুসরণ করার জন্য সময়মত অবস্থান প্রবেশ করতে পারে।
  3. ইএমএ ব্যবহার করে গোলমাল ফিল্টার করা হয় এবং স্বল্পমেয়াদী দামের ওঠানামা থেকে হস্তক্ষেপ এড়ানো হয়।
  4. কৌশলটির সংবেদনশীলতা সামঞ্জস্য করার জন্য EMA পরামিতিগুলি কনফিগার করা যেতে পারে।

ঝুঁকি

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

  1. প্রবণতা বিপরীত হলে ইএমএ-র বিলম্বিত বৈশিষ্ট্য ক্ষতি বাড়িয়ে তুলতে পারে।
  2. ভুল EMA প্যারামিটার সেটিং ভুল সংকেত হার বৃদ্ধি করে।
  3. এই কৌশলটি শক্তিশালী ট্রেন্ডিং বাজার এবং পরিসীমা সীমাবদ্ধ সময়কালে দুর্বল বাজারের জন্য আরও উপযুক্ত।

উন্নতকরণ

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

  1. প্রবণতা বিপরীততা চিহ্নিত করতে এবং ক্ষতি হ্রাস করার জন্য অন্যান্য সূচক অন্তর্ভুক্ত করুন, যেমন এমএসিডি, কেডিজে ইত্যাদি।
  2. স্টপ লস লজিক যোগ করুন। ভাল স্টপ লস কৌশলগুলি সর্বাধিক ড্রাউনডাউনকে ব্যাপকভাবে হ্রাস করতে পারে।
  3. বিভিন্ন পণ্যের দামের বৈশিষ্ট্যগুলির সাথে আরও ভালভাবে ফিট করার জন্য EMA পরামিতিগুলি অপ্টিমাইজ করুন।
  4. মেশিন লার্নিং অ্যালগরিদম ব্যবহার করে EMA প্যারামিটার অপ্টিমাইজেশান স্বয়ংক্রিয় করতে।

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

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


/*backtest
start: 2023-02-21 00:00:00
end: 2024-02-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// This can only draw so many lines. Use bar replay to go back further
strategy("Strategy Lines", shorttitle="Strategy Lines", overlay=true, max_lines_count=500)

//###########################################################################################################################################
// Replace your strategy here
//###########################################################################################################################################

shortEMA = ta.ema(close, input(9, title="Short EMA Length"))
longEMA = ta.ema(close, input(21, title="Long EMA Length"))

// Entry conditions for long and short positions
longCondition = ta.crossover(shortEMA, longEMA)
shortCondition = ta.crossunder(shortEMA, longEMA)

//###########################################################################################################################################
// Strategy Lines
//###########################################################################################################################################

var timeLow = bar_index
var line li = na
var openLPrice = 0.0000
var openSPrice = 0.0000

LongWColor = input.color(color.rgb(0,255,0,0),"Long Win Color", group="Strategy Lines")
LongLColor = input.color(color.rgb(0,0,255,0),"Long Loss Color", group="Strategy Lines")
ShortWColor = input.color(color.rgb(255,255,0,0),"Short Win Color", group="Strategy Lines")
ShortLColor = input.color(color.rgb(255,0,0,0),"Short Loss Color", group="Strategy Lines")
WinFontColor = input.color(color.rgb(0,0,0,0),"Win Font Color", group="Strategy Lines")
LossFontColor = input.color(color.rgb(255,255,255,0),"Loss Font Color", group="Strategy Lines")
LinesShowLabel = input(false,"Show Labels?",group = "Strategy Lines")

// // Start new line when we go long
// if strategy.position_size >0
//     line.delete(li)
//     li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close>openLPrice?LongWColor:LongLColor)

// // Start new line when we go short
// if strategy.position_size <0
//     line.delete(li)
//     li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close<openSPrice?ShortWColor:ShortLColor)

// //Delete Lines if we don't have a position open
// if strategy.position_size ==0
//     li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=color.rgb(0,0,0,100))
//     line.delete(li)

if LinesShowLabel
    // Short Label
    if strategy.position_size>=0 and strategy.position_size[1] <0
        label.new(
             timeLow, na, 
             text=str.tostring((openSPrice-close[1])/(syminfo.mintick*10)), 
             color=close[1]<openSPrice?ShortWColor:ShortLColor, 
             textcolor=close[1]<openSPrice?WinFontColor:LossFontColor,
             size=size.small, 
             style=label.style_label_down, yloc=yloc.abovebar)
    // Long Label
    if strategy.position_size<=0 and strategy.position_size[1] >0
        label.new(
             timeLow, na,
             text=str.tostring((close[1]-openLPrice)/(syminfo.mintick*10)), 
             color=close[1]>openLPrice?LongWColor:LongLColor, 
             textcolor=close[1]>openLPrice?WinFontColor:LossFontColor,
             size=size.small, 
             style=label.style_label_down, yloc=yloc.abovebar)

// Open long position and draw line
if (longCondition)
    //strategy.entry("Long", strategy.long)
    // timeLow := bar_index
    // li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close>openLPrice?LongWColor:LongLColor)
    openLPrice := close

// Open short position and draw line
if (shortCondition)
    //strategy.entry("Short", strategy.short)
    // timeLow := bar_index
    // li := line.new(timeLow, close[bar_index-timeLow], bar_index, close, width=2, color=close<openSPrice?ShortWColor:ShortLColor)
    openSPrice := close

//###########################################################################################################################################
// Strategy Execution (Replace this as well)
//###########################################################################################################################################

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

আরো