মাল্টি-পিরিয়ড ডায়নামিক মুভিং এভারেজ কৌশল

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

img

এই কৌশলটি ট্রেডিং সিগন্যাল তৈরির জন্য একাধিক টাইমফ্রেম জুড়ে গতিশীল গড়ের বিভিন্ন ধরণের গতিশীলভাবে নির্বাচন করে।

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

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

বিশেষ করে, কৌশলটি প্রথমে ইনপুট পরামিতিগুলির উপর ভিত্তি করে ব্যাকটেস্ট সময়কে সংজ্ঞায়িত করে। এটি তারপরে পাঁচ ধরণের চলমান গড় গণনা করেঃ

  • এসএমএ সহজ চলমান গড়
  • ইএমএ এক্সপোনেনশিয়াল মুভিং এভারেজ
  • TEMA ট্রিপল এক্সপোনেনশিয়াল মুভিং মিডিয়ার
  • WMA ওজনযুক্ত চলমান গড়
  • HMA Hull চলমান গড়

সংশ্লিষ্ট চলমান গড়টি নির্বাচনের উপর ভিত্তি করে গ্রাফ করা হয়। যখন বন্ধের মূল্য চলমান গড়ের উপরে থাকে তখন এটি দীর্ঘ হয় এবং নীচে থাকলে এটি সংক্ষিপ্ত হয়।

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

সুবিধা

  • আরো নির্ভরযোগ্যতার জন্য একাধিক চলমান গড় একত্রিত করে
  • বিভিন্ন ট্রেডিং সময়সীমার জন্য কাস্টমাইজযোগ্য সময়কাল
  • গড়ের গতিশীল স্যুইচিং নমনীয় অপ্টিমাইজেশান অনুমতি দেয়
  • সহজ এবং স্বজ্ঞাত প্রবণতা অনুসরণকারী নতুনদের জন্য উপযুক্ত

ঝুঁকি

  • চলমান গড়ের পিছিয়ে পড়া প্রবণতা টার্নিং পয়েন্টগুলি মিস করতে পারে
  • স্থির পরামিতিগুলির সাথে অতিরিক্ত ফিটিং, লাইভ ট্রেডিংয়ে নিম্ন পারফরম্যান্সের সম্ভাবনা
  • আগ্রাসী লং/শর্ট সিগন্যাল মূলধন ব্যবহারের দক্ষতা প্রভাবিত করে

নিম্নলিখিত উপায়ে ঝুঁকি কমাতে পারেঃ

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

উন্নতির সুযোগ

কৌশলটি বিভিন্ন দিক থেকে উন্নত করা যেতে পারে:

  1. আরো স্থিতিশীল সংকেত জন্য অন্যান্য ফিল্টার যোগ করুন

    উদাহরণস্বরূপ, ভলিউম নিশ্চিতকরণ ছাড়া মিথ্যা ব্রেকআউট এড়ানোর জন্য ভলিউম সূচক।

  2. প্রবেশ এবং প্রস্থান লজিক অপ্টিমাইজ করুন

    অপ্রয়োজনীয় ক্ষতি কমাতে মূল্য চ্যানেল নির্ধারণ করুন এবং ক্ষতি বন্ধ করুন।

  3. ডায়নামিক মুভিং মিডিয়ার সময়কাল

    শক্তিশালী প্রবণতা এবং সংহতকরণের সময় দীর্ঘ সময় ব্যবহার করুন।

  4. অর্থ ব্যবস্থাপনা উন্নত করা

    ড্রডাউন এবং মুনাফা গ্রহণের ভিত্তিতে পজিশনের আকার সামঞ্জস্য করুন।

সিদ্ধান্ত

কৌশলটি সময়ের ফ্রেম জুড়ে বিভিন্ন চলমান গড়কে একত্রিত করে তুলনামূলকভাবে স্থিতিশীল প্রবণতা অনুসরণকারী প্রভাব তৈরি করে। প্রবেশ, প্রস্থান, পরামিতি এবং অর্থ পরিচালনার অপ্টিমাইজেশনের জন্য প্রচুর জায়গা রয়েছে, এটি আরও ভাল বাস্তব বিশ্বের পারফরম্যান্সের জন্য উন্নত করা যেতে পারে।


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

//@version=3
strategy("MA_strategy ", shorttitle="MA_strategy", overlay=true, initial_capital=100000)

qty = input(100000000, "Buy quantity")

testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testStartMin = input(0, "Backtest Start Minute")

testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,testStartHour,testStartMin)

testStopYear = input(2099, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)


testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false


ma1 = input( "SMA",title="Select MA", options=["SMA", "EMA","TEMA", "WMA","HMA"])


len1 = input(7, minval=1, title="Period")

s=sma(close,len1)

e=ema(close,len1)


xEMA1 = ema(close, len1)
xEMA2 = ema(xEMA1, len1)
xEMA3 = ema(xEMA2, len1)
t = 3 * xEMA1 - 3 * xEMA2 + xEMA3


f_hma(_src, _length)=>
    _return = wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))

h = f_hma(close, len1)

w = wma(close, len1)

ma = ma1 == "SMA"?s:ma1=="EMA"?e:ma1=="WMA"?w:ma1=="HMA"?h:ma1=="TEMA"?t:na

buy= close>ma
sell= close<ma

alertcondition(buy, title='buy', message='buy')
alertcondition(sell, title='sell', message='sell')

ordersize=floor(strategy.equity/close)

if testPeriod()
    strategy.entry("long",strategy.long,ordersize,when=buy)
    strategy.close("long", when = sell )


    
  









আরো