error 4756 - página 4

 
RaptorUK:

Creo, lo confirmaré, que he visto el mismo problema en el Probador de Estrategias, no estoy seguro de cómo podría ocurrir exactamente, lo intentaré de nuevo con algunos informes de error añadidos para asegurarme.

OK, un misterio resuelto... no me di cuenta de que el Spread utilizado en el Probador de Estrategias se toma de los datos del Historial, en particular de los datos M1. La razón por la que tengo stops inválidos en mi ejecución del Probador de Estrategias es porque el spread es mayor que mi SL. Añadiré una prueba para esto.

 

Konstantin83:
2013.03.10 11:19:18    2012.01.04 15:00:00   failed buy stop 1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [Invalid stops]

No entiendo el stop inválido. el sl está por debajo del sl de compra: 1.28375 <1.30505 ?

 
Konstantin83:

CopyHigh(_Symbol,_Period,TimeCurrent(),5,hg);

Top = NormalizeDouble(rates[ArrayMaximum(hg,0,WHOLE_ARRAY)].high,_Digits); 

- diseñomal entendido .
Elige entre los valores del máximo doble y usa eso en lugar del índice entero

graciasKonstantin83 :

pero no entiendo lo que dices.

top es el más alto de las últimas 5 velas y top es un índice doble y no entero

arriba
 

dan5:

No entiendo el stop inválido. el sl está por debajo del sl de compra: 1,28375 <1,30505 ?


No te tomes los "stops inválidos" demasiado literalmente. No se trata sólo del Stop Loss, también puede ser el precio de entrada y/o el TP. Cuando tengas un error imprime la siguiente información, te ayudará a resolver lo que ha ido mal:

  1. el tipo de operación, Buy Limit, Buy, Sell, Sell Stop, etc.
  2. el precio de venta
  3. el precio de compra
  4. el precio de entrada
  5. el SL
  6. el TP
  7. el nivel de congelación
  8. el Nivel de Stops
  9. el número de error (y la descripción del error si realmente quieres)
También deberías leer este artículo, fue escrito para mql4 pero estoy bastante seguro de que todavía se aplica a mql5:Requisitos y limitaciones en la realización de operaciones
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
  • book.mql4.com
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
 

dan5:

2013.03.10 11:19:18 2012.01.04 15:00:00 falló la parada de compra 1.00 EURUSD a 1.30505 sl: 1.28375 tp: 1.30375 [Paradas inválidas].


No entiendo la parada inválida. el sl está por debajo de la compra sl: 1.28375 <1.30505 ?


¿Te has dado cuenta de que la entrada 1.30505 es > el TP 1.30375 ?
 
RaptorUK:
¿Se ha dado cuenta de que la entrada 1,30505 es > el TP 1,30375?

gracias por su ayuda he modificado mi sl y tp ahora está bien

mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits);// Take Profit

en lugar de

mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit

 
dan5:

gracias por su ayuda he modificado mi sl y tp ahora está bien

mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits);// Take Profit

en lugar de

mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit

Eso es una buena noticia, espero que no te haya molestado que subvierta tu hilo, pero creo que al final ambos hemos sacado algo útil :-)
 
RaptorUK:
Es una buena noticia, espero que no te moleste que subvierta tu hilo, pero creo que al final ambos hemos sacado algo útil :-)
¿Has encontrado otra solución que la que propongo con OnTradeTransaction para proceder con sl & tp en un caso de Market Execution (broker ECN)?
 
angevoyageur:
¿Has encontrado otra solución que la que propongo con OnTradeTransaction para proceder con sl & tp en un caso de Ejecución de Mercado (broker ECN)?
El código que sugerí en este post https://www.mql5.com/en/forum/11051#comment_446272 funciona bien por lo que veo, supuse que no funcionaba en el Probador de Estrategias debido a que mi suposición sobre el spread fijo (como en MT4) era incorrecta. Mi código ahora funciona en el Probador de Estrategias y en la Demo para símbolos con tipo de ejecución Instantánea o de Intercambio, mi código determina el tipo y envía la(s) solicitud(es) apropiada(s). Idealmente me gustaría que mi código manejara automáticamente cualquier tipo de ejecución.
 
RaptorUK:
El código que sugerí en este post https://www.mql5.com/en/forum/11051#comment_446272 funciona bien hasta donde puedo decir, asumí que no funcionaba en el Probador de Estrategias debido a que mi suposición de que el spread era fijo (como en MT4) era incorrecta. Mi código ahora funciona en el Probador de Estrategias y en la Demo para símbolos con tipo de ejecución Instantánea o de Intercambio, mi código determina el tipo y envía la(s) solicitud(es) apropiada(s). Idealmente me gustaría que mi código manejara automáticamente cualquier tipo de ejecución.
Ah ok, me lo perdí.