Características del lenguaje mql5, sutilezas y técnicas - página 42 1...353637383940414243444546474849...247 Nuevo comentario fxsaber 2017.06.07 22:25 #411 PositionSelect pondrá a cero todos los datos de PositionGet en caso de fallo. fxsaber 2017.06.07 23:22 #412 Un error clásicovoid Func( int& ) {} void OnStart() { int i; Func(true ? i : i); // '?' - parameter passed as reference, variable expected Func(i); // OK } fxsaber 2017.06.08 22:05 #413 fxsaber: Un error clásico¿Se pregunta si este es el error correcto? TheXpert 2017.06.08 22:50 #414 fxsaber: Me pregunto si esto es un error.En términos de corrección, esto es correcto.Aparentemente el operador ternario no devuelve una referencia sino una variable por valor (lo que en principio no es lógico).Resulta ser una variable temporal, lo que no le gusta a las funciones mql con parámetros de referencia.Es decir, el operador ternario y las referencias no se llevan bien, en pocas palabras. Sentido común... no sé, la construcción es lógica. [¡Archivo!] Cualquier pregunta de Errores, fallos, preguntas [¡AVISO CERRADO!] Cualquier pregunta fxsaber 2017.06.08 23:23 #415 Combinador: Obtienes una variable rampa, lo que no le gusta a las funciones mql con parámetros de referencia.MqlTick Out() { MqlTick Tick = {0}; return(Tick); } void In( MqlTick& ) {} void OnStart() { In(Out()); } Exactamente "me gusta". Es por estos ejemplos que han surgido dudas. TheXpert 2017.06.08 23:38 #416 fxsaber: Exactamente "me gusta". Es por estos ejemplos que han surgido dudas.Por la descripción del error en sí, parece un problema de enlaces y no enlaces.tal vez alguien con un conocimiento más actualizado del idioma pueda explicarlo. Alexey Viktorov 2017.06.09 07:54 #417 fxsaber: Классическая ошибкаvoid Func( int& ) {} void OnStart() { int i; Func(true ? i : i); // '?' - parameter passed as reference, variable expected Func(i); // OK }Y si es así.void Func( int& ) {} void OnStart() { int i; Func((true ? i : i)); Func(i); // OK } fxsaber 2017.06.09 07:58 #418 Alexey Viktorov: ¿Qué te parece esto?Es más rápido comprobarlo que hacer un post.No funciona, por supuesto. Alexey Viktorov 2017.06.09 08:05 #419 fxsaber: Es más rápido comprobarlo que hacer un post.No funciona, por supuesto.Es raro. Siempre utilizo esta opción cuando abro posiciones con o sin retirada de fondos. trade.BuyStop(lot, buyPrice, _Symbol, 0.0, (tacke == 0.0 ? 0 : buyPrice+tacke)); trade.SellStop(lot, sellPrice, _Symbol, 0.0, (tacke == 0.0 ? 0 : sellPrice-tacke)); fxsaber 2017.06.09 08:17 #420 Alexey Viktorov: Extraño. Siempre utilizo esta opción cuando abro posiciones con o sin adquisiciones. En estos casos, funcionará incluso sin soportes adicionales. 1...353637383940414243444546474849...247 Nuevo comentario
Un error clásico
Me pregunto si esto es un error.
En términos de corrección, esto es correcto.
Aparentemente el operador ternario no devuelve una referencia sino una variable por valor (lo que en principio no es lógico).
Resulta ser una variable temporal, lo que no le gusta a las funciones mql con parámetros de referencia.
Es decir, el operador ternario y las referencias no se llevan bien, en pocas palabras.
Sentido común... no sé, la construcción es lógica.Obtienes una variable rampa, lo que no le gusta a las funciones mql con parámetros de referencia.
Exactamente "me gusta". Es por estos ejemplos que han surgido dudas.
Por la descripción del error en sí, parece un problema de enlaces y no enlaces.
tal vez alguien con un conocimiento más actualizado del idioma pueda explicarlo.
fxsaber:
Классическая ошибка
Y si es así.
¿Qué te parece esto?
Es más rápido comprobarlo que hacer un post.
No funciona, por supuesto.
Es más rápido comprobarlo que hacer un post.
No funciona, por supuesto.
Es raro. Siempre utilizo esta opción cuando abro posiciones con o sin retirada de fondos.
Extraño. Siempre utilizo esta opción cuando abro posiciones con o sin adquisiciones.