কাস্টমাইজড ব্যাকটেস্ট শুরুর সময় কৌশল
সারসংক্ষেপ
এই কৌশলের উদ্দেশ্য হল ব্যবহারকারীদের তাদের ব্যাকটেস্টের শুরুর সময় কাস্টমাইজ করার অনুমতি দেওয়া, যার ফলে আরও নমনীয় এবং কাস্টমাইজড ব্যাকটেস্ট সম্ভব হয়।
কৌশলের নীতি
কৌশলটি পাইন স্ক্রিপ্টের time এবং timestamp ফাংশন ব্যবহার করে কাস্টমাইজড ব্যাকটেস্ট শুরুর সময় তৈরি করে।
প্রথমে, এটি ব্যবহারকারীকে সেটিংসে ব্যাকটেস্টের শুরুর বছর, মাস, দিন, ঘন্টা এবং মিনিট কাস্টমাইজ করে ইনপুট করতে দেয়। তারপর, এটি এই ইনপুটগুলি ব্যবহার করে একটি টাইমস্ট্যাম্প তৈরি করে এবং এটি startTime ভেরিয়েবলে সংরক্ষণ করে।
কৌশলের শর্ত যাচাইয়ের সময়, এটি একটি নতুন startTime শর্ত যোগ করে। কৌশলটি তখনই শুরু হবে যখন বর্তমান সময় startTime এর সমান বা তার বেশি হবে।
উদাহরণস্বরূপ:
pine
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition and startTime)
strategy.entry("My Long Entry Id", strategy.long)
এইভাবে কাস্টমাইজড ব্যাকটেস্ট শুরুর সময় তৈরি করা যায়। ব্যবহারকারীরা প্রয়োজন অনুযায়ী ব্যাকটেস্টের শুরুর সময় নমনীয়ভাবে কনফিগার করতে পারেন, শুধুমাত্র হার্ডকোডেড সময়ের মধ্যে সীমাবদ্ধ না থেকে।
সুবিধা বিশ্লেষণ
এই কাস্টমাইজড ব্যাকটেস্ট শুরুর সময়ের কৌশলের নিম্নলিখিত সুবিধাগুলি রয়েছে:
-
আরও নমনীয়: ব্যবহারকারীরা সম্পূর্ণ নিজের মতো করে ব্যাকটেস্টের শুরুর সময় নির্ধারণ করতে পারেন, কোনো নির্দিষ্ট সময় পয়েন্টে সীমাবদ্ধ নন।
-
আরও বাস্তবসম্মত: ব্যাকটেস্টের শুরুর সময় কৌশলটি প্রকৃতপক্ষে চালানোর সময় সেট করা যায়, যার ফলে ব্যাকটেস্ট বাস্তব বাজারের অবস্থার আরও কাছাকাছি হয়।
-
ইভেন্ট-চালিত ব্যাকটেস্টের জন্য সুবিধাজনক: কোনো নির্দিষ্ট ইভেন্টের ঘটনার সময় অনুযায়ী শুরুর সময় সেট করা যায়, যার ফলে নির্দিষ্ট ইভেন্টের জন্য ব্যাকটেস্ট করা যায়।
-
শর্ত সমন্বয়ের জন্য সহজ: ব্যাকটেস্টের শুরুর শর্ত খুব সহজেই সমন্বয় করা যায়, যার ফলে বিভিন্ন পর্যায়ের জন্য লক্ষ্যভিত্তিক ব্যাকটেস্ট করা যায়।
-
পুনরাবৃত্তিযোগ্য এবং নির্ভরযোগ্য: ব্যাকটেস্টের শুরুর সময় প্যারামিটারাইজ করা হয়, যা পুনরাবৃত্তি করে নির্ভরযোগ্য ব্যাকটেস্ট ফলাফল পাওয়া যায়।
ঝুঁকি বিশ্লেষণ
কাস্টমাইজড ব্যাকটেস্ট শুরুর সময় ব্যবহার করেও কিছু ঝুঁকি রয়েছে:
-
ব্যাকটেস্ট ফলাফল শুরুর সময়ের উপর নির্ভরশীল: ভিন্ন ভিন্ন শুরুর সময়ের কারণে ব্যাকটেস্ট ফলাফলে বড় পার্থক্য আসতে পারে।
-
শুরুর সময় সাবধানে নির্বাচন করা প্রয়োজন: অযৌক্তিক শুরুর সময় ব্যাকটেস্টকে বিকৃত করে দিতে পারে, যা প্রকৃত পরিস্থিতি প্রতিফলিত করতে ব্যর্থ হয়।
-
কার্ভ ফিটিংয়ের ঝুঁকি বাড়ায়: শুরুর সময় সামঞ্জস্য করে ইতিহাসের তথ্যের সাথে মানানসই করা সহজ, ফলে ওভারফিটিংয়ের ঝুঁকি তৈরি হয়।
-
ব্যাকটেস্ট ফলাফলের তুলনীয়তা হ্রাস পায়: এই কৌশলের ব্যাকটেস্ট ফলাফল নির্দিষ্ট শুরুর সময়ের ব্যাকটেস্ট ফলাফলের সাথে খুব একটা তুলনীয় নয়।
সমাধানের উপায়:
-
একাধিক বার ব্যাকটেস্ট চালিয়ে শুরুর সময় পরিবর্তনের ফলাফলের প্রভাব মূল্যায়ন করুন।
-
বড় ইভেন্টের ঘটনার সময়কে শুরুর সময় হিসেবে বেছে নিন, যাতে ব্যাকটেস্ট বিকৃতি কম হয়।
-
শুরুর সময় সাবধানে সমন্বয় করুন, ইতিহাসের তথ্যের সাথে অতিরিক্ত ফিটিং এড়িয়ে চলুন।
-
একটি নির্দিষ্ট শুরুর সময়ের ব্যাকটেস্ট ফলাফল বেসলাইন হিসেবে সংরক্ষণ করুন এবং কাস্টমাইজড ব্যাকটেস্টের সাথে তুলনা করুন।
অপ্টিমাইজেশনের দিকনির্দেশনা
এই কাস্টমাইজড ব্যাকটেস্ট শুরুর সময়ের কৌশলটি নিম্নলিখিত দিক থেকে অপ্টিমাইজ করা যেতে পারে:
-
শুরু এবং শেষের সময় কাস্টমাইজেশন সমর্থন করুন, সম্পূর্ণ ব্যাকটেস্ট সময় উইন্ডোর নমনীয় কনফিগারেশন সক্ষম করুন।
-
একাধিক সময় মোড সমর্থন করুন: নির্দিষ্ট তারিখ, আপেক্ষিক তারিখ, ইভেন্ট-চালিত ইত্যাদি, যাতে ব্যাকটেস্ট সময় কনফিগারেশন আরও স্মার্ট এবং সুবিধাজনক হয়।
-
গ্রাফিক্যাল কনফিগারেশন ইন্টারফেস সমর্থন করুন, যাতে সময় প্যারামিটার সেটিং আরও স্বজ্ঞাত হয়।
-
বিভিন্ন সময় গ্র্যানুলারিটি কনফিগারেশন সমর্থন করুন: বছর, মাস, দিন, ঘন্টা, মিনিট, সেকেন্ড ইত্যাদি।
-
ব্যাকটেস্ট সময় কনফিগারেশন রেকর্ড করুন, যাতে ব্যাকটেস্ট ফলাফল পুনরুৎপাদনযোগ্য, ট্রেসযোগ্য এবং তুলনীয় হয়।
-
অনুপযুক্ত সময় কনফিগারেশনের জন্য যাচাইযোগ্যতা যোগ করুন, যাতে অযৌক্তিক সময় কনফিগারেশন ব্যাকটেস্টের গুণমানকে প্রভাবিত না করে।
-
শুরুর সময় বাঁধাই ফিচার প্রদান করুন, এক ক্লিকে একাধিক কৌশলে শুরুর সময় সিঙ্ক্রোনাইজ এবং কপি করুন।
সারসংক্ষেপ
এই কৌশলটি কাস্টমাইজড এবং নমনীয় ব্যাকটেস্ট শুরুর সময় কনফিগারেশন বাস্তবায়ন করে, যা ব্যাকটেস্টের সীমাবদ্ধতা কমাতে পারে এবং এটিকে বাস্তব ট্রেডিংয়ের কাছাকাছি নিয়ে আসে। তবে, শুরুর সময়ের উপর ব্যাকটেস্ট ফলাফলের নির্ভরশীলতা সম্পর্কেও সতর্ক থাকতে হবে এবং একাধিক ব্যাকটেস্ট, ইভেন্ট-চালিত পদ্ধতি ইত্যাদি গ্রহণ করে ব্যাকটেস্ট বিকৃতি কমানো উচিত। এই কৌশলটির আরও অনেক অপ্টিমাইজেশনের দিক রয়েছে, ভবিষ্যতে আরও স্মার্ট এবং সুবিধাজনক ব্যাকটেস্ট সময় কনফিগারেশন আশা করা যায়।
/*backtest
start: 2022-09-19 00:00:00
end: 2023-09-25 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("C320up Strategy Tester Start Time", overlay = true)
// Copy and paste below into your strategy
// Strategy Tester Start Time- 1
