ডায়নামিক মুভিং এভারেজ ক্রসওভার কম্বো কৌশল একটি সমন্বিত ট্রেডিং কৌশল যা একাধিক প্রযুক্তিগত সূচক এবং বাজারের অবস্থার সনাক্তকরণকে একীভূত করে। এটি গতিশীলভাবে বাজারের অস্থিরতা গণনা করে এবং দীর্ঘমেয়াদী চলমান গড় এবং অস্থিরতার থেকে মূল্য দূরত্বের ভিত্তিতে তিনটি বাজারের পর্যায়ে নির্ধারণ করেঃ অস্থির, প্রবণতা এবং একীকরণ। বিভিন্ন বাজারের অবস্থার অধীনে, কৌশলটি বিভিন্ন প্রবেশ এবং প্রস্থান নিয়ম গ্রহণ করে এবং ইএমএ / এসএমএ ক্রসওভার, এমএসিডি এবং বলিংজার ব্যান্ডের মতো সূচকগুলির সংমিশ্রণের সাথে কিনুন এবং বিক্রয় সংকেত তৈরি করে।
গত ১৪ দিনের বাজারের অস্থিরতা পরিমাপ করতে ATR সূচক ব্যবহার করুন। তারপর গড় অস্থিরতা পেতে ১০০ দিনের SMA ফিল্টার প্রয়োগ করুন।
মূল্য এবং 200 দিনের এসএমএর মধ্যে দূরত্ব গণনা করুন। যদি নিখুঁত দূরত্ব একটি পরিষ্কার দিক সহ গড় অস্থিরতার 1.5 গুণের বেশি হয় তবে এটি একটি প্রবণতা বাজার হিসাবে নির্ধারিত হয়। যদি বর্তমান অস্থিরতা গড়ের 1.5 গুণের বেশি হয় তবে এটি একটি অস্থির বাজার।
দ্রুত EMA সময়কাল 10 দিন। ধীর SMA সময়কাল 30 দিন। যখন দ্রুত EMA ধীর SMA এর উপরে অতিক্রম করে তখন একটি ক্রয় সংকেত উত্পন্ন হয়।
১২, ২৬, ৯ প্যারামিটার দিয়ে এমএসিডি গণনা করুন। একটি ইতিবাচক এমএসিডি হিস্টোগ্রাম কেনার সংকেত দেয়।
২০ দিনের স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেল গণনা করুন। যদি চ্যানেলের প্রস্থ নিজের ২০ দিনের এসএমএর চেয়ে ছোট হয়, তবে এটি একীভূত হচ্ছে।
ভোলটাইলঃ ক্রসওভার বা এমএসিডি ইতিবাচক হলে দামের ব্যাণ্ডের ভিতরে দীর্ঘ প্রবেশ করুন।
ট্রেন্ডিংঃ ক্রসওভার বা এমএসিডি ইতিবাচক হলে লং প্রবেশ করুন।
একত্রীকরণঃ ক্রসওভার এবং দামের নীচের ব্যান্ডের উপরে দীর্ঘ প্রবেশ করুন।
সাধারণঃ যখন MACD ২ বার নেগেটিভ হয় এবং দাম ২ দিন কমে যায় তখন প্রস্থান করুন।
অস্থিরতা: স্টকআরএসআই অতিরিক্ত ক্রয়ের সময় ছাড়।
একত্রীকরণঃ যখন দাম উপরের ব্যান্ডের নিচে থাকে তখন ছাড় দেওয়া হয়।
এই কৌশল নিম্নলিখিত শক্তি আছেঃ
কম স্বার্থপর হস্তক্ষেপের সাথে পদ্ধতিগত অপারেশন।
বাজারের অবস্থার উপর ভিত্তি করে অভিযোজিত পরামিতি।
মাল্টিপল ইন্ডিকেটর কম্বো দিয়ে সিগন্যালের নির্ভুলতা বেশি।
বোলিংজার ব্যান্ডের সাথে স্বয়ংক্রিয় স্টপ লস ঝুঁকি কম।
মিথ্যা সংকেত এড়াতে সমস্ত ঘূর্ণিত অবস্থা ফিল্টারিং।
প্রবণতা অনুসরণ করতে গতিশীল স্টপ লস এবং লাভ নিন।
প্রধান ঝুঁকিগুলি হলঃ
অনুপযুক্ত প্যারামিটার টিউনিং থাকলে অকার্যকর কৌশল। অপ্টিমাইজেশান প্রস্তাবিত।
আকস্মিক ঘটনার কারণে মডেলের ব্যর্থতা।
ট্রেডিং খরচ থেকে সংকীর্ণ মুনাফা মার্জিন। কম কমিশন ব্রোকার পরামর্শ দেওয়া হয়।
একাধিক মডিউল সহ উচ্চতর জটিলতা। মূল সূচক পরামর্শ দেওয়া হয়।
অপ্টিমাইজেশনের সম্ভাব্য দিকঃ
বাজারের পরিবেশের মূল্যায়নের মানদণ্ড উন্নত করা।
স্বয়ংক্রিয় প্যারামিটার অভিযোজনের জন্য মেশিন লার্নিং চালু করুন।
ইভেন্ট সনাক্ত করতে টেক্সট বিশ্লেষণ যোগ করুন।
সেরা প্যারামিটার খুঁজে পেতে মাল্টি-মার্কেট ব্যাকটেস্টিং।
আরও ভাল মুনাফা অর্জনের জন্য ট্রেলিং স্টপ কৌশল বাস্তবায়ন করুন।
ডায়নামিক মুভিং এভারেজ ক্রসওভার কম্বো কৌশল একটি বুদ্ধিমান মাল্টি-দর্শক পরিমাণগত ট্রেডিং সিস্টেম। এটি পদ্ধতিগত নিয়ম-ভিত্তিক ট্রেডিং বাস্তবায়নের জন্য বাজারের অবস্থার উপর ভিত্তি করে গতিশীলভাবে পরামিতিগুলি সামঞ্জস্য করে। কৌশলটি অত্যন্ত অভিযোজিত এবং নির্ধারক। তবে অতিরিক্ত জটিলতা এড়াতে প্যারামিটার এবং অতিরিক্ত মডিউলগুলি সাবধানে প্রবর্তন করা দরকার। সামগ্রিকভাবে এটি একটি কার্যকর পরিমাণগত কৌশল ধারণা।
/*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)