Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 834

 
Vladimir Pastushak:


Esto es incorrecto y también lo son los otros ejemplos.

Si pones un stop en 1,2356 y en el nuevo tick vuelves a poner un stop en 1,2356, obtendrás el error 1

Esto es del primer bloque. Lo cambié, pero el error se mantuvo. Esta condición con parada se ha implementado para que el EA no haga pases innecesarios. Y en un nuevo tick, el EA no establecerá el mismo stop de nuevo - porque después de esta condición comprobaré otras condiciones, por ejemplo, si el stop es igual al valor que quiero establecer.

 
Alexandr Sokolov:

Esto es del primer bloque. Lo he cambiado, pero el error persiste. Hice esta condición con un stop para evitar que el EA hiciera pases innecesarios. Y en un nuevo tick el EA no vuelve a colocar el mismo stop - porque después de esta condición se comprueban las otras, por ejemplo, si el stop es igual al valor a establecer

OrderStopLoss()

Todos los pedidos...... () debe ser normalizado

 
Vladimir Pastushak:

Todos los pedidos...... () debe ser normalizado.

Lo hice, y tampoco sirvió de nada. Al mismo tiempo, como antes no tengo este error en el probador, pero MQL de alguna manera lo encuentra

 
¿Dónde debe guardarse el archivo de texto para poder leerlo desde otro terminal?
 
yiduwi:
¿Qué ruta debe utilizarse para guardar un archivo de texto para que pueda ser leído desde otro terminal?

ENUM_TERMINAL_INFO_STRING

Identificador

Descripción

Tipo de propiedad

TERMINAL_LANGUAGE

Lenguaje de los terminales

cadena

TERMINAL_EMPRESA

Nombre de la empresa

cadena

NOMBRE_DE_LA_TERMINAL

Nombre de la terminal

cadena

TERMINAL_PATH

La carpeta desde la que se ejecuta el terminal

cadena

RUTA_DE_LOS_DATOS_DEL_TERMINAL

Carpeta donde se almacenan los datos del terminal

cadena

TERMINAL_COMMONDATA_PATH

Carpeta compartida de todos los terminales cliente instalados en el ordenador

cadena


Документация по MQL5: Проверка состояния / TerminalInfoString
Документация по MQL5: Проверка состояния / TerminalInfoString
  • www.mql5.com
Проверка состояния / TerminalInfoString - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
¿Quién puede ayudar a resolver el problema https://www.mql5.com/ru/forum/160683/page833#comment_11584454?
 
Artyom Trishkin:

Gracias.

 
Seric29:
¿Quién puede ayudar a resolver el problema https://www.mql5.com/ru/forum/160683/page833#comment_11584454?

hacer un ejemplo uno a uno del artículohttps://www.mql5.com/ru/articles/18

los códigos del artículo funcionan al 100% en mt4, lo comprobé en enero de este año

Alternativamente, tienes un proyecto compilado para una dll de 64 bits, la terminal MT4 es de 32 bits, necesitas configurar y compilar el proyecto para una .dll de 32 bits

Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
Как за 10 минут написать DLL библиотеку для MQL5 и обмениваться данными?
  • www.mql5.com
Так уж сложилось, что сейчас мало кто из разработчиков помнит, как написать простую DLL библиотеку и в чем особенности связывания разнородных систем. Я постараюсь за 10 минут на примерах показать весь процесс создания простых DLL библиотек и раскрою некоторые технические детали нашей реализации связывания. Демонстрация будет на примере Visual...
 

Hola, queridos usuarios del foro.

¿Puede explicar en qué caso el código está escrito correctamente y en cuál no y por qué (véase más abajo)?

for (z=OrdersTotal()-1; z>=0; z --)
    {
      OrderSelect (z, SELECT_BY_POS);
      if (OrderSymbol()!=Symbol()) continue;
      if (OrderMagicNumber()!=MAGIC) continue;
      if(OrderType()==OP_BUY)  CloseBUY();
    }
for(int i=OrdersTotal()-1;i>=0;i--)
            {
            if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
            {
             if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic)
             {
             if(OrderType()==OP_BUY)  CloseBUY();
             }
            }
            }

Si es posible, con más detalle. Gracias.

 
novichok2018:

Hola, queridos usuarios del foro.

¿Puede explicar en qué caso el código está escrito correctamente y en cuál no y por qué (véase más abajo)?

Si es posible, con más detalle. Gracias.

Incluso el compilador le destacará en el primer caso"el resultado de OrderSelect debe ser comprobado" ;-)

Si cambia por la primera si (!OrderSelect(...)) continúa; las opciones son idénticas.

En el primero el código es visualmente lineal, en el segundo parece una escalera. Prefiero la primera variante, es más fácil de leer y, en general, la aparición de pestañas lógicas profundas {{{{ }}}} da a entender que es hora de cambiar algo :-)

Razón de la queja: