
MACD Stochastics Oscillation Breakout Strategy (MACD Stochastics Oscillation Breakout Strategy) হল একটি কোয়ান্টাম ট্রেডিং কৌশল যা MACD এবং Stochastics সূচককে একত্রিত করে। এই কৌশলটি শেয়ারের দামের প্রবণতার দিকনির্দেশনা সনাক্ত করার চেষ্টা করে এবং যখন দাম অস্থির অঞ্চল থেকে বেরিয়ে আসে তখন পজিশনে প্রবেশ করে।
পজিশনে প্রবেশের সময়, এই কৌশলটি এন্ট্রিগুলির গুণমান বাড়ানোর জন্য MACD এবং Stochastics উভয় সূচকের সংকেত বিবেচনা করে। এছাড়াও, এই কৌশলটি একটি স্টপ লস পয়েন্ট এবং একটি স্টপ স্টপ পয়েন্ট প্রাক-সেট করে, যা ঝুঁকি কার্যকরভাবে নিয়ন্ত্রণ করতে পারে।
MACD Stochastics এর তরঙ্গবন্দর কম্পন বিরতি কৌশল মূলত নিম্নলিখিত নীতির উপর ভিত্তি করেঃ
বিশেষত, এই কৌশলটি MACD সূচকের DIFF লাইন এবং DEA লাইনের ক্রসকে মূল্যের প্রবণতার দিকনির্দেশের সংকেত হিসাবে ব্যবহার করে। DIFF যখন DEA-কে অতিক্রম করে তখন একটি মাল্টিহেড সংকেত উত্পন্ন হয় এবং বিপরীতভাবে একটি খালি হেড সংকেত উত্পন্ন হয়।
স্টোক্যাস্টিক্সের K লাইন ওভারবয় ওভারসেল অঞ্চলের (ডিফল্ট 30 এবং 70) কাছাকাছি D লাইন দিয়ে উপরে বা নীচে ক্রস করলে ট্রেডিং সিগন্যাল তৈরি হয়।
যখন MACD এবং Stochastics সূচক একই সময়ে সম-নির্দেশক সংকেত দেয়, তখন এই কৌশলটি প্রবেশের জন্য নির্বাচন করে। এই সময়ে স্টক মূল্য সম্ভবত একটি বড় ব্রেকআউট তৈরি করবে।
প্রবেশের পরে, কৌশলটি একটি যুক্তিসঙ্গত স্টপ লস এবং স্টপ স্টপ সেট করে। যুক্তিসঙ্গত স্টপ লস কার্যকরভাবে একক ক্ষতি নিয়ন্ত্রণ করতে পারে এবং স্টপ লস মুনাফা লক করতে পারে।
MACD Stochastics-এর তরঙ্গবন্দরের ঝাঁকুনি-বিভ্রান্তি কৌশলটির নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
এই কৌশলটি একই সময়ে MACD এবং Stochastics দুটি সূচক ব্যবহার করে, যা কিছু মিথ্যা সংকেতগুলিকে ফিল্টার করতে পারে এবং এন্ট্রিগুলির গুণমান উন্নত করতে পারে।
এই কৌশলটি বিশেষভাবে শেয়ারের মূল্যের দীর্ঘস্থায়ী অস্থিরতার পরে বিপর্যয়কে ধরার জন্য ডিজাইন করা হয়েছে। এই ধরণের ঘটনা সাধারণত বড় হয়।
স্টপ লস স্টপ সেটআপের সাথে, আপনি একক ক্ষতির উপর যুক্তিসঙ্গত নিয়ন্ত্রণ রাখতে পারেন এবং সময়মত মুনাফা লক করতে পারেন।
যদিও MACD Stochastics-এর তরঙ্গবন্দর ভেঙে ফেলার কৌশলটি সতর্কতার সাথে ডিজাইন করা হয়েছে, তবুও কিছু ঝুঁকি রয়েছেঃ
শেয়ারের দামের বিপর্যয় হওয়ার আগে অবশ্যই একটি ভুয়া বিপর্যয় হতে পারে। যদি প্রবেশের সময়টি ভুলভাবে চয়ন করা হয় তবে এই প্রবেশটি সেরা প্রবেশের পয়েন্টটি মিস করতে পারে।
যদিও এই পদক্ষেপের জন্য পর্যাপ্ত প্রস্তুতি নেওয়া হয়েছে, তবুও এটি ব্যর্থ হওয়ার সম্ভাবনা রয়েছে।
নীতির প্যারামিটার সেটিং ফলাফলের উপর অনেক প্রভাব ফেলে। যদি প্যারামিটার সেটিং ভুল হয়, তবে বড় ছাড় দেওয়া হবে।
উপরের ঝুঁকির জন্য, নিম্নলিখিত উপায়ে অপ্টিমাইজ করা যেতে পারেঃ
সংমিশ্রণ অন্যান্য সূচক ফিল্টার সংকেত
মানবিক হস্তক্ষেপের ফলে এই পরিস্থিতির অবসান হয়েছে।
মাল্টিপল প্যারামিটার অপ্টিমাইজেশন টেস্ট
ম্যাকড স্টোচ্যাস্টিক্সের তরঙ্গবন্দর ভেঙে যাওয়ার কৌশলটি আরও অপ্টিমাইজ করার জন্য এখনও জায়গা রয়েছেঃ
MACD প্যারামিটার অপ্টিমাইজ করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন
Stochastics প্যারামিটারগুলিকে অপ্টিমাইজ করুন এবং সর্বোত্তম প্যারামিটার সমন্বয় খুঁজুন
KDJ, BOLL, ইত্যাদির মতো অন্যান্য সূচকের সংমিশ্রণ যুক্ত করে এন্ট্রিগুলির মান আরও উন্নত করা হয়েছে
স্টপ-অফ-লস কৌশলগুলি অপ্টিমাইজ করার জন্য বিভিন্ন পজিশন হোল্ডিং সময় পরীক্ষা করুন
বিভিন্ন লেনদেনের মানের মধ্যে পার্থক্য পরীক্ষা করা
মেশিন লার্নিং অ্যালগরিদম যোগ করা, প্যারামিটারগুলি স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করা
ম্যাকড স্টোক্যাস্টিকস ওয়েভাল কম্পন ব্রেকিং কৌশলটি ম্যাকড এবং স্টোক্যাস্টিকস দুটি সূচককে সমন্বিতভাবে ব্যবহার করে, যখন ওয়েভাল কম্পন ব্রেকিংয়ের সময় উচ্চমানের প্রবেশের জন্য, তৎপরতার জন্য। একই সাথে ক্ষতিপূরণ বন্ধ করার কৌশলটি কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণের জন্য। এই কৌশলটি স্টক মূল্যের স্বল্পমেয়াদী প্রবণতা পরিস্থিতিকে ধরে রাখে, যার একটি নির্দিষ্ট ট্রেডিং সুবিধা রয়েছে। তবে প্যারামিটার অপ্টিমাইজেশন এবং প্রযুক্তিগত সূচক পোর্টফোলিওর দিক থেকে অনুসন্ধানের জন্য আরও জায়গা রয়েছে।
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="macd stoch strategy", shorttitle="benzo MACD stoch",overlay=true)
// Getting inputs
fast_length = input(title = "Fast Length", defval = 180)
slow_length = input(title = "Slow Length", defval = 390)
src = input(title = "Source", defval = close)
signal_length = input.int(title = "Signal Smoothing", minval = 1, maxval = 500, defval = 135)
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"])
// Calculating
fast_ma = sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length)
slow_ma = sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length)
hist = macd - signal
// hline(0, "Zero Line", color = color.new(#787B86, 50))
// plot(hist, title = "Histogram", style = plot.style_columns, color = (hist >= 0 ? (hist[1] < hist ? #26A69A : #B2DFDB) : (hist[1] < hist ? #FFCDD2 : #FF5252)))
// plot(macd, title = "MACD", color = #2962FF)
// plot(signal, title = "Signal", color = #FF6D00)
periodK = input.int(14, title="%K Length", minval=1)
smoothK = input.int(1, title="%K Smoothing", minval=1)
periodD = input.int(3, title="%D Smoothing", minval=1)
k = ta.sma(ta.stoch(close, high, low, periodK), smoothK)
d = ta.sma(k, periodD)
// plot(k, title="%K", color=#2962FF)
// plot(d, title="%D", color=#FF6D00)
// h0 = hline(80, "Upper Band", color=#787B86)
// hline(50, "Middle Band", color=color.new(#787B86, 50))
// h1 = hline(20, "Lower Band", color=#787B86)
// fill(h0, h1, color=color.rgb(33, 150, 243, 90), title="Background")
// Make inputs that set the take profit % (optional)
longProfitPerc = input.float(3, title="Long Take Profit (%)", minval=0.0, step=0.1) * 0.01
shortProfitPerc = input.float(3, title="Short Take Profit (%)",minval=0.0, step=0.1) * 0.01
// Calculate trading conditions
enterLong = macd>signal and ta.crossover(k,30)
enterShort = macd<signal and ta.crossunder(k,70)
// Figure out take profit price
longExitPrice = strategy.position_avg_price * (1 + longProfitPerc)
shortExitPrice = strategy.position_avg_price * (1 - shortProfitPerc)
// Plot take profit values for confirmation
plot(strategy.position_size > 0 ? longExitPrice : na,
color=color.green, style=plot.style_circles,
linewidth=3, title="Long Take Profit")
plot(strategy.position_size < 0 ? shortExitPrice : na,
color=color.red, style=plot.style_circles,
linewidth=3, title="Short Take Profit")
// Submit entry orders
if enterLong
strategy.entry("long", strategy.long)
if enterShort
strategy.entry("short", strategy.short)
// STEP 3:
// Submit exit orders based on take profit price
if strategy.position_size > 0
strategy.exit("long TP", limit=longExitPrice)
if strategy.position_size < 0
strategy.exit("short TP", limit=shortExitPrice)