
اس حکمت عملی میں مارکیٹ کے رجحانات کا فیصلہ کرنے کے لئے متعدد اشارے جیسے برن بینڈ ، آر ایس آئی ، اے ڈی ایکس ، اور ایم اے سی ڈی کا استعمال کیا گیا ہے ، جس میں رجحانات کی شناخت کی مضبوط صلاحیت ہے۔ جب اشارے کا اشارہ بیک وقت بُلیش ہوتا ہے تو ، پیچھا کرنے کی حکمت عملی اختیار کی جاتی ہے۔ جب اشارے کا اشارہ بیک وقت بیئرش ہوتا ہے تو ، پوزیشن کو روکنا۔
قیمتوں کے رجحانات کو درست طریقے سے پہچاننے کے لئے کثیر اشارے کے مجموعے کا فیصلہ کریں ، جب رجحانات ہوتے ہیں تو بروقت ان کا سراغ لگائیں ، اور اضافی آمدنی حاصل کریں۔
اس حکمت عملی کا سب سے بڑا فائدہ یہ ہے کہ اشارے کے مجموعے کا فیصلہ زیادہ جامع اور درست ہے ، جس سے قیمتوں کے رجحانات کو مؤثر طریقے سے پہچانا جاسکتا ہے ، اور کسی ایک اشارے کی وجہ سے ہونے والے غلط سگنل سے بچا جاسکتا ہے۔
اس کے علاوہ، یہ بھی ممکن ہے کہ آپ کے پاس کچھ چیزیں ہیں جو آپ کو پسند نہیں ہیں:
انڈیکیٹرز کے مجموعے کے ذریعہ فیصلہ کرنے سے ، جعلی سگنل کو کم سے کم کیا جاسکتا ہے ، اور حکمت عملی کی استحکام کو بڑھایا جاسکتا ہے۔
اس حکمت عملی کے اہم خطرات یہ ہیں:
خطرے 1 کے لئے ، متعدد اشارے پر انحصار کرنے سے ، کسی ایک اشارے کی ناکامی کو کسی حد تک روکنے کے لئے ممکن ہے ، لیکن اس کے باوجود خطرے سے نمٹنے کے طریقہ کار کو بہتر بنانے کی ضرورت ہے۔
خطرے 2 کے لئے ، پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے ، تجارت کے فاصلے کو کم کیا جاسکتا ہے ، تجارت کی تعدد کو کم کیا جاسکتا ہے ، اور خطرے کو کم کیا جاسکتا ہے۔
اس حکمت عملی کے اہم اصلاحات میں شامل ہیں:
مسلسل اصلاح کے ذریعے حکمت عملی کے پیرامیٹرز کی مضبوطی کو بہتر بنانا ، اور غلط سگنل کے امکانات کو کم کرنا۔
یہ حکمت عملی مجموعی طور پر رجحان سگنل کی شناخت کے لئے مضبوط ہے، جس میں اشارے کے مجموعہ کی طرف سے فیصلہ کیا جاتا ہے، قیمتوں کے رجحانات کو مؤثر طریقے سے شناخت کرنے کے لئے.
لیکن اس میں کچھ خطرہ بھی ہے ، طویل مدتی مستحکم آپریشن کے لئے ہوا کے کنٹرول کے طریقہ کار کو مستقل طور پر بہتر بنانے اور پیرامیٹرز کو مستقل طور پر بہتر بنانے کی ضرورت ہے۔ اگر بعد میں مشین لرننگ جیسے طریقوں کو متعارف کرایا جاسکتا ہے تو پیرامیٹرز کو خود بخود بہتر بنانے کے لئے حکمت عملی کی لچک اور آمدنی کی صلاحیت میں بہت زیادہ اضافہ ہوگا۔
/*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)