Strategy · Pine Script v4 · On the chart

4 SMA + 4 EMA + Buy&Sell Cross (EMA or SMA) Strategy [d3nv3r]

by d3nv3r0ne

This strategy calculates and plots up to four Simple Moving Averages (SMAs) and four Exponential Moving Averages (EMAs) directly on the price chart.

View on GitHub

GitHub stars5on the repository
Pine versionv4older, still runs
Lines of code133
Settings22inputs
LicenceLGPL-3.0
Last update6 years ago11 Feb 2020

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

133 lines of Pine Script v4 from 4 SMA + 4 EMA + Buy&Sell Cross (EMA or SMA) Strategy [d3nv3r].txt, published under LGPL-3.0. Keep the author's credit and licence lines when you reuse it.

4 SMA + 4 EMA + Buy&Sell Cross (EMA or SMA) Strategy [d3nv3r].txt
//
// @author d3nv3r
// @inspiration [LazyBear]
// List of all my indicators: https://github.com/d3nv3r0ne/tradingview
//
// How to use it :
//  any chart but be careful with dates
//  it's a way to have every EMA/SMA and a Buy and Sell strategy on the same chart
//
//  with the configuration panel :
//      you can use the strategy or not
//      you can chose to use an EMA strategy instead of a SMA strategy
//      you can select lenght of the E/SMA Cross strategy
//      you can select lenght of every 4 SMA + 4 EMA
//      you can chose to show or not any MA
//
//@version=4
strategy(shorttitle = "B/S X + 4 SMA + 4 EMA", title="4 SMA + 4 EMA + Buy&Sell Cross (EMA or SMA) Strategy [d3nv3r]", overlay=true)

//
// Variables inputs
//
useStrategy = input(true, title="Show Buy and Sell Cross strategy")
useEMA = input(false, title="Use EMA Cross strategy")

lengthBS = input(title="Length MA Cross", type=input.integer, defval=140, minval=1)

lengthSMA1 = input(title="Length MA 1", type=input.integer, defval=20, minval=3)
lengthSMA2 = input(title="Length MA 2", type=input.integer, defval=50, minval=5)
lengthSMA3 = input(title="Length MA 3", type=input.integer, defval=100, minval=7)
lengthSMA4 = input(title="Length MA 4", type=input.integer, defval=200, minval=13)

lengthEMA1 = input(title="Length EMA 1", type=input.integer, defval=20, minval=3)
lengthEMA2 = input(title="Length EMA 2", type=input.integer, defval=50, minval=5)
lengthEMA3 = input(title="Length EMA 3", type=input.integer, defval=100, minval=7)
lengthEMA4 = input(title="Length EMA 4", type=input.integer, defval=200, minval=13)

showMA1 = input(true, title="Show MA 1")
showMA2 = input(true, title="Show MA 2")
showMA3 = input(true, title="Show MA 3")
showMA4 = input(true, title="Show MA 4")

showEMA1 = input(true, title="Show EMA 1")
showEMA2 = input(true, title="Show EMA 2")
showEMA3 = input(true, title="Show EMA 3")
showEMA4 = input(true, title="Show EMA 4")

startYear = input(title="start year", type=input.integer, defval=2011, minval=2011)
startMonth = input(title="start month", type=input.integer, defval=01, minval=01, maxval=12)

src = input(close, title="Source")

//
// Variables
// EMA + SMA for B/S strat + 4 SMA + 4 EMA
//
maBS = sma(src, lengthBS)
emaBS = ema(src, lengthBS)

ma1 = sma(src, lengthSMA1)
ma2 = sma(src, lengthSMA2)
ma3 = sma(src, lengthSMA3)
ma4 = sma(src, lengthSMA4)

ema1 = ema(src, lengthEMA1)
ema2 = ema(src, lengthEMA2)
ema3 = ema(src, lengthEMA3)
ema4 = ema(src, lengthEMA4)

//
// Logic Buy/Sell
//
longConditionSMA = crossover(src,maBS)
shortConditionSMA = crossunder(src,maBS)
longConditionEMA = crossover(src,emaBS)
shortConditionEMA = crossunder(src,emaBS)

//  if we use the strategy - default : true
//      if date above startYear - default : 2011
//                    startMonth - default : january
//          if useEMA - default : false
//              do EMA crossunder/crossover strategy
//          else
//              do SMA crossunder/crossover strategy
//      else
//          do nothing
//  else
//      do nothing
if (useStrategy)
    if year > startYear
        if useEMA
            if (longConditionEMA)
                strategy.entry("Long", strategy.long)
            if (shortConditionEMA)
                strategy.entry("short", strategy.short)
        else
            if (longConditionSMA)
                strategy.entry("Long", strategy.long)
            if (shortConditionSMA)
                strategy.entry("short", strategy.short)
    else
        if year == startYear
            if month >= startMonth
                if useEMA
                    if (longConditionEMA)
                        strategy.entry("Long", strategy.long)
                    if (shortConditionEMA)
                        strategy.entry("short", strategy.short)
                else
                    if (longConditionSMA)
                        strategy.entry("Long", strategy.long)
                    if (shortConditionSMA)
                        strategy.entry("short", strategy.short)

//
// Plot X B/S Strategy + 4 SMA + 4 EMA
//

// use of double ternary operator, take your time ;) i didn't find any otherway to do it, it also change the line style na would use default
plot(useStrategy ? useEMA ? emaBS : maBS : na, color=color.blue, linewidth=3, style=useEMA ? plot.style_stepline : na)

plot(showMA1 and ma1 ? ma1 : na, color=color.purple, linewidth=2)
plot(showMA2 and ma2 ? ma2 : na, color=color.green, linewidth=2)
plot(showMA3 and ma3 ? ma3 : na, color=color.orange, linewidth=2)
plot(showMA4 and ma4 ? ma4 : na, color=color.red, linewidth=2)

plot(showEMA1 and ema1 ? ema1 : na, color=color.purple, style=plot.style_stepline, linewidth=2)
plot(showEMA2 and ema2 ? ema2 : na, color=color.green, style=plot.style_stepline, linewidth=2)
plot(showEMA3 and ema3 ? ema3 : na, color=color.orange, style=plot.style_stepline, linewidth=2)
plot(showEMA4 and ema4 ? ema4 : na, color=color.red, style=plot.style_stepline, linewidth=2)

// List of all my indicators: https://github.com/d3nv3r0ne/tradingview
// PEACE !

Overview

4 SMA + 4 EMA + Buy&Sell Cross (EMA or SMA) Strategy [d3nv3r] generates trading signals based on price crossing over or under a selected baseline moving average, which can be configured as either an SMA or an EMA. Users can toggle the visibility and adjust the periods for all eight moving averages, as well as set a custom start date for strategy backtesting. The strategy operates without explicit stop loss or take profit rules, relying entirely on signal reversals for trade exits.

Details

Published by

d3nv3r0ne on GitHub

Type

Strategy, Pine Script v4

Draws

On the price chart

Category

Trend, Moving averages

Markets

Crypto

Timeframes

Any timeframe

Risk Notes

  • The strategy enters trades without a stop loss

Settings

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

SettingTypeDefaultVariable
Show Buy and Sell Cross strategybooltrueuseStrategy
Use EMA Cross strategyboolfalseuseEMA
Length MA Crossint140lengthBS
Length MA 1int20lengthSMA1
Length MA 2int50lengthSMA2
Length MA 3int100lengthSMA3
Length MA 4int200lengthSMA4
Length EMA 1int20lengthEMA1
Length EMA 2int50lengthEMA2
Length EMA 3int100lengthEMA3
Length EMA 4int200lengthEMA4
Show MA 1booltrueshowMA1
Show all 22 settings
SettingTypeDefaultVariable
Show MA 2booltrueshowMA2
Show MA 3booltrueshowMA3
Show MA 4booltrueshowMA4
Show EMA 1booltrueshowEMA1
Show EMA 2booltrueshowEMA2
Show EMA 3booltrueshowEMA3
Show EMA 4booltrueshowEMA4
start yearint2011startYear
start monthint01startMonth
Sourcesourceclosesrc
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

Doge SMA

by hackingthemarkets
474 stars

Doge SMA is a long-only moving-average crossover strategy drawn on the price chart. It calculates a fast and a slow simple moving average of close and enters a long position when the fast average crosses above the slow average, but only inside a user-defined s

Strategy v4 TrendMoving averages
Updated 4 years ago · None stated GitHub repository of Doge SMA

This strategy calculates and plots a fast Exponential Moving Average (EMA) and a slow EMA directly on the main price chart. It enters long trades when the fast EMA crosses above the slow EMA and exits when the fast EMA crosses below the slow EMA. Inputs allow

Strategy v6 TrendMoving averages
Updated today · AGPL-3.0 GitHub repository of Forven S01508 — Simple EMA20/50 Cross
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

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