RSI موم بتی ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-22 17:10:39
ٹیگز:

جائزہ

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

یہ کیسے کام کرتا ہے

  1. RSI اقدار کا حساب لگائیں، 70 کے ساتھ oversold لائن اور 30 کے ساتھ oversold لائن.

  2. RSI کو 30 سے اوپر عبور کرنا oversold سگنل کے طور پر اور RSI کو 70 سے نیچے عبور کرنا oversold سگنل کے طور پر سمجھیں۔

  3. جب مندرجہ بالا سگنل ظاہر ہوتے ہیں، تو چیک کریں کہ موجودہ یا پچھلے موم بتی مخصوص پیٹرن جیسے سفید / سیاہ ماروبوزو، ہتھوڑا / پھانسی والا آدمی وغیرہ تشکیل دیتے ہیں.

  4. اگر آر ایس آئی سگنل اور موم بتی کی حالت دونوں پوری ہو جائیں تو ، خرید / فروخت سگنل تیار کریں۔

  5. اسی طرح، جب ہتھوڑا جیسے بولش پیٹرن ہوتے ہیں تو زیادہ فروخت ہونے والے آر ایس آئی پر خریدیں، اور شوٹنگ اسٹار جیسے bearish پیٹرن ہوتے ہیں تو زیادہ خریدنے والے آر ایس آئی پر فروخت کریں۔

  6. داخلہ سگنلز کے لئے پیچیدہ مجموعہ پیٹرن کی نشاندہی کریں جیسے پینسیٹ، صبح / شام کے ستارے.

  7. RSI وسط لائن کو عبور کرنے سے باہر نکلنے کا اشارہ ہوتا ہے۔

فوائد

  1. اشارے اور پیٹرن کو ملا کر جعلی سگنل فلٹر کیے جاتے ہیں اور انٹری کی درستگی میں اضافہ ہوتا ہے۔

  2. موم بتی کا نمونہ اہم رجحان الٹ پوائنٹس کو پکڑتا ہے.

  3. RSI oversold/overbought سگنل جیتنے کے مواقع میں اضافہ کرتے ہیں۔

  4. ڈبل / ٹرپل موم بتی کا مجموعہ مضبوط الٹ پکڑتا ہے.

  5. RSI کراس میڈ لائن منافع میں مقفل کرنے میں مدد ملتی ہے.

خطرات

  1. RSI تاخیر الٹ پوائنٹس یاد کر سکتے ہیں.

  2. کچھ شمعدان کے سگنل کمزور ہوتے ہیں اور غلط سگنل دیتے ہیں۔

  3. حالیہ اعلی / کم کی بنیاد پر کوئی سٹاپ نقصان نہیں، غیر کنٹرول شدہ نقصان کا خطرہ.

  4. کوئی پیچھے سٹاپ نقصان، بہت بڑا منفی اقدام نقصان بڑھا سکتے ہیں.

  5. ناکافی بیک ٹسٹ ڈیٹا پیرامیٹر کی اصلاح میں تعصب پیدا کرسکتا ہے۔

اصلاح

  1. دیگر فلٹرز جیسے MACD، بولنگر بینڈ شامل کریں.

  2. سٹاپ نقصان / منافع لینے کے لئے رجحان لائن شامل کریں.

  3. backtest نتائج کی بنیاد پر RSI پیرامیٹرز کو بہتر بنائیں.

  4. ٹرائلنگ اسٹاپ، زون اسٹاپ وغیرہ جیسے اسٹاپ کو بہتر بنائیں۔

  5. پیرامیٹر کی مضبوطی کا اندازہ کرنے کے لئے طویل ڈیٹا سیٹ کا تجربہ کریں۔

  6. مختلف مصنوعات اور مارکیٹ کے نظام کے لئے پیرامیٹرز کو ایڈجسٹ کریں.

نتیجہ

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


/*backtest
start: 2022-09-15 00:00:00
end: 2023-09-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

/////////////////////////////////////
//@version=2
//@author=sb
strategy("RSI-candlestick Strategy", overlay=true)
src = hlc3, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//plot(rsi, color=purple)
//band1 = hline(70)
//band0 = hline(30)
//band2 = hline(50,linestyle=dotted,color=silver)
//fill(band1, band0, color=#cc99ff, transp=70)
//end premade RSI
oversold = rsi < 30
overbought = rsi > 70
barcolor(oversold? #7fff00 : overbought? red : na )
//
//
level_70 = 70
level_70rsi = rsi > level_70 ? rsi : level_70
level_30 = 30
level_30rsi = rsi < 30 ? rsi : level_30

level_50 = 50
//


//p1 = plot(series=level_70, color=red, linewidth=1, transp=100)
//p2 = plot(series=level_70rsi, color=red, linewidth=1, transp=100)
//p3 = plot(series=level_30, color=green, linewidth=1, transp=100)
//p4 = plot(series=level_30rsi, color=green, linewidth=1, transp=100)
//fill(p1, p2, color=red, transp=50)
//fill(p3, p4, color=#7fff00, transp=50)




/////////////////////////////////////


bullishcriteria = input(title="RSI Bullish Criteria",  defval=55, minval=50, maxval=100)
bearishcriteria = input(title="RSI Bearish Criteria",  defval=45, minval=0, maxval=50)

range = high - low
body = abs(close - open)
oc2 = min(close, open) + body/2
upperwick = high - max(open, close)
lowerwick = min(open, close) - low

isUp = close > open
isTrendUp = rsi(close, 14) >= bullishcriteria
isTrendDown = rsi(close, 14) <= bearishcriteria
isDoji = abs(close-open)/(high-low) < 0.05

// Single Candlestick Pattern
// white marubozu
wm = (isUp) and (upperwick <= 0.05*body) and (lowerwick <= 0.05*body) and isTrendDown
plotshape(wm, color=green, style=shape.triangleup, location=location.belowbar, title='white marubozu',text='wm')
if (not na(rsi))
    if (crossover(rsi, level_30) and (wm or wm[1]))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
// black marubozu
bm = (not isUp) and (upperwick <= 0.05*body) and (lowerwick <= 0.05*body) and isTrendUp
plotshape(bm, color=red, style=shape.triangledown, location=location.abovebar, title='black marubozu',text='bm')

if (not na(rsi))
    if (crossunder(rsi, level_70)and (bm or bm[1]))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")
// hammer
h = (isUp) and (lowerwick >= 2*body) and (upperwick <= 0.1*body) and isTrendDown
plotshape(h, color=green, style=shape.triangleup, location=location.belowbar, title='hammer',text='h')

if (not na(rsi))
    if (crossover(rsi, level_30) and (h or h[1]))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
// hanging man
hm = (not isUp) and (lowerwick >= 2*body) and (upperwick <= 0.1*body) and isTrendUp
plotshape(hm, color=red, style=shape.triangledown, location=location.abovebar, title='hanging man',text='hm')

if (not na(rsi))
    if (crossunder(rsi, level_70)and (hm or hm[1]))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")
        
// inverted hammer
ih = (isUp) and (upperwick >= 2*body) and (lowerwick <= 0.1*body) and isTrendDown
plotshape(ih, color=green, style=shape.triangleup, location=location.belowbar, title='inverted hammer',text='ih')

//if (not na(rsi))
//    if (crossover(rsi, level_30) and (ih or ih[1]))
//        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
        
// shooting star
ss = (not isUp) and (upperwick >= 2*body) and (lowerwick <= 0.1*body) and isTrendUp
plotshape(ss, color=red, style=shape.triangledown, location=location.abovebar, title='shooting star',text='ss')

if (not na(rsi))
    if (crossunder(rsi, level_70)and (ss or ss[1]))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")
        
// Double Candlestick Pattern
// bullish engulfing
bulle = not isDoji[1] and (not isUp[1] and isUp) and (close > open[1] and open < close[1]) and isTrendDown
plotshape(bulle, color=green, style=shape.triangleup, location=location.belowbar, title='bullish engulfing', text='e')

// bearish engulfing
beare = not isDoji[1] and (isUp[1] and not isUp) and (open > close[1] and close < open[1]) and isTrendUp
plotshape(beare, color=red, style=shape.triangledown, location=location.abovebar, title='bearish engulfing',text='e')

// tweezer bottom
twb = (not isUp[1] and isUp) and (min(lowerwick,lowerwick[1])/max(lowerwick,lowerwick[1]) >= 0.99) and (min(low,low[1])/max(low,low[1]) >= 0.99) and isTrendDown
plotshape(twb, color=green, style=shape.triangleup, location=location.belowbar, title='tweezer bottom', text='tb')

if (not na(rsi))
    if (crossover(rsi, level_30) and (twb or twb[1]))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
        
// tweezer top
twt = (isUp[1] and not isUp) and (min(upperwick,upperwick[1])/max(upperwick,upperwick[1]) >= 0.99) and (min(high,high[1])/max(high,high[1]) >= 0.99) and isTrendUp
plotshape(twt, color=red, style=shape.triangledown, location=location.abovebar, title='tweezer top',text='tt')

if (not na(rsi))
    if (crossunder(rsi, level_70)and (twt or twt[1]))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")
// Trible Candlestick Pattern
// three white soldier
tws = (not isUp[3] and isUp[2] and isUp[1] and isUp) and (body[1]>body[2]) and (upperwick<0.1*body and lowerwick<0.1*body) and isTrendDown
plotshape(tws, color=green, style=shape.triangleup, location=location.belowbar, title='three white soldiers',text='tws')

if (not na(rsi))
    if (crossover(rsi, level_30) and (tws or tws[1]))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
        
// three black crows
tbc = (isUp[3] and not isUp[2] and not isUp[1] and not isUp) and (body[1]>body[2]) and (upperwick<0.1*body and lowerwick<0.1*body) and isTrendUp
plotshape(tbc, color=red, style=shape.triangledown, location=location.abovebar, title='three black crows',text='tbc')

if (not na(rsi))
    if (crossunder(rsi, level_70)and (tbc or tbc[1]))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")
        
// morning star
ms = (not isUp[1]) and (abs(close[1]-open[1])/(high[1]-low[1]) < 0.1) and (close > oc2[2] and close < open[2]) and isTrendDown
plotshape(ms, color=green, style=shape.triangleup, location=location.belowbar, title='morning star',text='ms')

if (not na(rsi))
    if (crossover(rsi, level_30) and (ms or ms[1]))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
        
// evening star
es = (isUp[1]) and (abs(close[1]-open[1])/(high[1]-low[1]) < 0.1) and (close < oc2[2] and close > open[2]) and isTrendUp
plotshape(es, color=red, style=shape.triangledown, location=location.abovebar, title='evening star',text='es')

//if (not na(rsi))
//    if (crossunder(rsi, level_70)and (es or es[1]))
//        strategy.entry("RsiSE", strategy.short, comment="RsiSE")
        
// three inside up
tiu = (not isUp[2]) and (close[1] > oc2[2] and close[1] < open[2]) and (close > high[2]) and isTrendDown
plotshape(tiu, color=green, style=shape.triangleup, location=location.belowbar, title='three inside up',text='tiu')

if (not na(rsi))
    if (crossover(rsi, level_30) and (tiu or tiu[1]))
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
        
// three inside down
tid = (isUp[2]) and (close[1] < oc2[2] and close[1] > open[2]) and (close < low[2]) and isTrendUp
plotshape(tid, color=red, style=shape.triangledown, location=location.abovebar, title='three inside down',text='tid')

if (not na(rsi))
    if (crossunder(rsi, level_70)and (tid or tid[1]))
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")
        
if (not na(rsi))
    if (crossover(rsi, level_70))
        //strategy.exit("RsiSE")
        //if(chk[1]==0 or chk[2]==0 or chk[3]==0 or chk[4]==0 or chk[5]==0 or chk[6]==0 or chk[7]==0 or chk[8]==0 or chk[9]==0 or chk[10]==0)
        //if(crossover(col[1],zero) or crossover(col[2],zero) or crossover(col[3],zero) or crossover(col[4],zero) or crossover(col[5],zero) or crossover(col[6],zero) or crossover(col[7],zero) or crossover(col[8],zero))
        //strategy.entry("RsiLE", strategy.long,0, comment="RsiLE")
        strategy.entry("RsiSE", strategy.short,0, comment="RsiSE")

    if (crossunder(rsi, level_30))
        //strategy.entry("RsiSE", strategy.short,0, comment="RsiSE")
        strategy.entry("RsiLE", strategy.long,0, comment="RsiLE")

//if (not na(rsi))
//    if (crossover(rsi, level_50))
        //strategy.exit("RsiSE")
        //if(chk[1]==0 or chk[2]==0 or chk[3]==0 or chk[4]==0 or chk[5]==0 or chk[6]==0 or chk[7]==0 or chk[8]==0 or chk[9]==0 or chk[10]==0)
        //if(crossover(col[1],zero) or crossover(col[2],zero) or crossover(col[3],zero) or crossover(col[4],zero) or crossover(col[5],zero) or crossover(col[6],zero) or crossover(col[7],zero) or crossover(col[8],zero))
//        strategy.entry("RsiSE", strategy.short,0, comment="RsiSE")
//    else
//        strategy.exit("RsiSE")
//    if (crossunder(rsi, level_50))
//        strategy.entry("RsiLE", strategy.long,0, comment="RsiLE")
//    else
//        strategy.exit("RsiLE")

مزید