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

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

img

কৌশল ওভারভিউ

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

কৌশল নীতি

এই কৌশল কোডে, দুটি চলমান গড় ব্যবহৃত হয়ঃ একটি দ্রুত চলমান গড় (ডিফল্ট 14 সময়কাল) এবং একটি ধীর চলমান গড় (ডিফল্ট 28 সময়কাল) । চলমান গড়ের ধরনটি সহজ চলমান গড় (এসএমএ), এক্সপোনেনশিয়াল চলমান গড় (ইএমএ), ওজনযুক্ত চলমান গড় (ডাব্লুএমএ) এবং আপেক্ষিক চলমান গড় (আরএমএ) থেকে নির্বাচন করা যেতে পারে।

কৌশলটির মূল যুক্তি নিম্নরূপঃ

  1. দ্রুত চলমান গড় এবং ধীর চলমান গড়ের মান গণনা করুন
  2. যদি দ্রুত চলমান গড় ধীর চলমান গড়ের উপরে অতিক্রম করে, এটি একটি দীর্ঘ সংকেত উৎপন্ন করে এবং একটি দীর্ঘ অবস্থান খোলে
  3. যদি দ্রুত চলমান গড়টি ধীর চলমান গড়ের নিচে ক্রস করে এবং শর্টিংয়ের অনুমতি দেওয়া হয় (allowShorting=true), এটি একটি শর্ট সিগন্যাল তৈরি করে এবং একটি শর্ট পজিশন খোলে
  4. যদি দ্রুত চলমান গড়টি ধীর চলমান গড়ের নিচে ক্রস করে এবং শর্ট করার অনুমতি দেওয়া না হয় (allowShorting=false), তাহলে এটি লং পজিশন বন্ধ করে দেয়।

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

কৌশলগত সুবিধা

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

কৌশলগত ঝুঁকি

  1. রেঞ্জ-বন্দি মার্কেটে, ঘন ঘন চলমান গড় ক্রসওভারের ফলে ঘন ঘন ট্রেডিং এবং লেনদেনের খরচ বাড়তে পারে
  2. যদি দ্রুত চলমান গড়টি খুব ছোট বা ধীর চলমান গড়টি খুব দীর্ঘ সময় বেছে নেওয়া হয় তবে এটি সংকেত বিলম্বের কারণ হতে পারে এবং সেরা ট্রেডিং সুযোগগুলি মিস করতে পারে
  3. যখন বাজারের প্রবণতা বিপরীত হয়, তখন কৌশলটি ধারাবাহিক ক্ষতির সম্মুখীন হতে পারে
  4. নির্দিষ্ট চলমান গড় সময়ের পরামিতিগুলি বাজারের গতিশীল পরিবর্তনের সাথে মানিয়ে নিতে পারে না

এই ঝুঁকি মোকাবেলায় নিম্নলিখিত ব্যবস্থা গ্রহণ করা যেতে পারেঃ

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

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

  1. একটি মাল্টি-ফ্যাক্টর কৌশল তৈরি এবং সংকেত নির্ভুলতা উন্নত করার জন্য MACD এবং RSI এর মতো আরও প্রযুক্তিগত সূচক প্রবর্তন করুন
  2. পজিশন ম্যানেজমেন্টকে অপ্টিমাইজ করুন, যেমন পজিশন আকারকে গতিশীলভাবে সামঞ্জস্য করার জন্য ATR বা অস্থিরতার মতো কারণগুলি বিবেচনা করা
  3. পরিসীমা-বদ্ধ বাজারগুলির জন্য, ঘন ঘন ট্রেডিং এড়ানোর জন্য ADX এর মতো প্রবণতা নির্ধারণের সূচকগুলি প্রবর্তন বিবেচনা করুন
  4. মেশিন লার্নিং বা অপ্টিমাইজেশান অ্যালগরিদম ব্যবহার করুন স্বয়ংক্রিয়ভাবে সর্বোত্তম প্যারামিটার সমন্বয় খুঁজে পেতে

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

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

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


/*backtest
start: 2024-02-09 00:00:00
end: 2024-03-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © z4011

//@version=5
strategy("#2idagos", overlay=true, margin_long=100, margin_short=100)
allowShorting = input.bool(true, "Allow Shorting")
fastMALength = input.int(14, "Fast MA Length")
slowMALength = input.int(28, "Slow MA Length")
fastMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"])
slowMAType = input.string("Simple", "Fast MA Type", ["Simple", "Exponential", "Weighted", "Relative"]) 

float fastMA = switch fastMAType
    "Simple" => ta.sma(close, fastMALength)
    "Exponential" => ta.ema(close, fastMALength)
    "Weighted" => ta.wma(close, fastMALength)
    "Relative" => ta.rma(close, fastMALength)

plot(fastMA, color = color.aqua, linewidth = 2)

float slowMA = switch slowMAType
    "Simple" => ta.sma(close, slowMALength)
    "Exponential" => ta.ema(close, slowMALength)
    "Weighted" => ta.wma(close, slowMALength)
    "Relative" => ta.rma(close, slowMALength)

plot(slowMA, color = color.blue, linewidth = 2)


longCondition = ta.crossover(fastMA, slowMA)
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = ta.crossunder(fastMA, slowMA) and allowShorting
if (shortCondition)
    strategy.entry("Short", strategy.short)

closeCondition = ta.crossunder(fastMA, slowMA) and not allowShorting
if (closeCondition)
    strategy.close("Long", "Close")


আরো