![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Que ha utilizado la función OrderCheck.
Esto es una construcción:
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.
Echa un vistazo a la descripción de la función. Dice sobre la estructura de respuesta MqlTradeCheckResult.
Muchas gracias.
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
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.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...
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;
¿Por qué SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), devuelve cero?
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.
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.
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
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...