
এই কৌশলটি একটি মাল্টি-টাইম জোন ট্রেডিং সিস্টেম যা MACD সূচক এবং চলমান গড়ের উপর ভিত্তি করে। এটি 1 মিনিট এবং 3 মিনিটের দুটি সময়কালের MACD সূচকগুলিকে একত্রিত করে এবং 200-চক্রের ইএমএকে ট্রেন্ড ফিল্টার হিসাবে ব্যবহার করে, বাজারের প্রবণতার ধারাবাহিকতা ক্যাপচার করে ট্রেড করার জন্য। কৌশলটিতে ঝুঁকি ব্যবস্থাপনার ব্যবস্থা রয়েছে, যার মধ্যে রয়েছে স্টপ লস সেটিং এবং গতিশীল সামঞ্জস্যের বৈশিষ্ট্য যা বেসিন পয়েন্টে চলে যায়।
কৌশলটির মূল যুক্তি নিম্নলিখিত মূল উপাদানগুলির উপর ভিত্তি করে:
নির্দিষ্ট ট্রেডিং সিগন্যাল জেনারেশন নিয়ম নিম্নরূপঃ
ঝুঁকি নিয়ন্ত্রণের পরামর্শ:
এই কৌশলটি একটি তুলনামূলকভাবে নিখুঁত ট্রেডিং সিস্টেম তৈরি করে, মাল্টি-টাইম-পিরিয়ড MACD সূচক এবং EMA ট্রেন্ড ফিল্টারগুলির সমন্বয় করে। এর সুবিধা হল একাধিক নিশ্চিতকরণ প্রক্রিয়া এবং ঝুঁকি ব্যবস্থাপনার অখণ্ডতা, তবে একই সাথে বিভিন্ন বাজার পরিবেশে অভিযোজনযোগ্যতার বিষয়েও মনোযোগ দেওয়া প্রয়োজন। প্রস্তাবিত অপ্টিমাইজড দিকনির্দেশের মাধ্যমে, কৌশলটি তার স্থিতিশীলতা বজায় রেখে আরও উপার্জনের ক্ষমতা বাড়ানোর সম্ভাবনা রয়েছে।
/*backtest
start: 2025-02-13 00:00:00
end: 2025-02-15 02:00:00
period: 5m
basePeriod: 5m
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("NQ MACD Continuation Backtest", overlay=true)
// MACD Settings
fastLength = 12
slowLength = 26
signalLength = 9
// 1-minute MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
// 3-minute MACD for trend filter
[htfMacd, htfSignal, _] = request.security(syminfo.tickerid, "3", ta.macd(close, fastLength, slowLength, signalLength), lookahead=barmerge.lookahead_on)
// 200 EMA
ema200 = ta.ema(close, 200)
// Time Filters
inSession = (hour(time, "America/New_York") >= 9 and (hour(time, "America/New_York") > 9 or minute(time, "America/New_York") >= 45)) and (hour(time, "America/New_York") < 22 or (hour(time, "America/New_York") == 22 and minute(time, "America/New_York") == 30))
notRestricted = (hour(time, "America/New_York") >= 6 and hour(time, "America/New_York") < 22)
// Track Previous MACD Crosses
var bool bullishCrossed = false
var bool bearishCrossed = false
if (ta.crossover(macdLine, signalLine) and macdLine > 0)
bullishCrossed := true
if (ta.crossunder(macdLine, signalLine) and macdLine < 0)
bearishCrossed := true
// Define Continuation Signals with EMA and 3-Min MACD Filter
bullishContinuation = (ta.crossover(macdLine, signalLine) and macdLine > 0 and signalLine > 0 and htfMacd > htfSignal and bullishCrossed and close > ema200)
bearishContinuation = (ta.crossunder(macdLine, signalLine) and macdLine < 0 and signalLine < 0 and htfMacd < htfSignal and bearishCrossed and close < ema200)
// Entry Conditions with SL and 10 Contracts
if (bullishContinuation and inSession and notRestricted)
strategy.entry("Long", strategy.long, qty=10, stop=close - 7 * syminfo.mintick)
if (bearishContinuation and inSession and notRestricted)
strategy.entry("Short", strategy.short, qty=10, stop=close + 7 * syminfo.mintick)
// Break-Even Adjustment
if (strategy.position_size > 0 and close >= strategy.position_avg_price + 5 * syminfo.mintick)
strategy.exit("BreakEvenLong", from_entry="Long", stop=strategy.position_avg_price)
if (strategy.position_size < 0 and close <= strategy.position_avg_price - 5 * syminfo.mintick)
strategy.exit("BreakEvenShort", from_entry="Short", stop=strategy.position_avg_price)
// Display Indicators on Chart
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
plot(ema200, color=color.red, title="200 EMA")