Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
CGoldSymbol - find the broker's gold and size the position correctly on it - librería para MetaTrader 5
- Visualizaciones:
- 17
- Ranking:
- Publicado:
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
El oro es el instrumento sobre el que los brókers no se ponen de acuerdo prácticamente en nada. El símbolo puede ser XAUUSD, GOLD, XAUUSD.m, XAUUSDpro o GOLD#. Un contrato puede equivaler a 100 onzas, a 10 o a una sola. El precio puede tener dos o tres dígitos. Un EA que calcula el tamaño de su lote a partir de un valor fijo programado de «100 onzas, dos dígitos» no solo se equivoca ligeramente con el siguiente bróker, sino que se equivoca por un factor de diez, en la dirección que vacía la cuenta.
Esta clase consulta a la plataforma en lugar de dar nada por sentado.
Detección. Detect() recorre todos los símbolos que ofrece la cuenta y puntúa los nombres, de modo que XAUUSD prevalece sobre XAUUSD.m, que a su vez prevalece sobre una coincidencia aproximada, mientras que la plata, el platino y el paladio se excluyen directamente: XAGUSD nunca debe aparecer en una búsqueda de oro. Un símbolo que ya se encuentre en «Market Watch» obtiene una pequeña bonificación. Si tu bróker utiliza algo inusual, Attach("TU NOMBRE") omite la búsqueda.
Especificaciones. ContractSize(), Digits(), Point(), TickSize(), TickValueLoss(), MinLot(), MaxLot(), LotStep(), StopsLevel() y FreezeLevel() proceden directamente de la plataforma para ese símbolo.
Dinero. LossForDistance(lots, distance) indica cuánto cuesta un movimiento en tu contra en la divisa de la cuenta. LotForRisk(riskMoney, distance) es lo contrario y lo que realmente importa: realiza la conversión a través de SYMBOL_TRADE_TICK_VALUE_LOSS, por lo que el resultado es correcto tanto para un contrato de 10 onzas como para una cuenta denominada en euros, y luego redondea el resultado a la baja al paso de volumen del bróker y dentro de sus límites mínimo y máximo. Devuelve cero en lugar de un lote mínimo implícito cuando incluso el volumen más pequeño supondría un riesgo superior al permitido, un caso en el que la mayoría de los códigos de cálculo de tamaño se equivocan al redondear al alza.
Diagnósticos. Attach() recoge advertencias en caso de que el tamaño del contrato no sea 100, haya un número inusual de dígitos, el terminal informe de un valor de tick igual a cero o el nivel de stop sea distinto de cero. PrintReport() muestra toda la especificación con un ejemplo práctico, lo que suele ser la forma más rápida de averiguar por qué una estrategia se comporta de forma diferente en dos brókers.
En una cuenta real con un contrato de 100 onzas, un saldo en euros y un stop de 1.500 puntos, el 1 % de 10.000 EUR equivale a 0,07 lotes, lo que supone un riesgo de 90,42 EUR. La misma operación de compra en un contrato de 10 onzas da como resultado 0,70 lotes, y en un contrato de una onza, 7,00 lotes. Mismo riesgo, mismo stop, una diferencia de cien veces en el volumen: eso es precisamente lo que falla con una constante codificada de forma rígida.
El paquete incluye GoldSymbolDemo.mq5, un script que detecta el símbolo del oro, genera el informe y convierte un porcentaje del saldo en un tamaño de lote para varias distancias de stop. Ejecútalo en cualquier gráfico para ver cuál es realmente el oro de tu propio bróker.
La clase no abre operaciones ni modifica posiciones. Solo responde a preguntas.

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/77067
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.
SessionReopenEA
El oro tiene una pausa de mantenimiento diaria en la CME. La primera hora tras dicha pausa registra una subida superior a la que cabría esperar por azar, en todos los años naturales de una muestra de 11 años, mientras que el resto de horas del día se mantienen estables. Una operación por sesión, un stop escalado según la volatilidad en el servidor, sin promedios ni estrategia de rejilla. Entonces resultó que mi modelo de costes era erróneo. Una prueba retrospectiva con datos de ticks reales mostró que el coste real de ida y vuelta en la reapertura es de unos 60 puntos, y no los 19 que había calculado mi investigación: el campo de spread de la barra M1 es un resumen por barra y lo subestima aproximadamente tres veces. Al volver a ejecutar los 11 años con el coste corregido: +3,34 pb, t 7,40, 59,3 % de operaciones ganadoras -> +1,60 pb, t 3,42, 50,8 % de operaciones ganadoras La ventaja se mantiene, aunque con menos de la mitad de su fuerza original. Esa segunda cifra es la real. Lo que no es: alrededor de un +3,3 % al año con una caída máxima del 4,6 %, aproximadamente un año de cada nueve en números rojos. A 0,01 lotes, eso supone unos 130 al año, una cifra que mide el tamaño de la posición, no la estrategia.
OHLC Reality Check - at what stop distance does your backtest start lying?
Abre una operación virtual entre corchetes en cada barra de M1, la aplica al historial real de ticks y genera un informe sobre un conjunto de distancias de stop, indicando con qué frecuencia el modelo OHLC de 1 minuto evaluaría la operación de forma errónea.
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.