کثیر اشارے کے رجحان کی نگرانی کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-27 17:15:45
ٹیگز:

img

جائزہ

اس حکمت عملی کا نامکثیر اشارے کے رجحان کی نگرانی کی حکمت عملییہ مارکیٹ کے رجحان کی سمت کا تعین کرنے اور ٹریڈنگ کے رجحان کو ٹریک کرنے کے لئے فشر ٹرانسفارمر ، ویٹڈ موونگ ایوریج (ڈبلیو ایم اے) ، رشتہ دار طاقت انڈیکس (آر ایس آئی) اور آن بیلنس حجم (او بی وی) سمیت متعدد اشارے استعمال کرتا ہے۔

حکمت عملی منطق

  1. قیمتوں میں تبدیلی کے رجحان اور رفتار کا پتہ لگانے کے لئے فیشر ٹرانسفارمر۔ تجارتی سگنل اس وقت پیدا ہوتے ہیں جب چار فیشر لائنیں ہم وقت ساز رنگ بدلتی ہیں۔
  2. WMA اہم رجحان کی سمت کا تعین کرنے کے لئے. RSI جعلی سگنل فلٹر.
  3. OBV رجحان کی تصدیق کرنے کے لئے.

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

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

اس حکمت عملی کے فوائد:

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

متعدد اشارے کے امتزاج کے ذریعے ، یہ تجارتی سگنلز کی درستگی اور وشوسنییتا کو یقینی بناتا ہے اور رجحانات کو پکڑنے کے قابل ہوتا ہے ، جس سے حکمت عملی کی اچھی کارکردگی ہوتی ہے۔

خطرے کا تجزیہ

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

  1. فیشر لائنز غلط سگنل پیدا کرسکتی ہیں اگر مارکیٹ مستحکم ہے۔ آر ایس آئی اس معاملے میں غلط سگنل کو فلٹر کرنے میں مدد کرتا ہے۔
  2. WMA پیرامیٹر کی غلط ترتیب رجحان کی درستگی کو متاثر کر سکتی ہے۔
  3. فیشر ٹرانسفارمر انتہائی مختصر مدت کے رجحانات میں اچھی کارکردگی کا مظاہرہ نہیں کرتا.
  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")

مزید