Ana içeriğe geç
Scalping Bot

Ücretsiz TradingView bot stratejisi – Scalping Bot

Ozge avatar
Yazar: Ozge
Bir yıldan uzun süre önce güncellendi

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")

Bu cevap sorunuzu yanıtladı mı?