“短中长期三重移动平均线趋势跟踪策略”是一种利用不同周期移动平均线组合来捕捉市场趋势并进行交易的量化投资策略。该策略以3日最低价短期移动平均线、3日最高价短期移动平均线和30日收盘价中期移动平均线为基础,通过比较收盘价与这三条均线的相对位置来判断趋势方向并发出交易信号。当收盘价跌破3日最低价均线且高于30日收盘价均线时做多,而当收盘价突破3日最高价均线时平仓。
该策略的核心原理是利用移动平均线的趋势特性和不同周期均线的交叉关系来捕捉市场趋势。短期的3日最低价和最高价移动平均线能够快速反应价格的短期波动,而中期的30日收盘价移动平均线则能体现更大级别的趋势方向。
当收盘价跌破3日最低价均线且高于30日收盘价均线时,说明短期出现回撤但中期趋势依然看涨,此时入场做多。而当收盘价突破3日最高价均线时,短期上涨动能衰竭,此时平仓了结。通过短中期均线的配合使用,策略可以在趋势产生初期介入,并在趋势结束前及时退出。
“短中长期三重移动平均线趋势跟踪策略”是一个利用不同周期均线捕捉趋势的量化交易策略。它通过比较价格与3日最低价均线、3日最高价均线和30日均线的位置关系,在趋势产生初期介入并在结束前退出。策略逻辑简单易懂,适应性较强,但也存在频繁交易、仓位管理欠缺等风险。未来可从仓位管理、止损止盈、参数优化等方面对策略进行完善,以期获得更稳健的收益。
/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Estratégia de Médias Móveis - Entrada/Saída Simples", shorttitle="MM3", overlay=true)
// Parâmetros de entrada para a data de início e final do backtest
var start_date_input = input(title="Data de Início", defval=timestamp("01 Jan 2020 00:00 +0000"))
var end_date_input = input(title="Data Final", defval=timestamp("01 Jan 2021 00:00 +0000"))
// Convertendo as datas de entrada para formato de tempo
start_date = timestamp(year(start_date_input), month(start_date_input), dayofmonth(start_date_input), 0, 0)
end_date = timestamp(year(end_date_input), month(end_date_input), dayofmonth(end_date_input), 23, 59)
// Definindo as Médias Móveis
min_ma_3 = ta.sma(low, 3)
max_ma_3 = ta.sma(high, 3)
close_ma_30 = ta.sma(close, 30)
// Condição de Entrada: Fechamento abaixo da Média de 3 Mínimas e acima da Média de 30 Fechamentos
entry_condition = close < min_ma_3 and close > close_ma_30
// Condição de Saída: Fechamento acima da Média de 3 Máximas
exit_condition = close > max_ma_3
// Sinal de Compra: Entrada na próxima vela após a condição de entrada ser verdadeira
if (entry_condition )
strategy.entry("Buy", strategy.long)
// Sinal de Venda: Saída na próxima vela após a condição de saída ser verdadeira
if (exit_condition)
strategy.close("Buy")
// Plotando as Médias Móveis e os Sinais de Entrada/Saída
plot(min_ma_3, color=color.red, linewidth=2, title="Média de 3 Mínimas")
plot(max_ma_3, color=color.blue, linewidth=2, title="Média de 3 Máximas")
plot(close_ma_30, color=color.orange, linewidth=2, title="Média de 30 Fechamentos")