
মাল্টিপল মুভিং এভারেজ ইন্টিগ্রেটেড স্ট্র্যাটেজি হল একটি খুব ব্যাপক এবং সর্বজনীন প্রযুক্তিগত বিশ্লেষণ কৌশল। এটি একাধিক সময়কালের মুভিং এভারেজকে একত্রিত করে যাতে বাজারের প্রবণতাগুলির সম্পূর্ণ অন্তর্দৃষ্টি পাওয়া যায়। এই কৌশলটি পরিষ্কার ক্রয় এবং বিক্রয় সংকেত তৈরি করে, যা সম্ভাব্য প্রবেশ এবং প্রস্থান পয়েন্টগুলি সনাক্ত করতে সহায়তা করে। এটি শক্তিশালী কাস্টমাইজযোগ্যতাও সরবরাহ করে, যা ব্যবহারকারীদের তাদের ট্রেডিং পছন্দ এবং লক্ষ্য অনুসারে মুভিং এভারেজের দৈর্ঘ্য সামঞ্জস্য করতে দেয়।
এই কৌশলটির কেন্দ্রবিন্দু হল বিভিন্ন দৈর্ঘ্যের সময়কালের চলমান গড়ের গণনা এবং ট্র্যাকিং, যার মধ্যে রয়েছে ১০, ২০, ৩০ এবং ১০০ দিনের চলমান গড়। এই চলমান গড়গুলি আজকের ক্লোজিং মূল্যের গড় হিসাবে নির্ধারিত হয় এবং অতীতের নির্দিষ্ট সময়কালের ক্লোজিং মূল্য (যেমন ১০ দিন, ২০ দিন ইত্যাদি) । উদাহরণস্বরূপ, ২০ দিনের চলমান গড় হল গত ২০ দিনের ক্লোজিং মূল্যের গড়।
যখন আজকের ক্লোজিং মূল্য এই সমস্ত চলমান গড়ের চেয়ে বেশি থাকে, তখন একটি কেনার সংকেত তৈরি হয়। যখন আজকের ক্লোজিং মূল্য এই সমস্ত চলমান গড়ের চেয়ে কম থাকে, তখন একটি বিক্রয় সংকেত তৈরি হয়। এইভাবে, যখন সমস্ত চক্রের চলমান গড় একই দিকে নির্দেশ করে তখনই সংকেত তৈরি হয়, যা অনেকগুলি গোলমাল ট্রেডিং সুযোগকে ফিল্টার করে এবং সংকেতকে আরও নির্ভরযোগ্য করে তোলে।
বিভিন্ন বাজারের পরিস্থিতির সাথে খাপ খাইয়ে নেওয়ার জন্য বহু সময়সীমার অন্তর্দৃষ্টি প্রদান করে
একাধিক নিশ্চিতকরণ, Noise ফিল্টার, সংকেত আরো নির্ভরযোগ্য
লেনদেনের নিয়ম পরিষ্কার, সহজে বোঝা যায় এবং কার্যকর করা যায়
উচ্চতর কাস্টমাইজযোগ্যতা, ব্যবহারকারী ব্যক্তিগত চাহিদা মেটাতে প্যারামিটারগুলি সামঞ্জস্য করতে পারেন
ঝুঁকি ব্যবস্থাপনার জন্য প্রারম্ভিক, স্টপ লস এবং স্টপ আউটের জন্য সুস্পষ্ট নির্দেশিকা প্রদান
যখন বাজার অস্থিরতার মধ্যে থাকে, তখন একাধিক চলমান গড় একে অপরের সাথে ক্রস করতে পারে, যার ফলে একটি অস্পষ্ট সংকেত তৈরি হয়। চলমান গড়ের চক্রের সংখ্যা এবং দৈর্ঘ্য সামঞ্জস্য করে ক্রসিংয়ের সম্ভাবনা হ্রাস করা যেতে পারে।
ভবিষ্যতে দামের একাধিক চলমান গড়ের বিরতি হওয়ার সম্ভাবনা কম, কিছু ব্যবসায়ের সুযোগ মিস করা হতে পারে। চলমান গড়ের সংখ্যা যথাযথভাবে হ্রাস করা যেতে পারে, বিরতির অসুবিধা হ্রাস করা যেতে পারে।
সংকেত বিলম্বিত হয় এবং মূল্যের বিপর্যয়ের আগে প্রবণতা ধরতে পারে না। অন্যান্য প্রারম্ভিক সূচক যেমন MACD এর সাথে মিলিত হয়ে প্রবণতা পরিবর্তনের বিচারকে উন্নত করতে পারে।
ট্রেডিং সংখ্যা কম হতে পারে, স্থিতিশীল লাভ অর্জন করা কঠিন। চলন্ত গড়ের দৈর্ঘ্য যথাযথভাবে সংক্ষিপ্ত করা যেতে পারে বা অন্যান্য কৌশল / সূচক সমন্বয়ে ব্যবহার করা যেতে পারে।
প্যারামিটার সমন্বয়ঃ সর্বোত্তম প্যারামিটার সমন্বয় খুঁজতে চলমান গড়ের সময়কালের সংখ্যা এবং দৈর্ঘ্য সামঞ্জস্য করুন। উদাহরণস্বরূপ, 5 দিনের, 10 দিনের এবং 20 দিনের চলমান গড়ের সমন্বয় যা পরীক্ষা করা যেতে পারে।
অন্যান্য সূচকগুলির সাথে মিলিতঃ MACD, RSI এবং অন্যান্য সূচকগুলির সমন্বয়ে ব্যবহার করা হয়, যা কৌশলটির স্থিতিশীলতা বাড়ায়। বিভিন্ন সূচকগুলি একে অপরের পরিপূরক হতে পারে।
কৌশল সমন্বয়ঃ অন্যান্য কৌশল যেমন ব্রেকআউট সিস্টেম, ট্রেন্ড ট্র্যাকিং সিস্টেমের সাথে সমন্বয় করে স্থিতিশীলতা বাড়ায়। বিভিন্ন কৌশল ঝুঁকি ছড়িয়ে দিতে পারে।
স্বয়ংক্রিয় অপ্টিমাইজেশানঃ অ্যালগরিদম ব্যবহার করে স্বয়ংক্রিয়ভাবে বিভিন্ন পরামিতি পরীক্ষা করে, যা প্রত্যাশিত সর্বোচ্চ প্যারামিটার সমন্বয় খুঁজে বের করে। মানুষের হস্তক্ষেপ হ্রাস, দক্ষতা বৃদ্ধি।
মাল্টিপল মুভিং এভারেজ ইন্টিগ্রেটেড স্ট্র্যাটেজি একটি খুব সম্পূর্ণ এবং শক্তিশালী কৌশলগত সরঞ্জাম। এটি একাধিক সময় স্কেল অন্তর্দৃষ্টি সরবরাহ করে, সংকেতগুলি নির্ভরযোগ্য, ব্যবহার করা সহজ এবং অত্যন্ত কাস্টমাইজযোগ্য। এটির কিছু সীমাবদ্ধতাও রয়েছে তবে প্যারামিটারগুলি সামঞ্জস্য করে এবং অন্যান্য মডেলের সাথে সংমিশ্রণ করে আরও জটিল বাজার পরিস্থিতিতে অভিযোজিত হতে পারে। এই কৌশলটি শেখার সরঞ্জাম হিসাবে প্রযুক্তিগত বিশ্লেষণের চিন্তাভাবনা তৈরি করতে সহায়তা করতে পারে, তবে এটি রিয়েল-ডিস্ক ট্রেডিংয়ের জন্যও উপলব্ধ। ব্যবহারকারীরা তাদের নিজস্ব প্রয়োজন অনুসারে এটি সামঞ্জস্য করতে পারেন এবং এটিকে বিশেষীকরণ করতে পারেন।
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Multiple Moving Average Strategy", overlay=true)
// Function to calculate moving average
get_ma(src, length) =>
ta.sma(src, length)
// Initialize moving average lengths
ma_length_10 = 10
ma_length_20 = 20
ma_length_30 = 30
ma_length_40 = 40
ma_length_50 = 50
ma_length_60 = 60
ma_length_70 = 70
ma_length_80 = 80
ma_length_90 = 90
ma_length_100 = 100
// Calculate 10-day, 20-day, 30-day, 40-day, 50-day, 60-day, 70-day, 80-day, 90-day, and 100-day moving averages
ma_10 = get_ma(close, ma_length_10)
ma_20 = get_ma(close, ma_length_20)
ma_30 = get_ma(close, ma_length_30)
ma_40 = get_ma(close, ma_length_40)
ma_50 = get_ma(close, ma_length_50)
ma_60 = get_ma(close, ma_length_60)
ma_70 = get_ma(close, ma_length_70)
ma_80 = get_ma(close, ma_length_80)
ma_90 = get_ma(close, ma_length_90)
ma_100 = get_ma(close, ma_length_100)
// Generate Buy/Sell signals for the 10 moving averages
buy_signal = close > ma_10
sell_signal = close < ma_10
// Add conditions for each additional moving average length
buy_signal := buy_signal and (close > get_ma(close, ma_length_20))
sell_signal := sell_signal and (close < get_ma(close, ma_length_20))
buy_signal := buy_signal and (close > get_ma(close, ma_length_30))
sell_signal := sell_signal and (close < get_ma(close, ma_length_30))
buy_signal := buy_signal and (close > get_ma(close, ma_length_40))
sell_signal := sell_signal and (close < get_ma(close, ma_length_40))
buy_signal := buy_signal and (close > get_ma(close, ma_length_50))
sell_signal := sell_signal and (close < get_ma(close, ma_length_50))
buy_signal := buy_signal and (close > get_ma(close, ma_length_60))
sell_signal := sell_signal and (close < get_ma(close, ma_length_60))
buy_signal := buy_signal and (close > get_ma(close, ma_length_70))
sell_signal := sell_signal and (close < get_ma(close, ma_length_70))
buy_signal := buy_signal and (close > get_ma(close, ma_length_80))
sell_signal := sell_signal and (close < get_ma(close, ma_length_80))
buy_signal := buy_signal and (close > get_ma(close, ma_length_90))
sell_signal := sell_signal and (close < get_ma(close, ma_length_90))
buy_signal := buy_signal and (close > get_ma(close, ma_length_100))
sell_signal := sell_signal and (close < get_ma(close, ma_length_100))
// Plot Buy/Sell signals on the chart
plotshape(buy_signal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(sell_signal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)
// Execute long buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.entry("Buy", strategy.long)
// Execute sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.close("Buy")
// Execute short sell order when all ten moving averages give a Sell signal
if (sell_signal)
strategy.entry("Sell", strategy.short)
// Execute buy order when all ten moving averages give a Buy signal
if (buy_signal)
strategy.close("Sell")
// Plot closing price and moving averages on the chart
plot(close, title="Close", color=color.blue)
plot(ma_10, title="MA 10", color=color.orange)
plot(ma_20, title="MA 20", color=color.purple)
plot(ma_30, title="MA 30", color=color.blue)
plot(ma_40, title="MA 40", color=color.red)
plot(ma_50, title="MA 50", color=color.green)
plot(ma_60, title="MA 60", color=color.yellow)
plot(ma_70, title="MA 70", color=color.fuchsia)
plot(ma_80, title="MA 80", color=color.gray)
plot(ma_90, title="MA 90", color=color.teal)
plot(ma_100, title="MA 100", color=color.maroon)