
A estratégia de cruzamento de tendências de volumes e volumes é um sistema de negociação quantitativa baseado no mercado que permite tomar decisões de negociação através da identificação de pontos de transição do mercado de baixa volatilidade para alta volatilidade. A estratégia combina dois indicadores-chave: o indicador de volumes de volatilidade (VMI) e o centro de preços de volumes e volumes (VWPC). O VMI mede a aceleração da taxa de flutuação, que é usada para entrar em jogo quando o mercado passa de uma fase calma para uma fase ativa e sair quando a volatilidade atinge um ponto crítico de caos; e o VWPC, como um filtro de tendências baseado em volumes de negociação, determina a direção geral do mercado através de preços típicos.
O princípio central da estratégia é aproveitar os ciclos de variação e a direção da tendência na volatilidade do mercado para tomar decisões de negociação.
Calculo do indicador de variação de massa (VMI):
Capacidade ponderada pelo preço central (VWPC):
Implementação da lógica de transação em duas fases:
As estratégias permitem configurar a direção de negociação (comércio a longo prazo, a curto prazo ou a dois sentidos) e otimizar os parâmetros para se adaptar a diferentes condições de mercado.
Uma análise mais aprofundada do código da estratégia pode ser resumida com as seguintes vantagens:
Seleção de horários de negociação com base no ciclo do mercadoA estratégia identifica os pontos de transição do mercado de baixa para alta volatilidade através do indicador VMI, que muitas vezes representa o início de um novo movimento de preços, ajudando a entrar no início da tendência.
Confirmação de tendências em volume de transaçõesO VWPC fornece um indicador de tendência mais representativo do que a média móvel simples, reduzindo os falsos sinais, adicionando o peso do volume de transação.
Condições claras de entrada e saídaA estratégia possui uma lógica de entrada clara ((a oscilação começa a aumentar) e uma lógica de saída ((a oscilação atinge o limite), evitando o julgamento subjetivo.
Altamente adaptávelA estratégia pode ser adaptada a diferentes ambientes de mercado e variedades de negociação através da otimização de parâmetros. Em particular, os limiares de zona calma e zona caótica do VMI podem ser ajustados de acordo com as características do mercado.
Integração de Gestão de RiscosA estratégia inclui o gerenciamento de posições (usando 15% dos fundos da conta por defeito) e restrições de negociação inversa (pyramiding = 0), que ajudam a controlar o risco.
Ajuda visualA estratégia traça as linhas de tendência do VWPC e os sinais de entrada/saída no gráfico, para que os comerciantes possam entender intuitivamente o estado do mercado e a lógica da estratégia.
Eficiência computacionalA estratégia é mais eficiente em termos de computação por usar funções embutidas, como ta.rma e ta.barssince, e é adequada para aplicações de negociação em tempo real.
Apesar das vantagens da estratégia, há também os seguintes riscos potenciais:
Risco de Falso Avanço VolátilA solução é ajustar o limiar da zona de quietude do VMI ou aumentar a condição de confirmação.
O atraso na avaliação de tendênciasO VWPC pode ter um certo atraso como indicador de tendência e pode não reagir em tempo hábil quando o mercado muda drasticamente. Pode ser considerado um julgamento auxiliar em combinação com o indicador de dinâmica de curto prazo.
Sensibilidade do parâmetro: A performance da estratégia é sensível à configuração de parâmetros (especialmente o comprimento e o limiar do VMI), e diferentes ambientes de mercado podem exigir diferentes combinações de parâmetros. Recomenda-se a otimização de parâmetros para diferentes ambientes de mercado por meio de feedback.
Incerteza de frequência de transaçãoComo a estratégia é baseada em variações de volatilidade, a frequência de sinais de negociação pode variar muito em diferentes fases do mercado, afetando a taxa de retorno geral e o controle de retração.
Impacto no custo de transaçãoEmbora a estratégia tenha em conta a comissão de negociação (<0.075%), os pontos de deslizamento e outros custos de negociação podem afetar ainda mais o desempenho da estratégia nas negociações reais.
Dependendo do volume de transaçõesO indicador VWPC depende de dados de volume de transações, que podem ser imprecisos ou não confiáveis em certos mercados ou períodos de tempo, afetando a precisão do indicador.
Ao analisar o código em profundidade, pode-se sugerir as seguintes direções de otimização:
Adição de um filtro de volatilidadeIntrodução de um mecanismo de ajuste de limiar dinâmico baseado na volatilidade histórica, permitindo que os limiares da zona de calma e da zona de caos do VMI se ajustem automaticamente em função do nível de flutuação do mercado em geral, aumentando a adaptabilidade da estratégia.
Mecanismo de confirmação de tendências: Pode ser adicionado a confirmação de tendências de múltiplos quadros temporais com base no VWPC, ou em combinação com outros indicadores de tendência (como o indicador de direção ADX), aumentando a precisão do julgamento de tendências.
Otimização do mecanismo de saídaA estratégia atual só é executada quando o VMI atinge a zona de caos, podendo ser considerada a adição de níveis de stop loss e de lucro-alvo, ou uma estratégia de stop loss dinâmica baseada na volatilidade para melhor controlar o risco e bloquear os lucros.
Aumentar a filtragem de volumeA partir do momento em que a transação é confirmada, o cliente pode entrar apenas se o volume de transações aumentar, evitando transações em um ambiente de baixa liquidez.
Adicionar um filtro de tempo: alguns mercados podem ter um padrão de volatilidade em determinados períodos de tempo, pode aumentar o tempo de filtragem condição, evitando o tempo de negociação conhecido ineficiência.
Mecanismo de adaptação de parâmetros: um mecanismo pode ser desenvolvido para ajustar automaticamente os parâmetros com base no desempenho recente do mercado, para que a estratégia possa se adaptar melhor às mudanças do mercado.
Optimizar a gestão de fundos: Permite a gestão de posições dinâmicas baseadas na volatilidade, ajustando o tamanho da negociação em diferentes ambientes de volatilidade, equilibrando riscos e ganhos.
A estratégia de cruzamento de tendências de volumes de volatilidade e de volume ponderado é um sistema de negociação quantitativa que combina análise de volatilidade e rastreamento de tendências. Ela entra no mercado através do indicador VMI para capturar o ponto de transição do mercado de calmo para ativo e sai quando a volatilidade atinge o pico; ao mesmo tempo, usa o indicador VWPC para garantir que a direção da negociação esteja de acordo com a tendência geral.
No entanto, a estratégia também enfrenta desafios como falsas rupturas de volatilidade, atrasos no julgamento de tendências e sensibilidade de parâmetros. A robustez e adaptabilidade da estratégia podem ser aumentadas ainda mais pela introdução de ajustes de limiar dinâmicos, mecanismos de confirmação de tendências aprimorados, otimização da lógica de saída e implementação de parâmetros de adaptação.
Em última análise, a estratégia fornece uma estrutura de negociação baseada em turbulências e ciclos de volatilidade do mercado, adequada para aplicações em vários ambientes de mercado, mas os comerciantes ainda precisam de otimização de parâmetros e ajustes de estratégia de acordo com a variedade de negociação específica e as características do mercado para obter o melhor efeito.
/*backtest
start: 2024-07-14 00:00:00
end: 2025-07-12 08:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":200000}]
*/
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © TiamatCrypto
//@version=5
strategy("Market Entropy Strategy V2.5",
overlay=true,
initial_capital=10000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=15, // Slightly more aggressive allocation
commission_type=strategy.commission.percent,
commission_value=0.075,
pyramiding=0) // Allow only one trade in one direction
// --- General Settings ---
trade_direction = input.string("Both", "Trade Direction", options=["Long", "Short", "Both"], group="General Settings")
// --- Inputs for Optimization ---
// VMI Settings
vmi_length = input.int(14, "VMI Length", group="VMI Settings")
atr_period = input.int(10, "ATR Period for VMI", group="VMI Settings")
vmi_calm_zone = input.int(25, "VMI Calm Zone (Entry Level)", group="VMI Settings", step=5)
vmi_chaos_zone = input.int(85, "VMI Chaos Zone (Exit Level)", group="VMI Settings", step=5)
// VWPC Settings
vwpc_length = input.int(50, "VWPC Filter Length", group="VWPC Trend Filter")
setup_lookback = input.int(10, "How far to look for 'Armed' (candles)", group="Entry Logic")
// --- Indicator #1: Volatility Momentum Index (VMI) ---
current_atr = ta.atr(atr_period)
atr_change = current_atr - current_atr[1]
up_accel = atr_change > 0 ? atr_change : 0
down_accel = atr_change < 0 ? -atr_change : 0
avg_up_accel = ta.rma(up_accel, vmi_length)
avg_down_accel = ta.rma(down_accel, vmi_length)
rs_vmi = avg_down_accel == 0 ? 0 : avg_up_accel / avg_down_accel
vmi = avg_down_accel == 0 ? 100 : avg_up_accel == 0 ? 0 : 100 - (100 / (1 + rs_vmi))
// --- Indicator #2: Volume-Weighted Price Center (VWPC) ---
// Function to calculate VWPC
f_vwpc(length) =>
sum_price_volume = 0.0
sum_volume = 0.0
// We use the typical price, which better represents the candle
typical_price = (high + low + close) / 3
for i = 0 to length - 1
sum_price_volume += typical_price[i] * nz(volume[i])
sum_volume += nz(volume[i])
sum_volume == 0 ? typical_price : sum_price_volume / sum_volume
vwpc = f_vwpc(vwpc_length)
// --- Strategy Logic ---
// Trend Definition
is_uptrend = close > vwpc
is_downtrend = close < vwpc
// Phase 1: "Armed" Condition (Setup)
// We check if VMI WAS in the calm zone in the recent past
was_calm_recently = ta.barssince(vmi < vmi_calm_zone) < setup_lookback
// Phase 2: "Fire" Condition (Trigger)
// VMI is currently crossing the Calm Zone upwards
trigger_fire = ta.crossover(vmi, vmi_calm_zone)
// Combination for ENTRY
buy_signal = is_uptrend and was_calm_recently and trigger_fire
sell_signal = is_downtrend and was_calm_recently and trigger_fire
// Condition for EXIT ("Exhaustion")
// The same condition applies for both long and short - peak chaos
exit_signal = ta.crossover(vmi, vmi_chaos_zone)
// --- Executing Orders ---
// Entry Conditions
allow_longs = trade_direction == "Long" or trade_direction == "Both"
allow_shorts = trade_direction == "Short" or trade_direction == "Both"
// Entries
if (buy_signal and allow_longs)
strategy.entry("Buy", strategy.long, comment="Enter LONG (Armed->Fire)")
if (sell_signal and allow_shorts)
strategy.entry("Sell", strategy.short, comment="Enter SHORT (Armed->Fire)")
// Exits
if (strategy.position_size > 0 and exit_signal)
strategy.close("Buy", comment="Exit LONG (Chaos)")
if (strategy.position_size < 0 and exit_signal)
strategy.close("Sell", comment="Exit SHORT (Chaos)")
// --- Plotting on the chart for visual inspection ---
plot(vwpc, "VWPC Center of Gravity", color=color.new(color.yellow, 0), linewidth=2)
plotshape(buy_signal and allow_longs, "LONG Entry", shape.labelup, location.belowbar, color=color.new(color.aqua, 0), text="ENTRY ↑", textcolor=color.white, size=size.small)
plotshape(sell_signal and allow_shorts, "SHORT Entry", shape.labeldown, location.abovebar, color=color.new(color.fuchsia, 0), text="ENTRY ↓", textcolor=color.white, size=size.small)
// Plotting the exit signal for a better overview
exit_marker_y_pos = strategy.position_size > 0 ? high : low
plotshape(series=(exit_signal and strategy.position_size != 0 ? exit_marker_y_pos : na), title="Exit", style=shape.xcross, location=location.absolute, color=color.new(color.orange, 0), size=size.tiny, text="END")