ডুয়াল এমএ সুপারপজিশনের উপর ভিত্তি করে অভিযোজিত ব্যাকটেস্ট সময় পরিসীমা নির্বাচন কৌশল


সৃষ্টির তারিখ: 2024-01-05 12:12:10 অবশেষে সংশোধন করুন: 2024-01-05 12:12:10
অনুলিপি: 0 ক্লিকের সংখ্যা: 589
1
ফোকাস
1621
অনুসারী

ডুয়াল এমএ সুপারপজিশনের উপর ভিত্তি করে অভিযোজিত ব্যাকটেস্ট সময় পরিসীমা নির্বাচন কৌশল

ওভারভিউ

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

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

কৌশল নীতি

এই কৌশলটি পুনরাবৃত্তি তারিখের পরিসীমা নির্বাচন মডিউল এবং ডাবল এমএ ট্রেডিং কৌশল মডিউল দ্বারা গঠিত।

তারিখ পরিসীমা নির্বাচন মডিউল

  1. চারটি তারিখের পরিসীমা নির্বাচন করুনঃ সমস্ত ইতিহাসের তথ্য (ALL), সাম্প্রতিক দিন (DAYS), সাম্প্রতিক সপ্তাহ (WEEKS) এবং ম্যানুয়াল তারিখের পরিসীমা (MANUAL) ।
  2. সময় প্যানেলের মাধ্যমে গতিশীল সেটিং পরিবর্তন করে শুরু এবং শেষের সময় নির্ণয় করুন।
  3. সময় শর্ত window() ফাংশন ফিল্টার K লাইন, শুধুমাত্র নির্বাচিত তারিখের পরিসীমা মধ্যে retesting জন্য।

ডাবল এমএ ট্রেডিং কৌশল মডিউল

  1. দ্রুত এমএ চলাকালীন দ্রুত এমএ, ডিফল্ট 14; ধীর এমএ চলাকালীন ধীর এমএ, ডিফল্ট 28।
  2. যখন দ্রুত এমএ ধীর এমএ অতিক্রম করে, তখন বেশি কাজ করুন; যখন দ্রুত এমএ ধীর এমএ অতিক্রম করে, তখন প্লেইন করুন।
  3. MA-এর বক্ররেখা অঙ্কন করুন।

কৌশলগত শক্তি বিশ্লেষণ

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

ঝুঁকি এবং সমাধান বিশ্লেষণ

  1. ডাবল এমএ কৌশলটি বেশ রুক্ষ এবং প্রায়শই ক্রয়-বিক্রয়ের সমস্যা রয়েছে। স্টপ লস মেশিনের মতো অপ্টিমাইজেশান যুক্ত করার কথা বিবেচনা করা যেতে পারে।
  2. তারিখের পরিসীমা ম্যানুয়ালি সেট করার ক্ষেত্রে সতর্কতা অবলম্বন করা উচিত যাতে ভুল তারিখ ব্যবহার করা না হয়।
  3. পুরো ইতিহাসের পুনরুদ্ধারের সময়টি দীর্ঘ হলে পরীক্ষার সময়কাল বাড়বে। আপনি স্লাইড পয়েন্ট বাড়াতে বা ঘন ঘন লেনদেনের জন্য ফি হ্রাস করতে পারেন।

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

  1. স্টপ লজিকাল বিচার বৃদ্ধি, ক্ষতির ঝুঁকি হ্রাস।
  2. শেয়ার পুল ফিল্টার যোগ করুন, সুনির্দিষ্ট সূচকের সাথে সম্পর্কযুক্ত শেয়ারগুলিকে পছন্দ করুন, স্থিতিশীলতা বাড়ান।
  3. ট্রেডিং সিগন্যালের ফিল্টার বাড়ানো, নির্দিষ্ট সময়ের মধ্যে অস্থির সংকেতগুলি ফিল্টার করা, অপ্রয়োজনীয় ট্রেডিং হ্রাস করা।
  4. বিভিন্ন শ্রেণিবদ্ধকরণ সূচকের সাথে সম্পর্কিত শেয়ারের পারফরম্যান্স পরীক্ষা করে সেরা জাতগুলি খুঁজে বের করুন।

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

strategy(title = "How To Auto Set Date Range", shorttitle = " ", overlay = true)

// Revision:        1
// Author:          @allanster 

// === INPUT MA ===
fastMA = input(defval = 14, title = "FastMA", type = input.integer, minval = 1, step = 1)
slowMA = input(defval = 28, title = "SlowMA", type = input.integer, minval = 1, step = 1)

// === INPUT BACKTEST RANGE ===
useRange     = input(defval = "WEEKS", title = "Date Range", type = input.string, confirm = false, options = ["ALL", "DAYS", "WEEKS", "MANUAL"])
nDaysOrWeeks = input(defval = 52, title = "# Days or Weeks", type = input.integer, minval = 1)
FromMonth    = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay      = input(defval = 15, title = "From Day", minval = 1, maxval = 31)
FromYear     = input(defval = 2019, title = "From Year", minval = 2014)
ToMonth      = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay        = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
ToYear       = input(defval = 9999, title = "To Year", minval = 2014)

// === FUNCTION EXAMPLE ===
window() => true

// === LOGIC ===
buy  = crossover(sma(close, fastMA), sma(close, slowMA))         // buy when fastMA crosses over slowMA
sell = crossunder(sma(close, fastMA), sma(close, slowMA))        // sell when fastMA crosses under slowMA

// === EXECUTION ===
strategy.entry("L", strategy.long, when=window() and buy)        // buy long when "within window of time" AND crossover
strategy.close("L", when=window() and sell)                      // sell long when "within window of time" AND crossunder         

// === PLOTTING ===
plot(sma(close, fastMA), title = 'FastMA', color = color.aqua, linewidth = 2, style = plot.style_line)    // plot FastMA
plot(sma(close, slowMA), title = 'SlowMA', color = color.yellow, linewidth = 2, style = plot.style_line)  // plot SlowMA