وسائل لوڈ ہو رہے ہیں... لوڈنگ...

مقداری رجحانات کی نگرانی کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-01 11:42:22
ٹیگز:

img

جائزہ

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

حکمت عملی کا اصول

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

متعدد اشارے کے مجموعی فیصلے کے ذریعے ، یہ قیمتوں کے رجحانات کی درستگی سے نشاندہی کرسکتا ہے اور جب رجحان ظاہر ہوتا ہے تو اضافی منافع حاصل کرنے کے لئے بروقت ان کا سراغ لگاسکتا ہے۔

فوائد کا تجزیہ

اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اشارے کے مجموعے کا فیصلہ زیادہ جامع اور درست ہے ، جو قیمتوں کے رجحانات کو مؤثر طریقے سے پہچان سکتا ہے اور ایک اشارے کی وجہ سے غلط اشاروں سے بچ سکتا ہے۔

خاص طور پر، فوائد یہ ہیں:

  1. بولنگر بینڈ قیمت کی اتار چڑھاؤ کی حد اور طاقت کا تعین کرسکتے ہیں
  2. آر ایس آئی زیادہ خریدنے والے علاقوں میں خریدنے اور زیادہ فروخت والے علاقوں میں فروخت کرنے سے گریز کرتا ہے
  3. ADX رجحان کی طاقت کا تعین کرتا ہے، صرف مضبوط رجحانات کی پیروی کرتا ہے
  4. ایم اے سی ڈی قلیل اور طویل مدتی کی مستقل مزاجی کا جائزہ لیتا ہے
  5. راتوں رات کے خطرات سے بچنے کے لئے تجارتی سیشن کی حدود

اشارے کے مجموعے کے ذریعے، یہ غلط سگنل کو زیادہ سے زیادہ کم کر سکتا ہے اور حکمت عملی کے استحکام کو بڑھا سکتا ہے.

خطرے کا تجزیہ

اس حکمت عملی کے اہم خطرات مندرجہ ذیل ہیں:

  1. اشارے کی ناکامی کا سبب بننے والے مارکیٹ کے واقعات
  2. رینج سے منسلک مارکیٹوں میں اکثر غلط سگنل

خطرے 1 کے لیے متعدد اشارے پر انحصار ایک اشارے کی ناکامی کے مسئلے کو کسی حد تک کم کر سکتا ہے، لیکن خطرے کے انتظام کے طریقہ کار کو ابھی بھی بہتر بنانے کی ضرورت ہے۔

خطرہ 2 کے لئے پیرامیٹرز کو مناسب طریقے سے تنگ ٹریڈنگ رینج میں ایڈجسٹ کیا جاسکتا ہے اور خطرات کو کم کرنے کے لئے ٹریڈنگ کی تعدد کو کم کیا جاسکتا ہے۔

اصلاح کی ہدایات

اس حکمت عملی کے اہم بہتر پہلوؤں میں شامل ہیں:

  1. روکنے کے نقصان کے طریقہ کار کو شامل کریں جیسے ٹریلنگ سٹاپ نقصان، وقت سٹاپ نقصان، بریک آؤٹ سٹاپ نقصان، وغیرہ کو بہت گہری واپس لینے سے بچنے کے لئے
  2. پیرامیٹرز کو بہتر بنائیں، بہترین تلاش کرنے کے لئے اشارے پیرامیٹرز مجموعہ کو ایڈجسٹ
  3. کم حجم میں جھوٹے بریک آؤٹ سے بچنے کے لئے حجم فلٹر جیسے فلٹر شامل کریں
  4. سگنل کی درستگی کو بہتر بنانے کے لئے KDJ، OBV جیسے مزید اشارے شامل کریں
  5. پیرامیٹرز کی خودکار اصلاح کے لئے مشین لرننگ کے طریقوں کو اپنائیں

مسلسل اصلاح کی طرف سے، مسلسل پیرامیٹر مضبوطی کو بہتر بنانے اور جھوٹے سگنل کے امکانات کو کم.

خلاصہ

مجموعی طور پر اس حکمت عملی میں اشارے کے مجموعی فیصلوں کے ذریعے رجحان سگنل کی نشاندہی کرنے کی نسبتا strong مضبوط صلاحیت ہے جو قیمتوں کے رجحانات کی مؤثر طریقے سے نشاندہی کرسکتی ہے۔

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 5h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © abilash.s.90


dIMinusCalc(adxLen) =>
    
    smoothedTrueRange = 0.0
    smoothedDirectionalMovementMinus = 0.0
    dIMinus = 0.0
    trueRange = 0.0
    directionalMovementMinus = 0.0
    
    trueRange := max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
    directionalMovementMinus := nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
    
    smoothedTrueRange := nz(smoothedTrueRange[1]) - (nz(smoothedTrueRange[1])/adxLen) + trueRange
    smoothedDirectionalMovementMinus := nz(smoothedDirectionalMovementMinus[1]) - (nz(smoothedDirectionalMovementMinus[1])/adxLen) + directionalMovementMinus
    
    dIMinus := smoothedDirectionalMovementMinus / smoothedTrueRange * 100
    
    dIMinus

dIPlusCalc(adxLen) =>
    
    smoothedTrueRange = 0.0
    smoothedDirectionalMovementPlus = 0.0
    dIPlus =  0.0
    trueRange = 0.0
    directionalMovementPlus = 0.0
    
    trueRange := max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
    directionalMovementPlus := high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
    
    smoothedTrueRange := nz(smoothedTrueRange[1]) - (nz(smoothedTrueRange[1])/adxLen) + trueRange
    smoothedDirectionalMovementPlus := nz(smoothedDirectionalMovementPlus[1]) - (nz(smoothedDirectionalMovementPlus[1])/adxLen) + directionalMovementPlus
    
    dIPlus := smoothedDirectionalMovementPlus / smoothedTrueRange * 100
    
    dIPlus
    
    
Adx(adxLen) =>
    dIPlus =  0.0
    dIMinus = 0.0
    dX = 0.0
    aDX = 0.0
    dIPlus := dIPlusCalc(adxLen)
    dIMinus := dIMinusCalc(adxLen)
    dX := abs(dIPlus-dIMinus) / (dIPlus+dIMinus)*100
    aDX := sma(dX, adxLen)
    
    aDX
    
BarInSession(sess) => time(timeframe.period, sess) != 0


//@version=4
strategy("Bollinger Band + RSI + ADX + MACD", overlay=true)

//Session

session = input(title="Trading Session", type=input.session, defval="0930-1500")

sessionColor = BarInSession(session) ? color.green : na

bgcolor(color=sessionColor, transp=95)

// Bollinger Bands
src = input(high, title="Bollinger Band Source", type=input.source)
length = input(3, minval=1, type=input.integer, title="Bollinger Band Length")
mult = input(4.989, minval=0.001, maxval=50, step=0.001, type=input.float, title="Bollinger Band Std Dev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev


plot(upper, title="Bollinger Band Upper", color=color.red)
plot(lower, title="Bollinger Band Lower", color=color.green)

// RSI
rsiSrc = input(close, title="RSI Source", type=input.source)
rsiLength = input(16, minval=1, type=input.integer, title="RSI Length")
rsiComparator = input(39.2, title="RSI Comparator", type=input.float, step=0.1)

rsi = rsi(rsiSrc, rsiLength)

// ADX
adxLength = input(14, minval=1, type=input.integer, title="ADX Length")
adxComparator = input(14, minval=1, type=input.integer, title="ADX Comparator")

adx = Adx(adxLength)

// Heikinashi

haClose = security(heikinashi(syminfo.ticker), timeframe.period, close)
haOpen = security(heikinashi(syminfo.ticker), timeframe.period, open)

nextHaOpen = (haOpen + haClose) / 2

//MACD

macdCalcTypeProcessed = input(title="MACD Source", type=input.source, defval=high)
fast = input(12, title="MACD Fast")
slow = input(20, title="MACD Slow")
signalLen = input(15, title="MACD Signal")

fastMA = ema(macdCalcTypeProcessed, fast)
slowMA = ema(macdCalcTypeProcessed, slow)
macd = fastMA - slowMA
signal = sma(macd, signalLen)



longCondition() =>
    (low < lower) and (rsi[0] > rsiComparator) and (adx > adxComparator) and (close > nextHaOpen) and BarInSession(session) and macd > signal

stop = (close - max((low - (low * 0.0022)), (close - (close * 0.0032)))) / syminfo.mintick
target = (max(upper, (close + (close * 0.0075))) - close) / syminfo.mintick


strategy.entry("SX,LE", strategy.long, when=longCondition(), comment="SX,LE")
strategy.close_all(when=(not BarInSession(session)))
strategy.exit("LX", from_entry="SX,LE", profit=target, loss=stop)


مزید