ডায়নামিক ট্রেইলিং স্টপ লস সহ মিনটেম ক্রসওভার কৌশল

লেখক:চাওঝাং, তারিখঃ ২০২৪-০২-২৯ ১৩ঃ৫৫ঃ১৬
ট্যাগঃ

img

সারসংক্ষেপ

এই কৌশলটি গতিশীল গড় সূচক এবং দিকনির্দেশক আন্দোলনের সূচক (ডিএমআই) সূচককে একত্রিত করে দ্বৈত সূচক ক্রসওভারের উপর ভিত্তি করে ক্রয় এবং বিক্রয় সংকেত তৈরি করে। এটি ঝুঁকি নিয়ন্ত্রণের জন্য একটি গতিশীল ট্রেলিং স্টপ লস অন্তর্ভুক্ত করে।

কৌশলগত যুক্তি

  1. একটি সংক্ষিপ্ত 9 দিনের ইএমএ এবং একটি দীর্ঘ 21 দিনের ইএমএ ব্যবহার করে চলমান গড় সূচক তৈরি করুন। যখন সংক্ষিপ্ত ইএমএ দীর্ঘ ইএমএর উপরে অতিক্রম করে তখন একটি ক্রয় সংকেত উত্পন্ন হয়। যখন সংক্ষিপ্ত ইএমএ দীর্ঘ ইএমএর নীচে অতিক্রম করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
  2. ADX, +DI এবং -DI ব্যবহার করে DMI সূচক তৈরি করুন। +DI -DI এর উপরে অতিক্রম করলে একটি ক্রয় সংকেত ট্রিগার করা হয়। -DI +DI এর উপরে অতিক্রম করলে একটি বিক্রয় সংকেত ট্রিগার করা হয়।
  3. EMA এবং DMI এর সংকেত একত্রিত করুন, প্রকৃত ক্রয় বা বিক্রয় সংকেত প্রকাশের আগে উভয় সূচকেরই শর্ত পূরণ করতে হবে।
  4. স্টপ লসের জন্য সর্বোচ্চ মূল্য/নিম্নতম মূল্য ট্র্যাক করার জন্য একটি গতিশীল ট্রেলিং স্টপ লস ব্যবহার করুন।

সুবিধা বিশ্লেষণ

  1. দ্বৈত সূচক সমন্বয়গুলি ভুয়া সংকেতগুলি ফিল্টার করে এবং সংকেতের নির্ভুলতা উন্নত করে। স্বল্পমেয়াদী সূচকগুলি প্রবণতা পরিবর্তনগুলি ক্যাপচার করে যখন দীর্ঘমেয়াদীগুলি সামগ্রিক দিকনির্দেশ নির্ধারণ করে।
  2. গতির সূচকগুলি কিছু শীর্ষস্থানীয় বৈশিষ্ট্য সহ প্রবণতা পরিবর্তনগুলি দ্রুত ধরতে পারে।
  3. ডায়নামিক ট্রেলিং স্টপ লস ঝুঁকি নিয়ন্ত্রণের সময় যতটা সম্ভব মুনাফা লক করে।

ঝুঁকি বিশ্লেষণ

  1. ডুয়াল-ইন্ডিক্টর কম্বো দিয়ে, সিগন্যাল ফ্রিকোয়েন্সি হ্রাস পায়, সম্ভবত কিছু সুযোগ মিস করে।
  2. সূচকগুলির অনুপযুক্ত পরামিতিগুলি অতিরিক্ত ট্রেডিং বা নিম্নমানের সংকেতগুলির দিকে পরিচালিত করতে পারে।
  3. স্টপ লস সেট করা খুব বড় হলে ক্ষতির ঝুঁকি বাড়বে, যখন খুব কম সেট করা হলে ট্রেন্ড বিচ্ছিন্ন হওয়ার ঝুঁকি বাড়বে।

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

  1. সর্বোত্তম খুঁজে পেতে বিভিন্ন স্বল্প ও দীর্ঘমেয়াদী দৈর্ঘ্যের সাথে ইএমএ কম্বো পরীক্ষা করুন।
  2. ডিএমআই সিগন্যালের গুণমান উন্নত করতে এডিএক্স পরামিতিগুলি অপ্টিমাইজ করুন।
  3. ঝুঁকি ব্যবস্থাপনা করার সময় লাভকে লক করার জন্য স্টপ লস প্যারামিটারগুলি সূক্ষ্মভাবে সামঞ্জস্য করুন।
  4. সিগন্যালের গুণমান আরও বাড়ানোর জন্য আরও ফিল্টার যুক্ত করার কথা বিবেচনা করুন।

সিদ্ধান্ত

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


/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Combined EMA and DMI Strategy with Enhanced Table", overlay=true)

// Input parameters for EMA
shortTermEMA = input.int(9, title="Short-Term EMA Period")
longTermEMA = input.int(21, title="Long-Term EMA Period")
riskPercentageEMA = input.float(1, title="Risk Percentage EMA", minval=0.1, maxval=5, step=0.1)

// Calculate EMAs
emaShort = ta.ema(close, shortTermEMA)
emaLong = ta.ema(close, longTermEMA)

// EMA Crossover Strategy
longConditionEMA = emaShort > emaLong and emaShort[1] <= emaLong[1]
shortConditionEMA = emaShort < emaLong and emaShort[1] >= emaLong[1]

// Input parameters for DMI
adxlen = input(17, title="ADX Smoothing")
dilen = input(17, title="DI Length")

// DMI Logic
dirmov(len) =>
    up = ta.change(high)
    down = -ta.change(low)
    truerange = ta.tr
    plus = fixnan(100 * ta.rma(up > down and up > 0 ? up : 0, len) / truerange)
    minus = fixnan(100 * ta.rma(down > up and down > 0 ? down : 0, len) / truerange)
    [plus, minus]

adx(dilen, adxlen) => 
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adxValue = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
    [adxValue, plus, minus]

[adxValue, up, down] = adx(dilen, adxlen)

// DMI Conditions
buyConditionDMI = up > down or (up and adxValue > down)
sellConditionDMI = down > up or (down and adxValue > up)

// Combined Conditions for Entry
longEntryCondition = longConditionEMA and buyConditionDMI
shortEntryCondition = shortConditionEMA and sellConditionDMI

// Combined Conditions for Exit
longExitCondition = shortConditionEMA
shortExitCondition = longConditionEMA

// Enter long trade based on combined conditions
if (longEntryCondition)
    strategy.entry("Long", strategy.long)

// Enter short trade based on combined conditions
if (shortEntryCondition)
    strategy.entry("Short", strategy.short)

// Exit trades
if (longExitCondition)
    strategy.close("Long")

if (shortExitCondition)
    strategy.close("Short")

// Plot EMAs
plot(emaShort, color=color.blue, title="Short-Term EMA")
plot(emaLong, color=color.red, title="Long-Term EMA")

// Create and fill the enhanced table
var tbl = table.new(position.top_right, 4, 1)
if (barstate.islast)
    table.cell(tbl, 0, 0, "ADX: " + str.tostring(adxValue), bgcolor=color.new(color.red, 90), width=15, height=4)
    table.cell(tbl, 1, 0, "+DI: " + str.tostring(up), bgcolor=color.new(color.blue, 90), width=15, height=4)
    table.cell(tbl, 2, 0, "-DI: " + str.tostring(down), bgcolor=color.new(color.orange, 90), width=15, height=4)

   

আরো