ডুয়াল MACD প্রাইস অ্যাকশন ব্রেকআউট ট্র্যাকিং কৌশল

MACD ATR
সৃষ্টির তারিখ: 2024-11-25 11:15:50 অবশেষে সংশোধন করুন: 2024-11-25 11:15:50
অনুলিপি: 1 ক্লিকের সংখ্যা: 532
1
ফোকাস
1617
অনুসারী

ডুয়াল MACD প্রাইস অ্যাকশন ব্রেকআউট ট্র্যাকিং কৌশল

ওভারভিউ

এটি একটি ট্রেডিং কৌশল যা ডাবল ম্যাকড সূচক এবং মূল্য আচরণ বিশ্লেষণের সাথে মিলিত। কৌশলটি 15 মিনিটের সময়কালে ডাবল ম্যাকড ডায়াগ্রামের রঙের পরিবর্তনগুলি পর্যবেক্ষণ করে বাজারের প্রবণতা নির্ধারণ করে, যখন 5 মিনিটের সময়কালে শক্তিশালী প্রবণতা সন্ধান করে এবং 1 মিনিটের সময়কালে বিরতির সংকেত নিশ্চিত করে। কৌশলটি এটিআর-ভিত্তিক গতিশীল স্টপ লস এবং ট্র্যাকিং স্টপ মেশিন ব্যবহার করে, ঝুঁকি কার্যকরভাবে পরিচালনা করার সময় লাভের সুযোগকে সর্বাধিক করে তোলে।

কৌশল নীতি

কৌশলটি বাজারের প্রবণতা নিশ্চিত করার জন্য দুটি ভিন্ন প্যারামিটারযুক্ত MACD সূচকের দুটি সেট ব্যবহার করে (৩৪/১৪৪/৯ এবং ১০০/২০০/৫০) । যখন দুটি MACD ডাইরেক্টরি একই রঙের প্রবণতা দেখায়, তখন সিস্টেমটি ৫ মিনিটের চার্টে শক্তিশালী ব্রেক মোডের সন্ধান করে, যা শ্যাডো লাইনের চেয়ে ১.৫ গুণ বড়। শক্তিশালী ব্রেক পাওয়া গেলে, সিস্টেমটি ১ মিনিটের চার্টে পর্যবেক্ষণ করে যে কোনও ব্রেক আছে কিনা। যখন একটি উচ্চ প্রবণতা একটি উচ্চ ব্রেক বা একটি নিম্ন প্রবণতা একটি নিম্ন ব্রেক হয়, সিস্টেমটি পজিশন বন্ধ করে দেয়। এটিআর সূচক সেটিংয়ের উপর ভিত্তি করে, এটিআর এর ১.৫ গুণ ব্যবহার করে গতিশীলতা ট্র্যাকিং স্টপ ব্রেক হিসাবে।

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

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

কৌশলগত ঝুঁকি

  1. প্রবণতা বিপরীত ঝুঁকিঃ তীব্র ওঠানামা বাজারে ভুয়া ব্রেকআপের সম্ভাবনা
  2. স্লাইড পয়েন্ট ঝুঁকিঃ উচ্চ-ফ্রিকোয়েন্সি ট্রেডিংয়ের 1 মিনিটের চক্রের স্লাইড পয়েন্টের প্রভাব হতে পারে
  3. ওভারট্রেডিংয়ের ঝুঁকিঃ ঘন ঘন সংকেত ওভারট্রেডিংয়ের কারণ হতে পারে
  4. বাজার পরিস্থিতির উপর নির্ভরশীলতাঃ অস্থির বাজারে দুর্বল হতে পারে প্রশমন ব্যবস্থা:
  • ট্রেন্ড ফিল্টার যোগ করুন
  • ন্যূনতম ওঠানামা থ্রেশহোল্ড সেট করুন
  • লেনদেনের সীমা যোগ করুন
  • একটি বাজার পরিবেশ শনাক্তকরণ প্রক্রিয়া প্রবর্তন

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

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

সারসংক্ষেপ

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

কৌশল সোর্স কোড
/*backtest
start: 2024-01-01 00:00:00
end: 2024-11-24 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=5
strategy("Price Action + Double MACD Strategy with ATR Trailing", overlay=true)

// Inputs for MACD
fastLength1 = input.int(34, title="First MACD Fast Length")
slowLength1 = input.int(144, title="First MACD Slow Length")
signalLength1 = input.int(9, title="First MACD Signal Length")

fastLength2 = input.int(100, title="Second MACD Fast Length")
slowLength2 = input.int(200, title="Second MACD Slow Length")
signalLength2 = input.int(50, title="Second MACD Signal Length")

// Input for ATR Trailing
atrMultiplier = input.float(1.5, title="ATR Multiplier for Trailing")

// Inputs for Stop Loss
atrStopMultiplier = input.float(1.0, title="ATR Multiplier for Stop Loss")

// MACD Calculations
[macdLine1, signalLine1, macdHist1] = ta.macd(close, fastLength1, slowLength1, signalLength1)
[macdLine2, signalLine2, macdHist2] = ta.macd(close, fastLength2, slowLength2, signalLength2)

// Get 15M MACD histogram colors
macdHist1Color = request.security(syminfo.tickerid, "15", (macdHist1 >= 0 ? (macdHist1[1] < macdHist1 ? #26A69A : #B2DFDB) : (macdHist1[1] < macdHist1 ? #FFCDD2 : #FF5252)))
macdHist2Color = request.security(syminfo.tickerid, "15", (macdHist2 >= 0 ? (macdHist2[1] < macdHist2 ? #26A69A : #B2DFDB) : (macdHist2[1] < macdHist2 ? #FFCDD2 : #FF5252)))

// Check MACD color conditions
isMacdUptrend = macdHist1Color == #26A69A and macdHist2Color == #26A69A
isMacdDowntrend = macdHist1Color == #FF5252 and macdHist2Color == #FF5252

// Function to detect strong 5M candles
isStrongCandle(open, close, high, low) =>
    body = math.abs(close - open)
    tail = math.abs(high - low) - body
    body > tail * 1.5  // Ensure body is larger than the tail

// Variables to track state
var float fiveMinuteHigh = na
var float fiveMinuteLow = na
var bool tradeExecuted = false
var bool breakoutDetected = false
var float entryPrice = na
var float stopLossPrice = na
var float longTakeProfit = na
var float shortTakeProfit = na

// Check for new 15M candle and reset flags
if ta.change(time("15"))
    tradeExecuted := false      // Reset trade execution flag
    breakoutDetected := false  // Reset breakout detection
    if isStrongCandle(open[1], close[1], high[1], low[1])
        fiveMinuteHigh := high[1]
        fiveMinuteLow := low[1]
    else
        fiveMinuteHigh := na
        fiveMinuteLow := na

// Get 1-minute close prices
close1m = request.security(syminfo.tickerid, "5", close)

// Ensure valid breakout direction and avoid double breakouts
if not na(fiveMinuteHigh) and not breakoutDetected
    for i = 1 to 3
        if close1m[i] > fiveMinuteHigh and not tradeExecuted  // 1M breakout check with close
            breakoutDetected := true
            if isMacdUptrend 
                // Open Long trade
                entryPrice := close
                stopLossPrice := close - (atrStopMultiplier * ta.atr(14))  // ATR-based stop loss
                longTakeProfit := close + (atrMultiplier * ta.atr(14)) // Initialize take profit

                strategy.entry("Long", strategy.long)
                tradeExecuted := true
            break // Exit the loop after detecting a breakout

        else if close1m[i] < fiveMinuteLow and not tradeExecuted  // 1M breakout check with close
            breakoutDetected := true
            if isMacdDowntrend
                // Open Short trade
                entryPrice := close
                stopLossPrice := close + (atrStopMultiplier * ta.atr(14))  // ATR-based stop loss
                shortTakeProfit := close - (atrMultiplier * ta.atr(14)) // Initialize take profit

                strategy.entry("Short", strategy.short)
                tradeExecuted := true
            break // Exit the loop after detecting a breakout

// Update trailing take-profit dynamically
if tradeExecuted and strategy.position_size > 0  // Long trade
    longTakeProfit := math.max(longTakeProfit, close + (atrMultiplier * ta.atr(14)))
    strategy.exit("Long TP/SL", "Long", stop=stopLossPrice, limit=longTakeProfit)

else if tradeExecuted and strategy.position_size < 0  // Short trade
    shortTakeProfit := math.min(shortTakeProfit, close - (atrMultiplier * ta.atr(14)))
    strategy.exit("Short TP/SL", "Short", stop=stopLossPrice, limit=shortTakeProfit)

// Reset trade state when position is closed
if strategy.position_size == 0
    tradeExecuted := false
    entryPrice := na
    longTakeProfit := na
    shortTakeProfit := na