ohenrik

Pivot + VMA + EMA - 1 Hour chart

بيع
BITFINEX:BTCUSD   بتكوين
Code:

//@version=2
strategy("Pivot EMA", overlay=true, initial_capital=10000, currency=currency.USD, commission_value=0.2)

//////////////////////////////////////////////////////////////////////
// Example usage:
// if testPeriod()
// strategy.entry("LE", strategy.long)

//////////////////////////////////////////////////////////////////////
// Simply copy the code below and paste it into your own strategy

//////////////////////////////////////////////////////////////////////
// Component Code Start
testStartYear = input(2018, "Backtest Start Year")
testStartMonth = input(3, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2018, "Backtest Stop Year")
testStopMonth = input(4, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false

leftBars = input(4)
rightBars = input(2)

emaValue = input(48, "ema")

emaStopLossLong = input(0.0, "EMA SL Long")
emaStopLossShort = input(150.0, "EMA SL Short")


src=close
l =input(6, title="VMA Length")
std=input(true, title="Show Trend Direction")
bc=input(false, title="Color bars based on Trend")
k = 1.0/l
pdm = max((src - src), 0)
mdm = max((src - src), 0)
pdmS = ((1 - k)*nz(pdmS) + k*pdm)
mdmS = ((1 - k)*nz(mdmS) + k*mdm)
s = pdmS + mdmS
pdi = pdmS/s
mdi = mdmS/s
pdiS = ((1 - k)*nz(pdiS) + k*pdi)
mdiS = ((1 - k)*nz(mdiS) + k*mdi)
d = abs(pdiS - mdiS)
s1 = pdiS + mdiS
iS = ((1 - k)*nz(iS) + k*d/s1)
hhv = highest(iS, l)
llv = lowest(iS, l)
d1 = hhv - llv
vI = (iS - llv)/d1
vma = (1 - k*vI)*nz(vma) + k*vI*src
vmaC=(vma > vma) ? green : (vma<vma) ? red : (vma==vma) ? blue : black
plot(vma, color=std?vmaC:black, linewidth=3, title="VMA")
barcolor(bc?vmaC:na)



emaLine = ema(close, emaValue)
plot(emaLine, linewidth=3)


tradeLong = input(true)
tradeShort = input(true)

swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)

swh_cond = not na(swh)
hprice = swh_cond ? swh : hprice
le = swh_cond ? true : (le and high > hprice ? false : le)

swl_cond = not na(swl)
lprice = swl_cond ? swl : lprice
se = swl_cond ? true : (se and low < lprice ? false : se)


if (tradeLong and swl_cond and (swl > emaLine) and testPeriod() and (vma > vma))
strategy.entry("Long", strategy.long, comment="Manual entry long")
// stopLoss = emaLine

if (tradeShort and swh_cond and (swh < emaLine) and testPeriod() and (vma < vma))
strategy.entry("Short", strategy.short, comment="PivRevSE") //, stop=lprice - syminfo.mintick - 100


// === STRATEGY RISK MANAGEMENT EXECUTION ===
// finally, make use of all the earlier values we got prepped
SLL = emaLine - emaStopLossLong
strategy.exit("Exit Long", from_entry = "Long", stop = max(SLL, SLL))

SLS = emaLine + emaStopLossShort
strategy.exit("Exit Short", from_entry = "Short", stop = min(SLS, SLS))

inLong = strategy.position_entry_name == "Long"
slLong = emaLine - emaStopLossLong //inLong ? emaLine - emaStopLossLong : na
plot(slLong, title="SL Long", color=(inLong ? color(red, 0) : color(gray, 100)))

inShort = strategy.position_entry_name == "Short"
slShort = emaLine + emaStopLossShort // inShort ? emaLine + emaStopLossShort : na
plot(slShort, title="SL short", color=(inShort ? color(red, 0) : color(gray, 100)))

// plot(hprice, color=green, linewidth=3)
// plot(lprice, color=red, linewidth=3)

// ph = pivothigh(leftBars, rightBars)
// plot(ph, style=cross, linewidth=3, color= green, offset=-

التحليلات ذات الصلة

إخلاء المسؤولية

لا يُقصد بالمعلومات والمنشورات أن تكون، أو تشكل، أي نصيحة مالية أو استثمارية أو تجارية أو أنواع أخرى من النصائح أو التوصيات المقدمة أو المعتمدة من TradingView. اقرأ المزيد في شروط الاستخدام.