মাল্টি-টাইমফ্রেম ইচিমোকু, এমএসিডি এবং ডিএমআই সমন্বিত কৌশল

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

img

সারসংক্ষেপ

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

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

এই কৌশলটি ১৫ মিনিটের (এম১৫) এবং ১ ঘণ্টার (এইচ১) চার্ট থেকে প্রাপ্ত ধারাবাহিক সংকেতগুলির উপর ভিত্তি করে ক্রয় এবং বিক্রয় শর্তগুলি কার্যকর করে, ৪ ঘণ্টার (এইচ৪) সময়সীমার থেকে অতিরিক্ত নিশ্চিতকরণ সহ।

ক্রয়ের শর্তাবলী

  • M15, H1 এবং H4 টাইমফ্রেমে ইচিমোকু ক্লাউডের উপরে মূল্য
  • সিগন্যাল লাইনের উপরে MACD লাইন এবং H1 এ উভয়ই শূন্যের উপরে
  • ডিআই- এবং এডিএক্স-এর উপরে ডিআই+ H1 এ কমপক্ষে 25
  • এমএসিডি লাইন শূন্যের উপরে, ডিআই+ ডিআই-এর উপরে এবং এডিএক্স এম১৫-এ কমপক্ষে ২৫

বিক্রয় শর্তাবলী

  • M15, H1 এবং H4 টাইমফ্রেমে Ichimoku Cloud এর নিচে মূল্য
  • সিগন্যাল লাইনের নিচে এমএসিডি লাইন এবং এইচ 1 এ উভয়ই শূন্যের নিচে
  • ডিআই- ডিআই+ এবং এডিএক্স-এর চেয়ে কমপক্ষে ২৫ শতাংশ H1-এ
  • এমএসিডি লাইন শূন্যের নিচে, ডিআই- ডিআই+ এর উপরে এবং এডিএক্স এম 15 এ কমপক্ষে 25

প্রবেশ ও প্রস্থান

  • সমস্ত ক্রয় শর্ত পূরণ হলে লং পজিশন প্রবেশ করা হয়েছে, যা সময়সীমার মধ্যে আপগ্রেডের গতির পরামর্শ দেয়
  • সমস্ত বিক্রয় শর্ত পূরণ হলে শর্ট পজিশন প্রবেশ করা হয়, যা সময়সীমার মধ্যে নেমে যাওয়ার গতির পরামর্শ দেয়
  • বিপরীত শর্ত পূরণ হলে পজিশন বন্ধ, যা সম্ভাব্য প্রবণতা বিপরীত বা গতি হ্রাস নির্দেশ করে

কৌশলটির সুবিধা

  • উন্নত নির্ভুলতার জন্য একাধিক সময়সীমা বিবেচনা করে
  • ইচিমোকু ট্রেন্ডের দিকনির্দেশনা এবং শক্তি বিচার করে
  • এমএসিডি সংক্ষিপ্ত ও মাঝারি মেয়াদী গতি নির্দেশ করে
  • ডিএমআই ক্রয়/বিক্রয় চাপ এবং প্রবণতা কার্যকলাপের মূল্যায়ন করে
  • একাধিক সূচক থেকে সংকেত একত্রিত করে
  • ক্রয়/বিক্রয় শর্তের জন্য কাস্টমাইজযোগ্য পরামিতি
  • স্পষ্ট প্রবণতা সহ বাজারে ব্যাপকভাবে প্রযোজ্য

কৌশলটির ঝুঁকি

  • সময় ফ্রেম জুড়ে দ্বন্দ্বপূর্ণ সংকেত খারাপ সংকেত হতে পারে
  • ইচিমোকু ভুলভাবে ব্যবহার করা হলে বিভ্রান্তিকর হতে পারে
  • এমএসিডি এবং ডিএমআই-র প্রকৃতি পিছিয়ে আছে, তারা বাঁক মিস করতে পারে
  • একাধিক সময়সীমার সূচক পর্যবেক্ষণের প্রয়োজন
  • আকস্মিক ঘটনার ফলে বিপুল মূল্য পরিবর্তনের সতর্কতা অবলম্বন

অপ্টিমাইজেশান দিক

  • ইচিমোকু, এমএসিডি এবং ডিএমআই পরামিতিগুলির সমন্বয়কে অনুকূল করুন
  • প্রতিদিনের মত আরো সময়সীমা পরীক্ষা করুন
  • ভোল্টেবিলিটি, মুভিং এভারেজ ইত্যাদির মতো আরও সূচক থেকে নিশ্চিতকরণ যুক্ত করুন।
  • আরো ঐতিহাসিক তথ্য দিয়ে ক্রয়/বিক্রয় শর্ত অপ্টিমাইজ করুন
  • মেশিন লার্নিং ইত্যাদির সাথে গতিশীল পরামিতি অপ্টিমাইজেশন

সিদ্ধান্ত

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


/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © haidinh83

//@version=5
strategy("Ichimoku, MACD, DMI Multiple time frame 21/01/2024", overlay=true)
    // Khung thời gian
timeframe1 = "5"   // M5
timeframe2 = "15"  // M15
timeframe3 = "60"  // H1
timeframe4 = "240" // H4

    // Nhập tham số ADX và DI
lengthDMI = input(14, title="DMI Length")
thresholdADX = input(20, title="ADX Threshold")

// Tính giá trị Ichimoku
ichimoku(tenkanPeriod, kijunPeriod, senkouPeriod) =>
    tenkanSen = (ta.highest(high, tenkanPeriod) + ta.lowest(low, tenkanPeriod)) / 2
    kijunSen = (ta.highest(high, kijunPeriod) + ta.lowest(low, kijunPeriod)) / 2
    senkouSpanA = (tenkanSen + kijunSen) / 2
    senkouSpanB = (ta.highest(high, senkouPeriod) + ta.lowest(low, senkouPeriod)) / 2
    [tenkanSen, kijunSen, senkouSpanA, senkouSpanB]

    // Lấy Ichimoku từng khung thời gian
[tenkanM5, kijunM5, spanAM5, spanBM5] = request.security(syminfo.tickerid, timeframe1, ichimoku(9, 26, 52))
[tenkanM15, kijunM15, spanAM15, spanBM15] = request.security(syminfo.tickerid, timeframe2, ichimoku(9, 26, 52))
[tenkanH1, kijunH1, spanAH1, spanBH1] = request.security(syminfo.tickerid, timeframe3, ichimoku(9, 26, 52))
[tenkanH4, kijunH4, spanAH4, spanBH4] = request.security(syminfo.tickerid, timeframe4, ichimoku(9, 26, 52))

    // Tính giá trị MACD và Signal Line cho từng khung thời gian
[macdM5, signalM5, _] = request.security(syminfo.tickerid, timeframe1, ta.macd(close, 12, 26, 9))
[macdM15, signalM15, _] = request.security(syminfo.tickerid, timeframe2, ta.macd(close, 12, 26, 9))
[macdH1, signalH1, _] = request.security(syminfo.tickerid, timeframe3, ta.macd(close, 12, 26, 9))
[macdH4, signalH4, _] = request.security(syminfo.tickerid, timeframe4, ta.macd(close, 12, 26, 9))

  // Tính giá trị DMI cho từng khung thời gian
calcDMI(len) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    trur = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / trur)
    minus = fixnan(100 * ta.rma(minusDM, len) / trur)
    adx = 100 * ta.rma(math.abs(plus - minus) / (plus + minus == 0 ? 1 : plus + minus), len)
    [plus, minus, adx]  // Đảm bảo mỗi phần của hàm nằm trên một dòng riêng biệt


[plusM5, minusM5, adxM5] = request.security(syminfo.tickerid, timeframe1, calcDMI(lengthDMI))
[plusM15, minusM15, adxM15] = request.security(syminfo.tickerid, timeframe2, calcDMI(lengthDMI))
[plusH1, minusH1, adxH1] = request.security(syminfo.tickerid, timeframe3, calcDMI(lengthDMI))
[plusH4, minusH4, adxH4] = request.security(syminfo.tickerid, timeframe4, calcDMI(lengthDMI))



// Điều kiện mua cho H1
buyConditionH1 = (close > spanAM15) and (close > spanAH1) and (close > spanAH4) and 
                 (macdH1 > signalH1) and (macdH1 > 0) and (signalH1 > 0) and 
                 (plusH1 > minusH1) and (adxH1 >= 25)

// Điều kiện mua cho M15
buyConditionM15 = (close > spanAM15) and (close > spanAH1) and (close > spanAH4) and 
                  (macdM15 > 0) and (plusM15 > minusM15) and (adxM15 >= 25)

// Điều kiện mua tổng hợp
buyCondition = buyConditionH1 and buyConditionM15

// Điều kiện bán cho H1
sellConditionH1 = (close < spanAM15) and (close < spanAH1) and (close < spanAH4) and 
                  (macdH1 < signalH1) and (macdH1 < 0) and (signalH1 < 0) and 
                  (minusH1 > plusH1) and (adxH1 >= 25)

// Điều kiện bán cho M15
sellConditionM15 = (close < spanAM15) and (close < spanAH1) and (close < spanAH4) and 
                   (macdM15 < 0) and (minusM15 > plusM15) and (adxM15 >= 25)

// Điều kiện bán tổng hợp
sellCondition = sellConditionH1 and sellConditionM15

// Thực hiện giao dịch nếu điều kiện bán hoặc mua được đáp ứng
if buyCondition
    strategy.entry("Buy", strategy.long)

if sellCondition
    strategy.entry("Sell", strategy.short)


    // Vẽ và tô màu giữa Senkou Span A và B cho mỗi khung thời gian
p1 = plot(spanAM15, color=color.blue, title="Span A M15")
p2 = plot(spanBM15, color=color.blue, title="Span B M15")
fill(p1, p2, color=color.new(color.blue, 90), title="M15 Cloud")

p3 = plot(spanAH1, color=color.purple, title="Span A H1")
p4 = plot(spanBH1, color=color.purple, title="Span B H1")
fill(p3, p4, color=color.new(color.purple, 90), title="H1 Cloud")

p5 = plot(spanAH4, color=color.orange, title="Span A H4")
p6 = plot(spanBH4, color=color.orange, title="Span B H4")
fill(p5, p6, color=color.new(color.orange, 90), title="H4 Cloud")

    // Tô màu nền và hiển thị cảnh báo
 
bgcolor(buyCondition ? color.new(color.green, 45) : sellCondition ? color.new(color.red, 45) : na)
alertcondition(buyCondition, title="Mua Signal", message="Điều kiện mua đã được đáp ứng")
alertcondition(sellCondition, title="Bán Signal", message="Điều kiện bán đã được đáp ứng")



আরো