Errores, fallos, preguntas - página 112

 
sandex:

Que ha utilizado la función OrderCheck.

Esto es una construcción:

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

Al compilar, obtengo un error: 'resultado' - la conversión de parámetros no está permitida.

Si se elimina OrderCheck, todo se compila normalmente y la posición se abre en el probador.

Mira la descripción de la función. Dice sobre la estructura de respuesta MqlTradeCheckResult.
 
Yedelkin:
Echa un vistazo a la descripción de la función. Dice sobre la estructura de respuesta MqlTradeCheckResult.

Muchas gracias.

 
Dmitriy2:

Esto es lo que es...

Debe contar los beneficios de las operaciones a partir de la fecha especificada. Da un resultado completamente diferente al que realmente es. Por ejemplo, yo obtuve 611 en lugar de un resultado de unos 2000. He empezado a comprobar por día (línea comentada). Hay (!!) días en los que el resultado es el mismo, pero por lo general no es lo que debería ser...(no he podido encontrar ninguna regularidad). Y el depurador produce el mismo ciclo exacto para toda la cantidad de operaciones. Aunque sólo puedo rastrear este número de tratos porque no se muestran valores para ninguna otra variable excepto para las variables int (La expresión no pudo ser evaluada).

¿Es este código correcto y estoy utilizando el depurador correctamente?

El bucle de transacción debe ser

for(i=0;i<HistoryDealsTotal();i=i++)
En el depurador, utilice 'Step in' (F11). Entonces, al entrar en una función en la que esté definida una variable o expresión, se mostrará su valor.
 
Valmars:

El ciclo de la transacción debe ser

En el depurador, utilice "Paso con entrada" (F11). Entonces, cuando introduzca una función en la que esté definida una variable o expresión, mostrará su valor.

digamos que el ciclo comienza desde cero... aunque, ¿dónde está escrito que los números de los tratos empiecen por cero? A juzgar por el hecho de que ahora tenemos 10611 (antes eran 611, en lugar de unos 2000), es decir, más el tamaño del depósito original, no estoy seguro de ello ... aunque sea cero incluso uno sigo sin entender de donde salen 10.000

Depurador, ya veo, F11...

 
Dmitriy2:

digamos que el ciclo comienza desde cero... aunque, ¿dónde está escrito que los números de los tratos empiecen por cero? A juzgar por el hecho de que ahora se obtiene 10611 (antes era 611, en lugar de unos 2000), es decir, más el tamaño del depósito original, no estoy seguro de ello ... aunque sea cero incluso uno sigo sin entender de donde salen 10.000

Depurador, ya veo, F11...

El primer acuerdo suele ser un depósito. Parece que los tratos se cuentan en el historial a partir de 0. Por lo tanto, si no me equivoco, el trato 0 será un depósito.

¿Puedo aclarar la fórmula con la que se calcula el beneficio de la operación?

PS

Si la memoria no me falla, el resultado debería calcularse así: Beneficio total = Beneficio+Cambio-Comisión;


 
Kos:
¿Por qué SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), devuelve cero?
0 significa que no hay restricciones.
 
Interesting:

La primera transacción suele ser un depósito. Así que, si no me equivoco, la 0ª operación será un depósito.

¿Puede especificar la fórmula utilizada para calcular el beneficio de la operación?

PS

Si la memoria no me falla, el resultado debería calcularse así: Beneficio total = Beneficio+Cambio-Comisión;


en la última página en código completo

por este código, la fianza no debe tenerse en cuenta en ningún caso

la comisión también es más - es menos.

 
Yedelkin:

Al principio el compilador se quejaba de que faltaba "#import "lbS7N_Servis.ex5"".

Después de borrar esta línea se dio:

2010.08.28 22:19:51 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=6617010000 M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) A=101699 B=101699 C=661701
¡2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Cuando sustituí el número de cuenta en el código por mi número de cuenta, obtuve:

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=1016990000 M1=1016990000

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) A=101699 B=101699 C=101699

¡2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Servidor MQ, compilación 316.

Gracias. Todo funciona como debe ser contigo. Todavía no lo he descubierto.
 
sergey1294:

y mi M1 no coincidía.

Significa que tú también tienes un bicho, pero menos que yo.

Tal vez deberías buscarlo en la conexión del programa con el sistema.

¿Qué tipo de sistema tiene?

Tengo un core2duo 1,3 Ghz 64 Win7 HB licencia, 4GB ddr 2 RAM, construir. 316

 
simpleton:

Y hay hasta tres situaciones únicas. Estos son los detectados. ¿Y cuántos sin detectar?

¿Y con este estado de cosas MetaQuotes va a empezar el Campeonato 2010 en un mes?

Oh, cuántas "maravillas" nos depara MetaTrader 5...

Los ganadores serán aquellos cuyos programas contengan tantos errores que, en combinación con pequeños fallos en el programa, tendrán tal efecto que nadie los alcanzará.