Skip to content

Instantly share code, notes, and snippets.

@sophie-eihpos
Last active September 19, 2018 02:52
Show Gist options
  • Save sophie-eihpos/aa6050d331288649504e1c14ecd9c552 to your computer and use it in GitHub Desktop.
Save sophie-eihpos/aa6050d331288649504e1c14ecd9c552 to your computer and use it in GitHub Desktop.
15MinSetups
//@version=2
strategy(title='Beat the Odds 15 min setups', shorttitle='15 min setups', overlay=true, pyramiding=0, initial_capital=1000, currency=currency.USD)
// 15 min chart with 15 min setups with input of 105 or 135 will yeild best result
//----------------- EMA 1 ---------------------------------------------------------------------------//
src0 = close, len0 = input(10, minval=1, title="Fast EMA Cross")
emaFast = ema(src0, len0)
direction = rising(emaFast, 2) ? +1 : falling(emaFast, 2) ? -1 : 0
plot_color = direction > 0 ? lime: direction < 0 ? red : na
plot(emaFast, title="EMA", style=line, linewidth=1, color = plot_color)
//----------------- EMA 2 --------------------------------------------------------------------------//
src02 = close, len02 = input(20, minval=1, title="Slow EMA Cross")
emaSlow = ema(src02, len02)
direction2 = rising(emaSlow, 2) ? +1 : falling(emaSlow, 2) ? -1 : 0
plot_color2 = direction2 > 0 ? lime: direction2 < 0 ? red : na
plot(emaSlow, title="EMA Signal 2", style=line, linewidth=1, color = plot_color2)
//---------------- EMA Cross ----------------------------------------------------------------------//
plot(cross(emaFast, emaSlow) ? emaFast: na, style = cross, color = yellow, linewidth = 4)
//-------------------- sling shot with EMA --------------------------------------------------------//
//sae = input(true, title="Show Aggressive Entry?, Or Use as Alert To Potential Conservative Entry?")
sce = input(true, title="Show Conservative Entry?")
st = input(true, title="Show Trend Arrows at Top and Bottom of Screen?")
//def = input(false, title="Only Choose 1 - Either Conservative Entry Arrows or 'B'-'S' Letters")
pa = input(true, title="Show Conservative Entry Arrows?")
sl = input(false, title="Show 'B'-'S' Letters?")
//Conservative Entry True/False Condition
entryUpTrend = emaFast > emaSlow and close[1] < emaFast and close > emaFast ? 1 : 0
entryDnTrend = emaFast < emaSlow and close[1] > emaFast and close < emaFast ? 1 : 0
//Define Up and Down Trend for Trend Arrows at Top and Bottom of Screen
upTrend = emaFast >= emaSlow
downTrend = emaFast < emaSlow
//Definition for Conseervative Entry Up and Down PlotArrows
codiff = entryUpTrend == 1 ? entryUpTrend : 0
codiff2 = entryDnTrend == 1 ? entryDnTrend : 0
//Trend Triangles at Top and Bottom of Screen
plotshape(st and upTrend ? upTrend : na, title="Conservative Buy Entry Triangle",style=shape.triangleup, location=location.bottom, color=lime, transp=0, offset=0)
plotshape(st and downTrend ? downTrend : na, title="Conservative Short Entry Triangle",style=shape.triangledown, location=location.top, color=red, transp=0, offset=0)
//Plot Arrows OR Letters B and S for Buy Sell Signals
plotarrow(pa and codiff ? codiff : na, title="Up Entry Arrow", colorup=lime, maxheight=10, minheight=10, transp=0)
plotarrow(pa and codiff2*-1 ? codiff2*-1 : na, title="Down Entry Arrow", colordown=fuchsia, maxheight=10, minheight=10, transp=0)
plotchar(sl and codiff ? low - tr : na, title="Buy Entry", offset=0, char='B', location=location.absolute, color=lime, transp=0)
plotchar(sl and codiff2 ? high + tr : na, title="Short Entry", offset=0, char='S', location=location.absolute, color=fuchsia, transp=0)
//---------------- TD Sequencial -----------------------------------------------------------------//
SR=input(true)
Barcolor=input(true)
//------------//
// Sell Setup //
//------------//
priceflip = barssince(close<close[4])
sellsetup = close>close[4] and priceflip
sell = sellsetup and barssince(priceflip!=9)
sellovershoot = sellsetup and barssince(priceflip!=13)
sellovershoot1 = sellsetup and barssince(priceflip!=14)
sellovershoot2 = sellsetup and barssince(priceflip!=15)
sellovershoot3 = sellsetup and barssince(priceflip!=16)
//----------//
// Buy setup//
//----------//
priceflip1 = barssince(close>close[4])
buysetup = close<close[4] and priceflip1
buy = buysetup and barssince(priceflip1!=9)
buyovershoot = barssince(priceflip1!=13) and buysetup
buyovershoot1 = barssince(priceflip1!=14) and buysetup
buyovershoot2 = barssince(priceflip1!=15) and buysetup
buyovershoot3 = barssince(priceflip1!=16) and buysetup
//----------//
// TD lines //
//----------//
TDbuyh = valuewhen(buy,high,0)
TDbuyl = valuewhen(buy,low,0)
TDsellh = valuewhen(sell,high,0)
TDselll = valuewhen(sell,low,0)
//----------//
// Plots //
//----------//
plot(SR?(TDbuyh ? TDbuyl: na) : na, style=circles, linewidth=1, color=red)
plot(SR?(TDselll ? TDsellh : na) : na, style=circles, linewidth=1, color=lime)
barcolor(Barcolor?(sell? #FF0000 : buy? #00FF00 : sellovershoot? #FF66A3 : sellovershoot1? #FF3385 : sellovershoot2? #FF0066 : sellovershoot3? #CC0052 : buyovershoot? #D6FF5C : buyovershoot1? #D1FF47 : buyovershoot2? #B8E62E : buyovershoot3? #8FB224 : na):na)
//----------------- Plot RSI and MACD histogram Buy and Sell Signals with X ------------------------------------------//
// RSI
rsiPeriod=input(14)
rsival=rsi(close, rsiPeriod)
overBought=input(60, "RSI overbought")
pullup=rsival>overBought
overSold=input(40, "RSI oversold")
pulldown=rsival<overSold
//MACD
slow = input(12, "MACD Short period")
fast = input(26, "MACD Long period")
signal = input(9, "Smoothing period")
maFast = ema( volume * close, fast ) / ema( volume, fast )
maSlow = ema( volume * close, slow ) / ema( volume, slow )
d = maSlow - maFast
maSignal = ema( d, signal )
dm=d-maSignal
crossdown() => crossunder(rsival,overBought) and dm<dm[1] and dm[1]<dm[2]
plotshape(crossdown(),style=shape.xcross,location=location.abovebar,size=size.tiny,color=fuchsia, transp=0)
crossup() => crossover(rsival,overSold) and dm>dm[1] and dm[1]>dm[2]
plotshape(crossup(),style=shape.xcross,location=location.belowbar,size=size.tiny,color=lime, transp=0)
//============ signal Generator ========================================================================================//
duration=input('135')
ch1 = security(tickerid, duration, open)
ch2 = security(tickerid, duration, close)
longCondition = crossover(ch2, ch1)
if (longCondition)
strategy.entry("L", strategy.long)
shortCondition = crossunder(ch2, ch1)
if (shortCondition)
strategy.entry("S", strategy.short)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment