ডাবল মুভিং এভারেজ ক্রসওভার এবং মাল্টি-টাইমফ্রেম ডিএমআই সূচকের উপর ভিত্তি করে ট্রেন্ড অনুসরণকারী কৌশল

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

img

কৌশল ওভারভিউ

এই নিবন্ধটি কিরি ক্রসওভার @zaytrade নামে একটি পরিমাণগত ট্রেডিং কৌশল চালু করে। কৌশলটি ট্রেডিং সিদ্ধান্তের জন্য বাজারের প্রবণতা ক্যাপচার করার জন্য দ্বৈত চলমান গড় ক্রসওভার এবং মাল্টি-টাইমফ্রেম ডিএমআই সূচককে একত্রিত করে। কৌশলটির মূলটি হ'ল একটি স্বল্পমেয়াদী চলমান গড় (10-অবধি ইএমএ) এবং একটি দীর্ঘমেয়াদী চলমান গড় (323-অবধি ইএমএ) এর ক্রসওভার সংকেতগুলি ব্যবহার করা, একই সাথে 5 মিনিট, 15 মিনিট, 30 মিনিট এবং 1 ঘন্টার মতো একাধিক সময়সীমার জুড়ে ডিএমআই সূচকগুলি ব্যবহার করে প্রবণতার দিক এবং শক্তি নিশ্চিত করা।

কৌশলগত নীতি

এই কৌশলটির নীতিগুলি নিম্নলিখিত অংশগুলিতে বিভক্ত করা যেতে পারেঃ

  1. ডাবল মুভিং মিডিয়ার ক্রসওভারঃকৌশলটি বাজারের প্রবণতা ক্যাপচার করার জন্য একটি স্বল্পমেয়াদী ইএমএ (10-অবধি) এবং একটি দীর্ঘমেয়াদী ইএমএ (323-অবধি) ব্যবহার করে। যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএ এর উপরে অতিক্রম করে, এটি একটি সম্ভাব্য দীর্ঘ সুযোগ নির্দেশ করে; যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএ এর নীচে অতিক্রম করে, এটি একটি সম্ভাব্য স্বল্প সুযোগ নির্দেশ করে। এই চলমান গড় ক্রসওভার পদ্ধতি কার্যকরভাবে বাজারের পালা পয়েন্ট এবং প্রবণতা দিক সনাক্ত করতে পারে।

  2. মাল্টি-টাইমফ্রেম ডিএমআই সূচকঃপ্রবণতা দিক এবং শক্তি আরও নিশ্চিত করার জন্য, কৌশলটি একাধিক সময় ফ্রেম জুড়ে ডিএমআই সূচকগুলি ব্যবহার করে। ডিএমআই সূচকটি এডিএক্স (গড় দিকনির্দেশ সূচক), + ডিআই (পজিটিভ দিকনির্দেশ সূচক) এবং - ডিআই (নেতিবাচক দিকনির্দেশ সূচক) নিয়ে গঠিত। + ডিআই এবং - ডিআই এর আপেক্ষিক শক্তি তুলনা করে, বর্তমান প্রবণতা উত্থান বা হ্রাস কিনা তা নির্ধারণ করা যায়। কৌশলটি আরও বিস্তৃত প্রবণতা তথ্য পেতে 5 মিনিটের, 15 মিনিটের, 30 মিনিটের এবং 1 ঘন্টা সময় ফ্রেমে ডিএমআই সূচকগুলি গণনা করে।

  3. প্রবণতা নিশ্চিতকরণঃকৌশলটি চলমান গড় ক্রসওভার সংকেত এবং মাল্টি-টাইমফ্রেম ডিএমআই সূচকগুলি ব্যাপকভাবে বিবেচনা করে প্রবণতাটি নিশ্চিত করে। যখন চলমান গড় ক্রসওভার সংকেতটি ডিএমআই সূচকগুলির দ্বারা নির্দেশিত প্রবণতা দিকের সাথে সামঞ্জস্য করে, কৌশলটি সংশ্লিষ্ট ট্রেডিং সংকেত উত্পন্ন করে। উদাহরণস্বরূপ, যখন স্বল্পমেয়াদী ইএমএ দীর্ঘমেয়াদী ইএমএর উপরে ক্রস করে এবং ডিএমআই সূচকগুলির একাধিক সময়সীমা একটি উত্থান প্রবণতা দেখায়, কৌশলটি একটি দীর্ঘ সংকেত উত্পন্ন করে।

  4. ঝুঁকি ব্যবস্থাপনাঃএই কৌশলটি ঝুঁকি শতাংশ ভিত্তিক পজিশন সাইজিং পদ্ধতি ব্যবহার করে। ব্যবহারকারীরা প্রতিটি ট্রেডের ঝুঁকি এক্সপোজার নিয়ন্ত্রণ করতে পারেনriskPercentageEMAঅতিরিক্তভাবে, কৌশল সম্ভাব্য ক্ষতি সীমাবদ্ধ করার জন্য স্টপ-লস অর্ডার ব্যবহার করে।

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

  1. ট্রেন্ড ক্যাপচারঃডাবল চলমান গড় ক্রসওভার এবং মাল্টি-টাইমফ্রেম ডিএমআই সূচকগুলির সংমিশ্রণে, কৌশলটি কার্যকরভাবে বাজারের প্রধান প্রবণতাগুলি ক্যাপচার করতে পারে। এই পদ্ধতিটি ব্যবসায়ীদের বাজারের সামগ্রিক দিকের সাথে সারিবদ্ধ করতে সহায়তা করে, সফল ব্যবসায়ের সম্ভাবনা বাড়ায়।

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

  3. নমনীয় পরামিতি সেটিংসঃকৌশলটি স্বল্পমেয়াদী ইএমএ সময়কাল, দীর্ঘমেয়াদী ইএমএ সময়কাল, এডিএক্স মসৃণকরণ সময়কাল এবং ডিআই দৈর্ঘ্যের মতো বিভিন্ন সামঞ্জস্যযোগ্য পরামিতি সরবরাহ করে। ব্যবহারকারীরা আরও ভাল ট্রেডিং পারফরম্যান্স অর্জনের জন্য তাদের ট্রেডিং স্টাইল এবং বাজারের বৈশিষ্ট্যগুলির উপর ভিত্তি করে এই পরামিতিগুলি অনুকূল করতে পারেন।

  4. ঝুঁকি ব্যবস্থাপনাঃএই কৌশলটিতে ঝুঁকি শতাংশ ভিত্তিক পজিশন সাইজিং পদ্ধতি অন্তর্ভুক্ত রয়েছে, যা ব্যবহারকারীদের প্রতিটি লেনদেনের ঝুঁকি ঝুঁকি নিয়ন্ত্রণ করতে দেয়।riskPercentageEMAএছাড়া, কৌশলটি সম্ভাব্য ক্ষতির সীমাবদ্ধ করার জন্য স্টপ-লস অর্ডার ব্যবহার করে, ঝুঁকি ব্যবস্থাপনার কার্যকারিতা বাড়ায়।

কৌশলগত ঝুঁকি

  1. প্যারামিটার অপ্টিমাইজেশনঃকৌশলটির কর্মক্ষমতা মূলত পরামিতিগুলির পছন্দ উপর নির্ভর করে। অনুপযুক্ত পরামিতি সেটিংগুলি অপ্টিমাম কৌশল কর্মক্ষমতা বা এমনকি উল্লেখযোগ্য ড্রডাউনগুলির দিকে পরিচালিত করতে পারে। অতএব, ব্যবহারিক প্রয়োগে, বর্তমান বাজারের অবস্থার জন্য উপযুক্ত সেরা পরামিতি সংমিশ্রণটি খুঁজে পেতে পরামিতিগুলি অনুকূলিতকরণ এবং পরীক্ষা করা প্রয়োজন।

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

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

  4. ব্ল্যাক সোয়ান ইভেন্টস:কৌশলটি ঐতিহাসিক তথ্য এবং পরিসংখ্যানগত মডেলের উপর ভিত্তি করে। চরম বাজারের ইভেন্টগুলির জন্য, যেমন ব্ল্যাক সোয়ান ইভেন্টগুলি, কৌশলটি যথাসময়ে সঠিকভাবে প্রতিক্রিয়া জানাতে সক্ষম নাও হতে পারে। এটি এই বিশেষ পরিস্থিতিতে কৌশলটির জন্য উল্লেখযোগ্য ক্ষতির দিকে পরিচালিত করতে পারে।

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

  1. ডায়নামিক প্যারামিটার সমন্বয়ঃএকটি গতিশীল পরামিতি সমন্বয় প্রক্রিয়া প্রবর্তন বিবেচনা করুন যা বাজারের অস্থিরতা এবং প্রবণতার শক্তির উপর ভিত্তি করে কৌশল পরামিতিগুলিকে অভিযোজিতভাবে সামঞ্জস্য করে। এটি কৌশলকে বিভিন্ন বাজারের পরিবেশে আরও ভালভাবে মানিয়ে নিতে এবং এর দৃust়তা উন্নত করতে সহায়তা করতে পারে।

  2. মাল্টি-ফ্যাক্টর নিশ্চিতকরণঃচলমান গড় ক্রসওভার এবং ডিএমআই সূচক ছাড়াও, প্রবণতা আরও নিশ্চিত করতে অন্যান্য প্রযুক্তিগত সূচক বা মৌলিক কারণগুলি প্রবর্তন করা যেতে পারে। উদাহরণস্বরূপ, ভলিউম, অস্থিরতা, বাজার আবেগ এবং অন্যান্য সূচকগুলির সংমিশ্রণ আরও নির্ভরযোগ্য ট্রেডিং সংকেত সরবরাহ করতে পারে।

  3. স্টপ-লস এবং টেক-প্রফিট অপ্টিমাইজেশানঃস্টপ-লস এবং লাভের স্তরের স্থানান্তরকে অনুকূল করুন, যেমন ট্রেলিং স্টপ বা গতিশীল স্টপ-লস পদ্ধতি ব্যবহার করা। এটি সম্ভাব্য ক্ষতি সীমাবদ্ধ করার সময় কৌশলটিকে লাভের আরও ভাল সুরক্ষা দিতে সহায়তা করতে পারে।

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

  5. মেশিন লার্নিং অপ্টিমাইজেশানঃমেশিন লার্নিং অ্যালগরিদমকে কৌশলটির সাথে একত্রিত করার চেষ্টা করুন। ঐতিহাসিক ডেটা শেখার এবং প্যাটার্ন স্বীকৃতির মাধ্যমে, কৌশলটির পরামিতি নির্বাচন এবং সংকেত উত্পাদন অনুকূল করুন। এটি কৌশলটিকে স্বয়ংক্রিয়ভাবে বাজারের পরিবর্তনের সাথে খাপ খাইয়ে নিতে সহায়তা করতে পারে, এর অভিযোজনযোগ্যতা এবং দৃust়তা বাড়িয়ে তুলতে পারে।

সিদ্ধান্ত

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


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

//@version=5
strategy("Kyrie Crossover @zaytrade ", overlay=true, calc_on_every_tick=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 = ta.crossover(emaShort, emaLong)
shortConditionEMA = ta.crossunder(emaShort, emaLong)

// Input parameters for DMI
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, 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 ? up : 0), len) / truerange)
    minus = fixnan(100 * ta.rma((down > up ? 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]

// Function to get trend and strength for a given timeframe
getTrendAndStrength(_source, _dilen, _adxlen) =>
    [adxValue, up, down] = adx(_dilen, _adxlen)
    var string trendIndication = ""
    var string trendStrength = ""
    if (up > down) or ((up > down) and (up > down) and (up > adxValue)) // Bullish condition
        trendIndication := "Bullish"
        trendStrength := "Strengthening" 
    else if (down > up) or ((down > up) and (down > up) and (down > adxValue)) // Bearish condition
        trendIndication := "Bearish"
        trendStrength := "Weakening" 
    else
        trendIndication := "No Clear Trend"
        trendStrength := "Sideways"
    [trendIndication, trendStrength]

// Get trend and strength for selected timeframes
[tf1_trend, tf1_strength] = request.security(syminfo.tickerid, "5", getTrendAndStrength(close, dilen, adxlen))
[tf2_trend, tf2_strength] = request.security(syminfo.tickerid, "15", getTrendAndStrength(close, dilen, adxlen))
[tf3_trend, tf3_strength] = request.security(syminfo.tickerid, "30", getTrendAndStrength(close, dilen, adxlen))
[tf4_trend, tf4_strength] = request.security(syminfo.tickerid, "60", getTrendAndStrength(close, dilen, adxlen))
[current_trend, _] = getTrendAndStrength(close, dilen, adxlen)

// Define colors based on trend indication
tf1_color = tf1_trend == "Bullish" ? color.green : (tf1_trend == "Bearish" ? color.red : color.white)
tf2_color = tf2_trend == "Bullish" ? color.green : (tf2_trend == "Bearish" ? color.red : color.white)
tf3_color = tf3_trend == "Bullish" ? color.green : (tf3_trend == "Bearish" ? color.red : color.white)
tf4_color = tf4_trend == "Bullish" ? color.green : (tf4_trend == "Bearish" ? color.red : color.white)
current_color = current_trend == "Bullish" ? color.green : (current_trend == "Bearish" ? color.red : color.white)

// Create and fill the enhanced table for DMI
var table dmiTable = na
if (barstate.islast)
    dmiTable := table.new(position.top_right, 6, 1)
    table.cell(dmiTable, 0, 0, "DMI Metrics", bgcolor=color.new(color.black, 90), width=15, height=4, text_color=color.white)
    table.cell(dmiTable, 1, 0, "5m Trend: " + tf1_trend, bgcolor=tf1_color, width=15, height=4, text_color=color.white)
    table.cell(dmiTable, 2, 0, "15m Trend: " + tf2_trend, bgcolor=tf2_color, width=15, height=4, text_color=color.white)
    table.cell(dmiTable, 3, 0, "30m Trend: " + tf3_trend, bgcolor=tf3_color, width=15, height=4, text_color=color.white)
    table.cell(dmiTable, 4, 0, "1h Trend: " + tf4_trend, bgcolor=tf4_color, width=15, height=4, text_color=color.white)
    table.cell(dmiTable, 5, 0, "Current Trend: " + current_trend, bgcolor=current_color, width=15, height=4, text_color=color.white)

// Strategy logic
if (longConditionEMA)
    strategy.entry("Long", strategy.long)
if (shortConditionEMA)
    strategy.entry("Short", strategy.short)


আরো