Uma estratégia de linha de vantagem de confirmação de média móvel dupla

Autora:ChaoZhang, Data: 2024-01-23 10:49:57
Tags:

img

Resumo

Esta estratégia é uma estratégia de tendência de longo prazo que gera sinais de negociação através da confirmação dupla do indicador Aroon e da linha de média móvel de regressão linear (LSMA).

Princípios de estratégia

Esta estratégia usa o cruzamento das bandas superior e inferior do indicador Aroon para determinar a direção da tendência. Um sinal de compra é gerado quando a banda superior cruza acima da banda inferior de baixo. Um sinal de venda é gerado quando a banda superior cruza abaixo da banda inferior de cima. Para evitar falhas, a estratégia também introduz a linha LSMA como um juiz auxiliar. Um sinal de compra é desencadeado apenas quando o preço de fechamento está acima da LSMA.

Especificamente, as regras para a geração de sinais de negociação são:

  1. Sinal de entrada longa: A faixa superior cruza acima da faixa inferior (o indicador Aarons determina a tendência ascendente) e o preço de encerramento do dia está acima da linha LSMA (o preço de encerramento está em tendência ascendente).

  2. sinal de saída longa: a faixa superior cruza abaixo da faixa inferior (o indicador Aroon determina a tendência descendente) e o preço de encerramento do dia está abaixo da linha LSMA (o preço de encerramento está em tendência descendente).

Vantagens

  1. Usando o indicador Aroon para determinar a tendência evita interferências de ruído
  2. Adicionar linha LSMA para filtrar falhas
  3. Apenas a longo prazo, em consonância com o crescimento a longo prazo do mercado mais vasto
  4. Parâmetros simples, fáceis de implementar

Riscos

  1. Só fazendo longo, difícil de lucrar no mercado lateral
  2. Parâmetros fixos podem levar a um sobreajuste
  3. Difícil cortar perdas em tempo hábil quando a tendência se inverte

Para atenuar os riscos, podem ser adicionados stop loss ou podem ser utilizados outros indicadores para determinar a reversão da tendência e cortar as perdas no tempo.

Orientações de otimização

  1. Considerar a adição de oportunidades de curto prazo para lucrar com a queda do mercado
  2. Indicadores de ensaio com diferentes parâmetros do ciclo
  3. Adicionar módulo de aprendizado de máquina para otimizar automaticamente parâmetros

Resumo

Em resumo, esta é uma estratégia de confirmação dupla de tendência relativamente simples e prática. Usar o Aroon para determinar a tendência e o LSMA para filtrar o ruído é simples. Com ajuste adequado dos parâmetros, ele pode alcançar resultados decentes. É adequado para a detenção de médio a longo prazo para evitar ruído. Adicionando módulos como stop loss, a estratégia pode ser ainda mais otimizada para amplificar seus pontos fortes e reduzir riscos.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 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/
// © exlux99

//@version=4

strategy(title = "Aroon Strategy long only", overlay = true,  pyramiding=1,initial_capital = 100, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.1)

//Time
fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2010, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2021, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true

//INPUTS

length = input(15, minval=1, title="Aroon Legnth")
upper = 100 * (highestbars(high, length+1) + length)/length
lower = 100 * (lowestbars(low, length+1) + length)/length

lengthx = input(title="Length LSMA", type=input.integer, defval=20)
offset = 0//input(title="Offset", type=input.integer, defval=0)
src = input(close, title="Source")
lsma = linreg(src, lengthx, offset)


long = crossover(upper,lower) and close > lsma
longexit = crossunder(upper,lower) and close < lsma

if(time_cond)
    strategy.entry("long",1,when=long)
    strategy.close("long",when=longexit)


Mais.