রিসোর্স লোড হচ্ছে... লোডিং...

RSI Momentum এবং ADX ট্রেন্ড শক্তি ভিত্তিক মূলধন ব্যবস্থাপনা সিস্টেম

লেখক:চাওঝাং, তারিখঃ ২০২৪-১২-২০ ১৪ঃ২৪ঃ৩৪
ট্যাগঃআরএসআইএডিএক্সএটিআরইএমএটিপি

img

সারসংক্ষেপ

এই কৌশলটি একটি হাইব্রিড সিস্টেম যা প্রবণতা অনুসরণ এবং সুইং ট্রেডিংকে একত্রিত করে, একাধিক প্রযুক্তিগত সূচক স্ক্রিনিং এবং কঠোর মূলধন পরিচালনার মাধ্যমে স্থিতিশীল ট্রেডিং অর্জন করে। কৌশলটি ঝুঁকি পরিচালনা করার জন্য সর্বাধিক ড্রডাউন নিয়ন্ত্রণ সেট করার সময় লাভগুলি লক করার জন্য একটি ধাপে ধাপে লাভ গ্রহণের পদ্ধতি গ্রহণ করে। সিস্টেমটি মূল ট্রেডিং সিগন্যাল ট্রিগার হিসাবে আরএসআই গতির সূচক এবং এডিএক্স প্রবণতা শক্তি সূচক ব্যবহার করে, ভলিউম, এটিআর এবং ইএমএ একাধিক ফিল্টারগুলির সাথে একত্রিত হয়ে ট্রেডিং কার্যকারিতা নিশ্চিত করে।

কৌশল নীতি

কৌশলটির মূল যুক্তিতে নিম্নলিখিত মূল উপাদানগুলি অন্তর্ভুক্ত রয়েছেঃ

  1. এন্ট্রি শর্তাদির জন্য একযোগে সন্তুষ্টি প্রয়োজনঃ লেনদেনের পরিমাণ 1M এর বেশি, ADX 25 এর বেশি যা স্পষ্ট প্রবণতা নির্দেশ করে, RSI 60 এর বেশি যা শক্তিশালী গতি দেখায়, ATR 2 এর বেশি যা পর্যাপ্ত অস্থিরতার পরিসীমা নিশ্চিত করে, 200 দিনের চলমান গড়ের উপরে মূল্য আপট্রেন্ড বজায় রাখে।
  2. ধাপে ধাপে মুনাফা গ্রহণের নকশাঃ প্রথম 15% মুনাফা গ্রহণ, 50% অবস্থান বন্ধ; দ্বিতীয় 30% মুনাফা গ্রহণ, অবশিষ্ট অবস্থান বন্ধ। এই নকশা উভয় আংশিক মুনাফা প্রাথমিকভাবে লক এবং বড় প্রবণতা মিস করে না।
  3. স্টপ-লস কন্ট্রোলঃ ১৫% স্টপ-লস পজিশন মূলধনকে রক্ষা করে, যখন RSI ৫০ এর নিচে পড়ে বা মূল্য 200 MA এর নিচে পড়ে তখনও বেরিয়ে আসে।
  4. ড্রডাউন ম্যানেজমেন্টঃ কৌশলগত মূলধনের রিয়েল-টাইম ট্র্যাকিং, সিস্টেমিক ঝুঁকি নিয়ন্ত্রণ এবং ক্লিয়ারিং শুরু করে যখন ড্রডাউন 30% অতিক্রম করে তখন সমস্ত পজিশন ক্লিয়ার করে।

কৌশলগত সুবিধা

  1. একাধিক প্রযুক্তিগত সূচকের ক্রস-ভ্যালিডেশন ট্রেডিং সিগন্যালের নির্ভরযোগ্যতা বাড়ায়
  2. ধাপে ধাপে লাভের নকশা স্বল্পমেয়াদী লাভের ভারসাম্য এবং প্রধান প্রবণতা ক্যাপচার করে
  3. পৃথক স্টক স্টপ-লস এবং সিস্টেমিক ঝুঁকি নিয়ন্ত্রণ সহ সম্পূর্ণ ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা
  4. কঠোর ট্রেডিং শর্তে কার্যকরভাবে মিথ্যা সংকেত ফিল্টার করা হয়
  5. স্পষ্ট কৌশল যুক্তি, বাজারের অবস্থার উপর ভিত্তি করে প্যারামিটারগুলি সহজেই সামঞ্জস্য করা

কৌশলগত ঝুঁকি

  1. একাধিক সূচক ফিল্টারিং কিছু ট্রেডিং সুযোগ মিস করতে পারে
  2. ঘন ঘন স্টপ-লস ট্রিগার হতে পারে ওসিলেটিং মার্কেটে
  3. নির্দিষ্ট শতাংশ স্টপ লস এবং লাভ গ্রহণের সেটিংস সব বাজারের জন্য উপযুক্ত নাও হতে পারে
  4. কৌশলটি প্রযুক্তিগত সূচকগুলির উপর নির্ভর করে, মৌলিক আকস্মিক ঘটনাগুলির জন্য অপর্যাপ্ত প্রতিক্রিয়া থাকতে পারে
  5. লেনদেনের পরিমাণের প্রয়োজনীয়তা পূরণের জন্য বৃহত্তর মূলধন স্কেল প্রয়োজন

কৌশল অপ্টিমাইজেশান নির্দেশাবলী

  1. বাজারের অস্থিরতার উপর ভিত্তি করে গতিশীলভাবে সামঞ্জস্যপূর্ণ স্টপ-লস এবং লাভ গ্রহণের প্রক্রিয়া প্রবর্তন করুন
  2. বিভিন্ন বাজারের অবস্থার অধীনে বিভিন্ন প্যারামিটার সেটিং ব্যবহার করে বাজার পরিবেশ বিচার মডিউল যোগ করুন
  3. ADX হিসাব পদ্ধতি অপ্টিমাইজ করুন, অভিযোজিত সময়কাল ব্যবহার বিবেচনা করুন
  4. লেনদেনের খরচ বিবেচনা অন্তর্ভুক্ত, অবস্থান ব্যবস্থাপনা সিস্টেম অপ্টিমাইজ
  5. মেশিন লার্নিং-ভিত্তিক সিগন্যাল ফিল্টারিং প্রক্রিয়া তৈরি করা

সংক্ষিপ্তসার

এই কৌশলটি একাধিক প্রযুক্তিগত সূচক এবং কঠোর মূলধন পরিচালনার মাধ্যমে স্থিতিশীল ট্রেডিং অর্জনকারী একটি বিস্তৃত ট্রেডিং সিস্টেম। কৌশলটির মূল সুবিধাগুলি এর সম্পূর্ণ ঝুঁকি নিয়ন্ত্রণ ব্যবস্থা এবং ধাপে ধাপে লাভ নেওয়ার প্রক্রিয়াতে রয়েছে, তবে বাস্তব প্রয়োগে বাজারের অবস্থার উপর ভিত্তি করে সময়মত পরামিতি সামঞ্জস্যের দিকে মনোযোগ দিতে হবে। কৌশলটির আরও অপ্টিমাইজেশনের স্থানটি মূলত পরামিতি গতিশীল অভিযোজন এবং সংকেত ফিল্টারিং প্রক্রিয়া উন্নতিতে রয়েছে।


/*backtest
start: 2023-12-20 00:00:00
end: 2024-12-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Swing Strategy (<30% DD)", shorttitle="SwingStratDD", overlay=true)

//-----------------------------------------------------
// Example Indicators and Logic
//-----------------------------------------------------
emaLen   = input.int(200, "EMA Length", minval=1)
emaValue = ta.ema(close, emaLen)

plot(emaValue, color=color.yellow, linewidth=2, title="EMA 200")


//-----------------------------------------------------
// User Inputs
//-----------------------------------------------------
adxLen           = input.int(14,  "ADX Length",      minval=1)
rsiLen           = input.int(14,  "RSI Length",      minval=1)
atrLen           = input.int(14,  "ATR Length",      minval=1)

rsiBuyThresh     = input.float(60, "RSI Buy Threshold",     minval=1, maxval=100)
adxThresh        = input.float(25, "ADX Threshold (Trend)", minval=1, maxval=100)
minVolume        = input.float(1e6,"Minimum Volume",         minval=1)
minATR           = input.float(2,  "Minimum ATR(14)",        minval=0.1, step=0.1)

stopLossPerc     = input.float(15, "Stop-Loss %",            minval=0.1, step=0.1)
// We’ll do two partial take-profit levels to aim for consistent cashflow:
takeProfit1Perc  = input.float(15, "Take-Profit1 %",         minval=0.1, step=0.1)
takeProfit2Perc  = input.float(30, "Take-Profit2 %",         minval=0.1, step=0.1)

ddLimit          = input.float(30, "Max Drawdown %",         minval=0.1, step=0.1)

//-----------------------------------------------------
// Indicators
//-----------------------------------------------------

rsiValue = ta.rsi(close, rsiLen)
atrValue = ta.atr(atrLen)

//--- Fully Manual ADX Calculation ---
upMove      = high - high[1]
downMove    = low[1] - low
plusDM      = (upMove > downMove and upMove > 0) ? upMove : 0.0
minusDM     = (downMove > upMove and downMove > 0) ? downMove : 0.0
smPlusDM    = ta.rma(plusDM, adxLen)
smMinusDM   = ta.rma(minusDM, adxLen)
smTR        = ta.rma(ta.tr, adxLen)
plusDI      = (smPlusDM / smTR) * 100
minusDI     = (smMinusDM / smTR) * 100
dx          = math.abs(plusDI - minusDI) / (plusDI + minusDI) * 100
adxValue    = ta.rma(dx, adxLen)

//-----------------------------------------------------
// Screener-Like Conditions (Technical Only)
//-----------------------------------------------------
volumeCondition   = volume > minVolume
adxCondition      = adxValue > adxThresh
rsiCondition      = rsiValue > rsiBuyThresh
atrCondition      = atrValue > minATR
aboveEmaCondition = close > emaValue

longCondition = volumeCondition and adxCondition and rsiCondition and atrCondition and aboveEmaCondition

//-----------------------------------------------------
// Strategy Entry / Exit Logic
//-----------------------------------------------------
var bool inTrade = false

// Entry
if longCondition and not inTrade
    strategy.entry("Long", strategy.long)

// Basic Exit Condition: RSI < 50 or Price < EMA
exitCondition = (rsiValue < 50) or (close < emaValue)
if inTrade and exitCondition
    strategy.close("Long")

// Update inTrade status
inTrade := strategy.position_size > 0

//-----------------------------------------------------
// Multi-Level Stop-Loss & Partial Profits
//-----------------------------------------------------
if inTrade
    float entryPrice = strategy.position_avg_price

    // Stop-Loss
    float stopPrice     = entryPrice * (1 - stopLossPerc / 100)

    // Two partial take-profit levels
    float tp1Price      = entryPrice * (1 + takeProfit1Perc / 100)
    float tp2Price      = entryPrice * (1 + takeProfit2Perc / 100)

    // Example approach: exit half at TP1, half at TP2
    strategy.exit("TP1/SL",     from_entry="Long", stop=stopPrice,    limit=tp1Price, qty_percent=50)
    strategy.exit("TP2",        from_entry="Long", limit=tp2Price,    qty_percent=50)

//-----------------------------------------------------
// 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, 50))
plot(adxValue, title="Manual ADX", color=color.orange)


সম্পর্কিত

আরো