dearvn / trading-futures-tradingview-script

I write pine script to trade futures ES1 NQ1 with signal IN (accurate 90%) and now I am trading on that
105 stars 44 forks source link

TradingView #2

Open GATITO378 opened 9 months ago

GATITO378 commented 9 months ago

When I put it on tradingview it doesnt execute any of the trades, why this happen?

GATITO378 commented 9 months ago

This code the es best strategy

`// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © binancash

//@version=5 strategy("Snag - ES 1m Strategy Candle Bar", overlay=true)

//minutes = input.int(45, title = "Max minutes to exit", minval = 0, maxval = 240)

stopPer = input(10, title='Stop Loss %') / 100 takePer = input(10, title='Take Profit %') / 100 sideway_pct = input.float(0.08, title = 'Sideway %') / 100

//vwap start point_lb = 5 point_rb = 5

//plot(close) point_ph = ta.pivothigh(point_lb, point_rb) point_pl = ta.pivotlow(point_lb, point_rb)

var float running_ph = na var float running_pl = na

running_ph := running_ph running_pl := running_pl

if point_ph running_ph := point_ph

if point_pl running_pl := point_pl

plot(running_ph, title = 'R', style = plot.style_circles, linewidth = 1,color=color.red, offset = -point_rb) plot(running_ph, title = 'R', style = plot.style_circles, linewidth = 1,color=color.red, offset = 0)

plot(running_pl, title = 'S', style = plot.style_circles, linewidth = 1,color=color.blue,offset = -point_rb) plot(running_pl, title = 'S', style = plot.style_circles, linewidth = 1,color=color.blue, offset = 0)

var bool is_strong_buy = false var bool is_strong_sell = false if running_ph and ta.crossover(close, running_ph) and barstate.isconfirmed is_strong_buy := true is_strong_sell := false if running_pl and ta.crossunder(close, running_ph) and barstate.isconfirmed is_strong_buy := false if running_pl and ta.crossunder(close, running_pl) and barstate.isconfirmed is_strong_sell := true is_strong_buy := false if running_pl and ta.crossover(close, running_pl) and barstate.isconfirmed is_strong_sell := false

//vwap end

// logic buy sell improve start src = close di = (6 - 1.0) / 2.0 + 1.0 c1 = 2 / (di + 1.0) c2 = 1 - c1 c3 = 3.0 (0.4 0.4 + 0.4 0.4 0.4) c4 = -3.0 (2.0 0.4 0.4 + 0.4 + 0.4 0.4 0.4) c5 = 3.0 0.4 + 1.0 + 0.4 0.4 0.4 + 3.0 0.4 0.4 var float i1 = na var float i2 = na var float i3 = na var float i4 = na var float i5 = na var float i6 = na i1 := c1 src + c2 nz(i1[1]) i2 := c1 i1 + c2 nz(i2[1]) i3 := c1 i2 + c2 nz(i3[1]) i4 := c1 i3 + c2 nz(i4[1]) i5 := c1 i4 + c2 nz(i5[1]) i6 := c1 i5 + c2 nz(i6[1])

Cto = -0.4 0.4 0.4 i6 + c3 i5 + c4 i4 + c5 i3 //bfrC = Cto > nz(Cto[1]) ? raise : Cto < nz(Cto[1]) ? fall : na //plot(Cto, title='Trend', linewidth=2, style=plot.style_line, color=color.new(color.red, 0), editable=false) ema3 = ta.ema(close, 3) //plot(ema3, title='EMA', linewidth=2, style=plot.style_line, color=color.new(color.white, 0))

var bool is_cross_up = false var bool is_cross_down = false

if ta.crossover(ema3, Cto) and barstate.isconfirmed is_cross_up := true is_cross_down := false if ta.crossunder(ema3, Cto) and barstate.isconfirmed is_cross_down := true is_cross_up := false

//condition Long & Short long = (close > Cto and close[1] < Cto[1] and close > close[1] or close[1] > Cto[1] and close > close[1] and close [1] < close[2] and close > ema3) and barstate.isconfirmed ? true : false profit_long = close < close[1] and low < ema3 and close[1] > ema3[1] and close[2] > ema3[2] and barstate.isconfirmed //var int trend = 0

short = (close < Cto and close[1] > Cto[1] and close < close[1] or close[1] < Cto[1] and close < close[1] and close [1] > close[2] and close < ema3) and barstate.isconfirmed ? true : false profit_short = close > close[1] and high > ema3 and close[1] < ema3[1] and close[2] < ema3[2] and barstate.isconfirmed

// logic buy sell improvate end

rsi = ta.rsi(close, 3)

longStop = strategy.position_avg_price (1 - stopPer) shortStop = strategy.position_avg_price (1 + stopPer) shortTake = strategy.position_avg_price (1 - takePer) longTake = strategy.position_avg_price (1 + takePer)

//plot(VWAP, color=color.yellow)

ema48 = ta.wma(close, 48) ema11 = ta.wma(close, 11) ema200 = ta.wma(close, 200)

close10 = request.security(symbol=syminfo.tickerid, timeframe="12", expression=close, lookahead=barmerge.lookahead_on)

wma10_11 = ta.wma(close, 4) wma_10_11 = request.security(symbol=syminfo.tickerid, timeframe="12", expression=wma10_11, lookahead=barmerge.lookahead_on) //plot(wma_10_11, 'ema10_11', color.blue)

wma10_48 = ta.wma(close, 9) wma_10_48 = request.security(symbol=syminfo.tickerid, timeframe="12", expression=wma10_48, lookahead=barmerge.lookahead_on) //plot(wma_10_48, 'ema10_48', color.yellow)

close8 = request.security(symbol=syminfo.tickerid, timeframe="11", expression=close, lookahead=barmerge.lookahead_on)

wma8_11 = ta.wma(close, 3) wma_8_11 = request.security(symbol=syminfo.tickerid, timeframe="11", expression=wma8_11, lookahead=barmerge.lookahead_on) //plot(wma_10_11, 'ema10_11', color.blue)

wma8_48 = ta.wma(close, 8) wma_8_48 = request.security(symbol=syminfo.tickerid, timeframe="11", expression=wma8_48, lookahead=barmerge.lookahead_on)

///////////// var bool cross_up_wma_10 = false var bool cross_down_wma_10 = false if ta.crossover(wma_10_11, wma_10_48) and barstate.isconfirmed cross_up_wma_10 := true cross_down_wma_10 := false if ta.crossunder(wma_10_11, wma_10_48) and barstate.isconfirmed cross_up_wma_10 := false cross_down_wma_10 := true

up10m = false

if close10 > wma_10_11 up10m := true

down8m = false if close8 < wma_8_11 down8m := true

////logic volume start x = input.float(3.1, title="Factor For Breakout Candle") red = #ff848a //#ff848a // #FA8072 // #323433 // #ff848a green = #8cffe5 // #8cffe5 // #6DC066 // #80aebd // #8cffe5

// Basic Volume Calcs // bull = close>open?volume:0 bear = open>close?volume:0

// BEAR Moving Average Calculation bullma = ta.wma(bull, 14)

// BEAR Moving Average Calculation // bearma = ta.wma(bear, 14)

// ma dif // vf_dif = bullma-bearma

// example

vf_absolute = vf_dif > 0 ? vf_dif : vf_dif * (-1)

// Volume Spikes // var bool gsig = false var bool rsig = false if ta.crossover(bull, bullmax) and barstate.isconfirmed gsig := true rsig := false if ta.crossover(bear, bearmax) and barstate.isconfirmed rsig := true gsig := false

// Color Calcs // vdClr = vf_dif > 0 ? true : false vClr = close>open ? true:false

////logic volume end

// super trend start cci_period = 28 cci = ta.cci(close, cci_period) ML = 0

f_supertrend() =>

Up=hl2 - 3.0 * ta.atr(3)
Dn=hl2 + 3.0 * ta.atr(3)

TrendUp = 0.0
TrendUp := cci[1] > ML ? math.max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown := cci[1]< ML ? math.min(Dn,TrendDown[1]) : Dn
Trend = 0.0
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

Tsl

st_tsl = f_supertrend()

buy= close >= st_tsl sell= close < st_tsl buy1= ta.barssince(buy) sell1 = ta.barssince(sell)

buy_trend = buy1[1] > sell1[1] ? true : false

buy2= ta.barssince(sell) sell2 = ta.barssince(buy) sell_trend = buy2[1] > sell2[1] ? true : false var bool is_buy = false var bool is_sell = false if sell_trend is_sell := true is_buy := false if buy_trend is_sell := false is_buy := true // super trend end

// ema cross start

oc = math.abs(open[1]-close[1]) hl = math.abs(high[1]-low[1]) ochl = (oc-hl)/hl ll = (low[1]-low[2])/low[2] crossUpWMA11 = ta.crossover(ema11, ema48) and barstate.isconfirmed crossDownWMA11 = ta.crossunder(ema11, ema48) and barstate.isconfirmed var bool crossup11_48 = false var bool crossdown11_48 = false var int cnt_out_up = 0 if crossUpWMA11 crossup11_48 := true crossdown11_48 := false cnt_out_up := 0 if crossDownWMA11 crossup11_48 := false crossdown11_48 := true cnt_out_up := 0 is_br = open[2] < close[2] and open[1] < close[1] and close < open and close[2] < close[1] and close[1] > close and ochl < 0.3 and (low[3] < low[2] and low[2] < low[1]) if is_br cnt_out_up := cnt_out_up + 1

is_out_up = false if cnt_out_up>2 is_out_up := true cnt_out_up := 0

// ema cross end

// trend strong start wma13 = ta.wma(close, 13) plot(wma13, title="WMA13", color=color.blue)

wma48 = ta.wma(close, 48) plot(wma48, title="WMA48", color=color.yellow)

wma200 = ta.wma(close, 200) plot(wma200, title="WMA200", color=color.white)

crossUpWMA13 = ta.crossover(close, wma13) and barstate.isconfirmed crossDownWMA13 = ta.crossunder(close, wma13) and barstate.isconfirmed crossUpWMA48 = ta.crossover(close, wma48) and barstate.isconfirmed crossDownWMA48 = ta.crossunder(close, wma48) and barstate.isconfirmed crossUpWMA200 = ta.crossover(close, wma200) and barstate.isconfirmed crossDownWMA200 = ta.crossunder(close, wma200) and barstate.isconfirmed

crossUpWMA13_48 = ta.crossover(wma13, wma48) and barstate.isconfirmed crossDownWMA13_48 = ta.crossunder(wma13, wma48) and barstate.isconfirmed crossUpWMA48_200 = ta.crossover(wma48, wma200) and barstate.isconfirmed crossDownWMA48_200 = ta.crossunder(wma48, wma200) and barstate.isconfirmed

var price_wmacrossup_arr = array.new_float() var price_wmacrossdown_arr = array.new_float()

if crossUpWMA48_200 price_wmacrossdown_arr := array.new_float() array.push(price_wmacrossup_arr, close) else if crossDownWMA48_200 price_wmacrossup_arr := array.new_float() array.push(price_wmacrossdown_arr, close)

var bool isUpTrend = false var bool isDownTrend = false

if crossUpWMA13 and isUpTrend == false isUpTrend := true isDownTrend := false else if crossUpWMA48 and isUpTrend == false isUpTrend := true isDownTrend := false else if crossUpWMA200 and isUpTrend == false isUpTrend := true isDownTrend := false

if crossDownWMA13 and isDownTrend == false isUpTrend := false isDownTrend := true else if crossDownWMA48 and isDownTrend == false isUpTrend := false isDownTrend := true else if crossDownWMA200 and isDownTrend == false isUpTrend := false isDownTrend := true

var int trendUp = 0 var int trendDown = 0

if isUpTrend if crossUpWMA13_48 trendUp := 1 trendDown := 0 if crossUpWMA48_200 trendUp := 2 trendDown := 0

if isDownTrend if crossDownWMA13_48 trendUp := 0 trendDown := 1 if crossDownWMA48_200 trendUp := 0 trendDown := 2 // trend strong end

// clone start periodMa = input.int(title='Delta Length', minval=1, defval=2) iff_1 = close[1] < open ? math.max(high - close[1], close - low) : math.max(high - open, close - low) iff_2 = close[1] > open ? high - low : math.max(open - close[1], high - low) iff_3 = close[1] < open ? math.max(high - close[1], close - low) : high - open iff_4 = close[1] > open ? high - low : math.max(open - close[1], high - low) iff_5 = close[1] < open ? math.max(open - close[1], high - low) : high - low iff_6 = close[1] > open ? math.max(high - open, close - low) : iff_5 iff_7 = high - close < close - low ? iff_4 : iff_6 iff_8 = high - close > close - low ? iff_3 : iff_7 iff_9 = close > open ? iff_2 : iff_8 bullPower = close < open ? iff_1 : iff_9 iff_10 = close[1] > open ? math.max(close[1] - open, high - low) : high - low iff_11 = close[1] > open ? math.max(close[1] - low, high - close) : math.max(open - low, high - close) iff_12 = close[1] > open ? math.max(close[1] - open, high - low) : high - low iff_13 = close[1] > open ? math.max(close[1] - low, high - close) : open - low iff_14 = close[1] < open ? math.max(open - low, high - close) : high - low iff_15 = close[1] > open ? math.max(close[1] - open, high - low) : iff_14 iff_16 = high - close < close - low ? iff_13 : iff_15 iff_17 = high - close > close - low ? iff_12 : iff_16 iff_18 = close > open ? iff_11 : iff_17 bearPower = close < open ? iff_10 : iff_18

bullVolume = bullPower / (bullPower + bearPower) volume bearVolume = bearPower / (bullPower + bearPower) volume

delta = bullVolume - bearVolume cvd = ta.cum(delta) cvdMa = ta.ema(cvd, periodMa)

deltagood = cvd > cvdMa deltabad = cvd < cvdMa

// clone end

// sideway start

low1d = request.security(symbol=syminfo.tickerid, timeframe="60", expression=low, lookahead=barmerge.lookahead_on)

avg = (close[10] + close[9] + close[8] + close[7] + close[6] +close[5] + close[4] + close[3] + close[2] + close[1])/10 keep_short = wma13 < wma48 and wma13 < avg and avg < wma48

start_long = wma13 > wma48 and wma13 > avg and avg > wma48 and (ta.crossover(wma13, wma48) and close > wma13 and close > wma48 or close > wma13 and ta.crossover(close, wma48) or close > wma48 and ta.crossover(close, wma13) or close[1] > wma13 and ta.crossover(wma13[1], wma200[1])) keep_long = wma13 > wma48 and wma13 > avg and avg > wma48 sideway = math.abs(close[1]-avg)/avg < sideway_pct

// sideway end

bottomsupport = running_pl and close > running_pl and close > close[1] and rsi > rsi[1] + 8

bigdrop = rsi + 8 < rsi[1] and close > ema48 and running_ph and close < running_ph

is_cross_res = ta.crossover(close, running_ph) and close > wma13 and wma13 > wma48

var bool is_long = false var bool is_short = false

longCondition = (buy_trend and up10m and is_cross_res or up10m and buy_trend and (start_long or close*1.05 > wma13 and rsi > rsi[1] + 6 or rsi > rsi[1] + 8 and long or is_cross_up and bottomsupport and is_strong_buy or bottomsupport)) and barstate.isconfirmed

not_close_long = up10m and not down8m is_lost = wma13[3] > wma13[2] and wma13[2] > wma13[1] if is_lost longCondition := false

var int cnt_time_long = 0

if longCondition is_long := true

if is_long cnt_time_long := cnt_time_long + 1

shortCondition = down8m and (close*0.94 < wma13 and rsi + 8 < rsi[1] or rsi + 8 < rsi[1] and short or is_br or bigdrop and is_strong_sell) and barstate.isconfirmed

var int cnt_time_short = 0

if shortCondition is_short := true

if is_short cnt_time_short := cnt_time_short + 1

//label.new(bar_index, low, text="*"+str.format("{0}", cnt_time_short), textcolor=color.yellow, style=label.style_triangleup, size=size.tiny)
//shortCondition := false

////////////

var bool wma13_wma48_up = false var bool wma13_wma48_down = false

if crossUpWMA13_48 wma13_wma48_down := false wma13_wma48_up := true

if crossDownWMA13_48 wma13_wma48_down := true wma13_wma48_up := false

if is_short and wma13_wma48_down or wma13 < wma48 and math.abs(wma13-wma48) < 0.008 or down8m longCondition := false

if is_long and wma13_wma48_up or wma13 > wma48 and math.abs(wma13-wma48) < 0.005 or wma13 < wma48 and wma13 < wma13[1] shortCondition := false

sideway_call = wma13 < wma48 and math.abs(wma13-wma48) < 0.005 sideway_put = wma13 > wma48 and math.abs(wma13-wma48) < 0.008

if up10m and down8m or sideway_call or sideway_put longCondition := false shortCondition := false

///////////

// close by macd start fast_length = 7 slow_length = 20 signal_length = 7 // Calculating fast_ma = ta.wma(src, fast_length) slow_ma = ta.wma(src, slow_length) macd = fast_ma - slow_ma signal = ta.wma(macd, signal_length) hist = macd - signal is_cross_macd_short = ta.crossover(macd, signal) and macd < 0 and signal < 0

plotshape(is_cross_macd_short ? low : na, title="Less", style=shape.diamond, location=location.absolute, color=color.yellow, size=size.tiny)

//label.new(bar_index, low1d0.999, text=""+str.format("{0}", math.abs(wma13-wma48)), textcolor=color.yellow, style=label.style_triangleup, size=size.tiny) plotshape(sideway_call ? low1d: na, title="No Long", style=shape.xcross, location=location.absolute, color=color.gray, size=size.tiny) plotshape(sideway_put ? low1d: na, title="No Short", style=shape.xcross, location=location.absolute, color=color.white, size=size.tiny)

plotshape(down8m ? low1d0.998: na, title="No Short", style=shape.xcross, location=location.absolute, color=color.yellow, size=size.tiny) plotshape(up10m ? low1d0.995: na, title="No Short", style=shape.xcross, location=location.absolute, color=color.blue, size=size.tiny)

plotshape(up10m and is_cross_res? low: na, title="Go Strong", style=shape.xcross, location=location.absolute, color=color.orange, size=size.tiny)

// close by macd end

// exit long when has a short signal and otherwise closelong = ((rsi > 70 ) and high[2] < high[1] and high[1] > high or down8m and (trendDown > 1 or profit_long or bigdrop and not is_cross_up or is_out_up ) or up10m[1] and not up10m) and barstate.isconfirmed

if not keep_long and is_long and high[2]*1.001 >= running_ph and (high[1] < running_ph and close[1] < running_ph or high[2] > high[1] and high[1] > high) closelong := true

next_short = false if is_long and shortCondition closelong := true shortCondition := false next_short := true

if next_short[1] shortCondition := true

//if minutes > 0 and cnt_time_long > minutes and ta.crossunder(close, wma13) and barstate.isconfirmed // closelong := true

if closelong is_long := false cnt_time_long := 0

closeshort = (down8m and up10m and wma13 < wma48 and math.abs(wma13-wma48) > 0.01 or not down8m and (hist < 0 and hist > hist[1] or trendUp > 1 or profit_short or bottomsupport and not is_cross_down) or down8m[1] and not down8m) and barstate.isconfirmed

next_long = false if is_short and longCondition closeshort := true next_long := true longCondition := false

if next_long[1] longCondition := true

//if is_short and low[2]*0.9999 <= running_pl and low[1] > running_pl and close[1] > running_pl and low[3] > low[2] and low[2] < low[1] // closeshort := true //if closeshort[1] and not longCondition and close > wma13 and close > wma48 // longCondition := true

h = hour(time_close, 'UTC-8') m = minute(time_close, 'UTC-8')

hold_trade = h >= 0 and h < 6 or h == 6 and m <= 30

if longCondition //and not hold_trade strategy.entry("call", strategy.long)

// change param rsi + 4 if shortCondition //and not hold_trade strategy.entry("put", strategy.short)

//if minutes > 0 and cnt_time_short > minutes and ta.crossover(close, wma13) and barstate.isconfirmed // closeshort := true

if closeshort is_short := false cnt_time_short := 0

if(strategy.position_size > 0) strategy.close(id="call", when=closelong and not not_close_long) if(strategy.position_size < 0) strategy.close(id="put", when = closeshort)

if(strategy.position_size > 0) strategy.exit(id='call', limit=longTake,stop = longStop) if(strategy.position_size < 0) strategy.exit(id='put', limit=shortTake,stop = shortStop)`

hemal9022 commented 9 months ago

download all types of premium tradingview indicators codes available on telegram - https://t.me/tradingview_premium_indicator