本策略名称为MACD趋势跟随策略,它是一个利用MACD指标判断价格趋势,并跟随趋势进行交易的量化策略。该策略旨在捕捉中长期趋势,在趋势发生转折时及时调整仓位。
该策略使用MACD指标判断价格趋势。MACD指标是一种突破指标,由快线EMA(12日)和慢线EMA(26日)组成,它们的差离值构成MACD柱状线,该柱状线的9日EMA构成MACD的信号线。当MACD线上穿信号线时为金叉,说明价格处于上涨趋势;当MACD线下穿信号线时为死叉,说明价格处于下跌趋势。
该策略先计算出MACD线和信号线,然后计算出MACD线与信号线的差值delta。当delta上穿0时产生买入信号,当delta下穿0时产生卖出信号,根据这两个信号调整仓位。为过滤噪音,策略还引入了一个EMA均线,只有当价格突破该均线时才会产生真正的交易信号。
具体来说,策略逻辑如下: 1. 计算MACD线、信号线和差值delta 2. 判断delta上穿或下穿0时,确认趋势转折 3. 计算EMA均线,作为过滤器 4. 当delta上穿0且价格高于EMA时,产生买入信号 5. 当delta下穿0且价格低于EMA时,产生卖出信号
通过这样的设计,该策略能够顺应中长线趋势进行交易,在趋势发生转变时及时调整仓位,避免被短期市场噪音误导。
该策略具有以下几点优势:
该策略也存在一些风险需要注意:
对策:
该策略还可以从以下几个方面进行优化:
通过指标组合、止损止盈、自适应参数等方法的优化,可以大幅提升该策略的效果。
总体来说,该MACD趋势跟随策略通过简单有效的MACD指标判断中长线趋势,设计了较为清晰的趋势跟随交易逻辑。它具有捕捉趋势的能力,以及一定的风险控制措施。通过进一步的优化和改进,该策略可以成为一个非常实用的量化交易系统。它适用于追求长线稳定收益而非短期盈利的投资者。
/*backtest
start: 2022-11-14 00:00:00
end: 2023-10-27 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy(title = "Noro's MACD Strategy v1.0", shorttitle = "MACD str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
usefil = input(false, defval = false, title = "Use EMA filter")
lenfil = input(5, defval = 5, minval = 1, maxval = 50, title = "EMA filter period")
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
//Signals
ema = ema(close, lenfil)
trend = crossover(delta, 0) == true ? 1 : crossunder(delta, 0) == true ? -1 : trend[1]
up = trend == 1 and (low < ema or usefil == false) ? 1 : 0
dn = trend == -1 and (high > ema or usefil == false) ? 1 : 0
plot(ema, color = black, transp = 0)
if (up == 1)
strategy.entry("Long", strategy.long, needlong == false ? 0 : na)
if (dn == 1)
strategy.entry("Short", strategy.short, needshort == false ? 0 : na)