Estratégias de negociação baseadas em reversões e saídas de pontos de pivô


Data de criação: 2024-04-30 15:57:54 última modificação: 2024-04-30 15:57:54
cópia: 0 Cliques: 404
1
focar em
1237
Seguidores

Estratégias de negociação baseadas em reversões e saídas de pontos de pivô

Visão geral

A estratégia baseia-se em Pivot Points para identificar os pontos de reversão do mercado e, com base nisso, negociar. Quando o mercado aparece na linha 4K da esquerda com o Pivot High, a estratégia abre uma posição maior; Quando o mercado aparece na linha 4K da esquerda com o Pivot Low, a estratégia abre uma posição vazia.

Princípio da estratégia

  1. Utilizando as funções ta.pivothigh () e ta.pivotlow () calcula-se o ponto central no intervalo de 4 linhas de K à esquerda e 2 linhas de K à direita, os pontos altos (swh) e baixos (swl).
  2. Quando o ponto mais alto do eixo central existe, atualize o preço mais alto e, ao mesmo tempo, satisfaça o preço mais alto atual do que o preço mais alto anterior.
  3. Quando a condição de multiplayer ((le) é estabelecida, o posicionamento é aberto na posição de uma unidade de menor variação (syminfo.mintick) acima da altura do ponto do eixo central.
  4. Semelhante a fazer mais, quando o ponto de eixo baixo está presente (swl_second), o preço mínimo é atualizado (lprice) e, ao mesmo tempo, o preço mínimo atual é menor do que o preço mínimo anterior, o mercado de entrada é aberto (se)
  5. Quando a condição de entrada para o shorting é estabelecida, abrimos uma posição em um ponto de menor mudança abaixo do ponto mais baixo do eixo central e fazemos um shorting.
  6. Na função exitAtNextPivot (), se houver uma posição de mais de um pivô, a perda será de uma unidade mínima de mudança abaixo do ponto mais baixo do ponto mais baixo do eixo; se houver uma posição de cabeça vazia, a perda será de uma unidade mínima de mudança acima do ponto mais alto do ponto mais alto do eixo.
  7. Na função exitIfProfitLessThanThirtyPercent (), calcula-se a percentagem de ganhos e perdas das posições de capital e de capital, e a liquidação se a perda for superior a 30%.

Vantagens estratégicas

  1. Os pivôes melhor refletem a posição de suporte e pressão do mercado, sendo um indicador de análise técnica comumente usado, com um certo grau de aceitação do mercado.
  2. Entrando no momento da ruptura do eixo, você pode capturar a oportunidade de reverter o mercado.
  3. Duas condições de saída foram estabelecidas, uma saída técnica baseada no próximo eixo de direção oposta, e outra saída de controle de vento baseada na porcentagem de perdas, permitindo um certo controle sobre a retirada da estratégia.

Risco estratégico

  1. O próprio indicador de pontos centrais também apresenta alguns problemas de atraso e frequência de sinais, que podem não funcionar bem em mercados agitados.
  2. Os parâmetros de cálculo de 4K e 2K fixos podem não ser aplicados a todas as situações de mercado e não possuem certa adaptabilidade e flexibilidade.
  3. A posição de parada é mais próxima do preço de entrada (uma unidade de menor variação) e pode ser abandonada em momentos de forte volatilidade do mercado.
  4. A configuração de perda de 30% pode ser muito relaxada e a margem de retração pode ser muito grande.

Direção de otimização da estratégia

  1. Pode-se experimentar o uso de outros tipos de indicadores de eixos centrais, como eixos centrais fatoriais, eixos centrais de ponderação, etc., para melhorar a sensibilidade e a disponibilidade dos indicadores.
  2. Os números de linha K podem ser usados como parâmetros de entrada para encontrar o melhor valor através da otimização dos parâmetros.
  3. A posição de parada pode ser otimizada para o ATR ou o percentual de parada, o primeiro pode se adaptar à variação da volatilidade do mercado, o segundo pode limitar o risco em limites controláveis.
  4. A condição de equilíbrio de perda de 30% pode ser apertada, reduzindo a retirada da estratégia. Além disso, a condição de equilíbrio de porcentagem de lucro pode ser aumentada, permitindo a gestão simultânea de flutuação e flutuação.
  5. Pode-se sobrepor outras condições de filtragem, como filtragem de tendência, filtragem de taxa de flutuação, etc., para melhorar a qualidade do sinal.

Resumir

A estratégia baseia-se em um sistema de negociação bidirecional baseado em indicadores de pontos de eixo para capturar oportunidades de reversão de mercado, fazendo excessos nos pontos altos e baixos. A estratégia tem uma base teórica e valor prático, mas pode enfrentar alguns riscos e desafios na operação real devido às limitações do próprio indicador de pontos de eixo.

Código-fonte da estratégia
/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Pivot Reversal Strategy with Pivot Exit", overlay=true)

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

var float dailyEquity = na

// Reset equity to $10,000 at the beginning of each day
isNewDay = ta.change(time("D")) != 0
if (isNewDay)
    dailyEquity := 10000

// Calculate pivot highs and lows
swh = ta.pivothigh(leftBars, rightBars)
swl = ta.pivotlow(leftBars, rightBars)

// Define long entry condition
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])

// Enter long position if long entry condition is met
if (le)
    strategy.entry("PivRevLE", strategy.long, comment="EnterLong", stop=hprice + syminfo.mintick)

// Define short entry condition
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])

// Enter short position if short entry condition is met
if (se)
    strategy.entry("PivRevSE", strategy.short, comment="EnterShort", stop=lprice - syminfo.mintick)

// Exit condition: Exit at the next pivot point
exitAtNextPivot() =>
    if strategy.opentrades > 0
        if strategy.position_size > 0
            // Exiting long position at next pivot low
            if not na(swl)
                strategy.exit("ExitLong", "PivRevLE", stop=swl - syminfo.mintick)
        else
            // Exiting short position at next pivot high
            if not na(swh)
                strategy.exit("ExitShort", "PivRevSE", stop=swh + syminfo.mintick)

// Call exitAtNextPivot function
exitAtNextPivot()

// Exit condition: Exit if profit is less than 30%
exitIfProfitLessThanThirtyPercent() =>
    if strategy.opentrades > 0
        if strategy.position_size > 0
            // Calculate profit percentage for long position
            profit_percentage_long = (close - strategy.position_avg_price) / strategy.position_avg_price * 100
            // Exiting long position if profit is less than 30%
            if profit_percentage_long < -30
                strategy.close("PivRevLE")
        else
            // Calculate profit percentage for short position
            profit_percentage_short = (strategy.position_avg_price - close) / strategy.position_avg_price * 100
            // Exiting short position if profit is less than 30%
            if profit_percentage_short < -30
                strategy.close("PivRevSE")

// Call exitIfProfitLessThanThirtyPercent function
exitIfProfitLessThanThirtyPercent()