Estratégia dinâmica de direção das velas

Autora:ChaoZhang, Data: 2023-10-25 16:57:05
Tags:

img

Resumo

Esta estratégia determina a direção futura da vela analisando o preço de fechamento em relação ao preço de abertura de N velas passadas.

Estratégia lógica

A lógica central desta estratégia é a seguinte:

  1. Definir o parâmetro NUM_CANDLES para determinar o número de velas a analisar.

  2. Defina a função candle_dir para determinar a direção de uma única vela. close>open é alta, close

  3. Defina a função count_candles para contar o número de velas com certa direção nas velas NUM_CANDLES anteriores.

  4. Contar o número de velas de alta, baixa e neutra nas velas NUM_CANDLES passadas, armazenar em ups, dns, neu.

  5. Definir indicador, o seu valor é igual a ups-dns mais/menos neu.

  6. Determinar a entrada longa/curta com base no indicador indicativo.

Ao analisar a direção da vela de um certo número de velas, esta estratégia estima a probabilidade da direção da vela futura para decisões de negociação.

Análise das vantagens

  1. A lógica estratégica é clara e fácil de entender, interpretar e verificar.

  2. São necessários apenas dados de velas, reduzindo o custo de computação.

  3. Fácil de ajustar a sensibilidade ajustando o parâmetro NUM_CANDLES.

  4. Aplicável a todos os produtos e prazos, elevada adaptabilidade.

  5. Fácil de otimizar os parâmetros para encontrar a melhor combinação.

Análise de riscos

  1. Incapaz de lidar com o mercado de gama limitada, pode causar excesso de negociação.

  2. Período de amostragem inadequado pode causar atraso no sinal, NUM_CANDLES precisa de ajuste cuidadoso.

  3. Incapacidade de se adaptar à inversão da tendência, risco de perda na inversão da tendência.

  4. O impacto sobre os custos de negociação deve ser considerado para evitar a troca excessiva.

  5. Cuidado com a sobreajuste na otimização de parâmetros, exigir verificação de vários mercados.

Orientações de otimização

  1. Considerar adicionar stop loss para perder limite.

  2. Combinar com o indicador de tendência para evitar negociações contra-tendência.

  3. Aumentar o tamanho da amostra ou utilizar um prazo menor para melhorar a estabilidade.

  4. Considere a composição de múltiplos mercados para melhorar a taxa de vitória.

  5. Utilize o aprendizado de máquina para otimização automática de parâmetros.

Conclusão

Esta estratégia determina a direção do comércio, analisando a direção da vela, com lógica clara e simples. A sensibilidade é controlável através do ajuste de parâmetros. Os prós são simplicidade, baixa exigência e ampla adaptabilidade, mas existem alguns riscos e é necessária uma otimização adicional para melhorar a estabilidade.


/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Refined CandleCounter Strategy by origo", overlay=true)

// how many candles to count
NUM_CANDLES = 7

// determine candle direction
candle_dir = close > open ? 1 : (round(close-open) == 0 ? 0 : -1)

// return # of candles with a given direction
count_candles(dir, max) =>
    count = 0
    for i = 0 to max
        if candle_dir[i] == dir
            count := count + 1
    count

ups = count_candles(1, NUM_CANDLES)
dns = count_candles(-1, NUM_CANDLES)
neu = count_candles(0, NUM_CANDLES)

indic = ups-dns


if indic > 0
    indic := indic+neu
else
    indic := indic-neu

plotarrow(neu, title="UP vs DN")

longCondition = (indic) > 0
shortCondition = (indic) <= 0

strategy.entry("buy", strategy.long, 1, when = longCondition and not shortCondition)
strategy.entry("sell", strategy.short, 1, when = shortCondition and not longCondition)


Mais.