
এই কৌশলটি একটি সমন্বিত ট্রেডিং সিস্টেম যা প্রবণতা ট্র্যাকিং এবং ঝুঁকি নিয়ন্ত্রণের সমন্বয় করে। এটি প্রবণতা ফিল্টার হিসাবে 200 পিরিয়ডের সূচক মুভিং এভারেজ (EMA) ব্যবহার করে, প্রবেশাধিকার সংকেত হিসাবে তুলনামূলকভাবে শক্তিশালী সূচক (RSI) ব্যবহার করে এবং স্টপ লস, স্টপ স্টপ এবং সর্বাধিক প্রত্যাহার নিয়ন্ত্রণ ব্যবস্থাকে সংহত করে। কৌশলটির প্রধান বৈশিষ্ট্য হ’ল প্রবণতা ট্র্যাকিংয়ের সুবিধা বজায় রাখা এবং গতিশীল প্রত্যাহারের মাধ্যমে কঠোরভাবে ঝুঁকি নিয়ন্ত্রণ করা।
কৌশলটির মূল যুক্তিতে নিম্নলিখিত কয়েকটি মূল উপাদান রয়েছেঃ
এই কৌশলটি প্রবণতা ট্র্যাকিং এবং কঠোর ঝুঁকি নিয়ন্ত্রণের সমন্বয় করে একটি সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। এর মূল সুবিধা হ’ল ঝুঁকি পরিচালনার সম্পূর্ণতা এবং কৌশলগত যুক্তির স্বচ্ছতা। বহু স্তরের ঝুঁকি নিয়ন্ত্রণ ব্যবস্থার মাধ্যমে, কৌশলটি লাভের সন্ধানের সাথে সাথে কার্যকরভাবে প্রত্যাহার নিয়ন্ত্রণ করতে সক্ষম হয়। যদিও কিছু অন্তর্নিহিত ঝুঁকি রয়েছে, তবে প্রস্তাবিত অপ্টিমাইজেশন দিকনির্দেশের মাধ্যমে কৌশলটির এখনও অনেক উন্নতির জায়গা রয়েছে।
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-19 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Disruptor Trend-Following (Drawdown < 30%)", shorttitle="DisruptorStrategyDD", overlay=true)
//-----------------------------------------------------
// User Inputs
//-----------------------------------------------------
emaLen = input.int(200, "Long EMA Length", minval=1)
rsiLen = input.int(14, "RSI Length", minval=1)
rsiThreshold = input.float(50, "RSI Buy Threshold", minval=1, maxval=100)
stopLossPerc = input.float(20, "Stop-Loss %", minval=0.1, step=0.1)
takeProfitPerc = input.float(40, "Take-Profit %", minval=0.1, step=0.1)
ddLimit = input.float(30, "Max Drawdown %", minval=0.1, step=0.1)
//-----------------------------------------------------
// Indicators
//-----------------------------------------------------
emaValue = ta.ema(close, emaLen)
rsiValue = ta.rsi(close, rsiLen)
//-----------------------------------------------------
// Conditions
//-----------------------------------------------------
longCondition = close > emaValue and rsiValue > rsiThreshold
exitCondition = close < emaValue or rsiValue < rsiThreshold
//-----------------------------------------------------
// Position Tracking
//-----------------------------------------------------
var bool inTrade = false
if longCondition and not inTrade
strategy.entry("Long", strategy.long)
if inTrade and exitCondition
strategy.close("Long")
inTrade := strategy.position_size > 0
//-----------------------------------------------------
// Stop-Loss & Take-Profit
//-----------------------------------------------------
if inTrade
stopPrice = strategy.position_avg_price * (1 - stopLossPerc / 100)
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPerc / 100)
strategy.exit("Exit", from_entry="Long", stop=stopPrice, limit=takeProfitPrice)
//-----------------------------------------------------
// Dynamic Drawdown Handling
//-----------------------------------------------------
var float peakEquity = strategy.equity
peakEquity := math.max(peakEquity, strategy.equity)
currentDrawdownPerc = (peakEquity - strategy.equity) / peakEquity * 100
if currentDrawdownPerc > ddLimit
strategy.close_all("Max Drawdown Exceeded")
//-----------------------------------------------------
// Plotting
//-----------------------------------------------------
plot(emaValue, title="EMA 200", color=color.yellow, linewidth=2)
plotchar(rsiValue, title="RSI", char='•', location=location.bottom, color=color.new(color.teal, 60))