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.
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 indicadoresups
edns
, que registam o número de linhas K ascendentes e descendentes consecutivas.consecutiveBarsUp
econsecutiveBarsDown
O nível de variação de tendência é, portanto, muito elevado.ups
é maior ou igual aconsecutiveBarsUp
, indica um padrão de alta; quandodns
excedeconsecutiveBarsDown
Além disso, a estratégia especifica intervalos de tempo de testes retrospectivos e mensagens de execução de ordens, etc.
As vantagens desta estratégia incluem:
Há também vários riscos a tomar em consideração:
As formas possíveis de mitigar os riscos incluem:
Esta estratégia pode ser reforçada a partir das seguintes dimensões:
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)