Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Scripts

OHLC Reality Check - at what stop distance does your backtest start lying? - script para MetaTrader 5

Petr Kostal
Petr Kostal
Petr Kostal — algorithmic trading developer, Czech Republic.
I trade on live accounts myself, so I build EAs the way I'd want to run them.
What I build:
• Expert Advisors and indicators for MetaTrader 4 and 5 (MQL4 / MQL5)
| Portuguese English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
Visualizações:
28
Avaliação:
(2)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Todo backtest realizado com dados OHLC de 1 minuto parte de uma suposição implícita: que, dentro de uma barra, o preço seguiu a sequência Abertura – Mínimo – Máximo – Fechamento em uma barra de alta e Abertura – Máximo – Mínimo – Fechamento em uma barra de baixa. É preciso partir de alguma suposição, pois os dados OHLC não registram a trajetória. Os ticks reais, sim.

Essa suposição só importa quando a barra que encerra uma operação atinge tanto o stop quanto a meta. Nesse momento, a ordem determina se a operação foi lucrativa ou deficitária, e o testador está apenas supondo. Este script mede com que frequência essa suposição está errada.

Como funciona. Em cada barra M1, ele abre uma operação virtual entre limites — um nível acima da abertura da barra, outro abaixo, ambos à mesma distância — e avança até que o preço atinja um deles. Se a barra de fechamento atingiu apenas um nível, não havia nada a decidir. Se atingiu ambos, o script compara a suposição do testador com o que os ticks reais daquele minuto realmente fizeram.

A resposta depende inteiramente da amplitude do intervalo, então o script varre várias distâncias e exibe a curva. No XAUUSD, ao longo de 30 dias e 27.844 negociações virtuais:

  • stop de 20 pontos — 62,6% das negociações contestadas, 23,84% resolvidas de forma errada
  • Stop de 50 pontos — 30,1% contestadas, 8,25% erradas
  • stop de 100 pontos — 8,9% contestadas, 1,66% erradas
  • Stop de 200 pontos – 1,5% contestadas, 0,18% erradas
  • Stop de 500 pontos – 0,1% contestadas, 0,00% erradas
  • Stop de 1.000 pontos – nenhuma contestada, nenhuma errada

“Contestado” significa que a barra que fechou a operação atingiu ambos os níveis, de modo que a ordem determinou o resultado. “Errado” é a parcela de todas as operações resolvidas em que a ordem presumida pelo testador foi o oposto do que os ticks realmente fizeram — um lucro registrado como prejuízo, ou o contrário.

Portanto, a conclusão honesta não é “o OHLC sempre mente” ou “o OHLC está correto”. A imprecisão tem um limite, esse limite é específico para cada símbolo, e você pode medi-lo em onze segundos em vez de discutir sobre isso.

Entradas. InpSymbol (vazio = o símbolo do gráfico), InpDays, InpBrackets (as distâncias de stop a serem verificadas, em pontos), InpHorizonBars (por quanto tempo uma operação pode permanecer aberta antes de ser considerada não resolvida), InpStepBars (abre uma operação a cada N barras; aumente esse valor em máquinas lentas) e InpWriteCSV, que lista todas as operações mal resolvidas com sua hora de entrada, sua barra de fechamento, o que o modelo indicou e o que os ticks indicaram, para que você possa analisar casos individuais.

Ele apenas lê o histórico. Nunca coloca uma ordem e nunca altera uma posição aberta.

Requer histórico real de ticks para o símbolo — baixe-o primeiro na janela “Símbolos”; caso contrário, as negociações contestadas não poderão ser decididas.

A proporção de operações em um backtest OHLC apresenta resultados invertidos, de acordo com a distância do stop — XAUUSD, 30 dias

Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/77063

CGoldSymbol - find the broker's gold and size the position correctly on it CGoldSymbol - find the broker's gold and size the position correctly on it

Detecta o símbolo “gold”, independentemente do nome que a corretora lhe dê, lê as especificações do contrato diretamente do terminal em vez de presumí-las e converte um risco na moeda da conta em um tamanho de lote adequado para essa corretora.

Trade Excursion Report: MFE and MAE of every closed trade, to CSV Trade Excursion Report: MFE and MAE of every closed trade, to CSV

Exporta uma linha CSV por operação encerrada com os números que um extrato bancário não apresenta: o melhor lucro não realizado que a operação apresentou (MFE), a pior perda não realizada que ela suportou (MAE), quanto do MFE foi efetivamente mantido, quantas barras ela abrangeu e por quanto tempo foi mantida. A mesma métrica do indicador Trade Excursion, gravada em um arquivo em vez de exibida graficamente, pois as perguntas que valem a pena fazer sobre esses dados são aquelas que um gráfico não consegue responder: a taxa de captura depende da hora de entrada? As operações que eu fecho antecipadamente são as que eu mantenho por mais tempo? As operações com prejuízo às segundas-feiras atingem um MAE diferente das de sexta-feira? Basta uma tabela dinâmica para responder a essas perguntas, uma vez que o arquivo CSV esteja disponível. A saída é separada por ponto-e-vírgula com uma linha de cabeçalho, no formato MQL5\Files; abre em qualquer planilha. Limite da medição: as excursões são calculadas a partir das máximas e mínimas das barras no período de tempo escolhido; o trajeto dentro de uma barra é desconhecido. A coluna de barras informa a resolução obtida por cada operação, e o resumo conta as operações de barra única separadamente, em vez de calcular a média delas.

Accumulation/Distribution Accumulation/Distribution

O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.