একাধিক EMA পিরিয়ড ডায়নামিক ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-12-12 12:18:41 অবশেষে সংশোধন করুন: 2023-12-12 12:18:41
অনুলিপি: 1 ক্লিকের সংখ্যা: 1090
1
ফোকাস
1621
অনুসারী

একাধিক EMA পিরিয়ড ডায়নামিক ট্রেডিং কৌশল

ওভারভিউ

এই কৌশলটির মূল ধারণাগুলি হ’ল একাধিক সূচকীয় চলমান গড় (ইএমএ) এর ক্রসগুলির উপর ভিত্তি করে ট্রেডিং সংকেত তৈরি করা। স্বল্পমেয়াদী ইএমএতে দীর্ঘমেয়াদী ইএমএ পরা হলে, আরও বেশি করুন; স্বল্পমেয়াদী ইএমএতে দীর্ঘমেয়াদী ইএমএ পরা হলে, সমতল করুন। এই কৌশলটি একাধিক ইএমএ চক্র কনফিগার করার অনুমতি দেয়, প্রতিটি ইএমএ স্বতন্ত্রভাবে সক্ষম হতে পারে, কৌশলটি সমস্ত সক্ষম ইএমএতে ক্রস ট্রেড করবে।

কৌশল নীতি

এই কৌশলটি 8 টি ইএমএ চক্র সেট করে, যথাক্রমে 8 তম লাইন, 13 তম লাইন, 21 তম লাইন, 34 তম লাইন, 55 তম লাইন, 89 তম লাইন, 144 তম লাইন এবং 233 তম লাইন। এই ইএমএগুলি স্বতন্ত্রভাবে চালু বা বন্ধ করার জন্য কনফিগার করা হয়েছে।

যখন একটি সংক্ষিপ্ত ইএমএ নীচে থেকে দীর্ঘমেয়াদী ইএমএ পরা হয়, তখন একটি ক্রয় সংকেত উত্পন্ন হয়; যখন একটি সংক্ষিপ্ত ইএমএ উপরে থেকে নীচে থেকে দীর্ঘমেয়াদী ইএমএ পরা হয়, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়। যদি উভয় ইএমএ চালু থাকে, তবে shorterEMA > longerEMA একটি পলি সংকেত এবং shorterEMA < longerEMA একটি খালি সংকেত।

উদাহরণস্বরূপ, যদি ৫৫ দিনের ইএমএ এবং ৮৯ দিনের ইএমএ চালু থাকে, তাহলে ৫৫ দিনের ইএমএ-র উপরে ৮৯ দিনের ইএমএ থাকলে, অতিরিক্ত কাজ করুন; ৫৫ দিনের ইএমএ-র নীচে ৮৯ দিনের ইএমএ থাকলে, প্লেইন করুন। এটি এই কৌশলটিকে ব্যবহার করা ইএমএ সমন্বয়কে গতিশীলভাবে সামঞ্জস্য করতে দেয়, দীর্ঘতর থেকে ছোট সময়ের মধ্যে পরিবর্তন করে, বা বিপরীতভাবে।

পজিশনের সংখ্যাটি অ্যাকাউন্টের ইকুইটি ভাগ করে ক্লোজ ভাগ করে ইএমএ গ্রুপের সংখ্যার দ্বারা সেট করা হয়েছে। এটি নিশ্চিত করে যে প্রতিটি ইএমএতে অবস্থানের আকার একই।

সামর্থ্য বিশ্লেষণ

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

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

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

অন্যান্য সূচকগুলির সাথে EMA ব্যবহার করার কথা বিবেচনা করা যেতে পারে, যেমন একটি চ্যানেল সূচক বা ঝড়ের সূচক, বা প্রবণতা এবং বিপরীত সূচকগুলির সাথে সংযুক্ত সংকেতগুলি ফিল্টার করতে। এছাড়াও, EMA প্যারামিটারগুলি অপ্টিমাইজ করা অত্যন্ত গুরুত্বপূর্ণ এবং বিভিন্ন বাজারের জন্য সামঞ্জস্য করা প্রয়োজন।

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

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

  1. ইএমএ প্যারামিটার অপ্টিমাইজেশন। প্যারামিটার স্ক্যান এবং ওয়াক ফরওয়ার্ড বিশ্লেষণ পদ্ধতির মাধ্যমে সেরা ইএমএ প্যারামিটার সমন্বয় খুঁজে পাওয়া যায়।

  2. অতিরিক্ত ফিল্টারিংয়ের শর্তগুলি যুক্ত করুন। EMA ক্রসিংয়ের সময় অতিরিক্ত ফিল্টারিংয়ের শর্তগুলি যুক্ত করা যেতে পারে যাতে ত্রুটিযুক্ত সংকেতগুলি এড়ানো যায়, যেমন লেনদেনের পরিমাণ ফিল্টারিং, ওঠানামা হার ফিল্টারিং ইত্যাদি।

  3. অন্যান্য সূচকগুলির সাথে মিলিতঃ ইএমএকে ম্যাকড, কেডিজে, ব্রিনব্যান্ড এবং অন্যান্য সূচকগুলির সাথে একত্রিত করা যেতে পারে এবং তাদের পরিপূরকতার সুবিধা নেওয়া যেতে পারে।

  4. ডায়নামিক অ্যাডজাস্ট পজিশন। আপনি বাজারের অস্থিরতা বা প্রবণতা শক্তির উপর ভিত্তি করে প্রতিটি ইএমএ পজিশন পরিবর্তন করতে পারেন।

  5. লাভ-ক্ষতি অনুপাত অপ্টিমাইজেশান: স্টপ-ডোজ স্তর অপ্টিমাইজ করুন এবং সর্বোত্তম রিস্ক-রিটার্ন অনুপাত খুঁজুন।

সারসংক্ষেপ

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

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

//@version=2
strategy("EMA Fan", shorttitle = "EMA Fan", overlay=true)

// Revision:        1
// Author:          @ToS_MavericK

buyprice = 0.0
buyprice := buyprice[1]

// === INPUT SMA ===
EMA1  = input(8)
EMA2  = input(13)
EMA3  = input(21)
EMA4  = input(34)
EMA5  = input(55)
EMA6  = input(89)
EMA7  = input(144)
EMA8  = input(233)

EnableEMA1 = input(true)
EnableEMA2 = input(true)
EnableEMA3 = input(true)
EnableEMA4 = input(true)
EnableEMA5 = input(true)
EnableEMA6 = input(true)
EnableEMA7 = input(true)
EnableEMA8 = input(true)

//Profit  = input(defval = 5, type = integer, title = "Profit", minval = 1, step = 1)
//StopLoss    = input(defval = 15, type = integer, title = "StopLoss", minval = 1, step = 1)

// === INPUT BACKTEST RANGE ===
FromMonth   = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear    = input(defval = 2018, title = "From Year", minval = 2012)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay   = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear  = input(defval = 2020, title = "To Year", minval = 2012)


// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

// === SERIES SETUP ===
vEMA1 = ema(close, EMA1)
vEMA2 = ema(close, EMA2)
vEMA3 = ema(close, EMA3)
vEMA4 = ema(close, EMA4)
vEMA5 = ema(close, EMA5)
vEMA6 = ema(close, EMA6)
vEMA7 = ema(close, EMA7)
vEMA8 = ema(close, EMA8)

count = -1
if (EnableEMA1 == true)
    count := count + 1
if (EnableEMA2 == true)
    count := count + 1
if (EnableEMA3 == true)
    count := count + 1
if (EnableEMA4 == true)
    count := count + 1
if (EnableEMA5 == true)
    count := count + 1
if (EnableEMA6 == true)
    count := count + 1
if (EnableEMA7 == true)
    count := count + 1
if (EnableEMA8 == true)
    count := count + 1

// set position size
Amount = 1 / (close * count)

// === EXECUTION ===
strategy.entry("EMA1", strategy.long, qty = Amount, when = window() and crossover(vEMA1,vEMA2) and EnableEMA1 and EnableEMA2)
strategy.close("EMA1", time > finish or crossunder(vEMA1,vEMA2))

strategy.entry("EMA2", strategy.long, qty = Amount, when = window() and crossover(vEMA2,vEMA3) and EnableEMA2 and EnableEMA3)
strategy.close("EMA2", time > finish or crossunder(vEMA2,vEMA3))

strategy.entry("EMA3", strategy.long, qty = Amount, when = window() and crossover(vEMA3,vEMA4) and EnableEMA3 and EnableEMA4)
strategy.close("EMA3", time > finish or crossunder(vEMA3,vEMA4))

strategy.entry("EMA4", strategy.long, qty = Amount, when = window() and crossover(vEMA4,vEMA5) and EnableEMA4 and EnableEMA5)
strategy.close("EMA4", time > finish or crossunder(vEMA4,vEMA5))

strategy.entry("EMA5", strategy.long, qty = Amount, when = window() and crossover(vEMA5,vEMA6) and EnableEMA5 and EnableEMA6)
strategy.close("EMA5", time > finish or crossunder(vEMA5,vEMA6))

strategy.entry("EMA6", strategy.long, qty = Amount, when = window() and crossover(vEMA6,vEMA7) and EnableEMA6 and EnableEMA7)
strategy.close("EMA6", time > finish or crossunder(vEMA6,vEMA7))

strategy.entry("EMA7", strategy.long, qty = Amount, when = window() and crossover(vEMA7,vEMA8) and EnableEMA7 and EnableEMA8)
strategy.close("EMA7", time > finish or crossunder(vEMA7,vEMA8))

plot(vEMA1, title = 'EMA1', color = red, linewidth = 2, style = line)  // plot FastMA
plot(vEMA2, title = 'EMA2', color = orange, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA3, title = 'EMA3', color = yellow, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA4, title = 'EMA4', color = green, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA5, title = 'EMA5', color = teal, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA6, title = 'EMA6', color = blue, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA7, title = 'EMA7', color = maroon, linewidth = 2, style = line)    // plot SlowMA
plot(vEMA8, title = 'EMA8', color = white, linewidth = 2, style = line)    // plot SlowMA

//plot(long_stop, title = 'High-ATR', color = red, linewidth = 2, style = line)    // plot SlowMA
//plot(short_stop, title = 'Low+ATR', color = green, linewidth = 2, style = line)    // plot SlowMA