This strategy generates trading signals based on the Moving Average Displaced Envelope indicator. The envelope bands are calculated by percentage factors of the moving average. If the previous high breaks above the upper band, a sell signal is generated. If the previous low breaks below the lower band, a buy signal is generated.
This strategy uses the displaced exponential moving average (EMA) as the core indicator, and forms the upper and lower bands after a certain period by percentage factors. This constructs the complete moving average displaced envelope system. Specifically, the envelope system consists of:
Here Percent above and Percent below control the percentage range of the bands relative to the core moving average line. The Displacement parameter controls the period displacement between the bands and the core moving average line.
In this way, we can form appropriate trading ranges by adjusting the above parameters. Trading signals are generated when prices break through the bands. Specifically:
Note that this strategy also provides a reverse parameter. If set to true, the signal direction is opposite to the above.
The main advantages of this strategy are:
There are also some risks with this strategy:
To prevent these risks, some optimizations can be made:
There is still large room for optimizing this strategy:
With these optimizations, the stability, adaptability and performance of the strategy can be further improved.
The moving average displaced envelope strategy utilizes simple exponential moving average systems and parameterized bands to form clear trading rules that are easy to interpret and implement. It is a typical trend following system. Through parameter tuning and optimizations, good results can be achieved. But the impacts of market environments should also be fully considered and potential risks should be prevented. This strategy serves as a basic template and has much room for expansions and optimizations.
/*backtest start: 2024-01-25 00:00:00 end: 2024-02-01 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 14/08/2020 // Moving Average Displaced Envelope. These envelopes are calculated // by multiplying percentage factors with their displaced expotential // moving average (EMA) core. // How To Trade Using: // Adjust the envelopes percentage factors to control the quantity and // quality of the signals. If a previous high goes above the envelope // a sell signal is generated. Conversely, if the previous low goes below // the envelope a buy signal is given. // // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Moving Average Displaced Envelope Backtest", shorttitle="MA DE", overlay = true) Price = input(title="Source", type=input.source, defval=close) Period =input(defval=9, minval=1) perAb = input(title = "Percent above", defval=.5, minval=0.01, step = 0.1) perBl = input(title = "Percent below", defval=.5, minval=0.01, step = 0.1) disp = input(title = "Displacement", defval=13, minval=1) reverse = input(false, title="Trade reverse") pos = 0 sEMA = ema(Price, Period) top = sEMA[disp] * ((100 + perAb)/100) bott = sEMA[disp]* ((100 - perBl)/100) pos := iff(close < bott , 1, iff(close > top, -1, pos[1])) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1 , 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) if (possig == 0) strategy.close_all() barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )