
এই কৌশলটি MACD সূচকের উপর ভিত্তি করে একটি উন্নত সংস্করণ ট্রেডিং কৌশল। এটি MACD সূচকের প্রবণতা-অনুসরণ বৈশিষ্ট্য এবং গতিশীলতার ব্যবসায়ের ধারণাগুলিকে একত্রিত করে, দ্রুত চলমান গড় এবং ধীর চলমান গড়ের মধ্যে পার্থক্য বিশ্লেষণ করে ট্রেডিং সংকেত তৈরি করে। একই সাথে, কৌশলটি স্থিতিশীলতা এবং লাভজনকতার জন্য প্রবণতা নিশ্চিতকরণ, সংকেত বিলম্বিত নিশ্চিতকরণ, স্থির শতাংশ স্টপ লস এবং স্টপ বন্ধের মতো অপ্টিমাইজেশন পদ্ধতিও প্রবর্তন করে।
এই কৌশলটির কেন্দ্রবিন্দু হল MACD সূচক, যা দ্রুত চলমান গড় ((EMA) এবং ধীর চলমান গড় ((EMA) এর পার্থক্য দ্বারা গঠিত। যখন দ্রুত EMA এবং ধীর EMA এর সাথে ক্রস হয়, তখন একটি কেনা বা বিক্রয় সংকেত উত্পন্ন হয়। বিশেষ করে, যখন MACD লাইনটি নীচে থেকে উপরে থেকে সিগন্যাল লাইনটি ভেঙে দেয়, তখন একটি কেনা সংকেত উত্পন্ন হয়; যখন MACD লাইনটি উপরে থেকে নীচে থেকে সিগন্যাল লাইনটি ভেঙে দেয়, তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
মৌলিক MACD ক্রস সিগন্যাল ছাড়াও, এই কৌশলটি একটি প্রবণতা নিশ্চিতকরণ প্রক্রিয়া প্রবর্তন করে। এটি সহজ চলমান গড় (এসএমএ) এর সাথে তুলনা করে, বর্তমান বাজারটি একটি উত্থান বা পতনের প্রবণতা কিনা তা নির্ধারণ করে। কেবলমাত্র একটি উত্থান প্রবণতা বা একটি পতনশীল প্রবণতা মধ্যে একটি বিক্রয় সংকেত উপস্থিত হলেই ট্রেডিং কার্যকর করা হয়। এটি কার্যকরভাবে বাজারের ঝড়ের মধ্যে উত্পন্ন মিথ্যা সংকেতগুলি এড়াতে পারে।
এছাড়াও, এই কৌশলটি সংকেত নিশ্চিতকরণের সময় উইন্ডোটি প্রসারিত করে। অর্থাৎ, যখন বর্তমান কে লাইনটি ক্রয় বা বিক্রয় শর্ত পূরণ করে এবং পূর্ববর্তী কে লাইনটিও একই শর্ত পূরণ করে তখনই সংশ্লিষ্ট লেনদেন সম্পাদন করা হয়। এটি সংকেতের নির্ভরযোগ্যতা আরও বাড়িয়ে তোলে।
অবশেষে, এই কৌশলটি স্থির শতাংশে স্টপ লস এবং স্টপ প্রাইস সেট করে। একবার লেনদেন হয়ে গেলে, পজিশন খোলার দামের উপর ভিত্তি করে স্টপ লস এবং স্টপ প্রাইস গণনা করা হয়, এবং এই দামগুলি পৌঁছে গেলে স্বয়ংক্রিয়ভাবে পজিশন খালি করা হয়। এটি একক লেনদেনের ঝুঁকি এবং লাভ নিয়ন্ত্রণে সহায়তা করে।
এই কৌশলটি একটি উন্নত ট্রেডিং কৌশল যা ম্যাকড সূচকের উপর ভিত্তি করে প্রবণতা নিশ্চিতকরণ, সংকেত বিলম্বিত নিশ্চিতকরণ, স্থির স্টপস্টপ ইত্যাদির মাধ্যমে কৌশলটির স্থিতিশীলতা এবং লাভের সম্ভাবনা বাড়ায়। তবে একই সাথে প্যারামিটার অপ্টিমাইজেশন, প্রবণতা সনাক্তকরণ, একক সূচক, ডেটা পুনরুদ্ধার ইত্যাদির ঝুঁকিও রয়েছে। ভবিষ্যতে অন্যান্য সূচক, গতিশীল স্টপস্টপ, অবস্থান পরিচালনা, মেশিন লার্নিং ইত্যাদির সাথে মিলিত হয়ে কৌশলটি আরও উন্নত করার জন্য কৌশলটি অপ্টিমাইজ করার বিষয়টি বিবেচনা করা যেতে পারে।
/*backtest
start: 2023-05-08 00:00:00
end: 2024-05-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © sligetit
//@version=5
strategy("Improved MACD_VXI Strategy", overlay=true)
// Calculate MACD and Signal Line
fastLength = input.int(13, title="Fast Length")
slowLength = input.int(21, title="Slow Length")
signalLength = input.int(8, title="Signal Length")
fastMA = ta.ema(close, fastLength)
slowMA = ta.ema(close, slowLength)
macd = fastMA - slowMA
signal = ta.sma(macd, signalLength)
// Plot MACD and Signal Line
plot(macd, color=color.red, linewidth=1)
plot(signal, color=color.blue, linewidth=2)
// Calculate Cross Signals with Trend Confirmation
smaPeriod = input.int(50, title="SMA Period")
sma = ta.sma(close, smaPeriod)
trendUp = close > sma
trendDown = close < sma
crossOver = ta.crossover(signal, macd)
crossUnder = ta.crossunder(signal, macd)
buySignal = crossOver and trendUp
sellSignal = crossUnder and trendDown
// Execute Buy/Sell Operations
if buySignal
strategy.entry("Buy", strategy.long)
if sellSignal
strategy.entry("Sell", strategy.short)
// Extend Signal Confirmation Time Window
longSignal = crossOver[1] and trendUp[1]
shortSignal = crossUnder[1] and trendDown[1]
if longSignal
strategy.entry("Buy", strategy.long)
if shortSignal
strategy.entry("Sell", strategy.short)
// Set Fixed Percentage Stop Loss and Take Profit
stopLossPercent = input.float(1, title="Stop Loss (%)") / 100
takeProfitPercent = input.float(2, title="Take Profit (%)") / 100
stopLossPrice = strategy.position_avg_price * (1 - stopLossPercent)
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPercent)
strategy.exit("Stop Loss/Profit", "Buy", stop=stopLossPrice, limit=takeProfitPrice)
strategy.exit("Stop Loss/Profit", "Sell", stop=stopLossPrice, limit=takeProfitPrice)