متعدد اشارے پر مبنی رجحان کی پیروی کرنے والی حکمت عملی


تخلیق کی تاریخ: 2023-12-27 17:15:45 آخر میں ترمیم کریں: 2023-12-27 17:15:45
کاپی: 1 کلکس کی تعداد: 599
1
پر توجہ دیں
1623
پیروکار

متعدد اشارے پر مبنی رجحان کی پیروی کرنے والی حکمت عملی

جائزہ

اس حکمت عملی کا نام ہےملٹی میٹرک پیکیج ٹرینڈ ٹریکنگ حکمت عملیملٹی انڈیکیٹر ٹرینڈ ٹریکنگ اسٹریٹجی (Multi-Indicator Trend Tracking Strategy) ، جس میں فشر ٹرانسفارمیشن اشارے ، ویٹرنڈ موونگ ایوریج اوسط ((WMA) ، نسبتا strong مضبوط اشارے ((RSI) اور اوسط لائن ((OBV) جیسے متعدد اشارے استعمال کیے جاتے ہیں ، تاکہ مارکیٹ کے رجحان کی سمت کا تعین کیا جاسکے ، اور رجحان سے باخبر رہنے کے لئے تجارت کی جاسکے۔

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

  1. فیشر تبدیلی اشارے قیمت میں تبدیلی کے رجحان اور طاقت کا تعین کرتی ہے۔ جب چار فیشر لائنیں ایک ساتھ رنگ بدلتی ہیں تو تجارت کا اشارہ دیا جاتا ہے۔
  2. ڈبلیو ایم اے نے بڑے رجحان کی سمت کا فیصلہ کیا۔ آر ایس آئی نے جعلی سگنل کو فلٹر کیا۔
  3. OBV اشارے کا استعمال رجحانات کی تصدیق کے لئے کیا جاتا ہے۔

خاص طور پر ، فشر ٹرانسفارمیشن اشارے میں 1 ، 2 ، 4 اور 8 گنا 4 لائنیں شامل ہیں۔ جب 4 لائنیں بیک وقت اوپر سبز ہوجاتی ہیں تو ایک سے زیادہ سگنل پیدا ہوتا ہے ، اور جب 4 لائنیں بیک وقت نیچے سرخ ہوجاتی ہیں تو ایک خالی سگنل پیدا ہوتا ہے۔ ڈبلیو ایم اے بڑے رجحان کی سمت کا تعین کرتی ہے ، اگر اشارے اوپر کی طرف جاتا ہے تو اس کا تعین منفی ہوتا ہے ، اور اگر نیچے کی طرف جاتا ہے تو اس کا تعین منفی ہوتا ہے۔ OBV رجحان کی سمت کی تصدیق کے لئے استعمال کیا جاتا ہے۔

طاقت کا تجزیہ

اس حکمت عملی کے درج ذیل فوائد ہیں:

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

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

خطرے کا تجزیہ

اس حکمت عملی میں کچھ خطرات بھی ہیں:

  1. اگر مارکیٹ میں کوئی تبدیلی آتی ہے تو ، فشر لائن جھوٹے سگنل پیدا کرنے کے لئے آسان ہے۔ اس وقت آر ایس آئی فلٹر پر انحصار کرنا ہوگا۔
  2. WMA پیرامیٹرز کی غلط ترتیب بھی فیصلے کی accurancy کو متاثر کرتی ہے۔
  3. فیشر ٹرانسفارمیشن انڈیکیٹر (Fisher Conversion Index) انتہائی مختصر لائنوں کے بارے میں بہت برا فیصلہ کرتا ہے۔
  4. اس حکمت عملی کے نتیجے میں بہت زیادہ نقصانات ہو سکتے ہیں۔

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

اصلاح کی سمت

اس حکمت عملی کو مزید بہتر بنانے کے لیے:

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//author Sdover0123
strategy(title='FTR, WMA, OBV & RSI Strat', shorttitle='FTR WMA, OBV, RSI',overlay=false, default_qty_type=strategy.percent_of_equity, initial_capital = 100, default_qty_value=100, commission_value = 0.06, pyramiding = 3)
Len = input.int(10, minval=1, group ="Fisher Transform")
mult1 = input.int(1, minval=1, group ="Fisher Transform")
mult2 = input.int(2, minval=1, group ="Fisher Transform")
mult3 = input.int(4, minval=1, group ="Fisher Transform")
mult4 = input.int(8, minval=1, group ="Fisher Transform")
fish(Length, timeMultiplier) =>
    var nValue1 = 0.0
    var nValue2 = 0.0
    var nFish = 0.0
    xHL2 = hl2
    xMaxH = ta.highest(xHL2, Length * timeMultiplier)
    xMinL = ta.lowest(xHL2, Length * timeMultiplier)
    nValue1 := 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1])
    if nValue1 > .99
        nValue2 := .999
        nValue2
    else if nValue1 < -.99
        nValue2 := -.999
        nValue2
    else
        nValue2 := nValue1
        nValue2
    nFish := 0.5 * math.log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1])
    nFish
Fisher1 = fish(Len, mult1)
Fisher2 = fish(Len, mult2)
Fisher4 = fish(Len, mult3)
Fisher8 = fish(Len, mult4)

rsiLength = input.int(14, minval=1, group ="Moving Averages")
rsiVal = (ta.rsi(close, rsiLength) - 50) / 10
avg = strategy.position_avg_price

wma(source, length) =>
    sum = 0.0
    for i = 0 to length - 1
        sum := sum + source[i] * (length - i)
    wma = sum / (length * (length + 1) / 2)
    wma

wmaLength = input.int(10, "WMA Length", minval=1, group ="Moving Averages")
wmaClose = wma(close, wmaLength)
// Determine if WMA is bullish or bearish
isWmaBullish = wmaClose > wmaClose[1]
isWmaBearish = wmaClose < wmaClose[1]

//OBV 
src = close
length = input.int(20, title="OBV Length", group="On-Balance Volume")
obv1(src) =>
    change_1 = ta.change(src)
    ta.cum(ta.change(src) > 0 ? volume : change_1 < 0 ? -volume : 0 * volume)*0.01
os = obv1(src)
obv_osc = os - ta.ema(os, length)
obc_color = (obv_osc > 0 ? color.rgb(0, 255, 8) : color.rgb(255, 0, 0))
plot(obv_osc, color=obc_color, style=plot.style_line, title='OBV-Points', linewidth=2)
plot(obv_osc, color=color.new(#b2b5be, 70), title='OBV', style=plot.style_area)
obvBullFilter = input.float(0.1, minval = 0, maxval = 5, step = 0.01, title ="OBV Bullish minimum value", group="On-Balance Volume")
obvBearFilter = input.float(-0.1, minval = -5, maxval = 0, step = 0.01, title ="OBV Bearish minimum value", group="On-Balance Volume")
obvBull = obv_osc > obvBullFilter
obvBear = obv_osc < obvBearFilter

// Add buy/sell signals
ReversalFilterDown = input.float(-0.7, 'Reversal Down TP Filter', -4, 4, step = 0.01, group = "RSI Level Filters", tooltip = "This is defined by taking the RSI value -50 and /10. When all Fisher lines are changing colour, this will SL/TP the long")
ReversalFilterUp = input.float(0.7, 'Reversal Up TP Filter', -4, 4, step = 0.01, group = "RSI Level Filters", tooltip = "This is defined by taking the RSI value -50 and /10. When all Fisher lines are changing colour, this will SL/TP the short")
RSILevelBuyFilter = input.float(1.66, 'RSI Level Buy Filter', -4, 4, step = 0.01, group = "RSI Level Filters", tooltip = "This is defined by taking the RSI value -50 and /10. Consider negative values")
RSILevelSellFilter = input.float(1, 'RSI Level Sell Filter', -4, 4, step = 0.01, group = "RSI Level Filters", tooltip = "This is defined by taking the RSI value -50 and /10. Consider negative values")
//buys - if breaking out and all Fisher are green and RSI filter value is met 
buySignal = Fisher1 > Fisher1[1] and Fisher2 > Fisher2[1] and Fisher4 > Fisher4[1] and Fisher8 > Fisher8[1] and rsiVal > RSILevelBuyFilter and isWmaBullish and obvBull
ReversalUp = Fisher1 > Fisher1[1] and Fisher2 > Fisher2[1] and Fisher4 > Fisher4[1] and Fisher8 > Fisher8[1] and rsiVal > ReversalFilterUp
//sells - if breaking down and all Fisher are green and RSI filter value is met 
sellSignal = Fisher1 < Fisher1[1] and Fisher2 < Fisher2[1] and Fisher4 < Fisher4[1] and Fisher8 < Fisher8[1] and rsiVal < RSILevelSellFilter and isWmaBearish and obvBear
ReversalDown = Fisher1 < Fisher1[1] and Fisher2 < Fisher2[1] and Fisher4 < Fisher4[1] and Fisher8 < Fisher8[1] and rsiVal < ReversalFilterDown


// Buy and Sell conditions
if buySignal and time>timestamp(2022, 06, 01, 09, 30) and barstate.isconfirmed
    strategy.close("Sell", comment = "Close Short")
    strategy.entry("Buy", strategy.long, comment = "Long")

if sellSignal and time>timestamp(2022, 06, 01, 09, 30) and barstate.isconfirmed
    strategy.close("Buy", comment = "Close Long")
    strategy.entry("Sell", strategy.short, comment = "Short")

if ReversalDown
    strategy.close("Buy", comment = "Close Long")

if ReversalUp
    strategy.close("Sell", comment = "Close Short")

//Plotting
//Fisher
plot(Fisher1, color=Fisher1 > nz(Fisher1[1]) ? color.green : color.rgb(255, 0, 0), title='Fisher TF:1')
plot(Fisher2, color=Fisher2 > nz(Fisher2[1]) ? color.green : color.rgb(255, 0, 0), title='Fisher TF:1', linewidth=2)
plot(Fisher4, color=Fisher4 > nz(Fisher4[1]) ? #008000 : #b60000, title='Fisher TF:1', linewidth=3)
plot(Fisher8, color=Fisher8 > nz(Fisher8[1]) ? #004f00 : #b60000, title='Fisher TF:1', linewidth=3)
//RSI
plot(rsiVal, color=rsiVal < 0 ? color.purple : color.yellow, linewidth=2, title='RSI')

//WMA
plot(isWmaBullish ? -2 : na, color=color.rgb(76, 175, 79, 20), linewidth=3, style=plot.style_linebr, title="WMA Bullish")
plot(isWmaBearish ? -2 : na, color=color.rgb(255, 82, 82, 20), linewidth=3, style=plot.style_linebr, title="WMA Bearish")

//Buy/Sell Signals
plotshape(buySignal, title='Buy Signal', location=location.bottom, color=color.new(color.lime, 0), style=shape.triangleup, size=size.small)
plotshape(sellSignal, title='Sell Signal', location=location.top, color=color.new(color.red, 0), style=shape.triangledown, size=size.small)

//Orientation
hline(RSILevelBuyFilter, color=color.rgb(25, 36, 99, 20), linestyle=hline.style_dotted, linewidth=2)
hline(RSILevelSellFilter, color=color.rgb(111, 27, 27, 20), linestyle=hline.style_dotted, linewidth=2)
hline(0, color=color.rgb(181, 166, 144, 39), linestyle=hline.style_dashed, linewidth=2, title = "Zero Line")
hline(1.5, color=color.rgb(217, 219, 220, 50), linestyle=hline.style_dotted, linewidth=2, title = "1.5 // 65 Line")
hline(-1.5, color=color.rgb(217, 219, 220, 50), linestyle=hline.style_dotted, linewidth=2, title = "-1.5 // 35 Line")