বোলিংজার ব্যান্ড, চলমান গড় এবং এমএসিডি সমন্বিত ট্রেডিং কৌশল

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

img

কৌশল ওভারভিউ

এই কৌশলটি বোলিংজার ব্যান্ড, চলমান গড় এবং এমএসিডি একত্রিত করে একটি অপেক্ষাকৃত সম্পূর্ণ ট্রেডিং সিস্টেম গঠন করে। বাজারের প্রবণতা বিচার করার সময়, এটি কিছু বিপরীতমুখী সুযোগও ক্যাপচার করতে পারে।

কৌশল নাম ও যুক্তি

এই কৌশলটির নাম Triangle Anchoring Trend Tracking Strategy। নামটি ট্রেন্ডের দিকনির্দেশ এবং অ্যাঙ্কর এন্ট্রি পয়েন্ট নির্ধারণের জন্য তিনটি প্রযুক্তিগত সূচক ব্যবহারের উপর জোর দেয়।

ট্রেডিং এর মৌলিক যুক্তি হল:

  1. ট্রেন্ডের দিকনির্দেশনা বিচার করুন। বাজারটি আপট্রেন্ড বা ডাউনট্রেন্ড পর্যায়ে রয়েছে কিনা তা নির্ধারণ করতে বলিংজার মিড ব্যান্ড, ইএমএ এবং এমএসিডি শূন্য রেখা তুলনা করুন।

  2. প্রবেশের সুযোগ খুঁজুন। একটি প্রবণতা চিহ্নিত হওয়ার পরে, কৌশলটি পরীক্ষা করে যে EMA BB মিড ব্যান্ড অতিক্রম করে এবং যদি MACD হিস্টোগ্রামটি প্রবেশগুলি নির্ধারণের জন্য সংকেত লাইন অতিক্রম করে।

  3. মুনাফা লক্ষ্য এবং স্টপ লস সেট করুন। একবার প্রবেশ করা হলে, স্থির লক্ষ্য এবং স্টপ লস স্তরগুলি পূর্বনির্ধারিত হয়।

সুবিধা বিশ্লেষণ

এই কৌশলটির সবচেয়ে বড় সুবিধা হ'ল ট্রেন্ড, চলমান গড় এবং এমএসিডি সরঞ্জামগুলি সিদ্ধান্তগুলিকে গাইড করার জন্য একযোগে ব্যবহার করা। এটি বাজারের গতির আরও সঠিক বিচারকে অনুমতি দেয় এবং কিছু বিপরীততা ক্যাপচার করতেও সহায়তা করে।

প্রথমত, বিবি মিড ব্যান্ড স্পষ্টভাবে বর্তমান প্রাথমিক প্রবণতা দিক প্রতিফলিত করে। ইএমএর ভূমিকা প্রবণতার অগ্রগতি অনুসরণ করা। তাদের তুলনা এবং সমন্বয় প্রবণতা আরও সুনির্দিষ্ট সনাক্তকরণের অনুমতি দেয়।

দ্বিতীয়ত, বিবি নিজেই শক্তিশালী এনভলপ বৈশিষ্ট্য আছে। মাঝের ব্যান্ডের চারপাশের এলাকাটি নির্দিষ্ট সমর্থন / প্রতিরোধের স্তরগুলিও নির্দেশ করে। সুতরাং ইএমএ ক্রসওভারের সংকেত মান রয়েছে।

এছাড়াও, এমএসিডি বাউলিশ/বেয়ারিশ গতির বৃদ্ধি এবং হ্রাস পরিমাপ করে। এর পরম আকার উচ্চ বা নিম্ন ভিড়ের আবেগকে উপস্থাপন করে, যা সম্ভাব্য বিপরীতের ইঙ্গিত দেয়।

অবশেষে, পূর্বনির্ধারিত মুনাফা লক্ষ্যমাত্রা এবং স্টপ লস পৃথক ব্যবসায়ের ঝুঁকি / পুরষ্কার নিয়ন্ত্রণ করে, সামগ্রিক স্থিতিশীলতা নিশ্চিত করে।

ঝুঁকি বিশ্লেষণ

একাধিক বিশ্লেষণাত্মক সরঞ্জাম ব্যবহার করা সত্ত্বেও, প্রধান ঝুঁকিগুলি হলঃ

  1. ভুল বিবি পরামিতিগুলি প্রাথমিক প্রবণতা স্পষ্টভাবে প্রতিফলিত করতে ব্যর্থ।

  2. ইএমএ সিস্টেম দীর্ঘ সংকেত দেয় কিন্তু এমএসিডি স্পষ্টভাবে ইতিবাচক হয়ে ওঠে না, হ্রাসের শক্তি প্রসারিত হতে পারে।

  3. মুনাফা লক্ষ্যমাত্রা/স্টপ লস পরিসীমা খুব বড়, একক ট্রেড ক্ষতি প্রসারিত হয়।

প্রধান সমাধানগুলি হলঃ

  1. বিবি পরামিতিগুলি সামঞ্জস্য করুন যাতে নিশ্চিত হয় যে মধ্যবর্তী ব্যাণ্ড কার্যকরভাবে প্রধান প্রবণতা প্রতিফলিত করে।

  2. ষাঁড়/ঘুষের গতি নির্ধারণের জন্য আরো প্রযুক্তিগত সূচক প্রবর্তন করা।

  3. ঐতিহাসিক লেনদেনের মূল্যায়ন করুন এবং লাভের লক্ষ্য / স্টপ লসকে অনুকূল করুন।

অপ্টিমাইজেশান নির্দেশাবলী

কৌশলটি নিম্নলিখিত দিকগুলিতে আরও উন্নত করা যেতে পারেঃ

  1. প্রবণতা বিচার এবং নির্ভুলতা উন্নত করতে আরও সূচক যেমন কেডিজে, এটিআর ইত্যাদি প্রবর্তন করুন।

  2. আরও উন্নত স্টপ যেমন ট্রেইলিং স্টপ, ব্রেকআউট স্টপ ইত্যাদি প্রয়োগ করুন।

  3. বিভিন্ন পণ্যের পারফরম্যান্স মূল্যায়ন করুন। বিভিন্ন বাজারের অবস্থার সাথে সামঞ্জস্যপূর্ণ সূক্ষ্ম সূক্ষ্মতা।

  4. বিভিন্ন সময়সীমা এবং বাজারে ব্যাকটেস্টের ফলাফলের উপর ভিত্তি করে কৌশল পরীক্ষা এবং tweak।

  5. স্বয়ংক্রিয় প্যারামিটার অপ্টিমাইজেশান এবং গতিশীল কৌশল আপডেটের জন্য মেশিন লার্নিং অন্তর্ভুক্ত করুন।

সিদ্ধান্ত

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


/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined Strategy", overlay=true, shorttitle="Comb Strat", default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Precio de beneficio y Stop Loss
takeProfitTicks = 87636
stopLossTicks = 53350

// Bollinger Bands + EMA
length_bb = input(150, title="BB Length")
src_bb = input(close, title="BB Source")
mult = input(2.0, title="BB StdDev")
basis = ta.sma(src_bb, length_bb)
dev = mult * ta.stdev(src_bb, length_bb)
upper = basis + dev
lower = basis - dev

len_ema = input(34, title="EMA Length")
src_ema = input(close, title="EMA Source")
out_ema = ta.ema(src_ema, len_ema)

typeMA = input("SMA", title="Method")
smoothingLength = input(5, title="Length")

var float smoothingLine = na
if (typeMA == "SMA")
    smoothingLine := ta.sma(out_ema, smoothingLength)
else if (typeMA == "EMA")
    smoothingLine := ta.ema(out_ema, smoothingLength)

// MACD
fast_length = input(title="Fast Length", defval=9)
slow_length = input(title="Slow Length", defval=17)
src_macd = input(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval=1, maxval=50, defval=9)
sma_source = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])

fast_ma = sma_source == "SMA" ? ta.sma(src_macd, fast_length) : ta.ema(src_macd, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src_macd, slow_length) : ta.ema(src_macd, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal

// Condiciones de compra y venta
longCondition = (out_ema > basis) and (macd > signal) and (signal > 0)
shortCondition = (out_ema < basis) and (macd < signal) and (signal < 0)

// Variables de estado
var bool longExecuted = na
var bool shortExecuted = na

// Estrategia
if (longCondition and not longExecuted)
    strategy.entry("Long", strategy.long)
    longExecuted := true
    shortExecuted := na
if (shortCondition and not shortExecuted)
    strategy.entry("Short", strategy.short)
    shortExecuted := true
    longExecuted := na

// Take Profit y Stop Loss para Compras y Ventas Cortas
strategy.exit("Take Profit/Close Long", from_entry="Long", profit=takeProfitTicks, loss=stopLossTicks)
strategy.exit("Take Profit/Close Short", from_entry="Short", profit=takeProfitTicks, loss=stopLossTicks)

// Cierre de posiciones cuando la dirección cambia
if ((out_ema < basis) and (macd < signal))
    strategy.close("Long")
    longExecuted := na
if ((out_ema > basis) and (macd > signal))
    strategy.close("Short")
    shortExecuted := na

// Plots
plot(basis, "BB Basis", color=#FF6D00)
plot(upper, "BB Upper", color=color.new(#2962FF, 0.5))
plot(lower, "BB Lower", color=color.new(#2962FF, 0.5))

plot(smoothingLine, title="Smoothing Line", color=#f37f20, linewidth=2)

hline(0, "Zero Line", color=color.new(#787B86, 50))
plot(hist, title="Histogram", style=plot.style_columns, color=(hist >= 0 ? (hist[1] < hist ? color.green : color.red) : (hist[1] < hist ? color.red : color.green)))
plot(macd, title="MACD", color=color.blue)
plot(signal, title="Signal", color=color.orange)


আরো