وقتی وزن والی ڈھلوان مومنٹم کی حکمت عملی

RSI SLOPE DELTA ATR Multi-Timeframe
تخلیق کی تاریخ: 2025-09-25 14:09:37 آخر میں ترمیم کریں: 2025-09-25 14:09:37
کاپی: 0 کلکس کی تعداد: 206
2
پر توجہ دیں
319
پیروکار

وقتی وزن والی ڈھلوان مومنٹم کی حکمت عملی وقتی وزن والی ڈھلوان مومنٹم کی حکمت عملی

ملٹی ٹائم فریم آر ایس آئی اسکیلپنگ تجزیہ: روایتی آر ایس آئی حکمت عملی سے 3 گنا زیادہ درست

یہ کوئی عام آر ایس آئی حکمت عملی نہیں ہے جسے آپ نے دیکھا ہو۔ روایتی آر ایس آئی صرف ایک ہی ٹائم فریم میں اوور بیس اور اوور سیل کو دیکھتا ہے۔ یہ حکمت عملی 5 ٹائم فریموں (یعنی 5 منٹ سے سورج کی لکیر تک) کے آر ایس آئی کے اعداد و شمار کو براہ راست مربوط کرتی ہے ، اور اس کی مجموعی آر ایس آئی قدر کا حساب لگانے کے لئے عددی وزن والے الگورتھم کا استعمال کرتی ہے۔ ریٹرننگ کے اعداد و شمار سے پتہ چلتا ہے کہ کثیر ٹائم فریم کے امتزاج میں ایک ہی آر ایس آئی کے مقابلے میں تقریبا 40٪ کم غلط سگنل ہیں۔

اس میں بنیادی طور پراسکیلپنگ + ٹرانسمیشن ڈبل تصدیق میکانزمآر ایس آئی کی تعداد کو دیکھنے کے بجائے ، آر ایس آئی کی تبدیلی کی رفتار ((سکیلپنگ) اور تیز رفتار ((ڈیلٹا) کا تجزیہ کریں۔ جب آر ایس آئی کی سلپنگ متحرک حد سے تجاوز کر جاتی ہے اور متحرک ڈیلٹا ایک ساتھ بڑھ جاتا ہے تو ، تجارتی سگنل کو متحرک کیا جاتا ہے۔ اس ڈیزائن نے براہ راست افقی جھولوں میں غیر موثر توڑ کو فلٹر کیا۔

متحرک حد بندی ڈیزائن: چارٹ کی مدت کے مطابق خود کار طریقے سے حساسیت کو ایڈجسٹ کریں

اس کے علاوہ، اس کے بارے میں سوچنے کے لئے سب سے زیادہ حکمت عملی ہے:خود کار طریقے سے طے شدہ نظام。 15 منٹ کے چارٹ پر، سست روی کی حد 0.05 ہے؛ 1 گھنٹے کے چارٹ پر سوئچ کریں، حد خود کار طریقے سے 0.071 میں ایڈجسٹ ہوجائے گی 。 حساب کا فارمولا:dynamicSlopeThreshold = slopeThreshold × √(当前周期/基准周期)

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

اے ٹی آر ونڈ کنٹرول ماڈیول: 1.5 گنا اے ٹی آر اسٹاپ ، ایک ہی خطرے کو سختی سے کنٹرول کریں

خطرے کے انتظام کے لئے استعمال کیا جاتا ہےاے ٹی آر متحرک سٹاپ نقصان نظاماسٹاپ اسپیڈ فاصلہ = 1.5 × اے ٹی آر ، کم سے کم فاصلہ 0.5 پوائنٹس ، کم اتار چڑھاؤ کی مدت میں اسٹاپ اسپیڈ کو زیادہ سے زیادہ روکنے سے بچنے کے لئے۔ اسٹاپ اسپیڈ فاصلہ = اسٹاپ اسپیڈ فاصلہ × 1.5 ، رسک کمائی کا تناسب 1: 1.5 پر لاک ہے۔

اس طرح کے ونڈ کنٹرول منطق کے فوائد: اتار چڑھاؤ کے اوقات میں اسٹاپ نقصان میں نرمی ، اتار چڑھاؤ کے اوقات میں اسٹاپ نقصان میں سختی ، ہمیشہ مارکیٹ کی رفتار کے ساتھ ہم آہنگی میں۔ ریٹرننگ سے پتہ چلتا ہے کہ زیادہ سے زیادہ واپسی کا کنٹرول 8٪ کے اندر ہے ، جو فکسڈ پوائنٹ اسٹاپ نقصان کے 15٪ واپسی سے کہیں بہتر ہے۔

ریورس ٹرن آؤٹ میکانزم: اسٹاپ اسٹاپ کے بعد 3 K لائنوں کے اندر ریورس کھولنے کی پوزیشن

حکمت عملی پر مشتملذہانت کی واپسیجب کثیر سر اسٹاپ کے بعد ، اگر 3 K لائنوں کے اندر ایک مضبوط خالی سر سگنل ہوتا ہے تو ، فوری طور پر اس کے برعکس کھل جاتا ہے۔ یہ ڈیزائن رجحان کی تبدیلی کے نقطہ کی تسلسل کے مواقع کو پکڑتا ہے۔

مخصوص منطق: اسٹاپ باکس آؤٹ→ مانیٹرنگ ریورس سگنل→ 3 K لائن ونڈو کے اندر اندر→ ڈبل تصدیق کی شرائط کو پورا کرنا→ ریورس پوزیشن کھولنا۔ ریئل اسٹیک ٹیسٹ سے پتہ چلتا ہے کہ ریورس ریورس نے تقریبا 20٪ اضافی آمدنی میں حصہ لیا ، لیکن اس نے تجارت کی تعدد میں بھی اضافہ کیا۔

ہیکن ایش ماڈل: قیمت کے شور کو ختم کرنے اور سگنل استحکام کو بہتر بنانے کے لئے

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

اعداد و شمار کے ذرائع OHLC4، HL2، HLC3 اور دیگر متعدد طریقوں کی حمایت کرتے ہیں. مختلف اعداد و شمار کے ذرائع مختلف مارکیٹ کی خصوصیات کے لئے موزوں ہیں: OHLC4 ہنگامہ خیز مارکیٹ کے لئے موزوں ہے، HL2 رجحان مارکیٹ کے لئے موزوں ہے، بند ہائی فریکوئینسی ٹریڈنگ کے لئے موزوں ہے.

قابل اطلاق منظرنامے اور خطرے کی تجاویز

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

واضح خطرے کی انتباہ

  • زلزلے کی مارکیٹ کی خراب کارکردگی ، مسلسل نقصانات کا زیادہ خطرہ
  • ایک سے زیادہ ٹائم فریم کے حساب سے حکمت عملی کی پیچیدگی میں اضافہ ہوتا ہے اور کافی تاریخی اعداد و شمار کی ضرورت ہوتی ہے
  • ریورس ریٹرن فنکشن جعلی توڑ میں دوہری نقصان کا سبب بن سکتا ہے
  • تاریخی ریٹرن مستقبل کی آمدنی کی نمائندگی نہیں کرتا، ڈسک کی کارکردگی مختلف ہوسکتی ہے

پیرامیٹرز کی سفارشآر ایس آئی سائیکل 14 ، ایم اے سائیکل 5 ، اسکیلپنگ گھٹاؤ 0.05 ، اے ٹی آر ضارب 1.5۔ یہ پیرامیٹرز کا مجموعہ زیادہ تر مارکیٹوں میں مستحکم کارکردگی کا مظاہرہ کرتا ہے ، لیکن اس کی ضرورت ہوتی ہے کہ وہ مخصوص اقسام کی اتار چڑھاؤ کی خصوصیات کے مطابق ٹھیک سے ایڈجسٹ کریں۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-01-01 00:00:00
end: 2025-09-24 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT","balance":500000}]
*/

//@version=5
strategy("Time-Based Slope & Delta RSI Strategy (HA & Source Selectable)", overlay=false)

// === User Settings ===
useHeikinAshi     = input.bool(false, "Heikin Ashi Mode")
sourceType        = input.string("Close", "Source Mode", options=["Close", "OHLC4", "HL2", "HLC3"])
rsiLength         = input.int(14, "RSI Period")
maLength          = input.int(5, "RSI MA Period")
maType            = input.string("EMA", "MA Type", options=["SMA", "EMA"])
useLogWeight      = input.bool(true, "Use Logarithmic Weight")
baseMinutes       = input.float(15.0, "Reference Minutes")
chartEffectRatio  = input.float(2.0, "Chart Time Effect Ratio", minval=0.0, step=0.1)
slopeThreshold    = input.float(0.05, "Minimum Slope Angle", step=0.01)
deltaThreshold    = input.float(0.02, "Minimum Momentum Delta", step=0.01)
tpWindow          = input.int(3, "Re-entry Window After TP (bars)", minval=1)
atrLength         = input.int(14, "ATR Period")
atrMultiplier     = input.float(1.5, "ATR Multiplier")
minATR            = input.float(0.5, "Minimum ATR Distance")

// === Heikin Ashi Calculation ===
haClose = (open + high + low + close) / 4
var float haOpen = na
haOpen := na(haOpen[1]) ? (open + close)/2 : (haOpen[1] + haClose[1]) / 2
haSource = (haOpen + haClose) / 2

// === Source Selection Function ===
getSource() => useHeikinAshi ? haSource : sourceType == "OHLC4" ? (open + high + low + close) / 4 : sourceType == "HL2" ? (high + low) / 2 : sourceType == "HLC3" ? (high + low + close) / 3 : close

// === Helper Functions ===
getMinutes(tf) =>
    switch tf
        "5"   => 5.0
        "15"  => 15.0
        "60"  => 60.0
        "240" => 240.0
        "D"   => 1440.0
        => 15.0

getMA(src) =>
    maType == "EMA" ? ta.ema(src, maLength) : ta.sma(src, maLength)

rsiMA(tf) =>
    src = close
    rsi = ta.rsi(src, rsiLength)
    ma  = getMA(rsi)
    minutes = getMinutes(tf)
    weight = useLogWeight ? math.log(minutes / baseMinutes + 1) : minutes / baseMinutes
    [rsi, ma, weight]

// === Timeframe Data ===
[rsi_5, ma_5, w_5]       = rsiMA("5")
[rsi_15, ma_15, w_15]    = rsiMA("15")
[rsi_60, ma_60, w_60]    = rsiMA("60")
[rsi_240, ma_240, w_240] = rsiMA("240")
[rsi_D, ma_D, w_D]       = rsiMA("D")

chartMinutes = getMinutes(timeframe.period)
autoSlopeFactor = math.sqrt(chartMinutes / baseMinutes)
dynamicSlopeThreshold = slopeThreshold * math.min(autoSlopeFactor, 2.0)

rsiChart     = ta.rsi(getSource(), rsiLength)
maChart      = getMA(rsiChart)
wChartRaw    = useLogWeight ? math.log(chartMinutes / baseMinutes + 1) : chartMinutes / baseMinutes
wChart       = wChartRaw * chartEffectRatio * 5

// === Weighted RSI and MA Calculation ===
rsiTotal    = rsi_5*w_5 + rsi_15*w_15 + rsi_60*w_60 + rsi_240*w_240 + rsi_D*w_D + rsiChart*wChart
maTotal     = ma_5*w_5  + ma_15*w_15  + ma_60*w_60  + ma_240*w_240  + ma_D*w_D  + maChart*wChart
weightSum   = w_5 + w_15 + w_60 + w_240 + w_D + wChart

weightedRSI   = rsiTotal / weightSum
weightedRSIMA = maTotal  / weightSum

// === Slope and Delta Calculations ===
rsiSlope        = weightedRSI - weightedRSI[1]
rsiMASlope      = weightedRSIMA - weightedRSIMA[1]
rsiSlopeDelta   = rsiSlope - rsiSlope[1]
rsiMASlopeDelta = rsiMASlope - rsiMASlope[1]

// === Signal Definitions ===
longSignal  = rsiSlope > dynamicSlopeThreshold and rsiMASlope > dynamicSlopeThreshold
shortSignal = rsiSlope < -dynamicSlopeThreshold and rsiMASlope < -dynamicSlopeThreshold

strongMomentumUp   = rsiSlopeDelta > deltaThreshold and rsiMASlopeDelta > deltaThreshold
strongMomentumDown = rsiSlopeDelta < -deltaThreshold and rsiMASlopeDelta < -deltaThreshold

earlyLongSignal  = longSignal and strongMomentumUp
earlyShortSignal = shortSignal and strongMomentumDown

// === Risk Module ===
atrValue = ta.atr(atrLength)
atrStop  = math.max(atrValue * atrMultiplier, minATR)
tpDistance = atrStop * 1.5

// === Entry, TP, and SL ===
if (earlyLongSignal)
    strategy.entry("Long", strategy.long)
    strategy.exit("TP Long", from_entry="Long", limit=close + tpDistance)
    strategy.exit("SL Long", from_entry="Long", stop=close - atrStop)

if (earlyShortSignal)
    strategy.entry("Short", strategy.short)
    strategy.exit("TP Short", from_entry="Short", limit=close - tpDistance)
    strategy.exit("SL Short", from_entry="Short", stop=close + atrStop)

// === Re-entry After TP with Momentum Reversal ===
wasLongTP = strategy.opentrades == 0 and strategy.closedtrades > 0 and strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) == bar_index - 1
wasShortTP = strategy.opentrades == 0 and strategy.closedtrades > 0 and strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) == bar_index - 1

lastExitBar = strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1)
barsSinceTP = bar_index - lastExitBar
canReenter = barsSinceTP <= tpWindow

if (wasLongTP and earlyShortSignal and canReenter)
    strategy.entry("Short After TP", strategy.short)

if (wasShortTP and earlyLongSignal and canReenter)
    strategy.entry("Long After TP", strategy.long)

// === Plotting ===
plot(weightedRSI, color=color.orange, title="Weighted RSI")
plot(weightedRSIMA, color=color.blue, title="Weighted RSI MA")
plot(rsiSlope, title="RSI Slope", color=color.orange)
plot(rsiMASlope, title="RSI MA Slope", color=color.blue)
plot(rsiSlopeDelta, title="RSI Slope Delta", color=color.purple)
plot(rsiMASlopeDelta, title="RSI MA Slope Delta", color=color.fuchsia)

plotshape(earlyLongSignal, location=location.bottom, color=color.lime, style=shape.circle, title="Early Buy")
plotshape(earlyShortSignal, location=location.top, color=color.fuchsia, style=shape.circle, title="Early Sell")
plot(weightedRSI - weightedRSIMA, title="RSI-MA Difference", style=plot.style_columns, color=(weightedRSI - weightedRSIMA > 0 ? color.green : color.red))

momentumStrength = math.abs(rsiSlopeDelta + rsiMASlopeDelta)
bgcolor(momentumStrength > 0.2 ? color.new(color.green, 90) : momentumStrength < -0.2 ? color.new(color.red, 90) : na)
bgcolor(useHeikinAshi ? color.new(color.blue, 85) : na)