O recurso está a ser carregado... Carregamento...

Estratégia de negociação de volume delta com níveis de Fibonacci

Autora:ChaoZhang, Data: 2024-05-15 10:45:58
Tags:

img

Resumo

Esta estratégia é uma estratégia de negociação baseada no Volume Delta e no Retracement de Fibonacci. Determina a tendência do mercado comparando o volume de compradores e vendedores ao longo de um período de tempo, enquanto usa linhas de retracement de Fibonacci para determinar pontos de entrada e saída. Quando o volume do comprador excede o volume do vendedor e o preço atravessa a linha de retracement de Fibonacci de 61,8%, ele entra em uma posição longa; quando o volume do vendedor excede o volume do comprador e o preço cai abaixo da linha de retracement de Fibonacci de 38,2%, ele fecha a posição.

Princípio da estratégia

  1. Calcular o volume do comprador e o volume do vendedor para o período especificado e armazená-los em matrizes.
  2. Calcule o Volume Delta, que é o volume do comprador menos o volume do vendedor.
  3. Calcular os preços mais altos e mais baixos para o período especificado e calcular as linhas de retração de Fibonacci de 38,2% e 61,8% com base neles.
  4. Quando o Volume Delta for superior a 0 (o volume do comprador é superior ao volume do vendedor) e o preço de encerramento for superior à linha de retracement de Fibonacci de 61,8%, abra uma posição longa.
  5. Quando o Volume Delta for inferior a 0 (o volume do vendedor é superior ao volume do comprador) e o preço de encerramento for inferior à linha de retracement de Fibonacci de 38,2%, feche a posição.

Vantagens da estratégia

  1. Ao combinar as dimensões de volume e de preço, pode julgar de forma mais abrangente a tendência do mercado.
  2. Usar linhas de retracementos de Fibonacci como pontos de entrada e saída tem um claro suporte técnico.
  3. O indicador Delta Volume pode refletir a relação entre a oferta e a procura no mercado, que é um indicador líder.
  4. Os parâmetros são ajustáveis e aplicáveis a diferentes mercados e variedades de negociação.

Riscos estratégicos

  1. No mercado oscilante, as entradas e saídas frequentes podem levar a custos de transacção mais elevados.
  2. Se o mercado flutuar drasticamente, os preços podem romper rapidamente as linhas de retração de Fibonacci, levando a perder os melhores pontos de entrada e saída.
  3. A estratégia baseia-se em dados históricos para o cálculo, o que pode afetar a eficácia da estratégia em caso de variedades comerciais recentemente listadas ou de situações em que faltam dados.

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

  1. Considerar a introdução de outros indicadores técnicos, tais como médias móveis, RSI, etc., para confirmar tendências e pontos de entrada/saída.
  2. Para diferentes mercados e variedades de negociação, otimizar o período de cálculo e os parâmetros do Volume Delta e do Retracement de Fibonacci.
  3. Depois de entrar numa posição, defina um stop loss ou take profit para controlar o risco e bloquear os lucros.
  4. Combine com indicadores de sentimento do mercado, como o Índice de Medo e Ganância, para ajustar dinamicamente a estratégia.

Resumo

Ao combinar as linhas Delta Volume e Fibonacci Retracement, esta estratégia entra quando uma tendência está se formando e sai quando a tendência pode se inverter, a fim de capturar a tendência principal do mercado. No entanto, pode enfrentar o risco de negociação frequente no mercado oscilante, por isso precisa ser otimizada com outros indicadores e medidas de controle de risco.


/*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")


Mais.