Orijinal fikir mohanee'den alındı. Bu strateji, RSI uyumsuzluğunu bir giriş noktası olarak kullanıyor ve çıkışı RSI bölgesinin karşı tarafında arıyor. Bu ölçekleme stratejisi, Wunderbit Trading'de kolayca otomatikleştirilebilir.
ÖNEMLİ
-Bu stratejide Zarar Kes veya Takip Eden Zarar Kes seviyeleri yoktur.
-Bu strateji, trende karşı giriş arıyor
-Stratejinin aylık olarak nasıl performans gösterdiğini görebilmeniz için dönem seçimi için girdiler ekledik.
Ayarlar
için geçerli: LTC-PERP 15 dk
Input | Value |
Period | 15 |
RSI Period | 7 |
RSI Source | 15 |
Pivot Lookback Right | 3 |
Pivot Lookback Left | 4 |
Long Take Profit at RSI level | 77 |
Short Take Profit at RSI level | 19 |
Max of Lookback Range | 19 |
Min of Lookback Range | 6 |
Plot Bullish | True (active) |
Plot Hidden Bullish | True (active) |
Plot Bearish | True (active) |
Plot Hidden Bullish | False (Not active) |
Gözden geçirilmiş strateji komut dosyası kodu
Bu kodu kopyalayabilir ve TradingView'inize yapıştırabilirsiniz.
//Updated by: Wunderbit Trading
//Original Idea by: mohanee
//@version=4
strategy("RSI Divergence", shorttitle = "RSI-DIV", overlay=false, pyramiding=2, commission_type=strategy.commission.percent, commission_value=0.07, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD )
ribbon_period = input(15, "Period", step=1)
leadLine1 = ema(close, ribbon_period)
leadLine2 = sma(close, ribbon_period)
// p1 = plot(leadLine1, color= #53b987, title="EMA", transp = 50, linewidth = 1)
// p2 = plot(leadLine2, color= #eb4d5c, title="SMA", transp = 50, linewidth = 1)
// fill(p1, p2, transp = 60, color = leadLine1 > leadLine2 ? #53b987 : #eb4d5c)
len = input(title="RSI Period", minval=1, defval=7)
src = input(title="RSI Source", defval=close)
lbR = input(title="Pivot Lookback Right", defval=3)
lbL = input(title="Pivot Lookback Left", defval=4)
takeProfitRSILevel_long = input(title="Long Take Profit at RSI Level", minval=60, defval=77)
takeProfitRSILevel_short=input(title="Short Take Profit at RSI Level", maxval=30, defval=19)
rangeUpper = input(title="Max of Lookback Range", defval=19)
rangeLower = input(title="Min of Lookback Range", defval=6)
plotBull = input(title="Plot Bullish", defval=true)
plotHiddenBull = input(title="Plot Hidden Bullish", defval=true)
plotBear = input(title="Plot Bearish", defval=true)
plotHiddenBear = input(title="Plot Hidden Bearish", defval=false)
bearColor = color.purple
bullColor = color.green
hiddenBullColor = color.new(color.green, 80)
hiddenBearColor = color.new(color.red, 80)
textColor = color.white
noneColor = color.new(color.white, 100)
osc = rsi(src, len)
plot(osc, title="RSI", linewidth=2, color=#8D1699)
hline(50, title="Middle Line", linestyle=hline.style_dotted)
obLevel = hline(70, title="Overbought", linestyle=hline.style_dotted)
osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
fill(obLevel, osLevel, title="Background", color=#9915FF, transp=90)
plFound = na(pivotlow(osc, lbL, lbR)) ? false : true
phFound = na(pivothigh(osc, lbL, lbR)) ? false : true
_inRange(cond) =>
bars = barssince(cond == true)
rangeLower <= bars and bars <= rangeUpper
//------------------------------------------------------------------------------
// Regular Bullish
// Osc: Higher Low
oscHL = osc[lbR] > valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])
// Price: Lower Low
priceLL = low[lbR] < valuewhen(plFound, low[lbR], 1)
bullCond = plotBull and priceLL and oscHL and plFound
plot(
plFound ? osc[lbR] : na,
offset=-lbR,
title="Regular Bullish",
linewidth=2,
color=(bullCond ? bullColor : noneColor),
transp=0
)
plotshape(
bullCond ? osc[lbR] : na,
offset=-lbR,
title="Regular Bullish Label",
text=" Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor,
transp=0
)
//------------------------------------------------------------------------------
// Hidden Bullish
// Osc: Lower Low
oscLL = osc[lbR] < valuewhen(plFound, osc[lbR], 1) and _inRange(plFound[1])
// Price: Higher Low
priceHL = low[lbR] > valuewhen(plFound, low[lbR], 1)
hiddenBullCond = plotHiddenBull and priceHL and oscLL and plFound
plot(
plFound ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bullish",
linewidth=2,
color=(hiddenBullCond ? hiddenBullColor : noneColor),
transp=0
)
plotshape(
hiddenBullCond ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bullish Label",
text=" H Bull ",
style=shape.labelup,
location=location.absolute,
color=bullColor,
textcolor=textColor,
transp=0
)
//------------------------------------------------------------------------------
// Regular Bearish
// Osc: Lower High
oscLH = osc[lbR] < valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])
// Price: Higher High
priceHH = high[lbR] > valuewhen(phFound, high[lbR], 1)
bearCond = plotBear and priceHH and oscLH and phFound
plot(
phFound ? osc[lbR] : na,
offset=-lbR,
title="Regular Bearish",
linewidth=2,
color=(bearCond ? bearColor : noneColor),
transp=0
)
plotshape(
bearCond ? osc[lbR] : na,
offset=-lbR,
title="Regular Bearish Label",
text=" Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor,
transp=0
)
//------------------------------------------------------------------------------
// Hidden Bearish
// Osc: Higher High
oscHH = osc[lbR] > valuewhen(phFound, osc[lbR], 1) and _inRange(phFound[1])
// Price: Lower High
priceLH = high[lbR] < valuewhen(phFound, high[lbR], 1)
hiddenBearCond = plotHiddenBear and priceLH and oscHH and phFound
plot(
phFound ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bearish",
linewidth=2,
color=(hiddenBearCond ? hiddenBearColor : noneColor),
transp=0
)
plotshape(
hiddenBearCond ? osc[lbR] : na,
offset=-lbR,
title="Hidden Bearish Label",
text=" H Bear ",
style=shape.labeldown,
location=location.absolute,
color=bearColor,
textcolor=textColor,
transp=0
)
/// Strategy Conditions
entry_long = if leadLine2<leadLine1
hiddenBullCond
else
bullCond
entry_price_long=valuewhen(entry_long,close,0)
exit_long = crossover(osc,takeProfitRSILevel_long)// or bearCond
///// SHORT ////
entry_short = if leadLine2>leadLine1
hiddenBearCond
else
bearCond
entry_price_short=valuewhen(entry_short,close,0)
exit_short = crossunder(osc,takeProfitRSILevel_short)// or bullCond
///// BACKTEST PERIOD ///////
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(9999, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
if testPeriod()
if strategy.position_size == 0 or strategy.position_size > 0
strategy.entry(id="long", long=true, when = entry_long, comment="Enter Long Comment")
strategy.close(id="long", when=exit_long, comment = "Exit Long Comment")
if strategy.position_size == 0 or strategy.position_size < 0
strategy.entry(id="short", long=false, when = entry_short, comment="Enter Short Comment")
strategy.close(id="short", when=exit_short, comment = "Exit Short Comment")