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

 
leonerd:


¿Cómo se recorren todos los ID de los gráficos en el terminal? current_chart_id en mi código es 1662429437, first_chart_id es 1859831371. ChartNext() ya devuelve -1. ¿Qué es ChartFirst()?

¿Qué significa primero? ¿Abrir primero? ¿Por qué su ID es mayor que el del gráfico actual (abierto más tarde, por cierto)?

Aparentemente es por la conversión long -> int.

 
Artyom Trishkin:

Gracias, sí, solía ser así.

 
¿Quién sabe cómo crear bucles for while, etc.? Me gustaría crear un bucle con mi tecnología, ¿qué puedo aprender?
 
leonerd:

Aparentemente es por la conversión long -> int.

no existe tal lógica, véase el ejemplo de la ayudahttps://www.mql5.com/ru/docs/chart_operations/chartnext

Los números de ID de los gráficos no tienen ninguna lógica en su formación, tal vez son asas de Windows o algunos otros números, para mirar a través de todos los ID de los gráficos en el terminal, el ejemplo de la ayuda es suficiente, he publicado en kodobase indicador que construye segundo TF, he utilizado un ejemplo de la ayuda - todo funciona como un reloj - encuentro mi gráfico personalizado - recuerdo su ID de gráfico y generar ticks en él


Seric29:
¿Quién sabe cómo se crean los bucles para while, etc.? Me gustaría crear un bucle con mi tecnología, ¿qué puedo aprender?

hmm, ver tu pregunta durante unos días, ¿qué respuesta quieres escuchar? - estos son operadores del lenguaje, funcionan tal y como los definen los desarrolladores y esto se indica en la ayuda. en ningún lenguaje de programación se describen los operadores del lenguaje "tal y como son" - los operadores del lenguaje siempre se "proporcionan tal y como son" - ni más ni menos

aquí están los operadores del lenguaje MQL4https://docs.mql4.com/ru/basis/operators- son "así" - esta esla base de cualquier lenguaje de programación

 
Igor Makanu:

hmm, varios días veo tu pregunta, ¿y qué respuesta quieres escuchar? - estos son operadores de lenguaje, funcionan tal y como los definen los desarrolladores, lo cual se indica en la ayuda, los operadores de lenguaje no se describen "tal y como están dispuestos" en ningún lenguaje de programación - los operadores de lenguaje siempre se "proporcionan tal y como están" - ni más ni menos

aquí están los operadores del lenguaje MQL4https://docs.mql4.com/ru/basis/operators- son "así" - esta es la base de cualquier lenguaje de programación

Por eso es malo que no se describa que la mitad de la información necesaria está oculta. Me interesa saber cómo están estructurados. Quiero crear mis propios bucles, y resultó que hay al menos 3 bucles en mql que existen en c++ y pascal, y estos bucles también podría facilitar el trabajo para reducir el número de controles y la inicialización de banderas y variables innecesarias, pero quiero crear mi propio, pero no puedo entender cómo se producen estas iteraciones, como se hace en cualquier bloque de código, puede escribir un bucle y llaves abiertas, que también contienen código. Muy interesante chicos si alguien va a lo que escribir plz.

 
Seric29:

Además, resultó que mql tiene al menos 3 bucles que están en c++ y pascal

Estudié tanto Pascal como C++ en la universidad y todavía está ahí:

C++ : for , while , do...while

Pascal : for , while , repeat

MQL: for , while , do...while

????


Seric29:

Por eso es malo que no se describan y se oculte la mitad de la información necesaria. Me pregunto cómo funcionan.

Ni siquiera sé cómo explicar lo absurdo de su pregunta, pero lo intentaré de todos modos:

Tú: - "Estoy estudiando ruso y necesito saber cómo funciona el alfabeto"

Yo: "El alfabeto no tiene estructura, sólo son letras y forman palabras"(en MQL hay una docena de operadores y forman el programa)https://docs.mql4.com/ru/basis/operators

Tú : "¡no puede ser! ¡Sé que las letras del alfabeto en zimbabuense significan muchas cosas!"

Yo: "Desgraciadamente, no conozco el idioma, pero en ruso una letra significa simplemente que es una letra, por supuesto se puede hacer un análisis fonético, pero eso no impedirá que una letra sea un elemento elemental de la palabra.

Y dices: "Hmm, qué raro, pero en zimbabuense, si dices 'a' es una letra, y si dices 'A' significa paz a tu casa, y si dices 'aaaaaaah'". - significa que tengo el pene más grande". - ¡es imposible que no veas cómo están dispuestas las letras en la lengua rusa! - hay tecnología oculta en there....


así es como veo nuestro diálogo, perdón por mi inglés - no puedo hacerlo de otra manera

)))

 
Igor Makanu:

no existe tal lógica, mira el ejemplo de ayudahttps://www.mql5.com/ru/docs/chart_operations/chartnext

Los números de ID de los gráficos no tienen ninguna lógica en su formación, tal vez sean asas de Windows o algunos otros números. Para buscar todos los ID de los gráficos en el terminal, el ejemplo de la ayuda es suficiente, he utilizado un indicador para construir sec-tFs en kodobase.

ChartFirst() devuelve el ID más pequeño del gráfico abierto?

 
leonerd:

ChartFirst() devuelve el ID más pequeño de los gráficos abiertos?

¡otra vez no! - el valor numérico de ChartFirst() no tiene sentido

PZS: ......quizás esté equivocado, pero leí en algún sitio que ChartFirst() devuelve el ID del gráfico que se abrió primero, no el que está primero en tu secuencia de gráficos (puedes moverlo), sino el que se abrió primero en el terminal del cliente - bueno, no estoy seguro de estar en lo cierto


ChartFirst() le da un punto de partida desde el cual puede desplazarse a través de los gráficos con ChartNext(). Es así: obtenga el primer ID de ChartFirst() - memorice el valor y transmita este valor a ChartNext() - y así sucesivamente, hasta que se repita el primer valor de ChartFirst() - lo que significa que se ha desplazado a través de todos los gráficos posibles,

Aquí está el código de mi indicador en KB - lo encontré en la ayuda, lo comprobé y lo utilicé para encontrar mi gráfico:

//+------------------------------------------------------------------+
//| поиск  идентификатора графика                                    |
//+------------------------------------------------------------------+
long CheckChart(string sym,int period,int &wh)
  {
   long result=0,id=ChartFirst();
   while(id>=0)
     {
      if(ChartSymbol(id)==sym && ChartPeriod(id)==period && ChartGetInteger(id,CHART_IS_OFFLINE))
        {
         result=id;
         ChartSetInteger(id,CHART_AUTOSCROLL,true);
         ChartSetInteger(id,CHART_SHIFT,true);
         ChartNavigate(id,CHART_END);
         ChartRedraw(id);
         wh=WindowHandle(sym,period);
         PrintFormat("Найдено окно графика: [%s,%d]",sym,period);
         break;
        }
      id=ChartNext(id);
     }
   return(result);
  }
//+------------------------------------------------------------------+
 
Igor Makanu:

¡otra vez no! - El valor numérico de ChartFirst() no tiene sentido

SZY: ......quizás esté equivocado, pero leí en algún sitio que ChartFirst() devuelve el ID del gráfico que se abrió primero, no el primer gráfico de tu secuencia de gráficos (puedes moverlo), sino el que se abrió primero en el terminal del cliente - en general, no estoy seguro de tener razón en esto


ChartFirst() le da un punto de partida desde el cual puede desplazarse a través de los gráficos con ChartNext(). Es así: obtener el primer ID de ChartFirst() - memorizar el valor y transmitir este valor a ChartNext() - y así sucesivamente, hasta que se repita el primer valor de ChartFirst()- lo que significa que se ha desplazado a través de todos los gráficos posibles,

Aquí está el código de mi indicador en KB - lo encontré en la ayuda, lo comprobé y lo utilicé para encontrar mi gráfico:

Extraño. No dice nada en la ayuda sobre "hasta que se repita el primer valor de ChartFirst()". Al final de la lista de gráficos, devuelve -1

Valor devuelto

El identificador del gráfico. Si la lista de gráficos se acaba, la función devuelve -1.

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

Extraño. La ayuda no dice nada sobre "hasta que se repita el primer valor de ChartFirst()". Cuando la lista de gráficos termina, devuelve -1

Lo siento, ¡soy un pecador! No lo he leído, ¡estaba borracho cuando escribía en este foro!