এমএসিডি স্টোকাস্টিক্স রেঞ্জ ব্রেকআউট কৌশলটি এমএসিডি এবং স্টোকাস্টিক্স সূচকগুলিকে একটি পরিমাণগত ট্রেডিং কৌশলতে একত্রিত করে। এটি স্টক মূল্যের প্রবণতা দিক সনাক্ত করার চেষ্টা করে এবং দামগুলি রেঞ্জ অঞ্চলগুলি থেকে বেরিয়ে আসার সময় অবস্থান নেয়।
পজিশন গ্রহণের সময়, এই কৌশলটি এন্ট্রিগুলির গুণমান উন্নত করতে ম্যাকডি এবং স্টোকাস্টিক উভয় থেকে সংকেত বিবেচনা করে। এছাড়াও, পূর্বনির্ধারিত স্টপ লস এবং লাভের পয়েন্টগুলি কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করতে পারে।
ম্যাকড স্টোক্যাস্টিকস রেঞ্জ ব্রেকআউট কৌশল প্রধানত নিম্নলিখিত নীতিগুলির উপর ভিত্তি করেঃ
বিশেষ করে, কৌশলটি ম্যাকডিআইএফএফ লাইনটি ডিইএ লাইনের উপর দিয়ে যাত্রা করে বুলিশ বা হ্রাস প্রবণতা সংকেত নির্ধারণ করে। যখন ডিআইএফএফ ডিইএ উপরে অতিক্রম করে, এটি একটি বুলিশ সংকেত তৈরি করে এবং বিপরীতভাবে।
এদিকে, স্টোক্যাস্টিক্সের K লাইন এবং D লাইনের মধ্যে ক্রসিংগুলি অতিরিক্ত ক্রয়/অতিরিক্ত বিক্রয় এলাকার (ডিফল্ট 30 এবং 70) চারপাশেও ট্রেড সংকেত উৎপন্ন করে।
যখন এমএসিডি এবং স্টোকাস্টিক্স সমন্বিত সংকেত দেয়, তখন কৌশলটি একটি অবস্থান গ্রহণ করবে। এই সময়ে, একটি বড় দামের গতি সম্ভবত।
প্রবেশের পরে, স্টপ লস এবং লাভের পয়েন্টগুলি একক বাণিজ্যের ক্ষতিকে যুক্তিসঙ্গতভাবে নিয়ন্ত্রণ করতে এবং লাভকে লক করতে সেট করা হয়।
এমএসিডি স্টোকাস্টিকস রেঞ্জ ব্রেকআউট কৌশল নিম্নলিখিত শক্তি আছেঃ
সূচকগুলির সংমিশ্রণ সংকেত মান উন্নত করে
এমএসিডি এবং স্টোক্যাস্টিক উভয়ই ব্যবহার করে কিছু ভুয়া সংকেত ফিল্টার করে এবং আরও ভাল এন্ট্রি মানের অনুমতি দেয়।
ব্রেকআউট মুভিং এবং ট্রেন্ড ট্রেডিং ধরা
এই কৌশলটি বিস্তৃত হওয়ার পরে উল্লেখযোগ্য ব্রেকআউট মুভগুলি ধরতে বিশেষীকরণ করে। এই মুভগুলি বিশাল হতে থাকে।
অপ্টিমাইজড স্টপ লস/টেক প্রফিট মেকানিজম কার্যকরভাবে ঝুঁকি নিয়ন্ত্রণ করে
বিল্ট ইন স্টপ লস/টেক প্রফিট লজিক যুক্তিসঙ্গতভাবে একক ট্রেড ক্ষতি এবং সময়মত লাভের লককে সীমাবদ্ধ করে।
সতর্কতার সাথে ডিজাইন করা সত্ত্বেও, এমএসিডি স্টোকাস্টিকস রেঞ্জ ব্রেকআউট স্ট্র্যাটেজিতে কিছু অন্তর্নিহিত ঝুঁকি রয়েছেঃ
নিখুঁত প্রবেশের সময় অনুপস্থিত
বৈধ ব্রেকআউট হওয়ার আগে মিথ্যা ব্রেকআউটগুলি সাধারণ। অনুপম এন্ট্রি টাইমিংয়ের ফলে সেরা এন্ট্রি মূল্য মিস হতে পারে।
পলাতক
যদিও এন্ট্রি করার আগে পর্যাপ্ত প্রস্তুতি নেওয়া হয়, ব্যর্থ ব্রেকআউট এখনও সম্ভব, যা ক্ষতির দিকে পরিচালিত করে।
অনুপযুক্ত প্যারামিটার অপ্টিমাইজেশন
অনুপযুক্ত প্যারামিটার সেটিং কৌশল কর্মক্ষমতা গুরুতরভাবে হ্রাস।
উপরের ঝুঁকি মোকাবেলায় নিম্নলিখিত অপ্টিমাইজেশানগুলি গ্রহণ করা যেতে পারেঃ
ফিল্টার সংকেতগুলিতে অন্যান্য সূচক যুক্ত করা
বৈধ ব্রেকআউট নিশ্চিত করার জন্য ম্যানুয়াল হস্তক্ষেপ
কঠোর মাল্টি-সেট প্যারামিটার অপ্টিমাইজেশান পরীক্ষা
এমএসিডি স্টোকাস্টিকস রেঞ্জ ব্রেকআউট কৌশল আরও উন্নত করার সুযোগ রয়েছে:
সেরা সমন্বয় খুঁজে পেতে MACD পরামিতি অপ্টিমাইজ করুন
সেরা সমন্বয় খুঁজে পেতে স্টোক্যাস্টিক পরামিতি অপ্টিমাইজ করুন
এন্ট্রি মান উন্নত করার জন্য 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)