Estratégia de negociação de alta frequência de inversão baseada na linha sombra

Autora:ChaoZhang, Data: 2024-01-24 11:39:31
Tags:

img

Resumo

Esta é uma estratégia de negociação de alta frequência baseada na linha K de 3 minutos da exchange Coinbase. Ela calcula as linhas de sombra superior e inferior da linha K para determinar se há uma oportunidade de reversão no curto prazo. Quando a alta ou queda do preço é relativamente grande, a estratégia tomará uma posição oposta à tendência, esperando uma reversão de curto prazo.

Princípio

A estratégia julga principalmente se há oportunidades de overbought ou oversold no curto prazo. Oversold e overbought geralmente vem de emoções excessivamente otimistas ou pessimistas no mercado.

Especificamente, a estratégia calcula o tamanho das linhas de sombra superior e inferior da linha K. Quanto maior a linha de sombra, mais intenso é o confronto entre o poder de compra e o poder de venda antes do fechamento da linha K atual. Se a linha de sombra superior for muito grande, significa que muitas ordens de compra foram derrotadas por ordens de venda antes do fechamento da linha K, indicando que o poder de alta está prestes a enfraquecer. Se a linha de sombra inferior for muito grande, significa que muitas ordens de venda foram absorvidas por ordens de compra antes do fechamento da linha K, indicando que o poder de baixa está prestes a enfraquecer.

De acordo com esta lógica, quando a linha de sombra é muito grande (ou seja, quando o preço aparece overbought ou oversold no curto prazo), a estratégia escolhe tomar uma posição oposta à tendência.

Análise das vantagens

A maior vantagem desta estratégia é alavancar as flutuações irracionais de curto prazo no mercado para alcançar arbitragem reversa.

Outra vantagem é que a Coinbase é uma exchange com maiores flutuações.

Análise de riscos

O maior risco enfrentado por esta estratégia é que as flutuações de preços a curto prazo podem não ter muita previsibilidade. O tamanho das linhas de sombra superior e inferior pode não capturar completamente todas as informações sobre reversões de preços. As emoções irracionais dos comerciantes também podem não seguir regras lógicas.

Além disso, a definição de pontos de stop loss também é crítica. Pontos de stop loss que são muito soltos podem aumentar a perda da estratégia. Pontos de stop loss que são muito rígidos podem perder oportunidades. Um equilíbrio precisa ser encontrado entre a relação risco-recompensa e a taxa de vitória.

Orientações de otimização

Esta estratégia pode ser melhorada nas seguintes dimensões:

  1. Teste diferentes variedades de negociação, como criptomoedas mais voláteis
  2. Otimizar a lógica de configuração dos pontos de stop loss, como stop loss combinado com ATR
  3. Adicionar modelos de aprendizagem de máquina para julgar a probabilidade de reversão de preços
  4. Combinar indicadores de sentimento para medir o índice de otimismo/pesimismo do mercado
  5. Otimizar as estratégias de dimensionamento das posições e gestão de fundos

Resumo

Em geral, essa estratégia é uma estratégia típica de arbitragem estatística. Ela tenta tirar proveito de flutuações de preços irracionais de curto prazo para obter lucros, com alguma lógica e viabilidade.


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

//@version=3
//for coinbase, 3min logic
//This strategy trades against the short term trend. The first position can be either long or short.
//In the short term, prices fluctuate up and down on wide spread exchanges.
//And if the price moves to one side, the price tends to return to its original position momentarily.
//This strategy set stop order. Stop price is calculated with upper and lower shadows.

strategy("ndb_mm_for_coinbase_btcusd", overlay=true, initial_capital=100000, slippage=50)

fromyear = input(2019, minval = 2017, maxval = 2100, title = "From Year")
frommonth = input(12, minval = 1, maxval = 12, title = "From Month")
fromday = input(1, minval = 01, maxval = 31, title = "From day")
toyear = input(2100, minval = 1900, maxval = 2100, title = "To Year")
tomonth = input(12, minval = 01, maxval = 12, title = "To Month")
today = input(31, minval = 01, maxval = 31, title = "To day")
end = true

length = input(3, title="period")
mag = input(1.2, title="sigma", minval=0.1, step=0.1)

up_shadow = abs(high - max(open, close))
dn_shadow = abs(low - min(open, close))

up_shadow_ma = sma(up_shadow, length) * mag
dn_shadow_ma = sma(dn_shadow, length) * mag

upper = close + dn_shadow_ma
lower = close - up_shadow_ma

plot(upper, color=red)
plot(lower, color=blue)

if strategy.position_size == 0
    strategy.entry("Long", strategy.long)

if 0 < strategy.position_size
    strategy.entry("Short", strategy.short, stop=lower, when=end)

if 0 > strategy.position_size
    strategy.entry("Long", strategy.long, stop=upper, when=end)

Mais.