
O EdgeMeter responde a uma pergunta sobre qualquer sinal de entrada:
após os custos de transação, esse sinal gera lucro?
Ele não abre ordens. Ele analisa o histórico, avalia seu sinal em cada
barra e apresenta um veredicto.
POR QUE EU O CRIEI
Passei um mês desenvolvendo um EA de grid no XAUUSD M1. Defini o stop loss, adicionei
um limite flutuante de perda, uma saída por reversão e um tempo máximo de permanência na cesta. Ele continuava perdendo.
Quando finalmente analisei o sinal de ENTRADA isoladamente, a resposta levou trinta
segundos:
movimento médio após o sinal, em 15 min: +0,04
spread pago por transação de ida e volta: 0,26
Nenhuma lógica de saída pode consertar isso. O dinheiro foi perdido na entrada, e cada hora que
gastei com saídas foi desperdiçado. É para evitar isso que este script existe.
O QUE ELE RELATA
Para cada período de manutenção que você especificar:
- vantagem bruta: o movimento favorável médio após o sinal
- resultado líquido após o custo, simulado uma posição por vez
- estatística t calculada com base em operações NÃO SOBREPOSTAS
- porcentagem de meses lucrativos
- drawdown máximo
Em seguida, executa a mesma análise em um CONTROLE ALEATÓRIO: mesma frequência de execução,
direção determinada por sorteio. Uma entrada aleatória deve perder exatamente o custo da transação,
nem mais, nem menos. Isso tem duas funções. Comprova que o simulador está correto
e fornece o ruído de fundo. Se o seu sinal não superar claramente essas
linhas, ele não contém nenhuma informação.
A ARMADILHA DA SOBREPOSIÇÃO
Essa é a parte que me confundiu, e que confunde a maioria das pessoas.
Sinais consecutivos compartilham a maior parte de sua janela de avanço. Um horizonte de 60 compassos
amostrado a cada barra resulta em janelas que se sobrepõem de 59 maneiras diferentes. Tratá-las como
independentes infla a estatística t em aproximadamente a raiz quadrada do horizonte.
Meu próprio sinal apresentou t = 3,32 dessa forma, o que parece convincente. Em amostras genuinamente
, o valor foi t = 1,20 — indistinguível do ruído. O EdgeMeter
simula uma posição por vez, de modo que as operações que ele relata não se sobrepõem e
a estatística t é confiável.
CRITÉRIOS DE APROVAÇÃO
O script verifica três critérios, e todos os três são obrigatórios:
[1] lucro líquido por operação > 0 após os custos
[2] |t| > 2
[3] pelo menos 3 meses lucrativos em 4
Defina seus critérios antes de analisar os números. Decidir depois é
como um sistema perdedor acaba sendo implementado em uma conta real.
COMO TESTAR SEU PRÓPRIO SINAL
Abra o arquivo e edite duas funções na SEÇÃO DO USUÁRIO. Nada mais precisa
ser alterado.
bool UserInit() - crie os identificadores do seu indicador e carregue seus
buffers com LoadBuffer() / LoadBufferB()
int UserSignal(int i) — avalie a barra fechada i
retorne +1 para comprar, -1 para vender, 0 para ficar de fora
Todas as matrizes são indexadas com 0 = barra mais antiga. Isso é o oposto da
e é deliberado: um retorno para a frente é, então, simplesmente
índice + horizonte, o que elimina toda uma classe de erros de sinal.
A entrada é simulada no Open(i+1), a próxima barra. Nunca leia a barra i+1 ou posteriores
dentro do UserSignal — isso é viés de antecipação e fará com que um
parecer brilhante.
O UserSignal padrão é um cruzamento de médias móveis em dois intervalos de tempo, mantido como um
exemplo prático. Substitua-o.
DEFINIÇÃO DO CUSTO
InpSpread, InpCommission e InpSlippage estão em unidades de PREÇO, não em pontos, e
são os parâmetros mais importantes do script. Obtenha-os a partir da sua própria
conta, e não a partir dos valores divulgados pela corretora.
Se você tiver um registro de execução de negociações reais ou em conta demo, use a
média medida. Caso contrário, utilize o spread típico que você observa no gráfico e acrescente
uma margem para slippage, em vez de supor que seja zero. Um servidor de demonstração exibirá
slippage próximo de zero; essa é uma característica do servidor de demonstração, não do mercado.
REQUISITOS
Carregue histórico suficiente antes de executar: abra um gráfico do seu símbolo e
período e role até a extrema esquerda. O script informará se não houver
dados suficientes. Menos de 30 sinais significa que qualquer resultado é uma mera observação isolada, e não uma evidência.
De uso e modificação livres.