
Esta estratégia usa o cruzamento de uma média móvel de 20 dias e 60 dias para formar um sinal de compra e venda. Quando o preço sobe e quebra a linha de 20 dias, faça mais; Quando o preço cai e quebra a linha de 20 dias, feche.
Princípio da estratégia
- Calcular uma média móvel simples de 20 dias e uma média móvel simples de 60 dias
- Faça mais quando o preço de fechamento sobe e ultrapassa a linha de 20 dias
- A posição de equilíbrio foi mantida quando o preço de fechamento caiu para a linha de 20 dias.
- Faça mais quando o preço de fechamento sobe e ultrapassa a linha de 60 dias
- A posição de equilíbrio foi mantida quando o preço de fechamento caiu e ultrapassou a linha de 60 dias.
Os sinais de negociação e as regras que formam a estratégia acima. Quando o preço ultrapassa a média, indica o início da tendência e pode seguir a tendência mais; Quando o preço cai abaixo da média, indica o fim da tendência e é a escolha correta.
Vantagens estratégicas
- A combinação de duas médias móveis permite uma estratégia mais estável. A linha de 20 dias permite capturar mais rapidamente as oportunidades de tendências de curto prazo; a linha de 60 dias filtra parte do ruído do mercado de curto prazo e bloqueia as tendências de médio e longo prazo.
- A estratégia de retrospectiva começou em 2018 com a escolha do mercado de ações de Taiwan, que tem um sistema de negociação mais perfeito e mais capaz de refletir o efeito da estratégia em comparação com ações A da China continental.
- O risco é controlado com um controle razoável de stop loss e posição.
Risco estratégico
- A estratégia baseia-se apenas em indicadores de médias móveis, que geram mais Whirlaway e Spread quando o mercado não tem uma tendência óbvia.
- A estratégia não é otimizada para o número de compras/vendas e posições, o que impede a maximização da utilização dos fundos.
- A estratégia reage de forma simétrica a subidas e descidas de preços e não pode responder a variações de mercado.
A solução para o risco:
- Pode ser adicionado outro conjunto de indicadores, como KDJ, MACD, etc., formando uma verificação múltipla, evitando erros de negociação.
- Pode-se otimizar a posição e a eficiência do uso de fundos de negociação com base em fatores como o valor de mercado, a volatilidade.
- Pode-se adotar operações assimétricas de acordo com diferentes fases do índice de mercado, reduzindo a negociação em ajustes de choque e aumentando a posição em tendências claras.
Direção de otimização da estratégia
- Optimizar o número de compras e vendas. O número de posições pode ser ajustado de acordo com a dinâmica da informação de stop loss.
- Optimizar os parâmetros diários das médias móveis. Optimizar os parâmetros mais favoráveis pode ser feito por meio de métodos como otimização em etapas, otimização aleatória.
- Aumentar a estratégia de stop loss. Mover o stop loss ou pendurar o stop loss pode proteger melhor os lucros.
- Aumentar a gestão de posições. Ajustar as posições de cada transação de acordo com a dinâmica do tamanho do capital e do valor de mercado.
Resumir
A estratégia como um todo é uma típica estratégia de cruzamento de duas médias móveis. A ideia central é seguir a tendência e estabelecer uma posição de tendência quando o preço quebra a média. A estratégia é simples, prática e fácil de implementar.
Código-fonte da estratégia
/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Astorhsu
//@version=5
strategy("Astor SMA20/60 TW", overlay=true, margin_long=100, margin_short=100)
backtest_year = input(2018, title='backtest_year') //回測開始年分
backtest_month = input.int(01, title='backtest_month', minval=1, maxval=12) //回測開始月份
backtest_day = input.int(01, title='backtest_day', minval=1, maxval=31) //回測開始日期
start_time = timestamp(backtest_year, backtest_month, backtest_day, 00, 00) //回測開始的時間函數
//Indicators
sma20 = ta.sma(close,20)
sma60 = ta.sma(close,60)
plot(sma20, color=color.green, title="sma(20)")
plot(sma60, color=color.red, title="sma(60)")
//進場條件
longCondition = ta.crossover(close, ta.sma(close, 20))
if (longCondition) and time >= start_time
strategy.entry("open long20", strategy.long, qty=1, comment="站上m20做多")
shortCondition = ta.crossunder(close, ta.sma(close, 20))
if (shortCondition) and time >= start_time
strategy.close("open long20",comment="跌破m20平倉", qty=1)
longCondition1 = ta.crossover(close, ta.sma(close, 60))
if (longCondition1) and time >= start_time
strategy.entry("open long60", strategy.long, qty=1, comment="站上m60做多")
shortCondition1 = ta.crossunder(close, ta.sma(close, 60))
if (shortCondition1) and time >= start_time
strategy.close("open long60",comment="跌破m60平倉", qty=1)