This is a buy-only strategy based on price action and short-term trend. It uses multiple exponential moving averages (EMA) as technical indicators for entry and exit.
The strategy employs six EMAs - 5-day, 10-day, 20-day, 50-day, 100-day and 200-day EMA. The buy signal is triggered when:
When all six conditions are met, a long position is initiated.
The exit signal is when close price crosses below 200-day EMA.
The advantages of this strategy include:
There are also some risks:
Solutions:
Some ways to enhance the strategy:
In summary, this is a medium-short term trend following strategy based on price technical indicators. It identifies trends using multiple EMA filters and incorporates close price to avoid false breakouts. The logic is simple and easy to understand. The disadvantages are fewer opportunities and prone to being trapped. It is suggested to be used as a supplementary tool combined with manual oversight. Enhancements can be made in aspects like volume, parameter optimization and machine learning to make the strategy more robust.
/*backtest start: 2023-02-13 00:00:00 end: 2024-02-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Multiple EMA Buy Strategy with Price Condition", overlay=true) // Calculate EMAs ema5 = ta.ema(close, 5) ema10 = ta.ema(close, 10) ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema100 = ta.ema(close, 100) ema200 = ta.ema(close, 200) // Plot EMAs plot(ema5, color=color.blue, title="EMA 5") plot(ema10, color=color.green, title="EMA 10") plot(ema20, color=color.red, title="EMA 20") plot(ema50, color=color.purple, title="EMA 50") plot(ema100, color=color.orange, title="EMA 100") plot(ema200, color=color.yellow, title="EMA 200") // Entry conditions buy_condition = ema5 > ema10 and ema10 > ema20 and ema20 > ema50 and ema50 > ema100 and ema100 > ema200 and close > ema5 // Exit conditions exit_condition = close < ema200 // Strategy entry and exit conditions strategy.entry("Buy", strategy.long, when = buy_condition) strategy.close("Buy", when = exit_condition)