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


تخلیق کی تاریخ: 2024-02-01 11:42:22 آخر میں ترمیم کریں: 2024-02-01 11:42:22
کاپی: 0 کلکس کی تعداد: 524
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

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

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

طاقت کا تجزیہ

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

اس کے علاوہ، یہ بھی ممکن ہے کہ آپ کے پاس کچھ چیزیں ہیں جو آپ کو پسند نہیں ہیں:

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

انڈیکیٹرز کے مجموعے کے ذریعہ فیصلہ کرنے سے ، جعلی سگنل کو کم سے کم کیا جاسکتا ہے ، اور حکمت عملی کی استحکام کو بڑھایا جاسکتا ہے۔

خطرے کا تجزیہ

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

  1. اچانک واقعے کی وجہ سے اشارے غیر فعال
  2. زلزلے کے دوران بہت سے غلط سگنل پیدا ہوئے

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

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

اصلاح کی سمت

اس حکمت عملی کے اہم اصلاحات میں شامل ہیں:

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

مسلسل اصلاح کے ذریعے حکمت عملی کے پیرامیٹرز کی مضبوطی کو بہتر بنانا ، اور غلط سگنل کے امکانات کو کم کرنا۔

خلاصہ کریں۔

یہ حکمت عملی مجموعی طور پر رجحان سگنل کی شناخت کے لئے مضبوط ہے، جس میں اشارے کے مجموعہ کی طرف سے فیصلہ کیا جاتا ہے، قیمتوں کے رجحانات کو مؤثر طریقے سے شناخت کرنے کے لئے.

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

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