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

 
Valeriy Yastremskiy MqlTick last_tick;



Pregunte dónde se anuncia.
 
Artyom Trishkin #:
¿Dónde se declara Ask?

Global.

En el ámbito mundial, MqlTick también anunció

#define  Ask SymbolInfoDouble(Symbol,SYMBOL_ASK) // верный результат
#define  Ask last_tick.ask                       // возвращает ноль

MqlTick last_tick; 

int OnInit()
  {
 ......
else LevelPrice[NumberLevelsDoun]= Ask;         // Массив глобально объявлен
......

else LevelPrice[NumberLevelsDoun]= last_tick.ask;         // тоже ноль возвращает


}
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
  • www.mql5.com
Структура для получения текущих цен - Структуры данных - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Valeriy Yastremskiy #:

Global.

En el ámbito global también se declara MqlTick

Entonces, otra pregunta: ¿dónde se declara Symbol?

Sobre el uso de la estructura - ¿la rellenas en algún lugar con SymbolInfoTick() ? ¿O decidió que el poltergeist lo llenará por usted? :)

 
Artyom Trishkin #:

Entonces, otra pregunta: ¿dónde se declara Symbol?

Sobre el uso de la estructura - ¿la rellenas en algún lugar con SymbolInfoTick() ? ¿O decidió que el poltergeist lo llenará por usted? :)

(Gracias, lo entiendo).

En general, se puede escribir sobre el llenado explícitamente)))), pero no así

MqlTick

La variable MqlTick permite recibir los valores Ask, Bid, Last y Volume en una sola llamada a la función SymbolInfoTick().

 
Valeriy Yastremskiy #:

Gracias, ya veo).

En realidad, el relleno podría escribirse explícitamente )))), pero no así

MqlTick

La variable de tipo MqlTick permite obtener los valores Ask, Bid, Last y Volume en una sola llamada a la función SymbolInfoTick().

Hay un ejemplo en la ayuda.

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура для получения текущих цен
  • www.mql5.com
Структура для получения текущих цен - Структуры данных - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Artyom Trishkin #:

Hay un ejemplo en la ayuda.

Eso es lo que no entendí del todo. Se puede conseguir y llena la estructura))) No esperaba la igualdad)
 
Valeriy Yastremskiy #:
Eso es lo que no entiendo del todo. Puedes conseguir y llena la estructura))) No esperaba la igualdad)

¿Qué no está claro en este texto de ayuda?

"Una variable de tipo MqlTick permite obtener los valores de Ask, Bid, Last y Volume en una sola llamada a SymbolInfoTick(). "

Una estructura no es más que un objeto de datos en el que se pueden escribir varios valores de diferentes tipos.

Si no escribes nada en la estructura, ¿qué crees que habrá en sus campos?

En la Ayuda, dice "en una llamada a la función SymbolInfoTick()", lo que significa que al llamar a esta función se llenará la estructura MqlTick que se le pase.

En sí misma, la variable con tipo de estructura MqlTick no rellenará mágicamente nada.

Escribes algo en tu variable, ¿no? Por ejemplo, Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);.

¿Cuál es la diferencia entre estas variables, entonces, que quieres ver llena de datos inmediatamente después de declarar una variable con el tipo MqlTick?

 
Artyom Trishkin #:

¿Qué no está claro en este texto de ayuda?

"Una variable de tipo MqlTick permite obtener los valores de Ask, Bid, Last y Volume en una sola llamada a SymbolInfoTick(). "

Una estructura no es más que un objeto de datos en el que se pueden escribir varios valores de diferentes tipos.

Si no escribes nada en la estructura, ¿qué crees que habrá en sus campos?

En la Ayuda, dice "en una llamada a la función SymbolInfoTick()", lo que significa que al llamar a esta función se llenará la estructura MqlTick que se le pase.

En sí misma, la variable con tipo de estructura MqlTick no rellenará mágicamente nada.

Escribes algo en tu variable, ¿no? Por ejemplo, Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);.

¿Cuál es la diferencia entre estas variables, si quieres verlas llenas de datos justo después de declarar una variable de tipo MqlTick?

Se trata de la diferencia de percepción))). Esta es la segunda vez conmigo. OrderSelect también rellena la estructura, y me enteré en el foro, y no lo entendí por la ayuda. Tal vez sea sólo yo, por supuesto))))

Las soluciones pueden ser diferentes)))) )))

 
Valeriy Yastremskiy #:

Se trata de diferencias de percepción). Es la segunda vez que me ocurre. OrderSelect también rellena la estructura, y me enteré en el foro, pero no lo entendí por la ayuda. Tal vez sea sólo yo, por supuesto))))

Las soluciones pueden ser diferentes)))) )))

Si algo (matriz, estructura, variable) se pasa a una función por referencia, entonces es lógico suponer que se rellena en la función y el resultado se muestra inmediatamente en la matriz, estructura, variable

 
Artyom Trishkin #:

Si algo (matriz, estructura, variable) se pasa a una función por referencia, es lógico suponer que se rellena en la función, y el resultado se muestra inmediatamente en la matriz, estructura, variable

Un array y una estructura se pasan SIEMPRE a una función por referencia.

Razón de la queja: