اس حکمت عملی میں نسبتا strong مضبوط [RSI] اشارے اور K لائن فارمیٹ ماڈل کا امتزاج کیا گیا ہے۔ جب RSI اوور بیئر اوور سیل زون تک پہنچ جاتا ہے تو ، مخصوص K لائن فارمیٹ کو انٹری سگنل کے طور پر شناخت کیا جاتا ہے تاکہ رجحان کی پیروی کی جاسکے۔
آر ایس آئی کی قیمتوں کا حساب لگائیں ، 30 کو اوور سیل لائن اور 70 کو اوور بُل لائن کے طور پر استعمال کریں۔
آر ایس آئی 30 کے نیچے اوورلوڈ سگنل کے طور پر دیکھا جاتا ہے اور آر ایس آئی 70 کے نیچے اوورلوڈ سگنل کے طور پر دیکھا جاتا ہے۔
مذکورہ بالا سگنل ظاہر ہونے پر ، فیصلہ کریں کہ آیا موجودہ K لائن یا پچھلی K لائن نے سفید / سیاہ ہستی ، سر / ہونٹ لائن وغیرہ کی طرح مخصوص شکلیں تشکیل دی ہیں۔
اگر RSI سگنل اور K لائن کی شکل کی شرط ایک ساتھ مل جاتی ہے تو ، خرید / فروخت کا سگنل پیدا ہوتا ہے۔
اس کے برعکس ، اگر کثیر سر شکلیں بنیں جیسے ٹکرانا لائن وغیرہ ، تو آر ایس آئی کے اوور سیل ہونے پر خریدیں؛ اگر خالی سر شکلیں بنیں جیسے شوٹنگ اسٹار وغیرہ ، تو آر ایس آئی کے اوور سیل ہونے پر فروخت کریں۔
داخلہ سگنل کے طور پر زیادہ پیچیدہ مجموعہ موم بتی کے نمونوں جیسے دو لائن شکل ، تین لائن شکل وغیرہ کی شناخت کریں۔
آر ایس آئی نے وسط لائن کے ذریعے واپس آکر بھی فلیٹ پوزیشن سگنل کے طور پر کام کیا۔
اشارے اور شکلوں کے ساتھ مل کر ، جعلی سگنل کو فلٹر کریں ، اور داخلے کی درستگی کو بہتر بنائیں۔
K لائن کی شکلوں کی شناخت کریں اور واضح رجحانات کو پکڑیں.
آر ایس آئی کے اوور بیئر اوور سیل زون کا استعمال کرتے ہوئے سگنل بھیجیں تاکہ منافع کے مواقع بڑھ سکیں۔
ٹرانسمیشن کی شناخت: ٹرانسمیشن کی شناخت کے لئے ٹرانسمیشن کی شناخت کے لئے ٹرانسمیشن کی شناخت کی ضرورت ہے.
RSI ایک سٹاپ / سٹاپ سگنل کے طور پر وسط لائن کے ذریعے واپس آ گیا ہے، فائدہ مند منافع کو لاک کرنے کے لئے.
RSI اشارے پیچھے رہ گئے ہیں اور ممکنہ طور پر ٹرننگ پوائنٹ سے محروم ہیں۔
کچھ K لائن morphological سگنل کمزور ہے، جعلی سگنل ہو سکتا ہے.
نقصان کا خطرہ ہے ، کیونکہ اس سے پہلے کہ اعلی سطح کو توڑنے سے پہلے اور کم سطح کو روکنے سے پہلے اس کو روکنے کے سگنل کے طور پر استعمال کیا جائے۔
موبائل سٹاپ سیٹ اپ کے بغیر ، ایک بڑی واپسی سے نقصانات میں اضافہ ہوسکتا ہے۔
پیمائش کے اعداد و شمار کی کمی ، پیرامیٹرز کی اصلاح کے نتائج میں انحراف کا سبب بن سکتی ہے۔
دوسرے اشارے کے ساتھ مل کر انٹری سگنل کو فلٹر کریں ، جیسے MACD ، برن بینڈ وغیرہ۔
ٹرینڈ لائن کو سٹاپ نقصان کے طور پر شامل کریں۔
RSI پیرامیٹرز کو بہتر بنانے کے لئے ، بہترین پیرامیٹرز کا مجموعہ تلاش کریں
اسٹاپ نقصان کی روک تھام کی حکمت عملی کو بہتر بنائیں ، جیسے ٹریکنگ اسٹاپ ، وقفے وقفے سے اسٹاپ وغیرہ۔
طویل عرصے سے اعداد و شمار کی جانچ پڑتال کریں، پیرامیٹرز کی استحکام کا اندازہ کریں.
مختلف اقسام اور مارکیٹ کے حالات کے مطابق پیرامیٹرز کو ایڈجسٹ کریں۔
اس حکمت عملی میں آر ایس آئی اشارے اور کے لائن شکل کی شناخت کے فوائد کو مربوط کیا گیا ہے ، جس میں اعلی معیار کے سگنل کو منتخب کرنے کے لئے اعلی معیار کے سگنل کو منتخب کیا گیا ہے ، جس سے رجحان کی پیروی کا اثر حاصل ہوتا ہے۔ اس کے ساتھ ساتھ کچھ مضبوط مجموعی شکل کے سگنل کی نشاندہی کی جاسکتی ہے ، جس سے فائدہ اٹھانے کا امکان بڑھ جاتا ہے۔ تاہم ، کچھ دیر سے ، جعلی سگنل کا خطرہ موجود ہے ، جس کو دوسرے ذرائع کے ساتھ مل کر استعمال کرنے کی ضرورت ہے ، اور اسے بہتر بنانے کی ضرورت ہے۔ مجموعی طور پر ، اس حکمت عملی میں متعدد لیڈو حکمت عملی کے خیالات کو جوڑ دیا گیا ہے ، اگر پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جائے تو ، بہتر نتائج حاصل کیے جاسکتے ہیں۔
/*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")