
ম্যাকড ট্রেন্ড ট্র্যাকিং কৌশল হল একটি পরিমাণগত ট্রেডিং কৌশল যা ম্যাকড সূচকের উপর ভিত্তি করে। এই কৌশলটি ম্যাকড সূচকের গোল্ডফোর্ক এবং ডেডফোর্ক সংকেত সনাক্ত করে বাজার প্রবণতা বিচার করে এবং শেয়ারের দামের প্রবণতা অনুসরণ করে।
MACD ট্রেন্ড ট্র্যাকিং স্ট্র্যাটেজির মূল যুক্তি হলঃ
ট্রেন্ড ট্র্যাকিং এর মাধ্যমে, এই কৌশলটি বাজারের প্রবণতা পাল্টাতে পারে এবং মুনাফা অর্জন করতে পারে।
MACD ট্রেন্ড ট্র্যাকিং কৌশল নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
ট্রেন্ড ট্র্যাকিং কৌশলগুলিও নিম্নলিখিত ঝুঁকি নিয়ে আসেঃ
উপরের ঝুঁকির জন্য নিম্নলিখিত অপ্টিমাইজেশান ব্যবস্থা গ্রহণ করা যেতে পারেঃ
MACD ট্রেন্ড ট্র্যাকিং কৌশলগুলি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
MACD সূচক প্যারামিটারগুলিকে অপ্টিমাইজ করুন, মিথ্যা সংকেত হার হ্রাস করুন। আপনি বিভিন্ন পিরিয়ড প্যারামিটারগুলির জন্য MACD পরীক্ষা করতে পারেন।
অন্যান্য সূচক ফিল্টার করুন, যেমন লেনদেনের পরিমাণ বাড়ানো। সর্বনিম্ন লেনদেনের পরিমাণের শর্ত সেট করা যেতে পারে।
একটি গতিশীল ট্র্যাকিং স্টপ মেশিন সেট আপ করুন। স্টপ পয়েন্টগুলি রিয়েল-টাইমে ওঠানামা অনুসারে সামঞ্জস্য করা যেতে পারে।
প্রারম্ভিক সূচনার জন্য সংকেত নির্ধারণের লজিক অনুকূলিতকরণ। আরও কঠোর সংকেত ট্রিগার শর্ত সেট করা যেতে পারে।
মেশিন লার্নিং মডেলের সাথে সংযুক্ত করে সংকেতগুলি ফিল্টার করুন। মডেলগুলিকে সংকেতের নির্ভরযোগ্যতা নির্ধারণের জন্য প্রশিক্ষণ দেওয়া যেতে পারে।
MACD ট্রেন্ড ট্র্যাকিং কৌশল সামগ্রিকভাবে একটি পরিপক্ক পরিমাণগত কৌশল। এই কৌশলটি MACD সূচক ব্যবহার করে বাজার প্রবণতার দিকনির্দেশনা নির্ধারণ করে, স্টপ লস মেকানিজম নিয়ন্ত্রণের ঝুঁকি সহ, শেয়ারের দামের প্রবণতা কার্যকরভাবে অনুসরণ করতে পারে। তবে MACD সূচক নিজেই কিছু ত্রুটি রয়েছে, যা মিথ্যা সংকেত তৈরি করতে পারে। সুতরাং এই কৌশলটি আরও অপ্টিমাইজ করার জায়গা রয়েছে, মূলত সূচক প্যারামিটার, স্টপ লস মেকানিজম, সংকেত ফিল্টার ইত্যাদির উপর দৃষ্টি নিবদ্ধ করে।
/*backtest
start: 2023-11-10 00:00:00
end: 2023-12-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MACD Cross Strategy", overlay=true)
// Get MACD values
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
var float entryLongPrice = na
var float entryShortPrice = na
var float highestLongProfit = 0
var float highestShortProfit = 0
var float highestMACD = 0
var float lowestMACD = 0
var bool haveOpenedLong = false
var bool haveOpenedShort = false
var float stoploss = 0.04 // To be adjust for different investment
var float minProfit = 0.05 // To be adjust for different investment
if macdLine > 0
lowestMACD := 0
highestMACD := math.max(highestMACD, macdLine)
haveOpenedShort := false
else
highestMACD := 0
lowestMACD := math.min(lowestMACD, macdLine)
haveOpenedLong := false
// Enter long position when MACD line crosses above the signal line
if ta.crossover(macdLine, signalLine) and macdLine < highestMACD and macdLine > 0 and haveOpenedLong == false
strategy.entry("Long", strategy.long)
strategy.exit("Exit Long", from_entry = "Long", stop=close*(1 - stoploss))
entryLongPrice := close
haveOpenedLong := true
if ta.crossunder(macdLine, signalLine) and macdLine > lowestMACD and macdLine < 0 and haveOpenedShort == false
strategy.entry("Short", strategy.short)
strategy.exit("Exit Short", from_entry = "Short", stop=close*(1 + stoploss))
entryShortPrice := close
haveOpenedShort := true
// log.info("entryLongPrice:{0}", entryLongPrice)
if strategy.position_size > 0
profit = close - entryLongPrice
log.info("profit:{0}", profit)
if profit > 0
highestLongProfit := math.max(highestLongProfit, profit)
if profit / entryLongPrice > minProfit and highestLongProfit * 0.8 > profit
strategy.close("Long")
highestLongProfit := 0
if strategy.position_size < 0
profit = entryShortPrice - close
if profit > 0
highestShortProfit := math.max(highestShortProfit, profit)
log.info("highestShortProfit={0}, profit={1}", highestShortProfit, profit)
if profit / entryShortPrice > minProfit and highestShortProfit * 0.8 > profit
strategy.close("Short")
highestShortProfit := 0