
A estratégia de acompanhamento de tendências de três EMAs é implementada através do cálculo da linha média de EMAs de diferentes períodos, para determinar a direção da tendência de preços. A estratégia é simples e fácil de implementar, e o efeito é notável em variedades com tendências evidentes.
A estratégia é calculada através do cálculo de três médias de EMA de três períodos diferentes, especificamente EMA de 10 períodos, 20 períodos e 30 períodos. O código calcula as três médias através da função ema.
A estratégia julga principalmente a direção das três linhas médias. Se as três linhas médias subirem ao mesmo tempo, um sinal de multiplicação é gerado; Se as três linhas médias caírem ao mesmo tempo, um sinal de duplicação é gerado.
A lógica de determinação específica dos sinais de fazer mais e fazer menos é que, se ema1, ema2 e ema3 sobem simultaneamente na última linha K, ent_long é verdadeiro, gerando um sinal de fazer mais. Se ema1, ema2 e ema3 caem simultaneamente na última linha K, ent_short é verdadeiro, gerando um sinal de fazer menos.
De acordo com os sinais de compra e venda, a estratégia cria as posições de compra e venda correspondentes. Em contraste com os sinais de entrada, a lógica de liquidação é a seguinte: se a linha K atual de ema1, ema2 e ema3 não subir ao mesmo tempo, exit_long é verdadeiro e é liquidado como uma posição múltipla. Se a linha K atual de ema1, ema2 e ema3 não cair ao mesmo tempo, exit_short é verdadeiro e é liquidado como uma posição vazia.
Desta forma, através da determinação da consistência da direção das três linhas médias da EMA, pode-se determinar a tendência geral dos preços, permitindo o rastreamento de tendências.
Usando três linhas médias EMA, é possível determinar com maior precisão a direção da tendência. Em comparação com uma única linha média, as três linhas médias são mais confiáveis para determinar a tendência e têm menor probabilidade de ocorrer sinais errados.
A EMA é mais sensível às mudanças de preço e pode refletir a mudança de tendência em tempo hábil. Comparado a outras medias, como a SMA, a EMA é mais adequada para determinar a direção da tendência.
Em combinação com diferentes períodos de EMA, é possível considerar tendências de curto e médio prazo. 10 períodos de EMA julgam tendências de curto prazo, 20 períodos e 30 períodos de EMA julgam tendências de médio e longo prazo.
A implementação da estratégia é simples, fácil de entender e adequada para os iniciantes. Além disso, o espaço para otimização de parâmetros é grande, podendo ser ajustado para diferentes variedades.
A estratégia baseia-se apenas em EMA para operar em linha reta, com baixo consumo de recursos, adequado para grandes quantidades e distribuição.
A concordância entre as três EMAs é uma condição necessária, mas não suficiente, para avaliar a tendência. Quando a EMA é falseada, um sinal de erro é gerado.
Quando a tendência se inverte, o EMA médio está atrasado e não pode refletir o ponto de mudança de tendência em tempo hábil, o que pode causar prejuízos.
A EMA é sensível às mudanças de preços e, quando as conversões de títulos e títulos vazios são frequentes, abre posições de baixa frequentemente, aumentando as taxas de transação.
Em mercados com grandes turbulências, a EMA média gerou várias mudanças de direção e não foi capaz de determinar a tendência com precisão, uma estratégia que não funcionou bem.
O intervalo de três EMAs pode ser ampliado de forma apropriada para reduzir a probabilidade de sinais errados. Ou adicionar outros indicadores para filtrar falsas brechas.
Pode ser combinado com indicadores de energia quantitativa para confirmar tendências, identificar pontos de mudança de tendência e reduzir perdas. Também pode ser adequadamente relaxado o ponto de parada.
Pode ser apropriadamente aumentado o parâmetro EMA, reduzindo a frequência de abertura de posições claras. Ou pode ser substituído por outros indicadores de linha média.
A estratégia de suspensão é possível após a identificação de um mercado em turbulência, para evitar que a transação seja invalidada.
Otimização do ciclo: ajuste os parâmetros do ciclo dos três EMAs para adaptá-los às características das diferentes variedades.
Condições de filtragem: Adição de indicadores como MA, BOLL, para evitar falsas rupturas de EMA.
Estratégia de parada de perdas: trailing stop segue os trailers de perda para proteger os lucros.
Gerenciamento de fundos: otimização da gestão de posições e redução do impacto de perdas individuais no total.
Avaliação da situação do mercado: determinação do grau de agitação do mercado com base em indicadores como a taxa de flutuação e a participação da estratégia de controle.
Adaptação de parâmetros: permite que os parâmetros do ciclo EMA sejam automaticamente otimizados de acordo com as mudanças do mercado, aumentando a robustez da estratégia.
Três estratégias de rastreamento de tendências da EMA para determinar a tendência de preços através da direção da linha média da EMA, para realizar negociações de tendências de rastreamento automático. A estratégia é simples e prática, com amplo espaço de ajuste de parâmetros, e pode ser otimizada para as características da variedade.
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 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/
// © QuantCT
//@version=4
strategy("PMA Strategy Idea",
shorttitle="PMA",
overlay=true,
pyramiding=0,
default_qty_type=strategy.percent_of_equity,
default_qty_value=100,
initial_capital=1000,
commission_type=strategy.commission.percent,
commission_value=0.075)
// ____ Inputs
ema1_period = input(title="EMA1 Period", defval=10)
ema2_period = input(title="EMA2 Period", defval=20)
ema3_period = input(title="EMA3 Period", defval=30)
long_only = input(title="Long Only", defval=false)
slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0)
use_sl = input(title="Use Stop-Loss", defval=false)
// ____ Logic
ema1 = ema(hlc3, ema1_period)
ema2 = ema(hlc3, ema2_period)
ema3 = ema(hlc3, ema3_period)
enter_long = (rising(ema1, 1) and rising(ema2, 1) and rising(ema3, 1))
exit_long = not enter_long
enter_short = (falling(ema1, 1) and falling(ema2, 1) and falling(ema3, 1))
exit_short = not enter_short
strategy.entry("Long", strategy.long, when=enter_long)
strategy.close("Long", when=exit_long)
if (not long_only)
strategy.entry("Short", strategy.short, when=enter_short)
strategy.close("Short", when=exit_short)
// ____ SL
sl_long = strategy.position_avg_price * (1- (slp/100))
sl_short = strategy.position_avg_price * (1 + (slp/100))
if (use_sl)
strategy.exit(id="SL", from_entry="Long", stop=sl_long)
strategy.exit(id="SL", from_entry="Short", stop=sl_short)
// ____ Plots
colors =
enter_long ? #27D600 :
enter_short ? #E30202 :
color.orange
ema1_plot = plot(ema1, color=colors)
ema2_plot = plot(ema2, color=colors)
ema3_plot = plot(ema3, color=colors)
fill(ema1_plot, ema3_plot, color=colors, transp=50)