Mira cómo descargar robots gratis
¡Búscanos en Twitter!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el 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 — desarrollador de trading algorítmico, República Checa.
Opero en cuentas reales, así que programo los EAs como si fuera a usarlos yo mismo.
Qué desarrollo:
• Expert Advisors e indicadores para MetaTrader 4 y 5 (MQL4 / MQL5)
| Spanish English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Visualizaciones:
20
Ranking:
(2)
Publicado:
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Cada backtest realizado con datos OHLC de 1 minuto parte de una suposición tácita: que, dentro de una barra, el precio ha seguido el orden «apertura - mínimo - máximo - cierre» en una barra alcista y «apertura - máximo - mínimo - cierre» en una bajista. Tiene que partir de alguna suposición, ya que los datos OHLC no registran la trayectoria. Los ticks reales sí lo hacen.

Esa suposición solo importa cuando la barra que cierra una operación toca tanto el stop como el objetivo. En ese momento, la orden determina si la operación ha sido ganadora o perdedora, y el probador se ve obligado a hacer una suposición. Este script mide la frecuencia con la que esa suposición es errónea.

Cómo funciona. En cada barra M1 abre una operación virtual entre dos niveles —uno por encima de la apertura de la barra y otro por debajo, ambos a la misma distancia— y avanza hasta que el precio alcanza uno de ellos. Si la barra de cierre solo tocaba un nivel, no había nada que decidir. Si tocaba ambos, el script compara la suposición del simulador con lo que realmente hicieron los ticks reales de ese minuto.

La respuesta depende totalmente de la amplitud del rango, por lo que el script barrea varias distancias y traza la curva. En XAUUSD, a lo largo de 30 días y 27 844 operaciones virtuales:

  • stop de 20 puntos: el 62,6 % de las operaciones fueron disputadas, el 23,84 % se resolvieron de forma errónea
  • Stop de 50 puntos: un 30,1 % de operaciones en disputa, un 8,25 % con resultado erróneo
  • Stop de 100 puntos: el 8,9 % de las operaciones fueron controvertidas, el 1,66 % resultaron erróneas
  • Stop de 200 puntos: 1,5 % de operaciones en disputa, 0,18 % erróneas
  • Stop de 500 puntos: 0,1 % de operaciones en disputa, 0,00 % erróneas
  • Stop de 1000 puntos: ninguna operación impugnada, ninguna errónea

«En disputa» significa que la barra que cerró la operación tocó ambos niveles, por lo que la orden determinó el resultado. «Errada» es la proporción de todas las operaciones resueltas en las que la orden supuesta por el probador fue opuesta a lo que hicieron los ticks: una ganancia registrada como pérdida, o al revés.

Así pues, la conclusión honesta no es que «el OHLC siempre miente» ni que «el OHLC está bien». La inexactitud tiene un umbral, dicho umbral es específico de cada símbolo, y puedes medirlo en once segundos en lugar de discutir sobre ello.

Entradas. InpSymbol (vacío = el símbolo del gráfico), InpDays, InpBrackets (las distancias de stop que se van a barrer, en puntos), InpHorizonBars (cuánto tiempo puede permanecer abierta una operación antes de que se considere sin resolver), InpStepBars (abre una operación cada N barras; aumenta este valor en equipos lentos) e InpWriteCSV, que enumera todas las operaciones mal resueltas con su hora de entrada, su barra de cierre, lo que indicaba el modelo y lo que indicaban los ticks, para que puedas examinar los casos individuales.

Solo lee el historial. Nunca realiza una orden ni interviene en una posición abierta.

Requiere un historial real de ticks para el símbolo: descárgalo primero en la ventana «Símbolos»; de lo contrario, no se podrán resolver las operaciones en disputa.

Porcentaje de operaciones en las que un backtest OHLC arroja resultados invertidos, según la distancia del stop: XAUUSD, 30 días

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo 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 el símbolo «gold», independientemente del nombre que le dé el bróker, lee las especificaciones del contrato desde la plataforma en lugar de darlo por supuesto, y convierte el riesgo en la divisa de la cuenta en un tamaño de lote adecuado para ese bróker.

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 una línea CSV por cada operación cerrada con los datos que no figuran en el extracto: la mejor ganancia no realizada que mostró la operación (MFE), la peor pérdida no realizada que soportó (MAE), qué parte de la MFE se conservó realmente, cuántas barras abarcó y cuánto tiempo se mantuvo abierta. Se trata de la misma medición que la del indicador «Trade Excursion», pero grabada en un archivo en lugar de representada gráficamente, ya que las preguntas que merece la pena plantearse sobre estos datos son aquellas a las que un gráfico no puede responder: ¿depende la tasa de captura de la hora de entrada? ¿Las operaciones que cierro antes de tiempo son las que mantengo durante más tiempo? ¿Las operaciones con pérdidas de los lunes alcanzan un MAE diferente al de los viernes? Basta con una tabla dinámica una vez que se dispone del archivo CSV. La salida está separada por punto y coma con una fila de encabezado, en formato MQL5\Files; se abre en cualquier hoja de cálculo. Límite de la medición: las excursiones se calculan a partir de los máximos y mínimos de las barras en el marco temporal elegido; se desconoce la trayectoria dentro de una barra. La columna «barras» indica la resolución obtenida por cada operación, y el resumen cuenta las operaciones de una sola barra por separado en lugar de promediarlas.

Accumulation/Distribution Accumulation/Distribution

El indicador Accumulation/Distribution (Acumulación/Distribución) queda determinado por los cambios que se producen en el precio y en el volumen.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.