Mira cómo descargar robots gratis
¡Búscanos en Facebook!
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
Librerías

Position sizing from risk, using the broker's own tick value and volume step - librería para MetaTrader 5

Ralph Ivan Simeon
Ralph Ivan Simeon
I build and audit automated trading systems for MetaTrader 5, with most of my work on XAUUSD.
| Spanish English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Visualizaciones:
15
Ranking:
(2)
Publicado:
Calc.mqh (7.15 KB) ver
calclots.png (76.18 KB)
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Cualquier calculadora de tamaño de lote que parta de la base de que un pip vale diez dólares se equivoca con el oro, con los índices, con los pares de divisas con el yen japonés y con cualquier cuenta que no esté denominada en dólares estadounidenses —que es precisamente donde el sobredimensionamiento resulta perjudicial—. En cambio, este encabezado realiza los cálculos a partir de los datos que el servidor publica realmente para cada símbolo.

Qué hace Lo que devuelve la función CalcLots(), incluido el caso en el que la mayoría de las rutinas de cálculo de dimensiones se equivocan

CalcLots() toma un importe de riesgo en la divisa de la cuenta, un precio de entrada y un precio de stop, y devuelve el volumen a operar junto con el riesgo real que supone ese volumen una vez aplicadas las restricciones del bróker.

  • Siempre redondea el volumen A LA BAJA al paso de volumen del bróker. Redondear al alza supondría, sin que te dieras cuenta, arriesgar más de lo que has solicitado, que es precisamente lo que una rutina de cálculo de tamaño nunca debe hacer.
  • Cuando el riesgo solicitado es inferior al lote mínimo, no simula nada. Devuelve el mínimo, establece clamped_min e informa del riesgo que realmente conlleva la posición, que será mayor que el solicitado.
  • Es independiente del lado. El stop puede situarse por encima o por debajo de la entrada.

También devuelve la distancia del stop en puntos y el valor de un punto por cada lote de 1,00, de modo que quien la invoque pueda mostrar su funcionamiento en lugar de limitarse a un simple número.

Por qué las matemáticas se encuentran en un archivo de cabecera independiente

Calc.mqh no mantiene ningún estado en la terminal. Acepta una estructura SymbolSpec —punto, tamaño del tick, valor del tick, volumen mínimo/máximo/incremento, dígitos— de modo que toda la lógica de cálculo del tamaño se puede aplicar fuera de línea con instrumentos sintéticos.

SpecFromSymbol() es el único puente hacia los datos en tiempo real. Lee primero SYMBOL_TRADE_TICK_VALUE_LOSS, ya que esa es la cifra que utiliza el servidor cuando una operación te sale en contra, que es precisamente el lado en el que se sitúa un stop loss; recurre a SYMBOL_TRADE_TICK_VALUE en el caso de los brókers que dejan la variante de pérdida en cero.

Esa separación es lo que hace posible, en primer lugar, el script de prueba incluido.

El script de prueba

RiskLotCalculatorTests.mq5 se ejecuta en cualquier gráfico, sin conexión con el bróker y sin historial. Comprueba 41 casos: redondeo del paso de volumen, ambos límites y sus indicadores, escalado del valor del punto cuando el tamaño del tick difiere del tamaño del punto, una divisa principal de 5 dígitos, el oro, un índice con un paso de 0,1 lotes, ambas direcciones de operación y todas las rutas de rechazo: riesgo cero, riesgo negativo, un stop situado en la entrada y datos de ticks faltantes.

Arrástralo a un gráfico y lee la pestaña «Expertos». Termina con «ALL PASS», aprobados=41, fallidos=0.

Ambos archivos son autónomos: colócalos en la misma carpeta y el script de prueba se compilará tal cual.

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/77488

RiskPilot Pro: panel de gestión de riesgos «arrastrar para operar» con umbral de rentabilidad, stop dinámico y protección contra pérdidas diarias RiskPilot Pro: panel de gestión de riesgos «arrastrar para operar» con umbral de rentabilidad, stop dinámico y protección contra pérdidas diarias

Arrastra tu stop loss hasta donde realmente quieras, pulsa «Comprar» o «Vender», y el tamaño del lote ya estará correcto: sin calculadora ni hoja de cálculo. Gestiona el punto de equilibrio, el trailing stop y cierra las operaciones del día si alcanzas tu límite de pérdidas.

Monitor de diferenciales Monitor de diferenciales

Spread Monitor: un sencillo indicador informativo para MetaTrader 5.

Contract Sizer: ladder, floor and a breaker that survives a deposit Contract Sizer: ladder, floor and a breaker that survives a deposit

Tres protecciones de tamaño de posición que funcionan de forma diferente; confundirlas es la razón por la que tantas cuentas se quedan sin fondos: - escalonada: un contrato por cada X del saldo, que siempre se aplica como un límite máximo (CAP), incluso con el tamaño de lote manual; - «floor»: por debajo del capital mínimo no se opera; se necesita un nuevo ingreso; - «breaker»: se detiene al X % por debajo del máximo, independientemente del tamaño de la cuenta, y no se reactiva por sí solo. Lo que resuelve esta biblioteca y que casi ninguna otra hace: un ingreso no es un beneficio, y una retirada no es una pérdida. El «breaker» mide la caída con respecto al máximo del saldo. Si no se trata, un depósito realizado DURANTE una caída eleva tanto el saldo como el máximo, y la protección deja de detectar la caída justo cuando sería más útil. En este caso, los depósitos y las retiradas desplazan el máximo en la misma cantidad. El máximo se guarda en un archivo: un «breaker» que olvida el máximo al reiniciar la terminal no es un «breaker». La demo simula un depósito en el punto más bajo de una caída. Ejecútala con el depósito activado y desactivado y compara la columna «caída».

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.