Estratégia de negociação baseada em retrações de Fibonacci e incrementos de volume


Data de criação: 2024-05-15 10:45:58 última modificação: 2024-05-15 10:45:58
cópia: 0 Cliques: 694
1
focar em
1617
Seguidores

Estratégia de negociação baseada em retrações de Fibonacci e incrementos de volume

Visão geral

Esta estratégia é uma estratégia de negociação baseada no aumento do volume de transação (Delta Volume) e retracimento de Fibonacci (Fibonacci Retracement). Ela julga a tendência do mercado comparando o volume de transação de compradores e vendedores ao longo de um período de tempo, enquanto usa a linha de retracimento de Fibonacci para determinar o ponto de entrada.

Princípio da estratégia

  1. Calcula o volume de transações de compradores e vendedores no período especificado e armazena-o em uma matriz.
  2. Calcule o aumento do volume de transações (Delta Volume), ou seja, o volume de transações do comprador menos o volume de transações do vendedor.
  3. Calcular o máximo e o mínimo do preço no período especificado e, com base neles, calcular as linhas de Fibonacci de 38,2% e 61,8%.
  4. Quando o volume de transação cresce mais do que 0 (o volume de transação do comprador é maior que o volume de transação do vendedor) e o preço de fechamento é superior à linha de retorno de Fibonacci de 61.8%, abrir uma posição é mais.
  5. Quando o aumento de volume de transação é menor que 0 (o volume de transação do vendedor é maior do que o volume de transação do comprador) e o preço de fechamento está abaixo da linha de retorno de Fibonacci de 38,2%, a posição está em equilíbrio.

Vantagens estratégicas

  1. A combinação das duas dimensões, volume e preço, permite um julgamento mais abrangente das tendências do mercado.
  2. A utilização da linha de retorno de Fibonacci como ponto de entrada e saída, com um claro suporte técnico.
  3. O indicador de crescimento do volume de transações pode refletir a relação de oferta e demanda no mercado, sendo um indicador líder.
  4. Os parâmetros são ajustáveis para diferentes mercados e variedades de negociação.

Risco estratégico

  1. Em um mercado em turbulência, a frequência de entradas e saídas pode levar a custos de transação mais elevados.
  2. Se houver uma forte oscilação no mercado, o preço pode rapidamente ultrapassar a linha de retorno de Fibonacci, resultando na perda dos melhores pontos de entrada e saída.
  3. A estratégia se baseia em dados históricos para o cálculo, que podem afetar a eficácia da estratégia para novas variedades de transações listadas ou em casos de falta de dados.

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

  1. Pode-se considerar a introdução de outros indicadores técnicos, como a média móvel, o RSI, etc., para confirmar tendências e pontos de entrada e saída.
  2. Para diferentes mercados e variedades de negociação, pode-se otimizar o aumento do volume de transação e o ciclo de cálculo e os parâmetros do retorno de Fibonacci.
  3. Depois de entrar em campo, pode-se definir um stop loss móvel ou um stop-loss para controlar o risco e bloquear os lucros.
  4. Pode-se combinar indicadores de sentimento do mercado, como o Fear & Greed Index, para ajustar dinamicamente a estratégia.

Resumir

A estratégia, combinando o acréscimo de volume e a retracção de Fibonacci, entra no início da formação da tendência e sai quando a tendência pode ser revertida, para capturar a tendência principal do mercado. No entanto, pode haver riscos de negociação frequente em mercados turbulentos, portanto, é necessário otimizá-lo em combinação com outros indicadores e meios de controle de risco.

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

//@version=5
strategy("Delta Volume with Fibonacci Levels Strategy", overlay=true)

// Input pour la période de calcul du volume et du delta
N = input(14, title="Période du Delta Volume")
fibLength = input(21, title="Fibonacci Lookback Period")

// Choix de la barre pour l'entrée et la sortie des trades
entryPriceType = input.string("close", title="Entry Price Type", options=["open", "close"])
exitPriceType = input.string("close", title="Exit Price Type", options=["open", "close"])

// Correction des dates de début et de fin pour le backtest
startDate = input(defval = timestamp("2021-01-01"), title = "Start Date")
endDate = input(defval = timestamp("2022-01-01"), title = "End Date")

// Calcul des volumes des acheteurs et des vendeurs
buyerVolume = array.new_float()
sellerVolume = array.new_float()

// Mise à jour des volumes à chaque bougie
buyVol = close > open ? volume : 0
sellVol = close < open ? volume : 0
array.unshift(buyerVolume, buyVol)
array.unshift(sellerVolume, sellVol)

// Gardez seulement les N dernières valeurs pour le delta volume
if array.size(buyerVolume) > N
    array.pop(buyerVolume)
if array.size(sellerVolume) > N
    array.pop(sellerVolume)

// Calcul du delta de volume
sumBuyerVolume = array.sum(buyerVolume)
sumSellerVolume = array.sum(sellerVolume)
deltaVolume = sumBuyerVolume - sumSellerVolume

// Calcul du plus haut et du plus bas pour Fibonacci
highestPrice = ta.highest(high, fibLength)
lowestPrice = ta.lowest(low, fibLength)

// Fibonacci Levels
fib382 = lowestPrice + (highestPrice - lowestPrice) * 0.5
fib618 = lowestPrice + (highestPrice - lowestPrice) * 0.786


// Vérification des dates pour le backtest
bool isInDateRange = true

// Conditions d'entrée et de sortie
entryPrice = entryPriceType == "open" ? open : close
exitPrice = exitPriceType == "open" ? open : close

// Acheter quand le volume des acheteurs dépasse celui des vendeurs, le prix est au-dessus du niveau 61.8% de Fibonacci
if isInDateRange and deltaVolume > 0 and entryPrice > fib618
    strategy.entry("Buy", strategy.long)

// Vendre quand le volume des vendeurs dépasse celui des acheteurs, le prix est en dessous du niveau 38.2% de Fibonacci
if isInDateRange and deltaVolume < 0 and exitPrice < fib382
    strategy.close("Buy")

// Affichage des niveaux de Fibonacci et du delta de volume
plot(fib382, color=color.red, title="Fibonacci 38.2%")
plot(fib618, color=color.green, title="Fibonacci 61.8%")
plot(deltaVolume, color=deltaVolume > 0 ? color.green : color.red, title="Delta Volume")