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

লেখক:চাওঝাং, তারিখঃ 2024-01-05 12:12:10
ট্যাগঃ

img

সারসংক্ষেপ

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

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

কৌশল নীতি

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

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

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

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

  1. ফাস্ট এমএ পিরিয়ড হল fastMA, ডিফল্ট ১৪; ধীর এমএ পিরিয়ড হল slowMA, ডিফল্ট ২৮।
  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


আরো