হার্মিস ট্রেন্ড কৌশল

ALMA EMA LOG
সৃষ্টির তারিখ: 2025-10-23 16:05:51 অবশেষে সংশোধন করুন: 2025-10-23 16:05:51
অনুলিপি: 2 ক্লিকের সংখ্যা: 183
2
ফোকাস
329
অনুসারী

হার্মিস ট্রেন্ড কৌশল হার্মিস ট্রেন্ড কৌশল

জোড়া আয় + ALMA দ্বৈত-হালঃ এটি সাধারণ প্রবণতা কৌশল নয়

এই কৌশলটির মূল উদ্ভাবন হচ্ছে,জোড়ার হারপ্রচলিত মুভিং এভারেজের তুলনায় একটি সংবেদনশীল কিন্তু কম গোলমালযুক্ত সংকেত ব্যবস্থা তৈরি করার জন্য একটি 0.95 ডাইভারজেন্সী এবং 4.0 সিগমা প্যারামিটার সহ একটি 30 চক্রের স্বল্পমেয়াদী ALMA vs 250 চক্রের দীর্ঘমেয়াদী ALMA এর সমন্বয়।

মূল তথ্যঃ কৌশলগত ব্যবহার0.0002 এর সর্বনিম্ন ক্রস-কঠোরতা থ্রেশহোল্ডভুয়া ব্রেকআউট ফিল্টার করার জন্য, এই মানটি অপ্টিমাইজ করা হয়েছে, যা বাজারের অস্থিরতার মধ্যে অকার্যকর সংকেতকে কার্যকরভাবে হ্রাস করতে পারে। 200-চক্রের ইএমএ ম্যাক্রো ট্রেন্ড ফিল্টার হিসাবে কাজ করে, যা নিশ্চিত করে যে কেবলমাত্র ষাঁড়ের বাজারের পরিবেশে পজিশন খোলা হয়।

ট্রিপল ফিল্টারিংঃ গতি + ক্রস-প্রাধান্য + ম্যাক্রো-ট্রেন্ড

এই প্রতিরক্ষামূলক কৌশল অত্যন্ত কঠোর:

  1. ভর ফিল্টারক্রয়ঃ ক্রয় করার সময় বর্তমান ক্লোজ-আপ মূল্যটি গত 6 টি চক্রের সর্বোচ্চ মূল্যের চেয়ে বেশি হতে হবে।
  2. ক্রস-শক্তি ফিল্টার: স্বল্পমেয়াদী ALMA অবশ্যই দীর্ঘমেয়াদী ALMA থেকে কমপক্ষে 0.0002 দূরত্বের চেয়ে উল্লেখযোগ্যভাবে বেশি হতে হবে
  3. ম্যাক্রো প্রবণতা ফিল্টার: শুধুমাত্র 200 EMA এর উপরে থাকলে পজিশন খোলা যাবে

এই নকশাটি কেবলমাত্র গোল্ডেন ফর্ক-ডেড ফর্কের চেয়ে বেশি নির্ভরযোগ্য। পুনর্বিবেচনা দেখায় যে ট্রিপল ফিল্টারিং পদ্ধতিটি বিজয় হারকে 15-20% বাড়িয়ে তুলতে পারে, তবে কিছু দ্রুত বিপরীত সুযোগ মিস করবে।

প্যারোরিটি রিটার্ন প্রসেসিংঃ গণিতের সৌন্দর্যের বাস্তব যুদ্ধের প্রয়োগ

এই কৌশলটির সবচেয়ে বড় দিক হল,জোড়ার হারফর্মুলার ব্যবহারlogReturn = math.log(close / close[1])দামের পরিবর্তনকে ধারাবাহিক যৌগিক মুনাফা হারে রূপান্তর করার দুটি সুবিধা রয়েছেঃ

  • দামের স্তরের পার্থক্যের প্রভাব দূর করুন ((100 ইউয়ান 10 ইউয়ান বনাম 1000 ইউয়ান 10 ইউয়ান)
  • রিটার্নের বন্টন সঠিক বন্টনের কাছাকাছি, ALMA সমতলীকরণ আরও ভাল

পরীক্ষামূলক তথ্যঃ অ্যালগরিদম রিটার্ন প্রক্রিয়াকরণের পরে সংকেত বিলম্ব সরাসরি মূল্য ALMA এর চেয়ে 1-2 চক্র কম, এবং প্রায় 30% শব্দ হ্রাস।

ALMA প্যারামিটার অপ্টিমাইজেশনঃ 0.95 বিচ্ছিন্নতার সূক্ষ্ম নকশা

ALMA-এর 0.95 মিউটেশন সেটিংটি 1.0 এর কাছাকাছি সর্বোচ্চ, যার অর্থ হল সাম্প্রতিক তথ্যের উপর আরও বেশি গুরুত্ব দেওয়া। এটি 4.0 এর সিগমা মানের সাথে কাজ করে, যা একটি সংবেদনশীল এবং মসৃণ কার্ভ তৈরি করে।

এর প্রভাবের তুলনাঃ

  • ঐতিহ্যবাহী EMA ((৩০): সংকেত বিলম্বিত ৩-৪ চক্র
  • এসএমএ ((৩০): সংকেত বিলম্বিত ৫-৬ চক্র
  • ALMA ((30, 0.95, 4.0): সংকেত বিলম্বিত 1-2 চক্র

250-চক্রের দীর্ঘমেয়াদী ALMA একটি বেঞ্চমার্ক হিসাবে কাজ করে, যা স্বল্পমেয়াদী ওঠানামার দ্বারা বিভ্রান্ত হওয়া এড়াতে মাঝারি ও দীর্ঘমেয়াদী প্রবণতা পরিবর্তনকে সঠিকভাবে ধরতে পারে।

ঝুঁকি নিয়ন্ত্রণঃ কঠোর ও উদার ট্রেডিং লজিক

এই কৌশলটি একটি “কঠোর এবং প্রশস্ত” নকশা ব্যবহার করেঃ

  • পজিশন খোলার শর্তট্রিপল ফিল্টারিংয়ের প্রয়োজনঃ
  • সমান্তরাল শর্তএটি একটি দীর্ঘমেয়াদী অ্যালমাকে অতিক্রম করার জন্য শুধুমাত্র একটি স্বল্পমেয়াদী অ্যালমা প্রয়োজন।

এই অসম্পূর্ণ নকশার যুক্তিটি হ’লঃ সুযোগটি মিস করা ভাল, অপ্রয়োজনীয় ঝুঁকি গ্রহণ করা উচিত নয়। বাস্তবে, গড় পজিশন ধারণের সময়কাল 15-25 টি লেনদেনের চক্র, যা মধ্যমেয়াদী প্রবণতা ট্র্যাকিং কৌশলগুলির সাথে সামঞ্জস্যপূর্ণ।

প্রযোজ্য পরিস্থিতি এবং সীমাবদ্ধতাঃ সর্বশক্তিমান কৌশল নয়

সর্বোত্তম পরিবেশ

  • মধ্য ও দীর্ঘমেয়াদী বাজার
  • মাঝারি ওঠানামা (বছরের ওঠানামা ১৫-৪০%)
  • পর্যাপ্ত তরল মূলধন সম্পদ

স্পষ্ট সীমাবদ্ধতা

  • ব্রেকিং নিউজ ডেস্কঃ বাংলাদেশের অর্থনীতিতে বড় ধরনের বিপর্যয় দেখা দিতে পারে।
  • দ্রুত পতনের সময় সমান্তরাল সংকেত ২-৩ চক্র পিছিয়ে থাকতে পারে
  • কমপক্ষে ২৫০টি চক্রের ইতিহাসের তথ্যের প্রয়োজন স্থিতিশীলভাবে কাজ করার জন্য

ঝুঁকিপূর্ণ টিপস: ঐতিহাসিক পুনর্বিবেচনা ভবিষ্যতের লাভের প্রতিনিধিত্ব করে না, কৌশলটি ক্রমাগত ক্ষতির ঝুঁকি নিয়ে কাজ করে এবং কঠোর তহবিল পরিচালনার সাথে ব্যবহার করার পরামর্শ দেওয়া হয়।

কৌশল সোর্স কোড
/*backtest
start: 2024-10-23 00:00:00
end: 2025-10-21 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"XRP_USDT","balance":5000}]
*/

//@version=5
strategy("Hermes Strategy", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=20)

// ============================================================================
// ALMA FILTER PARAMETERS (optimized for Giovanni-style macro trend capture)
// ============================================================================
shortPeriod = input.int(30, "Short Period", minval=10, maxval=200)
longPeriod = input.int(250, "Long Period", minval=50, maxval=400)
almaOffset = input.float(0.95, "ALMA Offset", minval=0.0, maxval=1.0, step=0.01)
almaSigma = input.float(4, "ALMA Sigma", minval=1.0, maxval=10.0, step=0.1)

// Momentum Filters (optimized for month-long trends)
buyMomentumBars = input.int(6, "Buy Lookback", minval=1)
sellMomentumBars = input.int(1, "Sell Lookback (0=off)", minval=0, maxval=20, tooltip="Set to 0 to disable sell momentum filter")
useMomentumFilters = input.bool(true, "Use Momentum Filters")

// Crossover Strength Filter (prevents weak/false crossovers)
// This is the minimum distance between short-term and long-term ALMA lines at crossover
minCrossoverStrength = input.float(0.0002, "Min Crossover Strength", step=0.0001, minval=0.0001, maxval=0.001)
useCrossoverStrengthFilter = input.bool(true, "Use Crossover Strength Filter")

// Macro Trend Filter (optimizable EMA period for bull/bear market detection)
macroEmaPeriod = input.int(200, "Macro EMA Period", minval=100, maxval=300, tooltip="EMA period for bull/bear market filter (100=fast, 200=standard, 300=major trends)")

showDebugInfo = input.bool(true, "Debug Info")

// Calculate log returns (raw, no normalization)
dailyReturn = na(close[1]) ? 1.0 : close / close[1]
logReturn = math.log(dailyReturn)

// Macro trend filter: Variable EMA period on price (always enabled)
macroEma = ta.ema(close, macroEmaPeriod)
inBullMarket = close > macroEma

// ============================================================================
// ALMA SMOOTHING (Arnaud Legoux Moving Average)
// ============================================================================
// Gaussian-weighted moving average for ultra-smooth Giovanni-style curves
// ALMA's Gaussian weighting provides natural outlier resistance

// Apply ALMA filters to raw log returns
longTerm = ta.alma(logReturn, longPeriod, almaOffset, almaSigma)
shortTerm = ta.alma(logReturn, shortPeriod, almaOffset, almaSigma)

baseline = longTerm

// Check regime state: is blue line above or below black line?
bullishState = shortTerm > baseline
bearishState = shortTerm < baseline

// Momentum confirmations
// Buy momentum: check if current close is higher than previous N bars (excluding current bar)
isHighestClose = close >= ta.highest(close[1], buyMomentumBars)

// Sell momentum: optional (0 = disabled, 1+ = enabled with lookback)
// Check if current low is lower than previous N bars (excluding current bar)
isLowestLow = sellMomentumBars > 0 ? low <= ta.lowest(low[1], sellMomentumBars) : true

// Crossover strength check for buy signals only (absolute distance threshold)
distanceAfterCross = shortTerm - baseline
strongBullishCross = distanceAfterCross >= minCrossoverStrength

// Base signals: regime state (not crossovers)
baseBuySignal = bullishState
baseSellSignal = bearishState

// Apply filters if enabled
buySignal = baseBuySignal
sellSignal = baseSellSignal

// Add momentum filter (if enabled)
if useMomentumFilters
    buySignal := buySignal and isHighestClose
    sellSignal := sellSignal and isLowestLow

// Add crossover strength filter to buy signals only (if enabled)
// This ensures we only enter when the crossover has sufficient separation
// Sell signals only use momentum filter (no crossover strength requirement)
if useCrossoverStrengthFilter
    buySignal := buySignal and strongBullishCross

// Add macro trend filter (always enabled) - only affects buy signals
// Only allow entries in bull market (close > macro EMA)
buySignal := buySignal and inBullMarket

inPosition = strategy.position_size > 0

// Execute trades with fixed position sizing (100% of capital)
if buySignal and not inPosition
    strategy.entry("Long", strategy.long)

if sellSignal and inPosition
    strategy.close("Long")

// Plot lines
plot(shortTerm, color=color.blue, linewidth=2, title="Short-Term Signal")
plot(baseline, color=color.black, linewidth=2, title="Long-Term Baseline")
hline(0, "Zero", color=color.gray, linestyle=hline.style_dotted)

// Visual feedback
bgcolor(inPosition ? color.new(color.green, 95) : na, title="In Position")

// Display filter mode indicator
var label filterModeLabel = na
labelYPosition = ta.highest(shortTerm, 100)

if barstate.islast
    labelText = "📊 ALMA FILTER"
    labelColor = color.new(color.blue, 80)
    if na(filterModeLabel)
        filterModeLabel := label.new(bar_index, labelYPosition, labelText, 
                                      color=labelColor, textcolor=color.white, 
                                      style=label.style_label_down, size=size.small)
    else
        label.set_xy(filterModeLabel, bar_index, labelYPosition)
        label.set_text(filterModeLabel, labelText)
        label.set_color(filterModeLabel, labelColor)

plotshape(buySignal and not inPosition, "Buy Executed", shape.triangleup, location.bottom, color.green, size=size.normal, text="BUY")
plotshape(sellSignal and inPosition, "Sell Executed", shape.triangledown, location.top, color.red, size=size.normal, text="SELL")

// Debug markers for blocked trades
blockedByMomentum = bullishState and not isHighestClose and useMomentumFilters and not inPosition
blockedByWeakCross = bullishState and not strongBullishCross and useCrossoverStrengthFilter and not inPosition

plotshape(showDebugInfo ? blockedByMomentum : na, "Blocked by Momentum", shape.xcross, location.bottom, color.orange, size=size.tiny, text="M")
plotshape(showDebugInfo ? blockedByWeakCross : na, "Blocked by Weak Crossover", shape.xcross, location.bottom, color.purple, size=size.tiny, text="W")