
এই কৌশলটির কেন্দ্রীয় ধারণা হল একটি কাঠামো বাস্তবায়ন করা যা নমনীয়ভাবে রিটার্নের সময়সীমা নির্বাচন করতে পারে, যাতে ব্যবহারকারীরা বিভিন্ন প্রয়োজন অনুসারে স্বয়ংক্রিয়ভাবে বা ম্যানুয়ালি রিটার্নের শুরু সময় সেট করতে পারে।
কৌশলটি চারটি তারিখের পরিসীমা নির্বাচন করেঃ সমস্ত ইতিহাস, সর্বশেষ দিন, সর্বশেষ সপ্তাহ বা ম্যানুয়ালি তারিখের পরিসীমা। কৌশলটি চয়ন করা তারিখের পরিসীমা অনুসারে গতিশীলভাবে প্রতিক্রিয়া উইন্ডো সেট করে এবং ট্রেডিং লজিকটি অপরিবর্তিত থাকে যাতে বিভিন্ন সময় উইন্ডোতে কৌশলটির কার্যকারিতার পার্থক্য তুলনা করা যায়।
এই কৌশলটি পুনরাবৃত্তি তারিখের পরিসীমা নির্বাচন মডিউল এবং ডাবল এমএ ট্রেডিং কৌশল মডিউল দ্বারা গঠিত।
এই কৌশলটি একটি সর্বজনীন রিটার্নিং তারিখের পরিসীমা ফ্রেমওয়ার্ক হিসাবে ব্যবহার করা হয়। এর সুবিধা হল এটি নমনীয় এবং কাস্টমাইজযোগ্য, যা ব্যবহারকারীর বিভিন্ন পরীক্ষার চাহিদা পূরণ করতে পারে। সহজ এবং কার্যকর ডাবল এমএ ট্রেডিং লজিকের সাথে, কৌশলটি দ্রুত যাচাই এবং তুলনা করা যায়। ফিল্টার, স্টপ লস লজিক ইত্যাদি যুক্ত করে পরবর্তীকালে অপ্টিমাইজ করা যেতে পারে, যা কৌশলটিকে রিয়েল-টাইম প্রয়োগের এক ধাপ এগিয়ে নিয়ে যায়। সামগ্রিকভাবে, কৌশলটির কাঠামোটি খুব ভাল বিস্তারযোগ্যতা এবং রেফারেন্স মান রয়েছে।
/*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