
এই কৌশলটি মৌসুমী প্রভাবের উপর ভিত্তি করে একটি বিপরীত ট্রেডিং কৌশল। এটি একটি নির্দিষ্ট প্রবেশের মাসে একটি অবস্থান স্থাপন করে এবং মৌসুমী প্রভাবের কারণে মূল্য বিপরীতকরণকে ধরার জন্য একটি মাস ছেড়ে যায়।
এই কৌশলটির কেন্দ্রীয় যুক্তি হল ব্যবহারকারীর পছন্দসই প্রবেশের মাস এবং প্রস্থান মাসের উপর ভিত্তি করে মৌসুমী অবস্থান তৈরি করা। বিশেষত, যদি বর্তমান মাস প্রবেশের মাস এবং কোনও অবস্থান তৈরি না হয় তবে একটি মাল্টি-হেড বা শূন্য-হেড দিকনির্দেশে বাজারে প্রবেশ করুন। যদি অবস্থানটি প্রতিষ্ঠিত হয় এবং বর্তমান মাসটি প্রস্থান মাসের সমান হয় তবে পজিশনটি খালি করুন।
উদাহরণস্বরূপ, যদি অক্টোবরে প্রবেশ করা হয় এবং জানুয়ারিতে চলে যায়। তাহলে প্রতি বছর অক্টোবরে, যদি কোনও পজিশন না থাকে তবে পল্টি হেড বা খালি হেডের দিকনির্দেশ অনুসারে একটি নতুন অবস্থান তৈরি করা হয়। যদি ইতিমধ্যে পজিশন থাকে তবে প্রতি বছর জানুয়ারিতে পজিশনটি সমতল করা হয়। এই যুক্তির উপর নির্ভর করে, মৌসুমী প্রভাবের কারণে মূল্যের বিপরীতকরণ ধরা যেতে পারে।
এটি লক্ষ করা উচিত যে এই কৌশলটি প্রতি লেনদেনের জন্য 25% ঝুঁকিপূর্ণ তহবিলকে ডিফল্ট করে এবং ০.৫% প্রিমিয়াম হিসাবে গণনা করে। এটি চূড়ান্ত উপার্জনকে কিছুটা প্রভাবিত করবে।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল মৌসুমী প্রভাব দ্বারা সৃষ্ট বাজার বিপর্যয়কে কাজে লাগানো। অনেক পণ্য ও আর্থিক বাজারে আরও স্পষ্ট মৌসুমী মূল্যের ওঠানামা রয়েছে। উপযুক্ত প্রবেশাধিকার এবং প্রস্থান সময় নির্বাচিত হলে, এই ধরনের মৌসুমী প্রভাব দ্বারা সৃষ্ট বিপর্যয়ের সুযোগগুলি কার্যকরভাবে ধরা যায়।
উপরন্তু, কৌশলটি খুব সহজ, সহজেই বোঝা যায় এবং বাস্তবায়ন করা যায়, যা পরিমাণগত ট্রেডিংয়ের জন্য উপযুক্ত। এটি কেবলমাত্র দুটি প্যারামিটারের উপর নির্ভর করে, কৌশলটি অপ্টিমাইজ করার অসুবিধা হ্রাস করে।
যদিও এই কৌশলটি উল্লেখযোগ্যভাবে কার্যকর হয়েছে, তবুও কিছু ঝুঁকি রয়েছে। প্রথমত, অপ্রয়োজনীয় প্রবেশ এবং প্রস্থানের সময়গুলি মূল্যের বিপর্যয়কে ধরতে না পারার ফলে ক্ষতি হতে পারে; দ্বিতীয়ত, বাজারের পরিবেশের পরিবর্তনগুলি মৌসুমী প্রভাবকে দুর্বল করতে পারে; এবং অবশেষে, ডিফল্ট স্টপ লজিকটি দুর্বল এবং একক ক্ষতির কার্যকর নিয়ন্ত্রণ করতে পারে না।
ঝুঁকি কমানোর জন্য, আপনি বাজারে প্রবেশ এবং বেরিয়ে যাওয়ার সময়কে অনুকূলিতকরণের বিকল্পগুলি বিবেচনা করতে পারেন, বাজার পরিবেশের বিষয়ে আরও বিশ্লেষণের সাথে যুক্ত করুন এবং ঝুঁকি নিয়ন্ত্রণের জন্য স্টপ লস সেট করুন। অবশ্যই, কোনও ট্রেডিং কৌশল বাজার ঝুঁকিকে পুরোপুরি এড়াতে পারে না এবং ব্যবসায়ীদের সতর্কতা অবলম্বন করা দরকার।
এই কৌশলটির আরও অনেক অপ্টিমাইজেশনের জায়গা রয়েছে। প্রথমত, স্টপ লজিক প্রবর্তন করা যেতে পারে, যুক্তিসঙ্গত স্টপ প্রস্থ সেট করা যেতে পারে। দ্বিতীয়ত, আরও বিভিন্ন ইন-ওফ-ওয়ে পোর্টফোলিও পরীক্ষা করা যেতে পারে, সর্বোত্তম প্যারামিটারগুলি সন্ধান করা যেতে পারে। তারপরে, পরিস্থিতি বিচার করতে এবং প্রতিকূল পরিবেশে লেনদেন এড়াতে আরও অনেক কারণ সংযুক্ত করা যেতে পারে। অবশেষে, সূচক ভারসাম্যযুক্ত অ্যালগরিদম প্রবর্তন করা, পজিশন স্কেল সামঞ্জস্য করা, লাভের সময় অবস্থান বাড়ানো এবং ক্ষতির সময় অবস্থান হ্রাস করা।
উপরের কয়েকটি পয়েন্টের অপ্টিমাইজেশনের মাধ্যমে, কৌশলটির স্থায়িত্ব আরও বাড়ানো এবং কৌশলটির ট্র্যাকিংয়ের দক্ষতা বাড়ানো যেতে পারে। অবশ্যই, কোনও অপ্টিমাইজেশনের কঠোর প্রত্যাবর্তন যাচাইয়ের প্রয়োজন, অত্যধিক অপ্টিমাইজেশন এড়ানো উচিত।
এই মৌসুমী বিপরীতকরণটি সামগ্রিকভাবে ক্রস-মেয়াদ ট্রেডিং কৌশলটির জন্য খুব কার্যকর। এটি উপযুক্ত প্রবেশ এবং প্রস্থান মাসগুলি নির্বাচন করে, মৌসুমী প্রভাব দ্বারা সৃষ্ট মূল্য বিপরীতকরণকে কার্যকরভাবে ক্যাপচার করে, যার ফলে লাভ হয়। একই সাথে, কৌশলটি খুব সহজ, সহজেই বোঝা এবং বাস্তবায়ন করা যায়, যা পরিমাণগত ব্যবসায়ের জন্য উপযুক্ত। অবশ্যই, ব্যবসায়ীদের নির্দিষ্ট বাজারের ঝুঁকির বিষয়েও সচেতন হওয়া দরকার এবং লক্ষ্যবস্তুভাবে কৌশলটি ক্রমাগত অপ্টিমাইজ করা দরকার যাতে এটি বাজারের পরিবর্তিত পরিবেশের সাথে খাপ খাইয়ে নিতে পারে।
/*backtest
start: 2023-01-24 00:00:00
end: 2024-01-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EmpiricalFX
//@version=4
strategy("Seasonality Benchmark ","Season",overlay=false,default_qty_type=strategy.percent_of_equity,
default_qty_value=25,initial_capital=100000,currency="USD",
commission_type=strategy.commission.percent,commission_value=0.5)
input_entry_direction = input("Long","Position Type",options=["Long","Short"])
input_entry_month = input("Oct","Entry Month",options=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"])
input_exit_month = input("Jan","Entry Month",options=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"])
//Convert three character month string to integer
month_str_to_int(m)=>
ret = m == "Jan" ? 1 :
m == "Feb" ? 2 :
m == "Mar" ? 3 :
m == "Apr" ? 4 :
m == "May" ? 5 :
m == "Jun" ? 6 :
m == "Jul" ? 7 :
m == "Aug" ? 8 :
m == "Sep" ? 9 :
m == "Oct" ? 10 :
m == "Nov" ? 11 :
m == "Dec" ? 12 : -1
is_long = input_entry_direction == "Long" ? true : false
entry = month_str_to_int(input_entry_month)
exit = month_str_to_int(input_exit_month)
var balance = strategy.equity
//Entering a position is conditional on:
//1. No currently active trades
//2. Input entry month matches current month
if(strategy.opentrades == 0 and entry == month)
strategy.entry("Swing",is_long)
//Exiting a position is conditional on:
//1. Must have open trade
//2. Input exit month matches current month
if(strategy.opentrades > 0 and exit == month)
strategy.close("Swing")
//Update the balance every time a trade is exited
if(change(strategy.closedtrades)>0)
balance := strategy.equity
plot(strategy.equity,"Equity",color.orange)
plot(balance,"Balance",color.red)