Preguntas de un "tonto" - página 130

 
Omg... siga leyendo.
 

¡Bien!

Win7 no he encontrado nada en el foro, ¿qué pasa con el directorio de trabajo del programa? Según me pareció, en win7 al momento de iniciar se crea un directorio temporal donde se copia todo el programa, entonces, al trabajar con MetaEditor resulta que copio un archivo para incluirlo, por ejemplo en la unidad D, pero no hay nada en la ventana del metaeditor. Llamo a "Abrir carpeta" desde la ventana del metaeditor y la ventana aparece en la unidad C en algún lugar de la temporal. ¿Qué hacer? ¿Cómo sincronizarlos o prohibir que win7 los divida así?

Gracias.

Документация по MQL5: Файловые операции / FileCopy
Документация по MQL5: Файловые операции / FileCopy
  • www.mql5.com
Файловые операции / FileCopy - Документация по MQL5
 
bivmail:

¡Hola!

Win7 no he encontrado nada en el foro, ¿qué pasa con el directorio de trabajo del programa? Según me pareció, en win7 al momento de iniciar se crea un directorio temporal donde se copia todo el programa, entonces, al trabajar con MetaEditor resulta que copio un archivo para incluirlo, por ejemplo en la unidad D, pero no hay nada en la ventana del metaeditor. Llamo a "Abrir carpeta" desde la ventana del metaeditor y la ventana aparece en la unidad C en algún lugar de la temporal. ¿Qué hacer? ¿Cómo sincronizarlos o prohibir que win7 los divida así?

Gracias.

https://www.mql5.com/ru/forum/1111/page712#comment_173757
 
TheXpert:

1. Cada lengua tiene su propio ámbito de aplicación. Decir que una lengua es "la más avanzada" en general es absurdo.

2. ¿Qué más da cómo se llame? El punto apenas cambia.

1. ok, estoy de acuerdo. entonces mql5 es el lenguaje más avanzado para el auto-trading. :) Sigamos presionando.

2... ¡Eso es, estamos pidiendo, estamos pidiendo!

Vladix:
2. Con el apoyo de

¡Todos lo pedimos colectivamente!

:)

 
Hola a todos.
¿se hacen aquí preguntas elementales sobre el lenguaje mql5? :-)
a juzgar por la discusión, aquí sólo hay "hell-oops"...
 
GameOver:
Hola a todos.
¿se hacen aquí preguntas elementales sobre el lenguaje mql5? :-)
No sé, pero a juzgar por la discusión, aquí sólo hay infernales OOP-ers...

Siempre hay muñecos de diferentes calibres. Bueno, puedes hacer una rama "para cojos", si te sientes más cómodo ahí ;-).
 
En un esfuerzo por dominar esta creación sintáctica, creyendo en la "simplicidad" del lenguaje,
empezó a dibujar un guión rudimentario.
En fin, un apunte y una pregunta.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

Por desgracia, si el número de barras se establece como Ilimitado, el script no funciona,
dice que no hay suficiente memoria, es decir, una llamada deTerminalInfoInteger(TERMINAL_MAXBARS) resulta ser en realidad

lo cual es extraño, porque en realidad no hay más de 100 000 barras en el gráfico.
¿Cómo puedo obtener el número de barras realmente cargadas? Porque los redactores no tienen tiempo para devolver nada...

la segunda pregunta es esta.
intentar implementar una comprobación elemental (era elemental en µl4)

      // delete bad day of week and bad bars
      if (TimeDayOfWeek(Time[i])<1 || TimeDayOfWeek(Time[i])>5 || (High[i]-Low[i])<10*Point) { errBar++; continue; }

Las búsquedas en el foro (la búsqueda en la ayuda de mql5 sobre las frases day_of_week, dayofweek no dio nada... ¡una ayuda muy útil!) llevaron a la siguiente implementación

MqlDateTime temp;
TimeToStruct(aBars[i].time,temp);
if (temp.day_of_week<1 || temp.day_of_week>5 ||  aBars[i].high-aBars[i].low<10*Point() ) {errBar++; continue;}

como el derecho? en lugar de una línea hay tres - y es elemental.
¿es posible simplificarlo? ¿o todas las operaciones elementales se sustituyen ahora por la engorrosa creación de objetos, clases, estructuras intermedias?

Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
Документация по MQL5: Основы языка / Операторы / Оператор создания объекта new
  • www.mql5.com
Основы языка / Операторы / Оператор создания объекта new - Документация по MQL5
 

¡Buenos días!

¿Podríais indicar si hay brokers en Rusia que ofrezcan Metatrader como terminal para trabajar en FORTS y MICEX?

 

Por favor, sugiera una variante del algoritmo de la "ruleta" más rápida que ésta:

//——————————————————————————————————————————————————————————————————————————————
// Рулетка.
int Selection()
{
  //----------------------------------------------------------------------------
  int    i=0,u=0;
  double p=0.0,start=0.0;
  double          fit[][2];
  ArrayResize(fit,SizeOfPop);
  ArrayInitialize(fit,0.0);
  double delta=(Population[0][0]-Population[0][SizeOfPop-1])*0.1-Population[0][SizeOfPop-1];
  //----------------------------------------------------------------------------
  for(i=0;i<SizeOfPop;i++)
  {
    fit[i][0]=start;
    fit[i][1]=start+MathAbs(Population[0][i]+delta);
    start=fit[i][1];
  }
  p=RNDfromCI(fit[0][0],fit[SizeOfPop-1][1]);

  for(u=0;u<SizeOfPop;u++)
    if((fit[u][0]<=p && p<fit[u][1]) || p==fit[u][1])
      break;
    //--------------------------------------------------------------------------
  return(u);
}
//——————————————————————————————————————————————————————————————————————————————
Está claro que los arrays se pueden sacar de la función para no tener que declararlos cada vez y redimensionarlos, pero necesito una solución más revolucionaria. :)
 
GameOver:
En mis intentos por dominar esta creación sintáctica, creyendo en la "simplicidad" del lenguaje,
empezó a dibujar un guión rudimentario.
En fin, un apunte y una pregunta.

void OnStart() {
   MqlRates  aBars[];
   ArraySetAsSeries(aBars,true);
   int maxBars=TerminalInfoInteger(TERMINAL_MAXBARS); , bad_bars=0;
   int bars=CopyRates(Symbol(),Period(),0,maxBars,aBars);

Por desgracia, si el número de barras se establece como Ilimitado, el script no funciona,
dice que no hay suficiente memoria, es decir, en esencia, se llamará aTerminalInfoInteger(TERMINAL_MAXBARS);

lo cual es extraño, porque en realidad no hay más de 100 000 barras en el gráfico.
¿Cómo puedo obtener el número de barras realmente cargadas? Porque los derechos de autor no tienen tiempo de devolver nada...

Intentemos resolverlo. Para la función CopyRates() el penúltimo parámetro

int              count,             // сколько копируем
Es decir, el número de elementos a copiar. En su diseño, el número de elementos es ilimitado. A grandes rasgos, irreal :) Eso es probablemente lo que ocurre cuando trabajas, redistribuyendo constantemente la memoria hasta agotarla. Intente utilizar un valor más específico, en lugar de TerminalInfoInteger(TERMINAL_MAXBARS):MQL5 Reference / Access to timeseries and indicators / Bars
Razón de la queja: