Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 25

 
fyords:

Sí, está configurado, pero cuando se activa...

U otro ejemplo: tenemos una orden pendiente, su precio difiere del actual en 1 punto, en el siguiente tick el precio salta no en 1 punto, sino, digamos, en 3-5 puntos, lo que resulta en la apertura a un precio equivocado. Un ejemplo obvio es un hueco.

O tal vez no entiendo la pregunta y soy tonto.

Aquí no entiendo bien cómo funciona OrderGetTicket. La función devuelve alternativamente falso y verdadero. Incluso si consideramos que la orden se ha colocado a un precio erróneo, debería simplemente devolver falso. Pero alternativamente...


UPD: En general, el asunto estaba en un NormalizeDouble olvidado en el paso del precio. Como siempre:) La función en sí misma funciona bien.


 
Por favor, dígame si es posible escribir
 if (OrderTicket=OrderGetTicket(i)) {//Возвращает тикет соответствующего ордера и автоматически выбирает ордер

La función, si no se selecciona ninguna orden, da cero?

Es decir, si el igual no es doble, simple, será una asignación aquí, no una comparación? ¿No es cero lo mismo que no?

No me dio error de inmediato, pero luego me di cuenta de que no había entendido lo que había escrito.

 
Dimka-novitsek:
¿Puede decirnos si es posible escribir

La función, si no se selecciona ninguna orden, da cero?

Es decir, si el igual no es doble, simple, será una asignación aquí, no una comparación? ¿No es cero lo mismo que no?

No me dio error de inmediato, pero luego me di cuenta de que no había entendido lo que había escrito.

La expresión es correcta; la descripción de la función dice que devolverá cero si falla. Cero para si es falso. Así que la construcción funcionará bien.

Otra cosa es que la funcionalidad de negociación es tan rápida que hemos enviado una orden en un tick y ya está en el historial en el siguiente, por lo que esta construcción muy a menudo (pero no siempre) devolverá falso.

Este código muestra que usted está tratando de rastrear órdenes colocadas, pero aún no ejecutadas. La función OnTradeTransaction() es más adecuada para controlarlas.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
¡¡¡GRACIAS!!!
 
No tengo ni idea de cómo tratar las clases, las funciones virtuales. He estado leyendo, leyendo, leyendo... Desde hace una hora, y no es la primera vez. Está escrito de forma algo pesada, incomprensible y, sobre todo, salpicado de términos nuevos y novedosos: sólo hay que seguir los enlaces. Aquí dice ( Las clases y las estructuras pueden tener un constructor y un destructor explícitos) ve a buscar Constructores y Destructores Dice (El constructor es una función especial que se llama automáticamente cuando se crea un objeto estructura o clase y se suele utilizar para inicializar los miembros de la clase) En fin, no entiendo.
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 
Dimka-novitsek:
No tengo ni idea de cómo tratar las clases, las funciones virtuales. Leer, leer, leer, leer. Durante una hora, y no por primera vez. Está escrito de alguna manera pesada, incomprensible, y lo principal está cubierto con términos nuevos y novedosos - sólo hay que seguir los enlaces. Dice ( Las clases y estructuras pueden tener un constructor y un destructor explícitos) Voy a mirar Constructores y Destructores Dice (El constructor es una función especial que se llama automáticamente al crear un objeto estructura o clase y se suele utilizar para inicializar los miembros de la clase) En fin, no entiendo.

Un constructor es una función que se llama automáticamente cuando se crea un objeto de clase y se utiliza para inicializar el objeto.

¿Está más claro? Si no, no puedo hacer nada.

 
Gracias. Muy bien. Ahora voy a jugar al fútbol. Volveré a hacer las maletas y preguntaré. Voy a preguntar. ¿Qué es una función virtual? ¿Corre cuando quiere? ¿Qué es la palabra dinámica?
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Виртуальные функции
  • www.mql5.com
Основы языка / Объектно-ориентированное программирование / Виртуальные функции - Документация по MQL5
 

Así que. Dice que la elección de la definición de la función a la que se llama para la función virtual es dinámica (en tiempo de ejecución).

La definición de la función, que está entre paréntesis, es decir, ordena a la máquina que haga algo específico, ¿no? Pero aquí resulta que la propia máquina hace lo que quiere y cuando quiere, como mi amigo Vasya... De verdad, ya he leído la frase 100 veces, pero no la entiendo. No puedo entenderlo. Intentaré leer los ejemplos con cuidado y atención...

Y empecé a leer sobre la clase - ahí es donde empecé, a entender, ¡estaba escribiendo sobre la función!

 
Dimka-novitsek:

Así que. Dice que la elección de la definición de la función a la que se llama para la función virtual es dinámica (en tiempo de ejecución).

La definición de la función, que está entre paréntesis, es decir, ordena a la máquina que haga algo específico, ¿no? Pero aquí resulta que la propia máquina hace lo que quiere y cuando quiere, como mi amigo Vasya... De verdad, ya he leído la frase 100 veces, pero no la entiendo. ¡Podría golpear mi cabeza! Intentaré leer los ejemplos con cuidado y atención...

Y empecé a leer sobre la clase - ahí es donde empecé, a entender, ¡estaba escribiendo sobre una función!

¿Me estás tomando el pelo?

Aprende a hacer las preguntas adecuadas y no tendrás que hacer la mayoría de ellas.

Lasfunciones virtuales sólo tienen sentido en el contexto de la herencia.

El truco de la herencia no es sólo que el código pueda repartirse entre muchas clases (a medida que aumenta la herencia),

pero en el que se puede declarar primero un objeto ancestro dinámico y luego redefinirlo como descendiente.

Por ejemplo, un objeto necesita ser declarado globalmente, pero en el punto de declaración no se sabe qué clase debe ser el objeto. Entonces las clases se heredan del ancestro común, se declara un objeto dinámico del ancestro en el ámbito global y luego, cuando la clase de la que debe ser el objeto, se redefine mediante el operador new.

La palabra dinámica está subrayada porque no se puede hacer con la clase estática, la estática se define inmediatamente y por completo.

 
De acuerdo, no se entiende de inmediato, pero algo se percibe. Gracias. Si se me permite, preguntaré sobre la marcha.