Padrão K-Line para cima/para baixo Estratégia de Arbitragem de Alta Frequência

Autora:ChaoZhang, Data: 2024-01-08 15:47:41
Tags:

img

Resumo

Esta estratégia utiliza um método de julgamento baseado em padrão de K-line para implementar arbitragem de mercado de alta frequência. Sua idéia principal é abrir e fechar negócios para mercado de alta frequência julgando padrões de alta / baixa em diferentes prazos de K-line. Especificamente, a estratégia monitora simultaneamente vários prazos de K-line e toma posições longas ou curtas correspondentes quando observa ascensões ou quedas consecutivas de K-lines.

Estratégia lógica

A lógica central desta estratégia consiste em julgar padrões de alta/baixa em diferentes prazos de linha K. Especificamente, ele acompanha simultaneamente linhas K de 1 minuto, 5 minutos e 15 minutos. A estratégia determina o sentimento atual verificando se os preços subiram ou caíram em comparação com N linhas K anteriores. Se os preços subirem consecutivamente, indica um sentimento de alta; se os preços caírem consecutivamente, sinaliza uma visão de baixa. Em sinais de alta, a estratégia vai longa; em sinais de baixa, a estratégia vai curta. Desta forma, a estratégia pode capturar tendências e oportunidades de reversão média em diferentes prazos para arbitragem de alta frequência.

A lógica central é implementada através do acompanhamento de dois indicadoresupsedns, que registam o número de linhas K ascendentes e descendentes consecutivas.consecutiveBarsUpeconsecutiveBarsDownO nível de variação de tendência é, portanto, muito elevado.upsé maior ou igual aconsecutiveBarsUp, indica um padrão de alta; quandodnsexcedeconsecutiveBarsDownAlém disso, a estratégia especifica intervalos de tempo de testes retrospectivos e mensagens de execução de ordens, etc.

Vantagens

As vantagens desta estratégia incluem:

  1. Capturar oportunidades de arbitragem de alta frequência para a criação de mercado
  2. Lógica simples e eficaz baseada em padrões de linhas K
  3. A monitorização simultânea de vários prazos melhora a taxa de captura
  4. Ajuste de parâmetros intuitivo
  5. Intervalo de tempo configurável de back-testing para otimização

Riscos

Há também vários riscos a tomar em consideração:

  1. Riscos gerais da negociação de alta frequência, como problemas de dados, falhas de ordens, etc.
  2. Ajuste inadequado dos parâmetros pode levar a excesso de negociação ou perda de boas oportunidades
  3. Não conseguem lidar com condições de mercado mais complexas, como as fendas.

As formas possíveis de mitigar os riscos incluem:

  1. Incorporar mais lógica para determinar a entrada/saída prudente
  2. Otimizar o parâmetro para equilibrar a frequência e a rentabilidade do comércio
  3. Considere mais fatores como volume, volatilidade para julgar tendências
  4. Teste diferentes mecanismos de stop loss para limitar a perda por transação

Oportunidades de melhoria

Esta estratégia pode ser reforçada a partir das seguintes dimensões:

  1. Adicione mais fatores para julgar padrões além de simples contagens de subida / queda, como amplitude, energia, etc.
  2. Avaliação de outros indicadores de entrada/saída, como MACD, KD, etc.
  3. Incorporar fatores técnicos como MA, canais para filtrar sinais
  4. Otimizar parâmetros em diferentes prazos para encontrar as melhores combinações
  5. Desenvolver mecanismos de stop loss e take profit para melhorar a estabilidade
  6. Introduzir controlos quantitativos de risco, como posições máximas, frequência de negociação, etc.
  7. Teste em diferentes produtos para encontrar o melhor ajuste

Conclusão

Esta estratégia realiza uma estratégia de arbitragem de alta frequência simples, mas eficaz, baseada no julgamento de padrões de linha K. Seu núcleo reside na captura de tendências de alta / baixa intradiária em todos os prazos para arbitragem. Apesar de alguns riscos inerentes, esta estratégia fácil de entender serve como um bom ponto de partida para a negociação algorítmica.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-21 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

// Strategy
strategy("Up/Down Strategy", initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)

consecutiveBarsUp = input(1)
consecutiveBarsDown = input(1)

price = close

ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0

dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0

// Strategy Backesting
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time)

time_cond  = true

// Messages for buy and sell
message_buy  = input("{{strategy.order.alert_message}}", title="Buy message")
message_sell = input("{{strategy.order.alert_message}}", title="Sell message")

// Strategy Execution

if (ups >= consecutiveBarsUp) and time_cond
    strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_buy)
    
if (dns >= consecutiveBarsDown) and time_cond
    strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_sell)

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

Mais.