
ডায়নামিক মুভিং এভারেজ ক্রসওভার কম্বো স্ট্র্যাটেজি (Dynamic Moving Average Crossover Combo Strategy) হল একটি সমন্বিত ট্রেডিং কৌশল যা একাধিক প্রযুক্তিগত সূচক এবং বাজার পর্যায়ের সনাক্তকরণকে একত্রিত করে। এটি বাজারের তিনটি পর্যায়কে গতিশীলভাবে গণনা করে, দাম এবং দীর্ঘমেয়াদী মুভিং এভারেজের দূরত্ব এবং অস্থিরতার উপর ভিত্তি করে বাজারটির পরিবর্তনশীলতা নির্ধারণ করেঃ কম্পন, প্রবণতা এবং সারিবদ্ধকরণ। বিভিন্ন বাজার পর্যায়ে, কৌশলটি বিভিন্ন প্রবেশের নিয়মগুলি গ্রহণ করে এবং একই সাথে ইএমএ / এসএমএ ক্রস, এমএসিডি এবং বোলিংগার ব্যান্ডের মতো একাধিক সূচককে ক্রয় এবং বিক্রয় সংকেত দেয়।
এটিআর ব্যবহার করে গত ১৪ দিনের জন্য বাজারের দৈনিক অস্থিরতা গণনা করা হয়। তারপরে 100 দিনের সরল চলমান গড় ফিল্টার করে গড় অস্থিরতা পাওয়া যায়।
দামের তুলনায় ২০০ দিনের সরল চলমান গড়ের দূরত্ব গণনা করুন। যদি দূরত্বটি গড় অস্থিরতার ১.৫ গুণ বেশি হয় এবং দিকটি স্পষ্ট হয় তবে এটি একটি প্রবণতা হিসাবে বিচার করা হবে। যদি বর্তমান অস্থিরতা গড় অস্থিরতার ১.৫ গুণ বেশি হয় তবে এটি একটি ঝড়ের মতো আচরণ হিসাবে বিচার করা হবে।
দ্রুত ইএমএ চক্রটি 10 দিন এবং ধীর এসএমএ চক্রটি 30 দিন। যখন একটি দ্রুত ইএমএ একটি ধীর এসএমএ অতিক্রম করে, তখন একটি ক্রয় সংকেত তৈরি হয়।
১২, ২৬, ৯ প্যারামিটার MACD গণনা করুন। MACD কলামটি ইতিবাচক হয়ে গেলে ক্রয় সংকেত তৈরি হয়।
২০ দিনের মধ্যে স্ট্যান্ডার্ড ডিফেন্স চ্যানেল গণনা করুন। যদি চ্যানেলের প্রস্থ নিজের ২০ দিনের এসএমএর চেয়ে কম হয় তবে এটিকে সমন্বয়কালীন হিসাবে বিবেচনা করা হবে।
ঝড়ের সময়ঃ লাইন ক্রস বা MACD পিলারগুলি ধীরে ধীরে সংশোধন করা হয়, এবং Bollinger Bands এর মধ্যে দরপত্রের মূল্য বন্ধ হয়ে যায়।
প্রবণতা সময়ঃ দ্রুত এবং ধীরে লাইন ক্রস বা MACD পিলার পরিবর্তন সঠিক প্রবেশ আরো বেশী।
এই সময়কালে, নিম্ন ব্যান্ডে প্রবেশের জন্য আরও অনেক কিছু করা হয়।
নিম্নলিখিত শর্তগুলি পূরণ করে একটি খালি অবস্থান শুরু করুনঃ MACD এর ক্রমাগত দুটি K লাইন নেতিবাচক, এবং সমাপ্তির দাম ক্রমাগত দুই দিন কমেছে।
অন্যদিকে, যখন স্টক আরএসআই সুপার বাজার অঞ্চলে প্রবেশ করে, তখন এটি বাজারে আসে।
সংকলনঃ অন্যদিকে, যখন দামগুলি উপরের ব্যান্ডের চেয়ে কম থাকে তখন উপস্থিত হন।
এটি একটি স্মার্ট ট্রেডিং কৌশল যা বাজারের পরিস্থিতির বিচার করে এবং নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
এই পদ্ধতির মাধ্যমে, আমরা স্বতন্ত্র হস্তক্ষেপ কমাতে পারি।
মার্কেটের অবস্থার সাথে সামঞ্জস্য রেখে কৌশলগত প্যারামিটারগুলি আরও অভিযোজিত।
মাল্টি-ইনডিকেটর প্যাকেজিং, সংকেত নিশ্চিততা বৃদ্ধি
Bollinger Bands স্বয়ংক্রিয় ক্ষতি বন্ধ করে দেয়, ঝুঁকি হ্রাস করে।
“এটি একটি অদ্ভুত ঘটনা, কিন্তু আমি এটা বিশ্বাস করি।
ডায়নামিক স্টপ লস স্টপ লস, ট্রেন্ড ট্র্যাকিং লভ্যাংশ
প্রধান ঝুঁকিগুলো হলঃ
ভুল প্যারামিটার সেট করার ফলে কৌশলটি ব্যর্থ হতে পারে। প্যারামিটার সমন্বয়টি অপ্টিমাইজ করার পরামর্শ দেওয়া হয়েছে।
মডেলটি ব্যর্থ হওয়ার কারণে ঘটে যাওয়া একটি ঘটনা। সময়মত কৌশলগত আপডেট করার পরামর্শ দেওয়া হচ্ছে।
ট্রেডিং ফি সংকুচিত করে লাভের জন্য জায়গা। কম ফিযুক্ত ব্রোকারদের বেছে নেওয়ার পরামর্শ দেওয়া হচ্ছে।
মাল্টি-মেট্রিকাল প্যারিস কৌশলগত জটিলতা বাড়ায়। একটি মূল মেট্রিকাল বেছে নেওয়ার পরামর্শ দেওয়া হয়।
নিম্নলিখিত দিকগুলি থেকে আরও অনুকূলিতকরণ করা যায়ঃ
বাজার পরিবেশে বিচার করার জন্য মানদণ্ডের অপ্টিমাইজেশান এবং সঠিকতার উন্নতি করা।
মেশিন লার্নিং মডিউল যোগ করা হয়েছে যাতে প্যারামিটারগুলি স্বনির্ধারিত হতে পারে।
টেক্সট প্রসেসিং এর সাথে মিলিত করে মূল্যায়ন করা হয় যে কোন ঘটনার ঝুঁকি।
মাল্টি মার্কেট রিটার্নিং, সেরা সমন্বয় খুঁজে বের করা।
ট্রেইলিং স্টপ যুক্ত করুন।
ডায়নামিক মুভিং এভারেজ ক্রস-কম্পোজিশন কৌশলটি একটি মাল্টি-ইনডেক্সার স্মার্ট ট্রেডিং কৌশল। এটি বাজার পরিবেশের সমন্বয়কারী প্যারামিটারগুলিকে একত্রিত করতে সক্ষম, শর্তাধীন বিচারমূলক ব্যবসায়ের জন্য। এটির শক্তিশালী অভিযোজনযোগ্যতা এবং নিশ্চিততা রয়েছে। তবে প্যারামিটার সেটিং এবং নতুন মডিউলগুলিকে কৌশলগত জটিলতা বাড়ানোর জন্য সতর্কতা অবলম্বন করা দরকার। সামগ্রিকভাবে, এটি একটি শক্তিশালী কার্যকারিতাযুক্ত পরিমাণগত কৌশলগত ধারণা।
/*backtest
start: 2024-01-28 00:00:00
end: 2024-02-04 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Improved Custom Strategy", shorttitle="ICS", overlay=true)
// Volatility
volatility = ta.atr(14)
avg_volatility_sma = ta.sma(volatility, 100)
avg_volatility = na(avg_volatility_sma) ? 0 : avg_volatility_sma
// Market Phase detection
long_term_ma = ta.sma(close, 200)
distance_from_long_term_ma = close - long_term_ma
var bool isTrending = math.abs(distance_from_long_term_ma) > 1.5 * avg_volatility and not na(distance_from_long_term_ma)
var bool isVolatile = volatility > 1.5 * avg_volatility
// EMA/MA Crossover
fast_length = 10
slow_length = 30
fast_ma = ta.ema(close, fast_length)
slow_ma = ta.sma(close, slow_length)
crossover_signal = ta.crossover(fast_ma, slow_ma)
// MACD
[macdLine, signalLine, macdHistogram] = ta.macd(close, 12, 26, 9)
macd_signal = crossover_signal or (macdHistogram > 0)
// Bollinger Bands
source = close
basis = ta.sma(source, 20)
upper = basis + 2 * ta.stdev(source, 20)
lower = basis - 2 * ta.stdev(source, 20)
isConsolidating = (upper - lower) < ta.sma(upper - lower, 20)
// StockRSI
length = 14
K = 100 * (close - ta.lowest(close, length)) / (ta.highest(close, length) - ta.lowest(close, length))
D = ta.sma(K, 3)
overbought = 75
oversold = 25
var float potential_SL = na
var float potential_TP = na
var bool buy_condition = na
var bool sell_condition = na
// Buy and Sell Control Variables
var bool hasBought = false
var bool hasSold = true
// Previous values tracking
prev_macdHistogram = macdHistogram[1]
prev_close = close[1]
// Modify sell_condition with the new criteria
if isVolatile
buy_condition := not hasBought and crossover_signal or macd_signal and (close > lower) and (close < upper)
sell_condition := hasBought and (macdHistogram < 0 and prev_macdHistogram < 0) and (close < prev_close and prev_close < close[2])
potential_SL := close - 0.5 * volatility
potential_TP := close + volatility
if isTrending
buy_condition := not hasBought and crossover_signal or macd_signal
sell_condition := hasBought and (macdHistogram < 0 and prev_macdHistogram < 0) and (close < prev_close and prev_close < close[2])
potential_SL := close - volatility
potential_TP := close + 2 * volatility
if isConsolidating
buy_condition := not hasBought and crossover_signal and (close > lower)
sell_condition := hasBought and (close < upper) and (macdHistogram < 0 and prev_macdHistogram < 0) and (close < prev_close and prev_close < close[2])
potential_SL := close - 0.5 * volatility
potential_TP := close + volatility
// Update the hasBought and hasSold flags
if buy_condition
hasBought := true
hasSold := false
if sell_condition
hasBought := false
hasSold := true
// Strategy Entry and Exit
if buy_condition
strategy.entry("BUY", strategy.long, stop=potential_SL, limit=potential_TP)
strategy.exit("SELL_TS", from_entry="BUY", trail_price=close, trail_offset=close * 0.05)
if sell_condition
strategy.close("BUY")
// Visualization
plotshape(series=buy_condition, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=sell_condition, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)
plot(long_term_ma, color=color.gray, title="200-Day MA", linewidth=1)
plot(potential_SL, title="SL Level", color=color.red, linewidth=1, style=plot.style_linebr)
plot(potential_TP, title="TP Level", color=color.green, linewidth=1, style=plot.style_linebr)
bgcolor(isVolatile ? color.new(color.purple, 90) : isTrending ? color.new(color.blue, 90) : isConsolidating ? color.new(color.orange, 90) : na)