[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 89

 
keep87:
no es posible

es posible))

Por ejemplo, puede hacer que el EA cargue el array en las variables globales del terminal y luego lo lea desde allí.

 
alsu:
Decida cuál es el resultado que desea obtener. Si el valor de la máquina es de 5 barras hacia atrás, entonces

o idéntico

Si es así,

siempre será EMPTY_VALUE, ya que no hay ninguna muñeca desplazada en estas barras

Lo tengo, ¡gracias!
 
alsu:
Lo mejor de todo es que no te molestes con los turnos en el EA, sólo toma el turno 0 y el número de la barra que quieras.
He comprobado con el probador ahora, resulta que la operación se abre 5 velas después de cruzar las medias móviles, y no es el caso... Me di cuenta de lo que puedes hacer, mover la otra MA 5 velas hacia adelante, entonces la señal es correcta...)
 
ierehon:
Lo he comprobado ahora con el probador, resulta que la operación se abre 5 velas después de que las medias móviles se hayan cruzado, y eso no es lo mismo... Me di cuenta de lo que hay que hacer, mover otra MA 5 velas hacia adelante, entonces la señal es correcta ...)

es lo mismo))

barra cero de la MA desplazada 5 barras a la derecha = 5ª barra de la MA no desplazada

 
keep87:
no puede. Es posible puntuar manualmente los datos de matriz a matriz dentro de EA si no cambia de optimización a optimización, para el tiempo de las pruebas.
Pero en este caso, MT tendrá que leer el array desde el archivo cada vez(?), pero no desde uno separado, sino desde el código.
- ¿Habrá alguna ganancia en este caso?
 
alsu:

es posible))

Por ejemplo, puede hacer que el Asesor Experto cargue la matriz en las variables globales del terminal y luego lea desde allí.

Los elementos de la matriz pueden ser de varias docenas a varios centenares y para cada variable debe declararse de antemano.
Será bastante difícil de implementar (por supuesto, la tarea tampoco es trivial).
 
chief2000:
Los elementos de las matrices pueden ser de varias docenas a varios centenares, y hay que declarar previamente una variable para cada uno de ellos.
Es un poco complicado de implementar (por supuesto, la tarea tampoco es trivial).

¿Y qué? Maneje las variables en el bucle de la misma manera que manejaría los elementos de la matriz. Ejemplo de uso:

double a[];
int n;

...
ArrayResize(a,n);
...

//запись массива в глобальные переменные

string name;
for(i=0;i<n;i++)
{
   name = StringConcatenate("__ARRAY_",i);
   GlobalVariableSet(name,a[i]);
}

//чтение в массив из глобальных

int gv = GlobalVariablesTotal();
int index;

for(i=0;i<gv;i++)
{
   name = GlobalVariableName(i);
   if(StringFind(name,"__ARRAY_")==0)
   {
      index = StrToInteger(StringSubstr(name,8));
      if(index>=0&&index<n) a[index]=GlobalVariableGet(name);
      
      //опционально - если хотим очистить список
      //GlobalVariableDel(name);
   }
}


no puede ser más sencillo))

 
alsu:

¿Y qué? Maneje las variables en el bucle de la misma manera que manejaría los elementos de la matriz. Ejemplo de uso:

no puede ser más sencillo))

En mi memoria, he trabajado con un par de miles de variables de esta manera, y no he notado ninguna ralentización. Para cantidades mayores (cientos de miles de artículos o más), suelo intentar utilizar MySQL.
 
alsu:
En mi memoria he trabajado de esta manera con un par de miles de variables, y no he encontrado ningún retraso. Para cantidades mayores (cientos de miles de artículos o más), suelo intentar utilizar MySQL.
MUCHAS GRACIAS.
 

Me pueden asesorar, hay un archivo csv con datos en el formato 1,33027; 1,33023 y así sucesivamente.

Entonces lee este archivo pero por alguna razón los datos se leen con una precisión de 4 dígitos y yo necesito con 5.

Leer de diferentes maneras y

FileReadString и FileReadDouble и FileReadInteger

no ayuda