Estratégia de negociação quantitativa de reversão de pivô simples


Data de criação: 2024-01-17 15:37:33 última modificação: 2024-01-17 15:37:33
cópia: 0 Cliques: 659
1
focar em
1617
Seguidores

Estratégia de negociação quantitativa de reversão de pivô simples

Visão geral

Esta estratégia baseia-se na ruptura dos pontos centrais para realizar a reversão. Ela calcula os preços mais altos e mais baixos do período especificado para determinar os pontos altos e baixos do eixo central. Quando o preço supera o ponto alto do eixo central, faça um curto; Quando o preço é inferior ao ponto baixo do eixo central, faça mais.

Princípio da estratégia

A lógica central da estratégia é calcular os pontos altos e baixos do eixo central. A fórmula para calcular os pontos altos e baixos do eixo central é a seguinte:

Ponto alto do eixo = soma dos preços mais altos da linha K de N1 mais recente / N1

Ponto baixo do eixo = soma dos preços mais baixos da linha K mais recente N2 / N2

N1 e N2 são os dois parâmetros que podem ser definidos para representar o número de linhas K necessárias para calcular o eixo central.

Depois de calcular os pontos altos e baixos do eixo central, a estratégia pode ser executada. As regras de negociação específicas são:

  1. Cancelar posições quando o preço atravessa o ponto mais alto do eixo central
  2. Faça mais posições quando o preço quebra o ponto mais baixo do eixo central
  3. Determinação de stop loss após a posição

Assim, ele consegue uma estratégia de retorno de curta distância baseada em um ponto-chave.

Análise de vantagens

É uma estratégia de inversão muito simples, com as seguintes vantagens:

  1. Princípios simples, fáceis de entender e implementar
  2. Apto para linhas curtas e com frequência
  3. O vídeo mostra a inversão de tendências após a ruptura do eixo central.
  4. Pode ser otimizado por ajuste de parâmetros

Análise de Riscos

A estratégia também apresenta alguns riscos:

  1. Risco de falha de reversão. A reversão após a ruptura do eixo central não será necessariamente bem sucedida, existindo a possibilidade de continuar a operar a tendência original.
  2. Risco de quebra do stop loss. O preço de stop loss estabelecido pode ser ultrapassado, causando um grande prejuízo.
  3. Risco de parâmetros incorretos. Se os parâmetros forem configurados incorretamente, isso afetará gravemente a eficácia da estratégia.

Estes riscos podem ser controlados por meio de ajustes de parâmetros, configuração de estratégias de saída e outros métodos.

Direção de otimização

A estratégia ainda tem muito espaço para otimização:

  1. Combinado com outros indicadores técnicos, para determinar a hora de entrada mais precisa
  2. Aumentar as condições de saída, como o stop-loss móvel, o stop-loss pós-ganho, etc.
  3. Parâmetros de ajuste dinâmico para uma estratégia mais adaptável
  4. Parâmetros de otimização para encontrar a melhor combinação de parâmetros

Resumir

Esta estratégia é uma estratégia de inversão de eixo de linha curta muito simples. Sua vantagem é que é fácil de entender, adequado para negociações frequentes e pode capturar situações de inversão. Mas também existe um certo risco, que precisa ser otimizado ainda mais para reduzir o risco.

Código-fonte da estratégia
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Pivot Reversal Strategy - FIGS & DATES 2.0", overlay=true, pyramiding=0, initial_capital=10000, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, commission_value=0.075)

leftBars = input(4)
rightBars = input(2)

// backtesting date range
from_day = input(defval=1, title="From Day", minval=1, maxval=31)
from_month = input(defval=1, title="From Month", minval=1, maxval=12)
from_year = input(defval=2018, title="From Year", minval=1900)

to_day = input(defval=1, title="To Day", minval=1, maxval=31)
to_month = input(defval=1, title="To Month", minval=1, maxval=12)
to_year = input(defval=9999, title="To Year", minval=1900)

time_cond = true

swh = pivothigh(leftBars, rightBars)
swl = pivotlow(leftBars, rightBars)

middle = (swh+swl)/2

swh_cond = not na(swh)



hprice = 0.0
hprice := swh_cond ? swh : hprice[1]

le = false
le := swh_cond ? true : le[1] and high > hprice ? false : le[1]

if le and time_cond
    strategy.entry("LONG", strategy.long, comment="LONG", stop=hprice + syminfo.mintick)

swl_cond = not na(swl)

lprice = 0.0
lprice := swl_cond ? swl : lprice[1]


se = false
se := swl_cond ? true : se[1] and low < lprice ? false : se[1]

if se and time_cond
    strategy.entry("SHORT", strategy.short, comment="SHORT", stop=lprice - syminfo.mintick)

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