
EdgeMeter responde a una pregunta sobre cualquier señal de entrada:
una vez descontados los costes de transacción, ¿esta señal genera beneficios?
No realiza órdenes. Analiza el historial, evalúa tu señal en cada
barra y muestra un veredicto.
POR QUÉ LO CREÉ
Pasé un mes creando un EA de grid en el XAUUSD M1. Fijé el stop loss, añadí
un límite de pérdidas flotante, una salida por reversión y una antigüedad máxima de la cesta. No dejaba de perder.
Cuando por fin analicé la señal de ENTRADA por sí sola, la respuesta tardó treinta
segundos:
movimiento medio tras la señal, 15 min: +0,04
spread pagado por operación de ida y vuelta : 0,26
Ninguna lógica de salida puede remediar eso. El dinero se perdió en la entrada, y cada hora que
dedicaba a las salidas era tiempo perdido. Para eso existe este script: para evitarlo.
QUÉ INFORMES GENERA
Para cada periodo de tenencia que especifiques:
- ventaja bruta: el movimiento favorable medio tras la señal
- resultado neto tras deducir los costes, simulado posición por posición
- estadística t calculada sobre operaciones NO SUPERPUESTAS
- porcentaje de meses rentables
- caída máxima
A continuación, se aplica la misma medición a un CONTROL ALEATORIO: misma frecuencia de ejecución,
dirección determinada al azar. Una entrada aleatoria debe perder exactamente el coste de la transacción,
ni más ni menos. Esto tiene dos consecuencias. Demuestra que el simulador es correcto,
y te proporciona el ruido de fondo. Si tu señal no supera claramente esas
líneas, no aporta ninguna información.
LA TRAMPA DE LA SUPERPOSICIÓN
Esta es la parte que me pilló, y que pilla a la mayoría de la gente.
Las señales consecutivas comparten la mayor parte de su ventana hacia adelante. Un horizonte de 60 compases
muestreado en cada barra te da ventanas que se solapan de 59 formas diferentes. Si las tratas como
independientes inflan la estadística t aproximadamente en la raíz cuadrada del horizonte.
Mi propia señal mostraba t = 3,32 de esa forma, lo cual parece convincente. En muestras genuinamente
, el valor era t = 1,20, indistinguible del ruido. EdgeMeter
simula una posición cada vez, por lo que las operaciones que muestra no se solapan y
la estadística t es fiable.
CRITERIOS DE APROBACIÓN
El script comprueba tres criterios, y los tres son obligatorios:
[1] beneficio neto por operación > 0 tras deducir los costes
[2] |t| > 2
[3] al menos 3 meses rentables de cada 4
Decide tus criterios antes de mirar las cifras. Decidirlo a posteriori es
la forma en que un sistema perdedor acaba aplicándose a una cuenta real.
CÓMO PROBAR TU PROPIA SEÑAL
Abre el archivo y edita dos funciones en la SECCIÓN DE USUARIO. No es necesario
cambiar.
bool UserInit() - crea los identificadores de tus indicadores y carga sus
búferes con LoadBuffer() / LoadBufferB()
int UserSignal(int i) - evalúa la barra cerrada i
devuelve +1 para comprar, -1 para vender y 0 para mantenerse al margen
Todas las matrices se indexan empezando por 0 = la barra más antigua. Esto es lo contrario de la
de las series, y es deliberado: de este modo, un retorno hacia adelante es simplemente
índice + horizonte, lo que elimina toda una clase de errores de signo.
La entrada se simula en Open(i+1), la barra siguiente. Nunca leas la barra i+1 ni posteriores
dentro de UserSignal; eso es un sesgo de anticipación y hará que una
que, de otro modo, carecería de valor.
La UserSignal predeterminada es un cruce de medias móviles de dos marcos temporales, que se mantiene como
ejemplo práctico. Sustitúyelo.
CONFIGURACIÓN DEL COSTE
InpSpread, InpCommission e InpSlippage están en unidades de PRECIO, no en puntos, y
son los parámetros más importantes del script. Obténlos de tu propia
cuenta, no de las cifras anunciadas por el bróker.
Si dispones de un registro de ejecuciones de operaciones reales o de demostración, utiliza el
. Si no lo tienes, toma el spread típico que ves en el gráfico y añádele
un margen de deslizamiento en lugar de suponer que es cero. Un servidor de demostración mostrará
un deslizamiento casi nulo; esa es una característica del servidor de demostración, no del mercado.
REQUISITOS
Carga suficiente historial antes de ejecutarlo: abre un gráfico de tu símbolo y
el marco temporal que desees y desplázate hasta el extremo izquierdo. El script te indicará si no hay
suficiente. Menos de 30 señales significa que cualquier resultado es anecdótico, no una prueba.
De uso y modificación gratuitos.