Autoaprendizaje del lenguaje MQL5 desde cero - página 23

 
Aliaksandr Hryshyn:

Has empezado con mal pie. ¿Entiendes todo el código? Todos los operadores, ¿palabras clave?

Compruebe la pregunta sobre el código:

¿Qué significan estas líneas?

Estos fueron mis comentarios sobre el guión:

/* Continuando. Después de enviar las solicitudes al servidor de operaciones, necesitamos saber si una orden pendiente se ha establecido
o no. Para ello, vamos a utilizar la función OrderSend que está diseñada para
operaciones de comercio mediante el envío de solicitudes al servidor de comercio. Si el envío de una solicitud a
falla (un signo de exclamación delante de cualquier función indica un resultado negativo de su ejecución
), entonces emitimos un mensaje con un código de error en el siguiente formato: "OrderSend error %d"
y GetLastError(). Entendamos qué es "OrderSend error %d" y qué es GetLastError().
Tenga en cuenta que "OrderSend error %d" está entre comillas dobles. Esto significa que
imprimirá el texto con la traducción literal "OrderSend error %d". Ahora vamos a entender lo que significa
%d. En la sección PrintFormat de la Referencia MQL5, encontramos: "Si una cadena de formato va seguida de más parámetros,
, esta cadena debe contener especificaciones de formato que definan el formato de salida de estos parámetros.
Una especificación de formato siempre comienza con un signo de porcentaje (%)". ¿Qué es una d? En la misma sección
justo debajo encontramos: "Tipo d - especifica el número mínimo de dígitos a emitir. Si el número de dígitos en
es menor que la precisión especificada, el valor de salida se rellena con ceros a la izquierda.
El valor de salida no se trunca si el número de dígitos a emitir es mayor que la precisión especificada. Con este
hemos resuelto, ahora necesitamos entender qué es GetLastError(). Buscando de nuevo en el libro de referencia: "GetLastError()
devuelve el contenido de la variable del sistema _LastError, es decir, la variable en la que
se almacena el valor del último error ocurrido durante la ejecución del programa mql5.

Saludos, Vladimir.

 
MrBrooklin:

Así que aún no lo he resuelto y hay trabajo por hacer.

Saludos, Vladimir.

De nuevo, empieza con la descripción de lo que hace tu código. Este script pone el SL y el TP en las posiciones. Como no sabemos si están ahí, suponemos que las posiciones están ahí, y hay ambas (cuenta de cobertura). La condición de colocar topes siempre hará que true.... Así que es así. Trabaja con el código hasta el final. ))))

Y trata de entender cada línea del código. Desde el principio.

 
Реter Konow:
Esta condición no es necesaria en absoluto. ¿Qué papel desempeña? ¿Puede explicarlo?

Quería establecer una condición oculta para establecer órdenes pendientes de Buy Stop y Sell Stop.

Saludos, Vladimir.

Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
MrBrooklin:

Comprobado unas cuantas veces más - el compilador no da nada.

Saludos, Vladimir.

¿Y por qué debería producir algo? No conoces las macros, no sabes cómo trabajar con ellas, pero las usas, así que esperas algún error o al menos un aviso de ellas. Si hubieras lanzado al menos una vez tu script en la demo y lo hubieras ejecutado en todos los modos, habrías visto que no funcionaba. Pero tú vas más allá. Añades un stop-loss, take-profit, y en la orilla te dicen: "¡Para la máquina!

 
Valeriy Yastremskiy:

De nuevo, empiece por describir lo que hace su código. Este script pone un SL y un TP en las posiciones que ha colocado. Como no sabemos si están ahí, suponemos que hay posiciones, y hay ambas (cuenta de cobertura). La condición de colocar topes siempre hará que true.... Así que es así. Trabaja con el código hasta el final. ))))

Y trata de entender cada línea del código. Desde el principio.

Gracias por el consejo de comprobar si hay puestos abiertos al principio.

Saludos, Vladimir.

 
MrBrooklin:

Quería establecer una condición oculta para establecer órdenes pendientes de Buy Stop y Sell Stop.

Sinceramente, Vladimir.

Dime, ¿escribir una macro para eso, es la única manera de establecer tal condición? ¿Las condiciones, según tengo entendido, se establecen sólo por medio de macros? ¿O puedes hacerlo de otra manera? Y si hay otra forma, ¿por qué ha elegido esta macro? ¿Debía haber alguna necesidad? ¿Pero qué era?

 
MrBrooklin:

Gracias por el consejo de comprobar primero si hay puestos vacantes.

Saludos, Vladimir.

Ni siquiera lo intentes ahora. Es demasiado pronto para hacerlo. Es demasiado pronto. Te pondrás blando, te cansarás y lo dejarás todo. Vuelve al libro de texto y a los problemas sencillos.
 
Vasiliy Sokolov:

¿Escribir una macro para esto es la única manera de establecer esta condición? ¿Según tengo entendido, las condiciones sólo se establecen mediante macros? ¿O hay alguna otra manera? Y si hay otra forma, ¿por qué has elegido la macro? ¿Debía haber alguna necesidad? ¿Pero qué era?

No, no era necesario, simplemente encontré #define al estudiar los modificadores y decidí probarlo en el script.

Sinceramente, Vladimir.

 
MrBrooklin:

Quería establecer una condición oculta para establecer órdenes pendientes de Buy Stop y Sell Stop.

Saludos, Vladimir.

¿Qué significa "condición oculta"? Este tipo de condiciones no existen en la programación.
 
Vasiliy Sokolov:

... Si por una vez ejecutaras tu script en una demo y lo ejecutaras en todos los modos, verías que no funciona. Pero tú lo llevas un paso más allá. Añades un stop loss y un take profit, y la orilla ya está gritando: "¡Para el carro!".

Vasiliy, ejecuté el script más de una vez y todos los modos funcionan, es decir, puse dos órdenes pendientes Buy Stop y Sell Stop a la distancia que especifiqué. El Stop Loss y el Take Profit también se fijan a la distancia necesaria. Las órdenes funcionan. Me gustaría adjuntar una captura de pantalla aquí.

Saludos, Vladimir.


Razón de la queja: