ہرمیس ٹرینڈ کی حکمت عملی

ALMA EMA LOG
تخلیق کی تاریخ: 2025-10-23 16:05:51 آخر میں ترمیم کریں: 2025-10-23 16:05:51
کاپی: 2 کلکس کی تعداد: 183
2
پر توجہ دیں
329
پیروکار

ہرمیس ٹرینڈ کی حکمت عملی ہرمیس ٹرینڈ کی حکمت عملی

انڈیکس ریٹرن + ALMA ڈبل ہیلپ: یہ کوئی عام رجحاناتی حکمت عملی نہیں ہے

اس حکمت عملی کی بنیادی جدت یہ ہے کہ اس کے ساتھ ساتھ اس کے ساتھ ساتھ اس کے ساتھ ساتھ اس کے ساتھ ساتھ اس کے ساتھ ساتھ اس کے ساتھ ساتھ اس کے ساتھ ساتھ اس کے ساتھ ساتھ.عددی منافع کی شرحبراہ راست قیمتوں پر کارروائی کرنے کے بجائے ALMA کو ہموار کریں۔ 30 دوروں کے مختصر ALMA vs 250 دوروں کے طویل ALMA کا ایک مجموعہ ، 0.95 offset اور 4.0 سگما پیرامیٹرز کے ساتھ ، ایک سگنلنگ سسٹم تخلیق کرتا ہے جو روایتی منتقل اوسط سے زیادہ حساس ہے لیکن کم شور ہے۔

کلیدی اعداد و شمار: حکمت عملی کا استعمال0.0002 کی کم سے کم کراس طاقت کی حدجعلی بریک کو فلٹر کرنے کے لئے ، اس کی مقدار کو بہتر بنایا گیا ہے ، جس سے زلزلے کی مارکیٹ میں غیر موثر سگنل کو مؤثر طریقے سے کم کیا جاسکتا ہے۔ 200 دورانیہ ای ایم اے میکرو ٹرینڈ فلٹر کے طور پر کام کرتا ہے ، اس بات کو یقینی بناتا ہے کہ صرف بیل مارکیٹ کے ماحول میں ہی پوزیشن کھولی جائے۔

ٹرپل فلٹرنگ میکانزم: طاقت + کراس طاقت + میکرو رجحان

اس کے علاوہ، اس نے کہا کہ اس کی حکمت عملی کا دفاعی منطق بہت سخت ہے:

  1. طاقت فلٹرخریدنے کے وقت موجودہ اختتامی قیمت کو پچھلے 6 ادوار کی بلند ترین قیمت سے زیادہ مانگیں۔
  2. کراس طاقت فلٹرنگ: مختصر ALMA طویل ALMA سے کم از کم 0.0002 فاصلے سے نمایاں طور پر زیادہ ہونا چاہئے
  3. میکرو رجحانات فلٹر کریںجب قیمت 200 ای ایم اے سے اوپر ہو تو صرف پوزیشن کھولنے کی اجازت ہے:

یہ ڈیزائن سادہ گولڈ فورک ڈیڈ فورک حکمت عملی سے زیادہ قابل اعتماد ہے۔ جائزہ سے پتہ چلتا ہے کہ ٹرپل فلٹرنگ میکانزم جیت کی شرح میں 15 سے 20 فیصد تک اضافہ کرسکتا ہے ، لیکن اس میں کچھ فوری تبدیلی کے مواقع ضائع ہوجائیں گے۔

عددی واپسی کی شرح کے ساتھ کام کرنا: ریاضی کی خوبصورتی کا عملی اطلاق

اس حکمت عملی کی سب سے بڑی خوبی یہ ہے کہعددی منافع کی شرحکا استعمال. فارمولہlogReturn = math.log(close / close[1])قیمتوں میں تبدیلی کو مسلسل کمپاؤنڈ ریٹرن میں تبدیل کرنے کے دو فوائد ہیں:

  • قیمت کی سطح کے فرق کے اثرات کو ختم کرنا ((100 یوآن 10 یوآن vs 1000 یوآن 10 یوآن)
  • منافع کی تقسیم زیادہ قریب ہے، ALMA smoothness بہتر ہے

تجرباتی اعداد و شمار: عددی منافع کے علاج کے بعد سگنل تاخیر براہ راست قیمت ALMA کے مقابلے میں 1-2 سائیکل کم ہے ، جبکہ شور میں تقریبا 30 فیصد کمی ہے۔

ALMA پیرامیٹرز کی اصلاح: 0.95 مسافت کا شاندار ڈیزائن

ALMA کا 0.95 انحراف کی ترتیب 1.0 کی زیادہ سے زیادہ قیمت کے قریب ہے، جس کا مطلب یہ ہے کہ حالیہ اعداد و شمار کو زیادہ اہمیت دی جائے گی۔ 4.0 کی سگما کی قیمت کے ساتھ مل کر، ایک حساس اور ہموار وکر پیدا کرتی ہے۔

نتائج کا موازنہ:

  • روایتی ای ایم اے ((30)): سگنل تاخیر 3-4 سائیکل
  • SMA(30): سگنل تاخیر 5-6 سائیکل
  • ALMA ((30، 0.95، 4.0): سگنل تاخیر 1-2 سائیکل

250 دورانیہ طویل المیا ایک بیس لائن کے طور پر کام کرتا ہے، جو مختصر مدت کے اتار چڑھاو کی طرف سے گمراہ ہونے سے بچنے کے لئے درمیانی اور طویل مدتی رجحان میں تبدیلی کو درست طریقے سے پکڑ سکتا ہے.

خطرے پر قابو پانا: سخت اور لچکدار تجارت کی منطق

اس حکمت عملی کا استعمال “سخت اور وسیع” ڈیزائن کے طور پر کیا گیا ہے:

  • پوزیشن کھولنے کی شرائطایک ہی وقت میں تین فلٹرنگ کی ضرورت ہے:
  • مساوی شرطیںاس کا مطلب یہ ہے کہ طویل المیعاد ALMA کو مختصر المیعاد ALMA سے کم کرنے کی ضرورت ہے۔

اس غیر متناسب ڈیزائن کی منطق یہ ہے: موقع سے محروم رہنا بہتر ہے ، غیر ضروری خطرہ مول لینے سے گریز کریں۔ عملی طور پر ، اوسط پوزیشن کی مدت 15-25 تجارتی ادوار ہے ، جو درمیانی مدت کے رجحانات کی پیروی کرنے کی حکمت عملی کی خصوصیات کے مطابق ہے۔

اطلاق کے منظرنامے اور حدود: کوئی جامع حکمت عملی نہیں

بہترین ماحول

  • درمیانی اور طویل مدتی بڑھتی ہوئی مارکیٹ
  • اوسط اتار چڑھاؤ والی اقسام ((سالانہ اتار چڑھاؤ 15-40٪)
  • کافی لیکویڈیٹی کے ساتھ مین اسٹریم اثاثہ جات

واضح حدود

  • افقی مارکیٹ میں اتار چڑھاؤ کی وجہ سے مسلسل چھوٹے نقصانات کا امکان
  • تیزی سے گرنے کے دوران بیعانہ سگنل 2-3 سائیکل تاخیر کا شکار ہوسکتے ہیں
  • کم از کم 250 سائیکلوں کے تاریخی اعداد و شمار کی ضرورت ہے

خطرے کی نشاندہی: تاریخی ریٹرن مستقبل کی آمدنی کی نمائندگی نہیں کرتا ہے ، حکمت عملی میں مسلسل نقصان کا خطرہ ہے ، اور سخت فنڈ مینجمنٹ کے ساتھ استعمال کرنے کی سفارش کی جاتی ہے۔

حکمت عملی کا ماخذ کوڈ
/*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")