该策略基于20日指数移动平均线(EMA)构建通道,当价格突破通道上沿时做多,当价格跌破通道下沿时做空,属于趋势跟踪策略。
风险解决方法:
该策略整体简单实用,基于EMA通道构建,属于典型的趋势跟踪策略。有突破做信号的特点,但也存在一定的误报风险。可以通过优化参数、增加过滤器等方式提高策略效果,值得进一步测试与优化。
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("EMA Channel Strategy with Alerts", shorttitle="EMA Channel", overlay=true) // Define EMA length emaLength = 20 // Calculate EMA values emaHigh = ema(high, emaLength) emaLow = ema(low, emaLength) // Define the condition for a buy signal buyCondition = crossover(close, emaHigh) // Define the condition for a sell signal sellCondition = crossunder(close, emaLow) // Plot the EMA lines plot(emaHigh, color=color.green, title="EMA High") plot(emaLow, color=color.red, title="EMA Low") // Plot buy and sell signals plotshape(buyCondition, style=shape.triangleup, location=location.belowbar, color=color.green, title="Buy Signal") plotshape(sellCondition, style=shape.triangledown, location=location.abovebar, color=color.red, title="Sell Signal") // Strategy strategy.entry("Buy", strategy.long, when=buyCondition) strategy.close("Buy", when=sellCondition) // Define and trigger alerts alertcondition(buyCondition, title="Buy Alert", message="Buy signal - Price crossed above EMA High") alertcondition(sellCondition, title="Sell Alert", message="Sell signal - Price crossed below EMA Low")