চূড়ান্ত ব্যালেন্স অ্যাসিললেটর ট্রেডিং কৌশল

লেখক:চাওঝাং, তারিখঃ 2024-01-12 14:08:33
ট্যাগঃ

img

সারসংক্ষেপ

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

এই কৌশলটির সবচেয়ে বড় সুবিধা হল এটি সর্বোত্তম প্রবেশ এবং প্রস্থান পয়েন্টগুলি সনাক্ত করার জন্য বাজারের উদ্দেশ্যমূলক এবং পদ্ধতিগতভাবে মূল্যায়ন করার ক্ষমতা। এটি একটি ক্রয় সংকেত ট্রিগার করে যখন দোলক রেখাটি 0.75 ওভারকপ স্তরের উপরে অতিক্রম করে এবং 0.25 ওভারসোল্ড স্তরের নীচে অতিক্রম করার সময় একটি প্রস্থান সংকেত।

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

আলটিমেট ব্যালেন্স অ্যাসিললেটর ট্রেডিং কৌশলটির মূলটি একটি যৌগিক অ্যাসিললেটর সূচক গণনা। এই সূচক গণনা করার পদক্ষেপগুলি হলঃ

  1. প্রতিটি প্রযুক্তিগত সূচকের মান গণনা করুনঃ ROC, RSI, CCI, Williams %R, এবং ADX

  2. তুলনা করার জন্য এই সূচক মানগুলিকে 0-1 পরিসরে স্ট্যান্ডার্ড করুন

  3. কম্পোজিট দোলকের মান গণনা করার জন্য একটি ওজনযুক্ত গড় পদ্ধতি ব্যবহার করুন। প্রতিটি সূচকের একটি নিয়মিত ওজন রয়েছে, যার ডিফল্ট মানগুলি ROC এর জন্য 2, RSI এর জন্য 0.5, CCI এর জন্য 2, %R এর জন্য 0.5, এবং ADX এর জন্য 0.5। প্রতিটি স্ট্যান্ডার্ডাইজড সূচককে এর ওজনের সাথে গুণ করুন, তাদের যোগ করুন এবং 0-1 কম্পোজিট মান পেতে মোট ওজনের সাথে ভাগ করুন।

  4. যখন এই কম্পোজিট অ্যাসিললেটর সঠিকভাবে সেট ওভারকুপ এবং ওভারসোল্ড স্তর অতিক্রম করে তখন ট্রেড সিগন্যাল ট্রিগার করে।

যেমনটি স্পষ্ট, কৌশলটি নমনীয়ভাবে একাধিক সূচক থেকে সংকেত ব্যবহার করে এবং বাজারের প্রবণতা নির্ধারণ এবং ট্রেডিং সিদ্ধান্ত গ্রহণের জন্য তাদের পদ্ধতিগতভাবে প্রক্রিয়া করে। এটি কোনও একক সূচক থেকে বাজারের গোলমাল এড়ায় এবং বিভিন্ন পরিস্থিতিতে শক্তিশালী সিদ্ধান্ত বজায় রাখতে সহায়তা করে।

সুবিধা

আলটিমেট ব্যালেন্স অ্যাসিললেটর ট্রেডিং কৌশলটির বেশ কয়েকটি মূল সুবিধা রয়েছেঃ

  1. একক সরঞ্জামগুলির সীমাবদ্ধতা অতিক্রম করতে এবং কার্যকর, পরিমাণ-চালিত সংকেত তৈরি করতে একাধিক সূচক ব্যবহার করে একটি উদ্দেশ্যমূলক, পদ্ধতিগত বাজার বিশ্লেষণ পদ্ধতি সরবরাহ করে।

  2. অস্কিলেটরের সঠিক মান এবং মানসম্মতকরণের মাধ্যমে প্রবেশ এবং প্রস্থান সময় / নির্ভুলতা অনুকূল করে তোলে।

  3. অত্যন্ত কাস্টমাইজযোগ্য এবং নিয়মিত সূচক ওজন এবং পরামিতিগুলির মাধ্যমে পৃথক ট্রেডিং স্টাইল এবং বাজারের অবস্থার সাথে খাপ খাইয়ে নেওয়ার জন্য অভিযোজিত।

  4. নতুন ক্রয়/প্রস্থান সংকেত সম্পর্কে ব্যবসায়ীদের অবহিত করার জন্য এবং সর্বশেষ বাজার উন্নয়ন সম্পর্কে সচেতনতা নিশ্চিত করার জন্য রিয়েল-টাইম সতর্কতা ব্যবস্থা।

  5. ঐতিহাসিক তথ্যের উপর কর্মক্ষমতা মূল্যায়ন এবং কৌশল উন্নতির জন্য সূক্ষ্ম-টুন পরামিতিগুলির জন্য কঠোর ব্যাকটেস্টিং এবং অপ্টিমাইজেশান প্রাক লাইভ ট্রেডিং।

ঝুঁকি

এর উপকারিতা সত্ত্বেও, ব্যবহারিক প্রয়োগে কিছু মূল ঝুঁকিগুলির মধ্যে রয়েছেঃ

  1. অনুকূল সূচক ওজন এবং লাইভ পারফরম্যান্সকে ক্ষতিগ্রস্ত করে এমন সেটিংস থেকে প্যারামিটার অপ্টিমাইজেশান ঝুঁকি। আদর্শ প্যারামিটারগুলি আবিষ্কারের জন্য ব্যাপক ব্যাকটেস্টিং প্রয়োজন।

  2. বাজারের পরিস্থিতি ও আবেগকে অনুকূল পরিসীমা নির্ধারণের কারণে অতিরিক্ত বিক্রয়/অতিরিক্ত ক্রয়ের ঝুঁকি।

  3. বিভ্রান্তিকর সূচকগুলি যৌগিক দোলকের মানগুলিকে বিকৃত করার ঝুঁকি রয়েছে। বিভ্রান্তিকর সূচকগুলির ওজন অপসারণ বা হ্রাস করার বিষয়টি বিবেচনা করুন।

  4. কোয়ান্ট মডেল সীমাবদ্ধতা যেখানে নির্দিষ্ট বাজারের শর্ত কর্মক্ষমতা হ্রাস করতে পারে। একজন অনুশীলনকারী হিসাবে ঝুঁকি সচেতনতা বজায় রাখা গুরুত্বপূর্ণ।

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

উন্নতির সুযোগ

কৌশলটি আরও উন্নত করার কিছু উপায়ের মধ্যে রয়েছেঃ

  1. পূর্বাভাসের নির্ভুলতা বাড়াতে আরও বৈচিত্র্যময় প্রযুক্তিগত সূচক দিয়ে মাল্টি-ফ্যাক্টর মডেলের সম্প্রসারণ।

  2. মেশিন লার্নিং প্রযুক্তি যেমন নিউরাল নেটওয়ার্ক ব্যবহার করে লুকানো সংকেত আবিষ্কার করা এবং সূচক মানের পূর্বাভাস দেওয়া।

  3. কোয়ান্টাম ফ্যাক্টর বাড়ানোর জন্য আয়ের রিপোর্ট এবং অর্থনৈতিক সূচকগুলির মতো মৌলিক তথ্য অন্তর্ভুক্ত করা।

  4. পরিবর্তিত বাজারের দৃশ্যের উপর ভিত্তি করে গতিশীলভাবে ওজন এবং সেটিংস পরিবর্তন করার জন্য অভিযোজিত পরামিতি সুরক্ষা প্রবর্তন করা।

  5. স্বতন্ত্র ট্রেডিংয়ের ক্ষেত্রে নেতিবাচক দিকগুলিকে সক্রিয়ভাবে নিয়ন্ত্রণ করার জন্য স্টপ লস প্রক্রিয়া তৈরি করা।

  6. পরিমাণগত মূলধন পরিচালনার জন্য অ্যাকাউন্টের আকারের উপর ভিত্তি করে পজিশন সাইজিং মডেল একীভূত করা।

সিদ্ধান্ত

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


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

// © Julien_Eche

//@version=5
strategy("Ultimate Balance Oscillator Strategy", overlay=true)

// Indicator Weights
weightROC = input.float(2, "Rate of Change (ROC) Weight", group="Weightings")
weightRSI = input.float(0.5, "Relative Strength Index (RSI) Weight", group="Weightings")
weightCCI = input.float(2, "Commodity Channel Index (CCI) Weight", group="Weightings")
weightWilliamsR = input.float(0.5, "Williams %R Weight", group="Weightings")
weightADX = input.float(0.5, "Average Directional Index (ADX) Weight", group="Weightings")

// ROC Settings
rocLength = input.int(20, "Length", minval=1, group="ROC")

// RSI Settings
rsiLength = input.int(14, "Length", minval=1, group="RSI")

// CCI Settings
cciLength = input.int(20, "Length", minval=1, group="CCI")

// Williams %R Settings
williamsRLength = input.int(14, "Length", minval=1, group="Williams %R")

// ADX Settings
adxLength = input.int(14, "ADX Length", minval=1, group="ADX")
adxDiLength = input.int(14, "DI Length", minval=1, group="ADX")

// Source
source_options = input.string("hlc3", "Source", options=["open", "high", "low", "close", "hl2", "hlc3", "ohlc4"])

price_open = request.security(syminfo.tickerid, "D", open)
price_high = request.security(syminfo.tickerid, "D", high)
price_low = request.security(syminfo.tickerid, "D", low)
price_close = request.security(syminfo.tickerid, "D", close)
price_hl2 = request.security(syminfo.tickerid, "D", hl2)
price_hlc3 = request.security(syminfo.tickerid, "D", hlc3)
price_ohlc4 = request.security(syminfo.tickerid, "D", ohlc4)

get_source(source_option) =>
    price = price_close
    if source_option == "open"
        price := price_open
    else if source_option == "high"
        price := price_high
    else if source_option == "low"
        price := price_low
    else if source_option == "close"
        price := price_close
    else if source_option == "hl2"
        price := price_hl2
    else if source_option == "hlc3"
        price := price_hlc3
    else
        price := price_ohlc4
    price

src = get_source(source_options)

// Overbought/Oversold Levels
obLevel = input.float(0.75, "Overbought Level")
osLevel = input.float(0.25, "Oversold Level")

// Calculating the indicators
rocValue = ta.change(close, rocLength)
rsiValue = ta.rsi(close, rsiLength)
cciValue = (src - ta.sma(src, cciLength)) / (0.015 * ta.dev(src, cciLength))
williamsRValue = -100 * (ta.highest(high, williamsRLength) - close) / (ta.highest(high, williamsRLength) - ta.lowest(low, williamsRLength))

dirmov(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)
    truerange = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
    minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
    [plus, minus]

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

adxValue = adx(adxDiLength, adxLength)

// Normalizing the values
normalize(value, min, max) =>
    (value - min) / (max - min)

normalizedROC = normalize(rocValue, ta.lowest(rocValue, rocLength), ta.highest(rocValue, rocLength))
normalizedRSI = normalize(rsiValue, 0, 100)
normalizedCCI = normalize(cciValue, ta.lowest(cciValue, cciLength), ta.highest(cciValue, cciLength))
normalizedWilliamsR = normalize(williamsRValue, ta.lowest(williamsRValue, williamsRLength), ta.highest(williamsRValue, williamsRLength))
normalizedADX = normalize(adxValue, 0, 50)

// Calculating the combined oscillator line
oscillatorLine = (normalizedROC * weightROC + normalizedRSI * weightRSI + normalizedCCI * weightCCI + normalizedWilliamsR * weightWilliamsR + normalizedADX * weightADX) / (weightROC + weightRSI + weightCCI + weightWilliamsR + weightADX)

// Strategy conditions
enterLong = ta.crossover(oscillatorLine, obLevel)
exitLong = ta.crossunder(oscillatorLine, osLevel)

// Strategy orders
if (enterLong)
    strategy.entry("Buy", strategy.long)
if (exitLong)
    strategy.close("Buy")

// Alert conditions
if (enterLong)
    alert("Buy signal")
if (exitLong)
    alert("Exit signal")


আরো