Specifiche
Busco un desarrollador con experiencia demostrable en MQL5 para desarrollar desde cero un Expert Advisor (EA) para MetaTrader 5.
El proyecto consiste en un sistema de trading basado en piramidación positiva / anti-martingale, con gestión avanzada de operaciones por Basket, cálculo de riesgo, Global Break Even y control de beneficios.
La lógica del sistema está definida y se entregará una especificación técnica completa al desarrollador seleccionado.
1. Concepto principal
La primera operación será abierta MANUALMENTE por el usuario.
A partir de ese momento, el EA se encargará de gestionar la operación y, si el precio avanza a favor de la posición, podrá añadir nuevas operaciones.
El EA solamente abrirá nuevas operaciones cuando el precio avance a FAVOR de la dirección inicial.
Ejemplo BUY:
-
Se abre manualmente una primera operación BUY.
-
Si el precio avanza la distancia configurada a favor, el EA abre una segunda BUY.
-
Si vuelve a avanzar la distancia configurada desde la última entrada, abre una tercera BUY.
-
Y así sucesivamente, respetando el número máximo de operaciones configurado.
Ejemplo de multiplicador 2.0:
1 → 2 → 4 → 8 lotes
Ejemplo de multiplicador 1.5:
1 → 1.5 → 2.25 → 3.375 lotes
Para SELL, la lógica será exactamente inversa.
IMPORTANTE: si el precio se mueve en contra de la posición, el EA NO debe abrir nuevas operaciones.
2. Gestión del riesgo inicial
El usuario podrá configurar desde el Dashboard un porcentaje de riesgo.
Por ejemplo:
Riesgo = 1% del balance.
El EA calculará automáticamente el Stop Loss inicial de la primera operación para que la pérdida aproximada corresponda al riesgo configurado.
El cálculo debe tener en cuenta las características reales del símbolo y del broker, utilizando los parámetros correspondientes de MQL5.
No se deben utilizar valores de pip fijos.
Debe ser compatible con diferentes instrumentos como:
-
Forex
-
Oro
-
Índices
-
CFDs
-
Criptomonedas
-
Otros símbolos disponibles en MT5
3. Stop Loss manual de la primera operación
Este punto es MUY IMPORTANTE.
El EA calculará inicialmente el Stop Loss de la primera operación según el porcentaje de riesgo configurado.
Sin embargo, el usuario podrá modificar manualmente ese Stop Loss desde el gráfico arrastrándolo.
Ejemplo:
El riesgo configurado calcula una pérdida de aproximadamente 100 USD.
El usuario considera que el mercado necesita un Stop Loss más amplio y lo mueve manualmente para asumir aproximadamente 120 USD de riesgo.
A partir de ese momento, el EA debe respetar ese nuevo Stop Loss.
NO debe volver a colocar el SL calculado originalmente.
El Stop Loss manual de la primera operación será considerado como el SL definitivo de esa operación hasta que se active la siguiente fase de gestión.
4. Global Basket Break Even
Cuando se abre la segunda operación, comienza la gestión mediante Global Basket Break Even.
El Break Even NO será individual por operación.
Todas las operaciones pertenecientes al mismo Basket se gestionarán conjuntamente.
El EA deberá:
-
Calcular el precio de Global Break Even del Basket.
-
Tener en cuenta, cuando corresponda, comisión y swap.
-
Mover los Stop Loss de todas las operaciones del Basket al mismo nivel de Global BE.
-
Recalcular el Global BE cada vez que se añade una nueva operación.
-
Actualizar los Stop Loss de todas las operaciones del Basket después de cada nueva entrada.
El objetivo es que el conjunto de operaciones del Basket quede protegido aproximadamente en break even neto.
5. Baskets independientes
El EA debe permitir trabajar con múltiples Baskets independientes.
Un Basket estará formado por:
-
La primera operación manual.
-
Todas las operaciones añadidas posteriormente por el EA.
-
Mismo símbolo.
-
Misma dirección.
Cada Basket debe tener su propio identificador y mantener independientemente:
-
Basket ID
-
Dirección
-
Número de operaciones
-
Total de lotes
-
Precio medio
-
Global BE
-
Próxima entrada
-
Próximo lote
-
P/L actual
-
Objetivo de beneficio
Un Basket nunca debe afectar a otro Basket.
6. Distancia entre operaciones
La distancia para abrir nuevas operaciones será configurable.
La siguiente operación se calculará SIEMPRE desde la última operación ejecutada, no desde la primera.
Ejemplo BUY:
Entrada 1 = 1.1000
Distancia = 50 puntos
Entrada 2 = 1.1050
Si vuelve a avanzar 50 puntos:
Entrada 3 = 1.1100
Y así sucesivamente.
Para SELL se aplicará la lógica inversa.
7. Multiplicador de lotaje
El multiplicador será configurable desde el Dashboard.
Ejemplos:
1.5x → 1 / 1.5 / 2.25 / 3.375
2.0x → 1 / 2 / 4 / 8
Los lotes deberán normalizarse correctamente según:
-
Volumen mínimo
-
Volumen máximo
-
Volume Step
-
Restricciones del broker
También deberá existir un límite máximo de lotaje como medida de seguridad.
8. Objetivo de beneficio del Basket
El usuario podrá configurar un Profit Target total para cada Basket.
Por ejemplo:
Profit Target = 700 USD.
El EA deberá sumar el resultado neto de todas las operaciones pertenecientes al Basket.
Cuando el Basket alcance el objetivo configurado, el EA deberá cerrar TODAS las operaciones pertenecientes a ese Basket.
El Profit Target será independiente para cada Basket y no será un objetivo global de toda la cuenta.
9. Dashboard
Se requiere un Dashboard visual y funcional en el gráfico.
Debe mostrar información relevante como:
-
Estado del EA
-
Basket ID
-
Dirección
-
Número de operaciones
-
Máximo de operaciones
-
Total de lotes
-
Riesgo %
-
Riesgo inicial en dinero
-
Precio medio
-
Global BE
-
Precio actual
-
P/L actual del Basket
-
Profit Target
-
Próxima entrada
-
Próximo lote
-
Spread
También deberá existir un botón para cerrar el Basket.
10. Parámetros configurables
Entre otros:
-
Risk %
-
Distance
-
Unidad de distancia
-
Lot Multiplier
-
Profit Target
-
Maximum Trades
-
Maximum Lot
-
Maximum Spread
-
Magic Number
-
Slippage / Deviation
Los parámetros deberán estar correctamente organizados y ser fáciles de modificar.
11. Seguridad y ejecución
El EA debe comprobar correctamente:
-
Margin disponible
-
Spread
-
Stop Level
-
Freeze Level
-
Tick Size
-
Tick Value
-
Point
-
Digits
-
Contract Size
-
Volume Step
-
Volumen mínimo y máximo
-
Permisos de trading
-
Mercado abierto
-
Condiciones de ejecución del broker
-
Filling Mode
También debe evitar operaciones duplicadas provocadas por múltiples ticks, latencia o reinicios.
12. Recuperación después de reinicios
El EA debe ser capaz de recuperar correctamente el estado de los Baskets después de:
-
Reiniciar MT5
-
Reiniciar el EA
-
Cambiar de timeframe
-
Reiniciar el PC/VPS
-
Volver a conectar el terminal
No debe duplicar operaciones ni perder el seguimiento de los Baskets existentes.
13. Cierre manual
Si el usuario cierra manualmente una operación o parte de un Basket, el EA deberá detectar la situación y actualizar correctamente:
-
Número de operaciones
-
Total de lotes
-
P/L
-
Global BE
-
Próxima entrada
-
Estado del Basket
Si el Basket queda completamente cerrado, deberá limpiarse correctamente su estado.
14. Tipo de cuenta
El desarrollo está pensado principalmente para cuentas MT5 de tipo HEDGING, ya que necesitamos mantener múltiples posiciones independientes.
El desarrollador deberá tener experiencia trabajando con cuentas Hedging en MQL5.
15. Calidad del código
Busco un desarrollo profesional, estable y modular.
El código debe estar correctamente estructurado y ser fácil de mantener y modificar en el futuro.
El EA deberá probarse en diferentes instrumentos y condiciones de mercado.
IMPORTANTE
No busco un EA básico de apertura y cierre de operaciones.
La parte más importante del proyecto es la correcta implementación de:
-
Gestión de Baskets
-
Piramidación positiva
-
Cálculo de riesgo
-
Global Break Even
-
Gestión de múltiples posiciones
-
Control del lotaje
-
Recuperación después de reinicios
-
Ejecución segura y compatible con diferentes brokers
Dispongo de una especificación técnica completa con todos los detalles, reglas, casos especiales y criterios de prueba.
Esta documentación se facilitará al desarrollador seleccionado o a los candidatos preseleccionados.
Se valorará especialmente:
-
Experiencia demostrable desarrollando EAs profesionales en MQL5.
-
Experiencia con cuentas Hedging.
-
Experiencia con gestión de múltiples posiciones.
-
Experiencia con Basket Management.
-
Experiencia con sistemas de Break Even global.
-
Experiencia con gestión de riesgo y cálculo dinámico de lotaje.
-
Buena comunicación y, preferiblemente, dominio del español.
Por favor, al presentar una propuesta, indicar ejemplos de EAs similares desarrollados anteriormente y explicar brevemente la experiencia con proyectos de este tipo.