এই কৌশলটি তুলনামূলকভাবে দুর্বল সূচক (RSI) এবং কে-লাইন মোডের সাথে মিলিত হয়, যখন RSI একটি ওভার-বই ওভার-সোল্ড অঞ্চলে পৌঁছে যায়, তখন নির্দিষ্ট কে-লাইন মোডকে প্রবেশের সংকেত হিসাবে চিহ্নিত করে ট্রেন্ড ট্র্যাকিংয়ের জন্য।
আরএসআই সূচকটির মান গণনা করুন, 30 এর সাথে ওভারসোল্ড লাইন এবং 70 এর সাথে ওভারবাইট লাইন।
আরএসআই ৩০ অতিক্রম করলে এটি একটি ওভারসেল সংকেত এবং আরএসআই ৭০ অতিক্রম করলে এটি একটি ওভারবই সংকেত।
উপরোক্ত সংকেত উপস্থিত হলে, বিচার করুন যে বর্তমান কে লাইন বা পূর্ববর্তী কে লাইনটি সাদা/কালো সত্তা, টুকরো/কুশল লাইন ইত্যাদির মতো নির্দিষ্ট আকৃতি তৈরি করেছে কিনা।
যদি RSI সংকেত এবং K-লাইন শর্তাদি একই সাথে পূরণ করা হয়, তাহলে একটি ক্রয়/বিক্রয় সংকেত তৈরি হয়।
এর বিপরীতে, যদি শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থানীয় শীর্ষস্থান
প্রবেশের সংকেত হিসাবে দ্বি-লাইন, ত্রি-লাইন এবং আরও জটিল সমন্বয়যুক্ত ক্যান্ডেলস্টিক প্যাটার্নগুলি সনাক্ত করুন।
আরএসআই মধ্যরেখার মধ্য দিয়ে ফিরে আসে এবং এটি একটি সমতল সংকেত হিসাবে কাজ করে।
ইন্ডিকেটর এবং ফর্ম্যাটের সমন্বয়ে, ভুয়া সংকেতগুলি ফিল্টার করে, প্রবেশের সঠিকতা বাড়ায়।
K-লাইন আকৃতি সনাক্ত করুন এবং প্রবণতা পরিবর্তনের সুস্পষ্ট পয়েন্টগুলি ধরুন।
আরএসআই-এর ওভারবই ওভারসেল এলাকা ব্যবহার করে, মুনাফা অর্জনের সুযোগ বাড়ানোর জন্য সংকেত প্রেরণ করুন।
ডাবল-ট্রিপল মডেলের সংমিশ্রণ চিহ্নিত করুন এবং প্রবণতার শক্তিশালী বিপর্যয় চিহ্নিত করুন।
আরএসআই স্টপ/স্টপ সিগন্যাল হিসাবে মধ্যম লাইনটি অতিক্রম করে, লাভের জন্য সুবিধাজনক।
আরএসআই সূচকটি পিছিয়ে রয়েছে এবং সম্ভবত এটি একটি বিপরীত দিকটি মিস করেছে।
কিছু অংশে K-লাইন আকৃতির সংকেত দুর্বল এবং সম্ভবত মিথ্যা সংকেত রয়েছে।
ব্রেকআউটের আগে উচ্চতা এবং পুনরুদ্ধারের আগে নিম্নতাকে স্টপ-স্টপ সংকেত হিসাবে বিবেচনা না করে, ক্ষতির ঝুঁকি রয়েছে।
মোবাইল স্টপ সেট না করা, বড় ধরনের বিপর্যয় ক্ষতির বিস্তার ঘটাতে পারে
রিটার্নিং ডেটা অপর্যাপ্ত, যা প্যারামিটার অপ্টিমাইজেশনের ফলাফলকে বিভ্রান্ত করতে পারে।
অন্যান্য সূচকগুলির সাথে মিলিত হয়ে প্রবেশের সংকেতগুলি ফিল্টার করে, যেমন 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")