Estratégia de negociação quantitativa baseada em médias móveis altas e baixas


Data de criação: 2023-09-19 15:53:55 última modificação: 2023-09-19 15:53:55
cópia: 0 Cliques: 626
1
focar em
1617
Seguidores

Visão geral

A estratégia julga o momento de comprar e vender, calculando uma média móvel simples de altos e baixos e comparando-a com o preço de fechamento atual. O objetivo é capturar sinais de quebra de preços na média para obter oportunidades mais cedo na tendência.

Princípio da estratégia

  1. Calcule a média móvel simples com um máximo de 4

  2. Calcule uma média móvel simples com um ponto baixo de comprimento 4

  3. Faça uma entrada extra quando o preço de fechamento ultrapassar o ponto médio de alta

  4. Cancelar a entrada quando o preço de fechamento ultrapassar a média de baixa

  5. Gerenciamento de risco com estratégias de stop loss e stop loss fixos

Análise de vantagens

  1. Implementação com indicadores simples e fáceis de entender

  2. Captação de sinais de ruptura da linha média

  3. Filtrar rapidamente parte do ruído e identificar tendências

  4. Pequeno volume de computação reduz o consumo operacional da estratégia

  5. Estratégias baseadas em adequação para expansão

Análise de Riscos

  1. Parâmetros razoáveis, evitando excesso de sensibilidade

  2. A falta de capacidade para lidar com os riscos de uma grande ruptura

  3. Há um certo risco de arbitragem de choque.

  4. Não é possível ajustar automaticamente a posição da parada de perda

  5. Difícil de determinar a duração do contexto da tendência

Direção de otimização

  1. Teste dos efeitos de diferentes parâmetros na qualidade do sinal

  2. Aumentar as condições de filtragem para garantir a eficácia dos avanços

  3. Análise de tendências para evitar a armadilha

  4. Desenvolver estratégias de stop loss dinâmicas

  5. Otimização do mecanismo de parada de prejuízos e melhoria da taxa de vitória da estratégia

  6. Testar a robustez da estratégia em diferentes ciclos

Resumir

A estratégia, através de um simples indicador para avaliar a dinâmica dos preços, dá uma idéia básica de negociação de tendências. Com a otimização de parâmetros, controle de risco e outros aperfeiçoamentos, sua lógica de negociação é extensivel e pode ser desenvolvida como um sistema de quantificação mais robusto.

Código-fonte da estratégia
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-13 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("HiLo", overlay=true)

// Testing a specific period
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(4, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2017, "Backtest Stop Year")
testStopMonth = input(5, "Backtest Stop Month")
testStopDay = input(1, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false


//HiLo Strategy
length = input(4, minval=0)
displace = input(0, minval=0)
highsma = sma(high, length)
lowsma = sma(low, length)

longCondition = close > highsma[displace]
if (longCondition)
    strategy.entry("long", true)

shortCondition = close < lowsma[displace]
if (shortCondition)
    strategy.entry("short", false)

// Exit seems with a problem. it keeps saying the order's limit (2000) was reached even if I back test it just for a day. 
// If the two lines bellow are commented, then it it works. Anyone? Any idea what's wrong?

// strategy.exit("exit", "long", profit=10, loss=5)
// strategy.exit("exit", "short", profit=10, loss=5)