Strategy · Pine Script v5 · On the chart

Binancash Futures Strategy 1M Candles

by dearvn· code credited to binancash

This strategy trades 1-minute futures contracts on Binance.

View on GitHub

Repaints

GitHub stars43on the repository
Pine versionv5runs as is
Lines of code350
Settings3inputs
LicenceNone statedfile: MPL-2.0
Last update2 years ago9 Jun 2024

Add It to Your TradingView Chart

  1. 1Copy the scriptPress Copy script above, or the copy button on the code below.
  2. 2Open the Pine EditorOpen a TradingView chart and choose Pine Editor at the bottom of the screen.
  3. 3Paste over the templateCreate a new strategy, select all of the template text and paste. Press Save and give it a name.
  4. 4Add it to the chartPress Add to chart. The trades and results appear in the Strategy Tester tab; adjust the settings with the gear icon.

Source Code

350 lines of Pine Script v5 from futures-strategy-1m-candles-best.txt, published under MPL-2.0 (file header). Keep the author's credit and licence lines when you reuse it.

futures-strategy-1m-candles-best.txt
// 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("Binancash - Futures Strategy Futures 1M Candles", overlay=true, default_qty_value=200, initial_capital=1)

//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)
    is_strong_buy := true
    is_strong_sell := false
if running_pl and ta.crossunder(close, running_ph)
    is_strong_buy := false
if running_pl and ta.crossunder(close, running_pl)
    is_strong_sell := true
    is_strong_buy := false
if running_pl and ta.crossover(close, running_pl)
    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)
    is_cross_up := true
    is_cross_down := false
if ta.crossunder(ema3, Cto)
    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) ? true : false
profit_long = close < close[1] and low < ema3 and close[1] > ema3[1] and close[2] > ema3[2]
//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) ? true : false
profit_short = close > close[1] and high > ema3 and close[1] < ema3[1] and close[2] < ema3[2]

// logic buy sell improvate end

rsi = ta.rsi(close, 3)
stopPer = input(0.8, title='Stop Loss %') / 100 
takePer = input(15, title='Take Profit %') / 100

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) 

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

up10m = false
if close10 > wma_10_11
    up10m := 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.sma(bull, 14)

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

// ma dif //
vf_dif = bullma-bearma
vf_absolute = vf_dif > 0 ? vf_dif : vf_dif * (-1)

// Volume Spikes //
var bool gsig = false
var bool rsig = false
if ta.crossover(bull, bullma*x)
    gsig := true
    rsig := false
if ta.crossover(bear, bearma*x)
    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

Factor=3
Pd=3
f_supertrend(Factor, Pd) =>

    Up=hl2-(Factor*ta.atr(Pd))
    Dn=hl2+(Factor*ta.atr(Pd))
    
    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(Factor, Pd)

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)
crossDownWMA11 = ta.crossunder(ema11, ema48)
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)
crossDownWMA13 = ta.crossunder(close, wma13)
crossUpWMA48 = ta.crossover(close, wma48)
crossDownWMA48 = ta.crossunder(close, wma48)
crossUpWMA200 = ta.crossover(close, wma200)
crossDownWMA200 = ta.crossunder(close, wma200)

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

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 

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 


longCondition = up10m and buy_trend and ( 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)

shortCondition = not up10m 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)

if (longCondition)
    strategy.entry("long", strategy.long) 

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

// exit long when has a short signal and otherwise
closelong = shortCondition or ((rsi > 70 ) and high[2] < high[1] and high[1] > high or not up10m and (trendDown > 1 or profit_long or sell_trend or bigdrop and not is_cross_up or is_out_up ))
closeshort = longCondition or up10m and (trendUp > 1 or profit_short or buy_trend or bottomsupport and not is_cross_down)

if(strategy.position_size > 0)
    strategy.close(id="long", when=closelong)
if(strategy.position_size < 0)
    strategy.close(id="short", when = closeshort)


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

Overview

Binancash Futures Strategy 1M Candles plots pivot high and low resistance and support levels on the price chart, along with an EMA and a custom Cto indicator. Long and short entries trigger on EMA and Cto crossovers combined with price action rules. Positions close at stop loss (0.8% by default) or take profit (15% by default) levels calculated from average entry price. Settings adjust stop loss percentage, take profit percentage and breakout candle factor. The strategy draws directly on the price chart with no separate pane.

Details

Published by

dearvn on GitHub

Code credit

binancash, as written in the script's header

Type

Strategy, Pine Script v5

Draws

On the price chart

Category

Trend, Moving averages, Oscillators & momentum, Support & resistance

Markets

Crypto

Timeframes

M15-H1

Risk Notes

  • Reads higher-timeframe data with lookahead on, so the history can show signals that were not there in real time

Topics

binancebinance-futuresbnbc98coinfutures

Settings

The inputs you can change from the gear icon on the chart. Defaults are the author's.

SettingTypeDefaultVariable
Stop Loss %float0.8stopPer
Take Profit %int15takePer
Factor For Breakout Candlefloat3.1x
Third-party code. ForexR did not write, test or endorse this script, and the summary above was generated automatically from its code and README. Indicators describe the past, and a strategy's backtest can look better than live trading, especially when a script repaints. Check it in the Strategy Tester and on a demo account before you rely on it.

Similar Pine Scripts

This strategy overlays the price chart and looks for VWAP pullbacks. It goes long when a short SMA crosses above VWAP after RSI has been oversold within ten bars, and short on the opposite cross after RSI has been overbought. Optional Minervini-style moving-av

Strategy v5 TrendOscillators & momentum
Updated 2 years ago · GPL-3.0 GitHub repository of Advanced VWAP-Momentum Pullback Trend Qualifier

This strategy combines MACD momentum signals with support and resistance levels from pivot points and an EMA100 trend filter for long positions. It plots the 100-period EMA on the price chart and signals when price breaks above the EMA or forms bullish pivot p

Strategy v4 TrendOscillators & momentum
Updated 3 years ago · Apache-2.0 GitHub repository of MACD + Support / Resistance Long Strategy
330 stars

2 EMA/SMA + RSI Strategy [Alorse] combines three configurable moving averages with a short-period Relative Strength Index filter. It plots fast, slow, and trend moving averages on the price chart. Long entries trigger when the fast moving average is above the

Strategy v4 TrendOscillators & momentum
Updated 2 months ago · None stated GitHub repository of 2 EMA/SMA + RSI Strategy [Alorse]

Acrypto - Weighted Strategy

by AlbertoCuadra
318 stars

This strategy plots on the price chart and opens long or short positions when a weighted score from MACD, Stochastic RSI, RSI, Supertrend and a moving-average crossover exceeds a user-set trigger. Each component has its own weight and candle delay. Entries can

Strategy v5 TrendOscillators & momentum
Updated 3 years ago · Custom licence GitHub repository of Acrypto - Weighted Strategy
257 stars

This strategy calculates dynamic support and resistance levels using pivot highs and lows alongside a custom smoothed trend filter and a 3-period EMA. It identifies entry opportunities when price breaks out relative to the trend filter and short-term EMA cross

Strategy v5 TrendSupport & resistance Repaints
Updated 6 weeks ago · None stated GitHub repository of 30s - ES 1m Strategy Candle Bar
218 stars

This strategy generates trading signals based on a selectable momentum engine, supporting MACD, RSI, Stochastic, or Rate of Change. Entries trigger on signal crosses, zero-line crosses, or threshold crosses, with an optional moving average trend filter. Risk m

Strategy v6 Oscillators & momentumTrend
Updated 3 months ago · None stated GitHub repository of Momentum Strategy Template

More strategys

Trade Your Charts With a Regulated Broker

Compare brokers that connect to TradingView, with spreads, minimum deposits and leverage side by side.

Compare brokers