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

 
novichok2018:

¡Hola!

He encontrado en el foro una funciónque calcula cuántos puntos ha pasado un precio durante un determinado número de segundos int ItemsPerSecond(const int seconds,MqlTick&tick). La he puesto en el código y la he compilado - todo está bien, pero cuando intento llamarla, el compilador genera un recuento de parámetros erróneo.

¿Qué estoy haciendo mal?

No es así:

Документация по MQL5: Основы языка
Документация по MQL5: Основы языка
  • www.mql5.com
Язык MetaQuotes Language 5 (MQL5) является объектно-ориентированным языком программирования высокого уровня и предназначен для написания автоматических торговых стратегий, пользовательских технических индикаторов для анализа разнообразных финансовых рынков. Он позволяет не только писать разнообразные экспертные системы, предназначенные для...
 
novichok2018:

¿Qué ha pasado?

¿Están todos dormidos o se han extinguido?

Risas :)

 
Artyom Trishkin:

No lees:

Igor Makanu:escribir respuestas a preguntas absurdas da pereza

¡Señores "chicos listos"!

Sigues olvidando en qué hilo del foro estás. Puedo recordar: la rama se llama"Cualquier preguntade los novatos...". Y si crees que puedes ayudar a los novatos (no estás aquí para presumir, ¿verdad?), no hace falta que respondas con remilgos a preguntas que te parecen tontas y absurdas, y que son difíciles de entender para un novato sin tu ayuda.

No sirve de nada: aunque lea veinte veces "llamada a la función" en Fundamentos del Lenguaje, sigo sin entender qué parámetros hay que introducir en este caso concreto.

Así que, ¿quizás alguien se sobreponga a los remilgos y me dé algún consejo concreto?

Gracias.

 
novichok2018:

¡Señores "gente inteligente" !

Sigues olvidando en qué hilo del foro estás. Te lo recuerdo: el hilo se llama"Cualquier pregunta de los novatos...". Y si crees que puedes ayudar a los novatos (no estás aquí para presumir, ¿verdad?), no hace falta que respondas con remilgos a preguntas que te parecen tontas y absurdas, y que son difíciles de entender para un novato sin tu ayuda.

Es inútil: he leído "llamada a la función" en Estudios de Idiomas al menos veinte veces, y sigo sin entender qué parámetros hay que introducir en este caso concreto.

Así que, ¿quizás alguien se sobreponga a los remilgos y me dé algún consejo concreto?

Gracias.

¿Cómo podría olvidarlo si esta es mi rama? :)

"Cualquier cosa" no significa que podamos hablar de la fuerza de las bebidas... Cualquier pregunta, más bien "significativa". Y lo que preguntas es lo básico de cualquier lenguaje de programación, y acabas de dejar perpleja a la gente con tu pregunta: ¿debo empezar a enseñarte lo básico? Pero eso está fuera del alcance de este hilo y del propio foro.

Te he dado un enlace para ayudarte, y tú te pones de perfil. En consecuencia, con esta actitud hacia los que te muestran el camino que lleva al conocimiento, en lugar de "hacer todo por ti", te sacudirás durante mucho tiempo a la gente diciendo "¿por qué estás callado, nadie sabe o qué?

La Ayuda trata sobre las funciones y sus parámetros formales. Y, lo siento, hay toneladas de ejemplos en CodeBase. Abra cualquier código y busque la definición de cualquier función que tenga parámetros formales y vea cómo se llama...

Pues es fácil: no seas perezoso y no esperes el maná del cielo, y al menos remueve tu propia materia gris.

No me gradué en la academia... Salí del ejército y me interesé por escribir programas para XZ Spectrum. En BASIC... y llegué al punto de escribir programas para él en ensamblador, y luego siguió y siguió.

Y no había foros, y compartíamos internet entre los tres (uno hoy, el otro mañana, y yo pasado mañana). E Internet era caro, y además a través de un módem sobre cables telefónicos.
Compré libros de programación en un mercadillo de radio. Ahora mi hermano, licenciado en programación, me pide consejo sobre cómo y qué hacer.
Pero quería aprender, me apasionaba. ¿Y tú? Y tú, en mi opinión, necesitas que alguien haga todo por ti.

 
Artyom Trishkin:

No me gradué en la academia... Salí del ejército y me interesé por escribir programas para XZ Spectrum. En BASIC... y llegué al punto de escribir programas para él en ensamblador, y luego siguió y siguió.

No había foros y compartíamos Internet entre los tres (uno hoy, el otro mañana y yo pasado mañana). E Internet era caro, y además a través de un módem sobre cables telefónicos.
Compré libros de programación en un mercadillo de radio. Ahora mi hermano, licenciado en programación, me pide consejo sobre cómo y qué hacer.
Pero quería aprender, me apasionaba. ¿Y tú? Y tú, en mi opinión, necesitas que alguien haga todo por ti.

Le felicito por su persistencia y determinación. Todo lo que has dicho es ciertamente digno de respeto, pero exigir lo mismo a todos los demás no tiene sentido. Además, no todos los que quieren escribir su propio robot intentan aprender el lenguaje de programación. Como he dicho más arriba, no tengo ese objetivo. Si tienes una pregunta sobre cómo hacer esto o aquello, buscas una solución en libros de referencia, libros de texto, foros, sin profundizar demasiado en el tema. Tal vez por eso surgen situaciones como ésta, cuando cosas aparentemente elementales de repente no están claras. Por supuesto, "moviendo la materia gris" aún encontraré una solución. Sí, tal vez después de haber escarbado en "toneladas de ejemplos enCodeBase" y haber perdido mucho tiempo. Pero no queda claro por qué has creado este hilo y por qué lo has llamado así si en lugar de declarar ayuda a los novatos les haces profundizar en el estudio del idioma. Deberías haberlo llamado así: "aprender MKL4 y MKL5 juntos". Creo que nadie quiere que le ayuden, basta con explicar lo que hay o dar una pista concreta, no un enlace a un libro de texto. Si una persona necesita que alguien haga algo por ella, debe decir específicamente: por favor, escríbeme algo, etc.

Bueno, debería haberlo hecho por nada. Buena suerte en su desarrollo posterior.

 
novichok2018:

Te felicito por tu tenacidad y determinación. Todo lo que has dicho es ciertamente digno de respeto, pero creo que no tiene sentido exigir lo mismo a todo el mundo. Además, no todos los que quieren escribir su propio robot suelen aprender el lenguaje de programación. Como he dicho más arriba, no tengo ese objetivo. Si tienes una pregunta sobre cómo hacer esto o aquello, buscas una solución en libros de referencia, libros de texto, foros, sin profundizar demasiado en el tema. Tal vez por eso se producen situaciones como ésta, cuando cosas aparentemente elementales no se entienden de repente. Por supuesto, "moviendo la materia gris" aún encontraré una solución. Sí, tal vez después de haber escarbado en "toneladas de ejemplos enCodeBase" y haber perdido mucho tiempo. Pero no queda claro por qué has creado este hilo y por qué lo has llamado así si en lugar de la ayuda declarada a los novatos les haces profundizar en el estudio del idioma. Deberías haberlo llamado así: "aprender MKL4 y MKL5 juntos". Creo que nadie quiere que le ayuden, basta con explicar lo que hay o dar una pista concreta, no un enlace a un libro de texto. Si una persona necesita que alguien haga algo por ella, debe decir específicamente: por favor, escríbeme algo, etc.

Bueno, debería haberlo hecho por nada. Buena suerte en su desarrollo posterior.

Hay mucho resentimiento en tus palabras. Pero ni siquiera has mostrado tu función.
 
Artyom Trishkin:
Hay mucho resentimiento en las palabras. Pero ni siquiera has mostrado tu función.

No es resentimiento, es frustración. Hace mucho tiempo que no me siento ofendido desde que era un niño. Y nadie pidió la función, te pusiste sarcástico.

Bueno, esta es la función:

int ItemsPerSecond(const int seconds,MqlTick &tick)
{
//---
   static MqlTick rates[];
   datetime time_start;
   int count=0,size;
   bool insert=false;
   double price_start=0;
   long msc=0;
//---
   time_start=TimeCurrent()-seconds;
   
   for(int i=0;i<ArraySize(rates);i++)
   {
      if(rates[i].time>0 && rates[i].time<time_start)
      {
         ZeroMemory(rates[i]);
      }
      else if(!insert && rates[i].time==0)
      {
         rates[i]=tick;
         insert=true;
      }
      if(rates[i].time_msc>0 && (rates[i].time_msc<msc || msc==0))
      {
         price_start=rates[i].bid;
         msc=rates[i].time_msc;
      }
      
   }
   if(!insert)
   {
      size=ArraySize(rates);
      ArrayResize(rates,size+1,300);
      rates[size]=tick;
   }
   if(price_start>0)count=(int)((tick.bid-price_start)/Point);
   
   Comment("size: "+IntegerToString(ArraySize(rates))+"\r\n"+"count: "+IntegerToString(count));
//---
   return(count);   
} 

y así es como intento llamarlo:

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

3 son tres segundos (creo).

 
novichok2018:

Encontré una función en el foro,que cuenta cuántos puntos pasó el precio durante un cierto número de segundos int ItemsPerSecond(const int seconds,MqlTick&tick), la puse en el código, la compilé - todo está bien, pero cuando trato de llamarla, el compilador me da un conteo de parámetros erróneo.

¿Qué estoy haciendo mal?


novichok2018:

Así es como intento llamarlo:

void OnTick()
  { 
  ItemsPerSecond(3); 
  }

lea la ayudaen https://www.mql5.com/ru/docs/basis/function yhttps://www.mql5.com/ru/docs/basis/variables/formal

¿Cuántos parámetros tiene la función que llama?

int ItemsPerSecond(const int seconds,MqlTick &tick)



novichok2018:

Además, no todos los que quieren escribir su propio robot suelen aprender el lenguaje de programación. Como he dicho más arriba, no tengo ese objetivo. Si tienes una pregunta sobre cómo hacer esto o aquello, buscas una solución en libros de referencia, libros de texto, foros, sin profundizar demasiado en el tema. Tal vez por eso surgen situaciones como ésta, cuando cosas aparentemente elementales de repente no están claras. Por supuesto, "meneando la materia gris", seguiré encontrando una solución.

Desgraciadamente no has dominado el tema de MQL, ni siquiera se trata de escribir programas por ti mismo, desgraciadamente no has aprendido nada.... en tus dedos... Has aprendido el alfabeto inglés "Hey, B, C, D...". y ahora tratas de escribir en el foro en inglés, "Horosho", se te dice que esto no es conocimiento de inglés, esto es sobre nada en absoluto.... y te vuelves a ofender, aquí hay un foro, aquí hay un tema con apoyo a los nuevos, y me lo he leído todo!!! y otra vez en círculo, ¡eh listo! y por qué este hilo!!! no soy de los que se ofenden!!!

 
Igor Makanu:


leer la ayudahttps://www.mql5.com/ru/docs/basis/function y https://www.mql5.com/ru/docs/basis/variables/formal

¿Cuántos parámetros tiene la función que llama?



Desgraciadamente no has dominado el tema de MQL, ni siquiera se trata de escribir programas por tu cuenta, desgraciadamente no has aprendido nada.... en tus dedos... Has aprendido el alfabeto inglés "Hey, B, C, D..." y ahora tratas de escribir en el foro en inglés, "Horosho", se te dice que esto no es conocimiento de inglés, esto es sobre nada en absoluto.... y te vuelves a ofender, aquí hay un foro, aquí hay un tema con apoyo a los nuevos, y me lo he leído todo!!! y otra vez en círculo, ¡¡¡eh listillos!!! ¡¡¡y por qué este hilo!!! ¡¡No soy de los que se ofenden!!!

Muchas letras y nada más que narcisismo y humillación del interlocutor. ¿Y en qué forma debe insertarse el segundo parámetro? He pedido el segundo parámetro como un número con el mismo resultado. ¿Por qué tantas "palabras"? Muestra la solución en mi ejemplo, precompilada y probada. ¿O tu hinchada autoestima no te lo permite?

 
novichok2018:

¿O es que tu hinchada autoestima te lo impide?

De acuerdo, yo ejerzo mi derecho a no comunicarme contigo (afortunadamente no puedes obligarme a ello), tú ejerces el derecho a escribir en el foro, ¿pero no a leer el material que se te ofrece para estudiar?

void OnTick()
  { 
  MqlTick t;
// судя по исходнику в t нужно скопировать тики и вызывать так:
ItemsPerSecond(3,t); 
  }

novichok2018:

Pregunté el segundo parámetro por número con el mismo resultado. ¿Por qué tantas palabras? Muéstrame la solución en mi ejemplo, precompilada y probada.

Aquí está una llamada correcta de la función ItemsPerSecond() en su ejemplo, no he compilado, probado, y no voy a ejecutar el terminal - he respondido a su pregunta

Razón de la queja: