avatar of 发明者量化-小小梦 发明者量化-小小梦
focar em Mensagem privada
4
focar em
1271
Seguidores

Aplicação de indicadores técnicos Aroon em negociação quantitativa

Criado em: 2019-06-29 14:42:04, atualizado em: 2024-12-24 20:18:07
comments   1
hits   3779

[TOC]

Aplicação de indicadores técnicos Aroon em negociação quantitativa

Introdução ao Indicador Aroon

Na análise técnica, Aroon é um indicador técnico muito único. A palavra “Aroon” vem do sânscrito, que significa “amanhecer”. Não é tão conhecido quanto MA, MACD, KDJ. Foi introduzido mais tarde e não foi inventado até 1995 por Tushar Chande. O autor também inventou o Chande Momentum Oscillator (CMO) e o Intraday Momentum Index (IMI). Se mais pessoas conhecem um indicador técnico e mais pessoas o usam, menor é sua capacidade de ganhar dinheiro. O indicador Aroon relativamente novo é exatamente o oposto. Dessa perspectiva, é uma boa escolha.

Indicador Aroon no gráfico

O indicador Aroon ajuda os traders a prever mudanças na posição relativa dos movimentos de preços e áreas de tendência, calculando o número de velas entre a vela atual e os preços mais altos e mais baixos anteriores. Consiste em duas partes, a saber, AroonUp e AroonDown. Essas duas linhas se movem para cima e para baixo entre 0 e 100. Embora sejam nomeadas como linha superior e linha inferior, elas não são as mesmas que a linha superior e a linha inferior . Ao contrário do indicador BOLL, ele não tem uma linha superior e inferior verdadeiras. A figura a seguir é o indicador Aroon: Aplicação de indicadores técnicos Aroon em negociação quantitativa

Método de cálculo do indicador Aroon

O indicador Aroon exige que você defina um parâmetro de período de tempo primeiro, assim como a configuração do parâmetro de período de média móvel. No software de mercado tradicional, esse número de período é 14. Claro, esse parâmetro de período não é fixo. Você também pode defini-lo como 10 ou 50, etc. espere. Para facilitar a compreensão, vamos definir este parâmetro de período de tempo como: N. Após determinar N, podemos calcular AroonUp e AroonDown. A fórmula de cálculo específica é a seguinte:

  • AroonUp =[ (parâmetro de período definido - número de períodos após o preço mais alto) / período calculado] * 100
  • AroonDown =[ (parâmetro de período definido - número de períodos após o preço mais baixo) / período calculado] * 100

A partir desta fórmula, podemos ver aproximadamente a ideia do indicador Aroon. Ou seja: quantos ciclos o preço ficou abaixo da máxima/mínima recente, o que ajuda a prever se a tendência atual continuará e mede a força da tendência atual. Se categorizarmos esse indicador, ele é obviamente um tipo de seguidor de tendências. Mas, diferentemente de outros indicadores de acompanhamento de tendências, ele dá mais ênfase ao tempo do que ao preço.

Como usar o indicador Aroon

AroonUp e AroonDown refletem a distância entre o tempo atual e o preço mais alto ou mais baixo anterior. Se o tempo for mais próximo, o valor será maior, e se o tempo for mais distante, o valor será menor. E quando as duas linhas se cruzam, isso indica que a direção do preço pode mudar. Se AroonUp estiver acima de AroonDown, significa que o preço está em uma tendência ascendente e o preço pode subir ainda mais no futuro; se AroonDown estiver acima de AroonUp, significa que o preço está em tendência de queda e o preço pode subir ainda mais no futuro. Pode cair ainda mais.

Ao mesmo tempo, também podemos definir vários valores fixos para determinar com precisão o momento da entrada. Sabemos que o indicador Aroon está sempre rodando entre 0 e 100. Então quando o mercado está em tendência de alta, ou seja, quando AroonUp está acima de AroonDown, quando AroonUp é maior que 50, significa que a tendência de alta do mercado foi formada e o preço pode continuar a subir no futuro. Quando AroonUp cruza abaixo de 50, significa que o momentum de aumento de preço está enfraquecendo e o preço pode flutuar e cair no futuro.

Pelo contrário, quando o mercado está em tendência de queda, ou seja, quando o AroonDown está acima do AroonUp, quando o AroonDown é maior que 50, significa que a tendência de queda do mercado foi formada e o preço pode continuar caindo no futuro; quando AroonDown cruza abaixo de 50, significa que o momentum de queda de preço está enfraquecendo. Os preços podem flutuar e subir no futuro. Então, de acordo com as duas teorias acima, podemos listar as condições de compra e venda da seguinte forma:

  • Quando AroonUp é maior que AroonDown e AroonUp é maior que 50, uma posição longa é aberta;
  • Quando AroonUp é menor que AroonDown, ou AroonUp é menor que 50, posições longas são fechadas;
  • Quando AroonDown é maior que AroonUp e AroonDown é maior que 50, uma posição curta é aberta;
  • Quando AroonDown é menor que AroonUp, ou AroonDown é menor que 50, a posição curta é fechada;

Construindo uma estratégia de negociação com base no indicador Aroon

Após esclarecer a lógica de negociação, podemos implementá-la com código. Neste artigo, continuaremos a usar a linguagem JavaScript, e o produto ainda é commodities futures. Amigos com boas habilidades práticas também podem traduzir o código para a linguagem Python ou moeda digital. OK, sem mais delongas, abra: fmz.com > Login > Centro de Controle > Biblioteca de Políticas > Nova Política, comece a escrever a política e preste atenção aos comentários no código abaixo.

Etapa 1: use uma estrutura de CTA Perceber! Não deixe de clicar no seguinte:商品期货交易类库. Se você mudar para moeda digital, clique em:数字货币现货交易类库

function main() {
    // ZC000/ZC888 指用指数做为行情源但交易映射到主力连续合约上
    $.CTA("ZC000/ZC888", function(st) {

    })
}

Etapa 2: Obtenha os dados

function main() {
    $.CTA("ZC000/ZC888", function(st) {
        var r = st.records;  // 获取K线数组
        var mp = st.position.amount;  // 获取持仓数量
    })
}

Etapa 3: Calcular o indicador de Aroon

function main() {
    $.CTA("ZC000/ZC888", function(st) {
        var r = st.records;  // 获取K线数组
        var mp = st.position.amount;  // 获取持仓数量
        if (r.length < 21) {  // 判断K线数据是否足够
            return;
        }
        var aroon = talib.AROON(r, 20);  // 阿隆指标
        var aroonUp = aroon[1][aroon[1].length - 2];  // 阿隆指标上线倒数第2根数据
        var aroonDown = aroon[0][aroon[0].length - 2];  // 阿隆指标下线倒数第2根数据
    })
}

Etapa 4: Calcule as condições de negociação e faça uma ordem

function main() {
    $.CTA("ZC000/ZC888", function(st) {
        var r = st.records;  // 获取K线数组
        var mp = st.position.amount;  // 获取持仓数量
        if (r.length < 21) {  // 判断K线数据是否足够
            return;
        }
        var aroon = talib.AROON(r, 20);  // 阿隆指标
        var aroonUp = aroon[1][aroon[1].length - 2];  // 阿隆指标上线倒数第2根数据
        var aroonDown = aroon[0][aroon[0].length - 2];  // 阿隆指标下线倒数第2根数据
        if (mp == 0 && aroonUp > aroonDown && aroonUp > 50) {
            return 1;  // 多头开仓
        }
        if (mp == 0 && aroonDown > aroonUp && aroonDown > 50) {
            return -1;  // 空头开仓
        }
        if (mp > 0 && (aroonUp < aroonDown || aroonUp < 50)) {
            return -1;  // 多头平台
        }
        if (mp < 0 && (aroonDown < aroonUp || aroonDown < 50)) {
            return 1;  // 空头平台
        }
    })
}
// 以上代码就是基于JavaScript语言完整的策略。

// --------------------分割线--------------------

// 为了照顾伸手党,顺便也把这个策略翻译成My语言。同时该也可以用于数字货币,以下是完整的策略代码:
AROONUP := ((N - HHVBARS(H, N)) / N) * 100;  // 阿隆指标上线
AROONDOWN := ((N - LLVBARS(L, N)) / N) * 100;  // 阿隆指标下线
AROONUP > AROONDOWN && AROONUP > BKV, BK;  // 多头开仓
AROONDOWN > AROONUP && AROONDOWN > SKV, SK;  // 空头开仓
AROONUP < AROONDOWN || AROONUP < SPV, SP;  // 多头平台
AROONDOWN < AROONUP || AROONDOWN < BPV, BP;  // 空头平台
AUTOFILTER;

Backtesting de estratégia

Para estar mais próximo do ambiente de negociação real, usamos 2 saltos para abertura e fechamento de posições e 2 vezes a taxa de manuseio para teste de estresse durante o backtesting. O ambiente de teste é o seguinte:

  • Tipo de mercado: Índice de carvão térmico
  • Variedades comerciais: carvão térmico principal
  • Horário: 1 de junho de 2015 ~ 28 de junho de 2019
  • Ciclo: Diário
  • Deslizamento: 2 saltos para abertura e fechamento de posições
  • Taxa de manuseio: 2 vezes a troca

Ambiente de teste Aplicação de indicadores técnicos Aroon em negociação quantitativa Detalhes da receita Aplicação de indicadores técnicos Aroon em negociação quantitativa Curva de financiamento Aplicação de indicadores técnicos Aroon em negociação quantitativa A partir dos resultados do backtest acima, podemos ver que a estratégia tem um bom desempenho quando a tendência do mercado é suave. Seja subindo ou descendo, o indicador Aroon pode rastrear totalmente o mercado. A curva de capital também tende a ser ascendente no geral, e não houve retração significativa. Entretanto, no mercado volátil, especialmente no mercado volátil contínuo, ocorreram recuos locais.

Vantagens e desvantagens do indicador Aroon

  • Vantagens: O indicador Aroon pode determinar o estado da tendência, levando em consideração a capacidade de descobrir tendências de mercado e determinar mudanças de preço, ajudando os traders a melhorar a taxa de utilização dos fundos. Essa vantagem é especialmente importante em mercados voláteis.
  • Desvantagens: O indicador Aroon é apenas um dos indicadores de rastreamento de tendências e tem as mesmas desvantagens dos indicadores de rastreamento de tendências. E ele apenas determina o número de ciclos do preço mais alto ou mais baixo no tempo especificado, mas às vezes o preço mais alto ou mais baixo será acidental em toda a tendência do mercado. Essa contingência interferirá no próprio indicador Aroon e causará sinais falsos.

Clique para copiar o código fonte da estratégia

Resumir

Na estratégia, fixamos alguns parâmetros, como: aroonUp ou aroonDown é maior ou menor que 50, o que causa o atraso da estratégia. Em muitos casos, o mercado sobe ou desce por um período de tempo antes de abrir e posições de fechamento. Embora isso aumente a taxa de ganhos e reduza a taxa máxima de saque, também perde muitos lucros, o que também confirma o princípio de que lucros e perdas têm a mesma fonte. Amigos interessados ​​podem estudá-lo em profundidade e fazer melhorias.