ডায়নামিক মুভিং এভারেজ ক্রসওভার কম্বো কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-02-05 10:23:10
ট্যাগঃ

img

সারসংক্ষেপ

ডায়নামিক মুভিং এভারেজ ক্রসওভার কম্বো কৌশল একটি সমন্বিত ট্রেডিং কৌশল যা একাধিক প্রযুক্তিগত সূচক এবং বাজারের অবস্থার সনাক্তকরণকে একীভূত করে। এটি গতিশীলভাবে বাজারের অস্থিরতা গণনা করে এবং দীর্ঘমেয়াদী চলমান গড় এবং অস্থিরতার থেকে মূল্য দূরত্বের ভিত্তিতে তিনটি বাজারের পর্যায়ে নির্ধারণ করেঃ অস্থির, প্রবণতা এবং একীকরণ। বিভিন্ন বাজারের অবস্থার অধীনে, কৌশলটি বিভিন্ন প্রবেশ এবং প্রস্থান নিয়ম গ্রহণ করে এবং ইএমএ / এসএমএ ক্রসওভার, এমএসিডি এবং বলিংজার ব্যান্ডের মতো সূচকগুলির সংমিশ্রণের সাথে কিনুন এবং বিক্রয় সংকেত তৈরি করে।

কৌশলগত যুক্তি

বাজার অস্থিরতা গণনা করুন

গত ১৪ দিনের বাজারের অস্থিরতা পরিমাপ করতে ATR সূচক ব্যবহার করুন। তারপর গড় অস্থিরতা পেতে ১০০ দিনের SMA ফিল্টার প্রয়োগ করুন।

বাজারের পর্যায় নির্ধারণ করুন

মূল্য এবং 200 দিনের এসএমএর মধ্যে দূরত্ব গণনা করুন। যদি নিখুঁত দূরত্ব একটি পরিষ্কার দিক সহ গড় অস্থিরতার 1.5 গুণের বেশি হয় তবে এটি একটি প্রবণতা বাজার হিসাবে নির্ধারিত হয়। যদি বর্তমান অস্থিরতা গড়ের 1.5 গুণের বেশি হয় তবে এটি একটি অস্থির বাজার।

EMA/SMA ক্রসওভার

দ্রুত EMA সময়কাল 10 দিন। ধীর SMA সময়কাল 30 দিন। যখন দ্রুত EMA ধীর SMA এর উপরে অতিক্রম করে তখন একটি ক্রয় সংকেত উত্পন্ন হয়।

এমএসিডি

১২, ২৬, ৯ প্যারামিটার দিয়ে এমএসিডি গণনা করুন। একটি ইতিবাচক এমএসিডি হিস্টোগ্রাম কেনার সংকেত দেয়।

বোলিংজার ব্যান্ড

২০ দিনের স্ট্যান্ডার্ড ডিভিয়েশন চ্যানেল গণনা করুন। যদি চ্যানেলের প্রস্থ নিজের ২০ দিনের এসএমএর চেয়ে ছোট হয়, তবে এটি একীভূত হচ্ছে।

প্রবেশের নিয়ম

ভোলটাইলঃ ক্রসওভার বা এমএসিডি ইতিবাচক হলে দামের ব্যাণ্ডের ভিতরে দীর্ঘ প্রবেশ করুন।

ট্রেন্ডিংঃ ক্রসওভার বা এমএসিডি ইতিবাচক হলে লং প্রবেশ করুন।

একত্রীকরণঃ ক্রসওভার এবং দামের নীচের ব্যান্ডের উপরে দীর্ঘ প্রবেশ করুন।

প্রস্থান বিধি

সাধারণঃ যখন MACD ২ বার নেগেটিভ হয় এবং দাম ২ দিন কমে যায় তখন প্রস্থান করুন।

অস্থিরতা: স্টকআরএসআই অতিরিক্ত ক্রয়ের সময় ছাড়।

একত্রীকরণঃ যখন দাম উপরের ব্যান্ডের নিচে থাকে তখন ছাড় দেওয়া হয়।

সুবিধা

এই কৌশল নিম্নলিখিত শক্তি আছেঃ

  1. কম স্বার্থপর হস্তক্ষেপের সাথে পদ্ধতিগত অপারেশন।

  2. বাজারের অবস্থার উপর ভিত্তি করে অভিযোজিত পরামিতি।

  3. মাল্টিপল ইন্ডিকেটর কম্বো দিয়ে সিগন্যালের নির্ভুলতা বেশি।

  4. বোলিংজার ব্যান্ডের সাথে স্বয়ংক্রিয় স্টপ লস ঝুঁকি কম।

  5. মিথ্যা সংকেত এড়াতে সমস্ত ঘূর্ণিত অবস্থা ফিল্টারিং।

  6. প্রবণতা অনুসরণ করতে গতিশীল স্টপ লস এবং লাভ নিন।

ঝুঁকি

প্রধান ঝুঁকিগুলি হলঃ

  1. অনুপযুক্ত প্যারামিটার টিউনিং থাকলে অকার্যকর কৌশল। অপ্টিমাইজেশান প্রস্তাবিত।

  2. আকস্মিক ঘটনার কারণে মডেলের ব্যর্থতা।

  3. ট্রেডিং খরচ থেকে সংকীর্ণ মুনাফা মার্জিন। কম কমিশন ব্রোকার পরামর্শ দেওয়া হয়।

  4. একাধিক মডিউল সহ উচ্চতর জটিলতা। মূল সূচক পরামর্শ দেওয়া হয়।

উন্নতকরণ

অপ্টিমাইজেশনের সম্ভাব্য দিকঃ

  1. বাজারের পরিবেশের মূল্যায়নের মানদণ্ড উন্নত করা।

  2. স্বয়ংক্রিয় প্যারামিটার অভিযোজনের জন্য মেশিন লার্নিং চালু করুন।

  3. ইভেন্ট সনাক্ত করতে টেক্সট বিশ্লেষণ যোগ করুন।

  4. সেরা প্যারামিটার খুঁজে পেতে মাল্টি-মার্কেট ব্যাকটেস্টিং।

  5. আরও ভাল মুনাফা অর্জনের জন্য ট্রেলিং স্টপ কৌশল বাস্তবায়ন করুন।

সিদ্ধান্ত

ডায়নামিক মুভিং এভারেজ ক্রসওভার কম্বো কৌশল একটি বুদ্ধিমান মাল্টি-দর্শক পরিমাণগত ট্রেডিং সিস্টেম। এটি পদ্ধতিগত নিয়ম-ভিত্তিক ট্রেডিং বাস্তবায়নের জন্য বাজারের অবস্থার উপর ভিত্তি করে গতিশীলভাবে পরামিতিগুলি সামঞ্জস্য করে। কৌশলটি অত্যন্ত অভিযোজিত এবং নির্ধারক। তবে অতিরিক্ত জটিলতা এড়াতে প্যারামিটার এবং অতিরিক্ত মডিউলগুলি সাবধানে প্রবর্তন করা দরকার। সামগ্রিকভাবে এটি একটি কার্যকর পরিমাণগত কৌশল ধারণা।


/*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)


আরো