ডাবল মুভিং এভারেজ ক্রসওভার ট্রেডিং কৌশল

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

img

সারসংক্ষেপ

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

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

কৌশলটি পাইন স্ক্রিপ্টে লেখা হয়। এটি প্রথমে দুটি চলমান গড়, p1 এবং p2 নামে পরিচিত, ইনপুটের মাধ্যমে কাস্টমাইজযোগ্য প্রকার, দৈর্ঘ্য এবং মূল্য উত্সের সাথে সংজ্ঞায়িত করে। এখানে p1 স্বল্প সময়ের MA এবং p2 দীর্ঘ সময়ের MA প্রতিনিধিত্ব করে।

ক্রসওভার এবং ক্রসওন্ডার ফাংশন দুটি এমএ এর মধ্যে ক্রসওভার সনাক্ত করতে ব্যবহৃত হয়। যখন p1 নীচে থেকে p2 এর উপরে অতিক্রম করে, তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন p1 উপরে থেকে p2 এর নীচে অতিক্রম করে, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।

ট্রেডগুলি সম্পাদন করার জন্য, কৌশলটি সংকেতগুলি ট্রিগার করার সময় strategy.entry ব্যবহার করে দীর্ঘ বা সংক্ষিপ্ত অবস্থানে প্রবেশ করে। যদি shortOnly ইনপুট সক্ষম করা হয়, তবে কেবল বিক্রয় সংকেতগুলি বাণিজ্য করা হবে।

সুবিধা বিশ্লেষণ

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

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

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

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

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

এমএ দৈর্ঘ্য সামঞ্জস্য করে, ফিল্টার শর্ত ইত্যাদি যোগ করে ঝুঁকি হ্রাস করা যেতে পারে। বাজারের পক্ষপাত নির্ধারণের জন্য প্রবণতা সূচকও যোগ করা যেতে পারে।

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

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

  1. ক্রসওভার সিগন্যালগুলিকে আরও নির্ভরযোগ্য করার জন্য মূল্য উত্স হিসাবে ভিডাব্লুএপি বা সাধারণ মূল্য ব্যবহার করুন।

  2. স্বল্পমেয়াদী ভুল ক্রসিং এড়াতে একটি বৈধতা সময় যোগ করুন।

  3. বাজার অস্থিরতা অনুযায়ী সর্বোচ্চ গ্রহণযোগ্য ক্ষতির উপর ভিত্তি করে ATR স্টপ অন্তর্ভুক্ত করুন।

  4. অনুকূল সমন্বয় খুঁজে পেতে বক্ররেখা ফিটিং মাধ্যমে পরামিতি অপ্টিমাইজেশান।

  5. শুধুমাত্র উচ্চতর সময়সীমার প্রবণতার দিকের সংকেত বিবেচনা করুন।

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

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


/*backtest
start: 2022-11-20 00:00:00
end: 2023-11-26 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/
// © RafaelPiccolo

//@version=4
strategy("Double MA Cross", overlay=true)

type1 = input("SMA", "MA Type 1", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"])
len1 = input(10, minval=1, title="Length 1")
src1 = input(close, "Source 1", type=input.source)

type2 = input("SMA", "MA Type 2", options=["SMA", "EMA", "WMA", "HMA", "VWMA", "RMA", "TEMA"])
len2 = input(50, minval=2, title="Length 2")
src2 = input(close, "Source 2", type=input.source)

shortOnly = input(false, "Short only")

tema(src, len)=>
    ema1 = ema(src, len)
    ema2 = ema(ema1, len)
    ema3 = ema(ema2, len)
    return = 3 * (ema1 - ema2) + ema3

getPoint(type, len, src)=>
    return = type == "SMA" ? sma(src, len) : type == "EMA" ? ema(src, len) : type == "WMA" ? wma(src, len) : type == "HMA" ? hma(src, len) : type == "VWMA" ? vwma(src, len) : type == "RMA" ? rma(src, len) : tema(src, len)

p1 = getPoint(type1, len1, src1)
p2 = getPoint(type2, len2, src2)

shortCondition = crossunder(p1, p2)
longCondition = crossover(p1, p2)

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

if (longCondition)
    if (shortOnly)
        strategy.close("Short")
    else
        strategy.entry("Long", strategy.long)

plot(p1, "MA 1", p1 < p2 ? color.red : color.green)
plot(p2, "MA 2", color.blue)


আরো