
এই কৌশলটি একটি চলমান গড়-ভিত্তিক গতিশীল কৌশল। এটি বিভিন্ন সময়কালের সহজ চলমান গড় গণনা করে এবং তাদের ক্রস পরিস্থিতির তুলনা করে একটি ট্রেডিং সংকেত উত্পন্ন করে। বিশেষত, যখন একটি স্বল্পমেয়াদী চলমান গড় দীর্ঘমেয়াদী চলমান গড় অতিক্রম করে তখন একটি কেনার সংকেত উত্পন্ন হয়; যখন একটি স্বল্পমেয়াদী চলমান গড় দীর্ঘমেয়াদী চলমান গড় অতিক্রম করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
এই কৌশলটির মূল যুক্তিটি গতিশীলতার প্রভাবের উপর ভিত্তি করে, অর্থাৎ শেয়ারের দামের প্রবণতার ধারাবাহিকতা। চলমান গড়গুলি কার্যকরভাবে শেয়ারের দামের পরিবর্তনের প্রবণতা প্রতিফলিত করতে পারে, যখন স্বল্পমেয়াদী চলমান গড়ের উপরে দীর্ঘমেয়াদী চলমান গড়টি অতিক্রম করে, তখন শেয়ারের দাম একটি উচ্চতর প্রবণতা শুরু করে; বিপরীতভাবে, যখন স্বল্পমেয়াদী চলমান গড়ের নীচে দীর্ঘমেয়াদী চলমান গড়টি অতিক্রম করে, তখন শেয়ারের দাম একটি নিম্নমুখী প্রবণতা শুরু করে। এই কৌশলটি এই নীতি অনুসারে একটি লেনদেনের সংকেত তৈরি করে।
বিশেষত, কৌশলটি একটি 13 দিনের সরল চলমান গড় এবং একটি 34 দিনের সরল চলমান গড় সংজ্ঞায়িত করে। প্রতিদিনের বন্ধের দাম গণনা করার পরে, এই দুটি চলমান গড়ের মানগুলির আকারের সাথে তুলনা করুন। যদি 13 তম লাইনে 34 তম লাইনটি অতিক্রম করে তবে একটি ক্রয় সংকেত তৈরি করে, যা দেখায় যে স্টক মূল্য একটি উচ্চতর প্রবণতাতে প্রবেশ করেছে এবং একটি মাল্টি-হেড পজিশন স্থাপন করা উচিত; যদি 13 তম লাইনের নীচে 34 তম লাইনটি অতিক্রম করে তবে একটি বিক্রয় সংকেত তৈরি করে, যা দেখায় যে স্টক মূল্য একটি নিম্নমুখী প্রবণতাতে প্রবেশ করেছে এবং এটি খালি করা উচিত।
এই কৌশলটির সবচেয়ে বড় সুবিধা হ’ল এটি সহজেই বোঝা যায় এবং বাস্তবায়ন করা সহজ। চলমান গড়টি অন্যতম প্রাথমিক এবং সর্বাধিক ব্যবহৃত প্রযুক্তিগত সূচক, এর নীতিগুলি সহজ, বোঝা এবং প্রয়োগ করা সহজ। একই সাথে, চলমান গড়ের সংমিশ্রণ সংকেত দীর্ঘমেয়াদী অনুশীলনের পরে কার্যকর প্রমাণিত হয়েছে।
এছাড়াও, এই কৌশলটির প্যারামিটারগুলি নমনীয়ভাবে সেট করা হয়েছে, যা বিভিন্ন জাত এবং বাজারের পরিস্থিতি অনুসারে সামঞ্জস্য করা যায়। উদাহরণস্বরূপ, চলমান গড়ের পর্যায়ের প্যারামিটারগুলি পরিবর্তন করা যেতে পারে, যার ফলে কৌশলটির সংবেদনশীলতা সামঞ্জস্য করা যায়। এটি কৌশলটির অপ্টিমাইজেশন এবং সামঞ্জস্যের জন্য জায়গা সরবরাহ করে।
এই কৌশলটির সবচেয়ে বড় ঝুঁকি হ’ল আরও অনেকগুলি ভুল সংকেত এবং বাজারের অস্থিরতার মধ্যে সেট করা যেতে পারে। যখন দামের ব্যাপক অস্থিরতা হয়, তখন মুভিং এভারেজগুলি ঘন ঘন ক্রস হতে পারে, যার ফলে ভুল সংকেত দেখা দেয়। এই ক্ষেত্রে মুভিং এভারেজ চক্রের প্যারামিটারগুলি সামঞ্জস্য করতে হবে এবং কিছু শব্দ ফিল্টার করতে হবে।
অন্যদিকে, যখন বাজারে বড় ধরনের বিপর্যয় দেখা দেয়, তখন কৌশলটির স্টপ লস পয়েন্টটি অতিক্রম করা যেতে পারে, যার ফলে বৃহত্তর ক্ষতির সৃষ্টি হয়। এটি স্টপ লস কৌশলটি অপ্টিমাইজ করার প্রয়োজন এবং যথাযথভাবে স্টপ লস স্তরটি শিথিল করা প্রয়োজন।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে উন্নত করা যেতে পারেঃ
বিভিন্ন জাতের এবং বাজারের অবস্থার অধীনে প্যারামিটারগুলির সর্বোত্তম সমন্বয় খুঁজে পেতে চলমান গড়ের চক্রীয় প্যারামিটারগুলিকে অনুকূলিত করুন
অন্যান্য প্রযুক্তিগত সূচক যেমন MACD, KD ইত্যাদি ফিল্টার যুক্ত করুন, যাতে কম্পনের সময় ভুল সংকেত না হয়
অপ্টিমাইজেশন এবং গতিশীলভাবে স্টপ কৌশলগুলিকে সামঞ্জস্য করে যাতে স্টপ ক্ষতির আশ্বাস দেওয়া যায় এবং স্টপ পয়েন্টগুলি খুব কাছাকাছি না যায়, যার ফলে এটি অতিক্রম করার সম্ভাবনা বেশি থাকে
একক লেনদেনের ঝুঁকি নিয়ন্ত্রণের জন্য পজিশন ম্যানেজমেন্ট ব্যবস্থা যেমন ফিক্সড ইনপুট, পজিশন অনুপাত ইত্যাদি বৃদ্ধি করা
এই কৌশলটি একটি খুব ক্লাসিক চলমান গড় ক্রস-স্ট্রেটেজি, যা স্বল্প ও দীর্ঘমেয়াদী চলমান গড়ের সম্পর্ক গণনা করে এবং তুলনা করে ক্রয় এবং বিক্রয় সংকেত উত্পন্ন করে। এই কৌশলটির সুবিধাগুলি সহজেই বোঝা যায়, প্যারামিটারগুলি নমনীয় এবং শিক্ষানবিসদের জন্য উপযুক্ত; অসুবিধাগুলি হ’ল সংকেতগুলি যথেষ্ট স্থিতিশীল নাও হতে পারে এবং অস্থির বাজারে সহজেই পরা যায়। যথাযথ অপ্টিমাইজেশনের সাথে এটি এখনও একটি খুব কার্যকর পরিমাণগত কৌশল হতে পারে।
/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// TODO: update strategy name
strategy("{STRATEGY NAME}", overlay=true)
// === TA LOGIC ===
//
//
// TODO: PUT YOUR TA LOGIC HERE
LONG_SIGNAL_BOOLEAN = crossover(sma(close, 13), sma(close, 34))
SHORT_SIGNAL_BOOLEAN = crossunder(sma(close, 12), sma(close, 21))
// === INPUT BACKTEST DATE RANGE ===
enableShorts = input(false, title="Enable short entries?")
FromMonth = input(defval = 5, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth = input(defval = 9, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2018, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// === STRATEGY BUY / SELL ENTRIES ===
// TODO: update the placeholder LONG_SIGNAL_BOOLEAN and SHORT_SIGNAL_BOOLEAN to signal
// long and short entries
buy() => window() and LONG_SIGNAL_BOOLEAN
sell() => window() and SHORT_SIGNAL_BOOLEAN
if buy()
strategy.entry("Long", strategy.long, comment="Long")
if sell()
if (enableShorts)
strategy.entry("Short", strategy.short, comment="Short")
else
strategy.close("Long")
// === BACKTESTING: EXIT strategy ===
sl_inp = input(10, title='Stop Loss %', type=float)/100
tp_inp = input(30, title='Take Profit %', type=float)/100
stop_level = strategy.position_avg_price * (1 - sl_inp)
take_level = strategy.position_avg_price * (1 + tp_inp)
strategy.exit("Stop Loss/Profit", "Long", stop=stop_level, limit=take_level)