
A estratégia de reversão de zona de valor de futuros baseada na regra do 80% é um sistema de negociação quantitativa projetado especificamente para validar a configuração clássica da regra do 80%. A idéia central da estratégia é capturar oportunidades de reversão após o preço reentrar na zona de valor do dia anterior. A estratégia funciona dentro de um período de tempo de negociação de futuros ETH bem definido, quando o preço reentrar na zona de valor do dia anterior e permanecer dentro dessa região por tempo suficiente, o sistema aciona um sinal de negociação, com o objetivo principal de controlar o ponto de controle do preço (POC), além de rastrear o trajeto completo da zona de valor para análise.
A estratégia baseia-se no princípio da regressão ao valor médio da tendência do mercado, com especial atenção à relação entre preços e áreas de valor. A lógica central da estratégia inclui:
Definição do período de transaçãoA estratégia é definida para a verdadeira janela de 22 horas do ETH (das 17h00 às 15h00 do dia seguinte, hora do Pacífico) e suporta a configuração do fuso horário global. Isso garante que a estratégia funcione no ambiente de mercado correto.
Cálculo da área de valorO sistema calcula automaticamente os pontos altos da zona de valor (VAH), os pontos baixos da zona de valor (VAL) e os pontos de controle de preços (POC):
Mecanismo de confirmação de sinal: O preço deve reentrar na zona de valor e permanecer na zona por pelo menos 45 minutos (as 3 linhas K no gráfico de 15 minutos) para confirmar o sinal de entrada. Esta exigência garante a veracidade da intenção de reversão do preço.
Filtragem com data de vigência:
Condições de desencadeamento:
Estratégia de saídaO objetivo principal é sair quando o preço chega ao POC, o que está de acordo com a idéia central da regressão à média.
Estatística BásicaA estratégia baseia-se nas áreas de valor e na lei do 80%, ambas com uma base estatística sólida. As áreas de valor representam as áreas onde ocorrem 68% da atividade de preço, semelhante a um desvio padrão da distribuição normal.
Definição precisa da janela de transaçãoA estratégia usa uma janela real de 22 horas de ETH, em vez de simples intervalos diários, o que reflete mais precisamente a estrutura do mercado.
Suporte de fuso horário flexívelOs traders globais podem ajustar suas estratégias de acordo com sua localização geográfica, permitindo que o sistema funcione em qualquer fuso horário.
Verificação de sinais rigorosaRequer que o preço mantenha pelo menos 3 linhas K dentro da área de valor para confirmar o sinal, reduzindo significativamente a possibilidade de um falso sinal.
Definir objetivos precisosO uso do POC como principal alvo oferece vantagens claras, de acordo com a característica de regressão de valor médio comum no mercado de futuros.
Mecanismo de verificação dupla: não só exige que o preço reentre na zona de valor, mas também que se refaça o limite ((VAL ou VAH), o que aumenta a confiabilidade do sinal.
Modo de cobertura manual: Quando a lógica automática é insuficiente para responder a condições de mercado especiais, a estratégia permite que o comerciante use o nível de área de valor definido manualmente.
Funções de debug: Fornece etiquetas de diagnóstico detalhadas para o desenvolvimento de estratégias e testes futuros.
Regresso ao valor médio e risco de falhaEmbora a regra dos 80% seja válida em muitas situações, o mercado também pode apresentar fortes tendências que impedem o retorno do preço ao POC. Para mitigar esse risco, considere adicionar filtros de tendência ou definir um ponto de parada.
Sensibilidade do parâmetroO requisito de confirmação de 3 linhas K (<45 minutos) é um parâmetro-chave. Ser muito curto pode levar a uma entrada prematura e ser muito longo pode levar a uma oportunidade perdida. É recomendável testar diferentes configurações de tempo de confirmação em diferentes condições de mercado.
Dependência do ambiente de mercadoA estratégia funciona melhor em mercados de baixa volatilidade, mas pode não funcionar bem em ambientes de forte tendência ou alta volatilidade. Deve-se considerar a adição de filtros de ambientes de mercado.
A escolha do momento do risco: A performance da estratégia pode ser influenciada pelo período de negociação escolhido (Nova York, Londres, Tóquio ou o tempo todo). Recomenda-se analisar a performance histórica de diferentes períodos de negociação e selecionar o melhor período.
Limitações da metodologia de cálculo da zona de valor: O uso de uma faixa fixa de 68% e o cálculo simplificado do POC podem não refletir com precisão a distribuição de valor real de alguns mercados. Considerando que o uso de uma metodologia de cálculo de áreas de valor baseada em volume de transações pode ser mais preciso.
Falta de mecanismos de contençãoA estratégia atual não possui um mecanismo de stop loss definido, o que pode levar a perdas graves em situações de mercado extremo. Recomenda-se a implementação de uma configuração de stop loss baseada no ATR ou em porcentagens fixas.
Condições de confirmação dinâmicasA estratégia atual usa uma linha K de 3 fixos como condição de confirmação. Este parâmetro pode ser ajustado de acordo com a volatilidade do mercado. O tempo de confirmação pode ser mais longo em períodos de alta volatilidade e pode ser reduzido em períodos de baixa volatilidade.
Áreas de valor baseadas em volume de transaçãoO cálculo da área de valor atual é uma simplificação baseada no preço. Pode ser atualizado para a análise do TPO (Time Price Opportunity) baseada no volume de transações ou para a distribuição do volume de transações (Volume Profile), o que refletirá com mais precisão a área de valor consensual dos participantes do mercado.
Confirmação do Multi-TemposA combinação da direção da tendência com um maior período de tempo pode filtrar os sinais de contracorrente, apenas os sinais de regra de 80% do movimento de negociação, e pode aumentar a taxa de sucesso da estratégia.
Definição de metas adaptativasPode-se considerar a definição de objetivos dinâmicos de acordo com a volatilidade do mercado, por exemplo, estabelecer objetivos mais distantes em mercados de alta volatilidade (como VAH ou VAL).
Filtro de taxa de flutuação: Adicionar o ATR ou outros indicadores de volatilidade como condição de filtragem para evitar a negociação em ambientes de mercado com baixa ou alta volatilidade.
Optimizar a configuração do intervaloAnálise profunda do desempenho da estratégia em diferentes fusos horários e períodos de negociação para encontrar a melhor combinação de períodos de negociação.
Mecanismos inteligentes de paradaImplementação de lógica de parada inteligente, como parada baseada em pontos de suporte/resistência ou parada de rastreamento baseada em flutuações de preços, para gerenciar melhor o risco.
Nível de intensidade do sinal: Desenvolver um sistema de classificação de qualidade de sinal, combinando a intensidade de reentrada de preços, a identificação de características da linha K e outros fatores de mercado, atribuindo uma classificação de intensidade para cada sinal, para determinar o tamanho da posição.
A estratégia de reversão de zona de valor de futuros baseada na regra do 80% é um sistema de negociação quantitativa cuidadosamente concebido para capturar oportunidades de reversão de preços de volta à zona de valor. Ele fornece aos comerciantes uma maneira sistematizada de aplicar a regra clássica do 80% de negociação através de um mecanismo de confirmação de sinal rigoroso, definição de períodos precisos e definição de objetivos claros.
A principal vantagem da estratégia reside na sua base estatística, exigências rigorosas de confirmação de sinais e opções de configuração flexíveis. No entanto, também existem riscos, como falha de regressão ao valor médio, sensibilidade de parâmetros e dependência do ambiente de mercado. A robustez e adaptabilidade da estratégia podem ser significativamente aumentadas pela implementação de medidas de otimização, como condições de confirmação dinâmicas, cálculo de áreas de valor baseadas em volumes transacionados, confirmação de quadros de tempo múltiplos e configuração de objetivos de adaptação.
Para os comerciantes que procuram estratégias de retorno de valor médio aplicadas no mercado de futuros, este sistema baseado na regra do 80% oferece um ponto de partida sólido, que pode ser personalizado e otimizado ainda mais de acordo com as preferências de risco pessoais e as perspectivas do mercado.
/*backtest
start: 2025-07-09 00:00:00
end: 2025-07-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_OKX","currency":"SOL_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/
// © dscottmuller
// === Update July 15, 2025 ===
// • Converted to strategy for backtesting
// • POC-based exits for precision targeting
// • Full move markers for research tracking
// • Global time zone input (default: America/Los_Angeles)
//@version=5
strategy("80% Rule Backtest", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// === General Inputs ===
useAllMarkets = input.bool(false, "Use 24-Hour Session (All Markets)")
sessionChoice = input.string("New York", "Market Session", options=["New York", "London", "Tokyo"])
showSessionBox = input.bool(false, "Highlight Selected Session")
enableSounds = input.bool(false, "Enable Audible Alerts")
extendLines = input.bool(true, "Extend Lines Right")
// === Advanced Session Settings ===
group = "Advanced Session Settings"
showAutoLevels = input.bool(true, "Show Auto-Calculated VAH/POC/VAL", group=group)
useManualLevels = input.bool(false, "Use Manual VAH/POC/VAL", group=group)
manualVAH = input.float(0.0, "Manual VAH", group=group)
manualVAL = input.float(0.0, "Manual VAL", group=group)
manualPOC = input.float(0.0, "Manual POC", group=group)
debugMode = input.bool(false, "Enable Debug Mode", group=group)
// === Time Zone Selection ===
sessionTZ = input.string("America/Los_Angeles", "ETH Session Timezone",
options=[
"America/Los_Angeles", // Default: Pacific Time
"America/New_York",
"America/Chicago",
"America/Denver",
"Europe/London",
"Europe/Paris",
"Asia/Tokyo",
"Australia/Sydney"
], group=group)
// === Market Session Filter ===
nySession = time(timeframe.period, "0930-1600", "America/New_York")
londonSession = time(timeframe.period, "0800-1630", "Europe/London")
tokyoSession = time(timeframe.period, "0900-1500", "Asia/Tokyo")
allSession = time(timeframe.period, "0000-0000")
inSession = useAllMarkets ? not na(allSession) : sessionChoice == "New York" ? not na(nySession) : sessionChoice == "London" ? not na(londonSession) : sessionChoice == "Tokyo" ? not na(tokyoSession) : false
bgcolor(showSessionBox and inSession ? color.new(color.blue, 90) : na)
// === ETH Session Window (22-Hour Futures) ===
ethStart = timestamp(sessionTZ, year, month, dayofmonth - 1, 17, 00)
ethEnd = timestamp(sessionTZ, year, month, dayofmonth, 15, 00)
inEthWindow = time("30") >= ethStart and time("30") <= ethEnd
ethHigh = inEthWindow ? high : na
ethLow = inEthWindow ? low : na
ethClose = inEthWindow ? close : na
extHigh = ta.highest(ethHigh, 100)
extLow = ta.lowest(ethLow, 100)
extClose = ta.valuewhen(not na(ethClose), ethClose, 0)
// === Value Area Calculations ===
vaRange = (extHigh - extLow) * 0.68
vah = extHigh - ((extHigh - extLow - vaRange) / 2)
val = extLow + ((extHigh - extLow - vaRange) / 2)
poc = (extHigh + extLow + extClose) / 3
finalVAH = useManualLevels ? manualVAH : vah
finalVAL = useManualLevels ? manualVAL : val
finalPOC = useManualLevels ? manualPOC : poc
// === Signal Logic ===
validLongDay = extClose < finalVAL
validShortDay = extClose > finalVAH
insideVA = close > finalVAL and close < finalVAH
reenteredFromBelow = validLongDay and close > finalVAL
reenteredFromAbove = validShortDay and close < finalVAH
var int barsInside = 0
barsInside := ta.change(time("D")) ? 0 : insideVA ? barsInside + 1 : 0
insideConfirmed = barsInside >= 3
retestVAL = validLongDay and low <= finalVAL
retestVAH = validShortDay and high >= finalVAH
longSignal = inSession and validLongDay and reenteredFromBelow and insideConfirmed and retestVAL
shortSignal = inSession and validShortDay and reenteredFromAbove and insideConfirmed and retestVAH
longBar = longSignal and not longSignal[1]
shortBar = shortSignal and not shortSignal[1]
// === Strategy Entries ===
if longBar
strategy.entry("Long", strategy.long, comment="80% Long Signal")
if shortBar
strategy.entry("Short", strategy.short, comment="80% Short Signal")
// === Strategy Exits at POC ===
strategy.exit("Long to POC", from_entry="Long", limit=finalPOC)
strategy.exit("Short to POC", from_entry="Short", limit=finalPOC)
// === Track Full Move (Visual Only) ===
longFullHit = longBar and high >= finalVAH
shortFullHit = shortBar and low <= finalVAL
plotshape(longFullHit, title="Full Move Long", location=location.abovebar, color=color.green, style=shape.triangleup, text="FULL")
plotshape(shortFullHit, title="Full Move Short", location=location.belowbar, color=color.red, style=shape.triangledown, text="FULL")
// === Debug Diagnostics ===
if debugMode and (longBar or shortBar)
debugText = (useManualLevels ? "Manual Mode" : "Auto Mode") + " | TZ: " + sessionTZ + " | 80% Triggered | barsInside: " + str.tostring(barsInside)
label.new(bar_index, close, debugText, xloc.bar_index, longBar ? yloc.belowbar : yloc.abovebar, style=label.style_label_left, textcolor=color.white, size=size.small, color=color.new(color.gray, 70))