Características del lenguaje mql4, sutilezas y técnicas - página 18

 
Dmitry Rannev:

El problema ha sido descrito anteriormente por fxsaber. Estamos tratando de encontrar la causa.

Así es como funcionará correctamente

NormalizeDouble(Price1 - Price2, _Digits) != 0.0;
 
Alexey Viktorov:

Así es como funcionará correctamente

No se trata de resolver el problema de la comparación de los dobles. La tarea es diferente.

 
Dmitry Rannev:

El problema ha sido descrito anteriormente por fxsaber. Estamos tratando de encontrar la causa.

Bueno, entonces fxsaber ha respondido correctamente - yo añadiría no usar Printf, usar printf y especificar la precisión deseada de los números de salida { printf("Open: %.6f, Close: %.6f", OrderOpenPrice(), OrderClosePrice()); }

 
Ilya Malev:

Bueno, entonces fxsaber respondió correctamente - Yo añadiría no utilizar printf, utilizar printf y especificar la precisión deseada de los números de salida { printf("Open: %.6f, Close: %.6f", OrderOpenPrice(), OrderClosePrice()); }

Si quieres entender cuál es exactamente el problema, pregunta a fxsaber qué le impide escribir EAs con normalidad. Estamos intentando, por parte del desarrollador del software del corredor, que esto sea menos problemático. No estamos buscando un problema con la escritura de EAs, estamos buscando un problema con el almacenamiento de datos en el registro de seguimiento del servidor que impide que fxsaber escriba EAs.

 
No he oído que a fxsaber se le haya impedido escribir EAs correctamente, pero no importa, no importa :) Si mi comentario se sale del tema, perdón.
 
Dmitry Rannev:

...sino en guardar los datos en el registro del servidor del trader, lo que impide a fxsaber escribir EAs.

Ah, eso es... Y no podemos averiguar qué lo detiene.
 
Alexey Navoykov:
Ah, ahí está... Y no podemos saber qué lo detiene.

Ahí es donde empezó. Y evolucionó a esto

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Precios no normalizados en MT4

fxsaber, 2019.02.20 23:03

Pero la situación es mucho peor, y al mismo tiempo en MQ-Demo
// 15326434
// wmefo5sa
// MetaQuotes-Demo
void OnStart()
{
  const double Price1 = HistoryOrderSelect(356138100) ? HistoryOrderGetDouble(HistoryOrderGetTicket(0), ORDER_PRICE_CURRENT) : 0;
  const double Price2 = PositionSelectByTicket(356138100) ? PositionGetDouble(POSITION_PRICE_OPEN) : 0;  
  
  Print(Price1 - Price2); // -2.220446049250313e-16
}


El precio de apertura de la posición actual no es igual al precio de su orden/operación.

 
fxsaber:
Características de ArrayResize para matrices multidimensionales

porque con ArrayRange() necesitas obtener el número de elementos en la dimensión requerida, y de todos modos sólo puedes redimensionar la 1ª dimensión, por eso es más lógico usar mql5

 

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Bichos, errores, preguntas

Andrey Khatimlianskii, 2019.03.12 22:57

Me pregunto si TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) (botón AutoTrade) afecta a los EAs probados (MT4).

En el 1170 afecta, se puede controlar el comercio en el probador directamente con el botón. Estoy sorprendido.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategia

Bichos, errores, preguntas

Vladimir Pastushak, 2019.03.13 19:12

Si su código contiene algo como

if(!TerminalInfoInteger (TERMINAL_TRADE_ALLOWED))
return;

El botón funciona.

Si no existe tal comando, el botón no funciona.

Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias

Bichos, errores, preguntas

Vladislav Andruschenko, 2019.03.13 19:14


Escribí sobre ello hace unos dos años.


Es exactamente lo que es. Por eso he desactivado las comprobaciones de los botones en el probador de estrategias.





 

Resulta que es posible obtener los valores del buffer de los indicadores que se ejecutan en un gráfico (uso único de WinAPI).

Si no hay DLL - casi en modo automático.