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

 
vikon писал(а) >>

Sé sobre la apertura de un pedido usando un código.

Necesito crear un sistema semiautomático con propiedades de gestión.

Abro una posición manualmente, pero el EA monitoriza el tamaño del lote y lo cambia por defecto en MT (servicio/configuración/comercio/volumen por defecto).

¿Es posible hacerlo?

No. Al menos no en MQL4

 
granit77 >> :

La referencia sería útil:

double iWPR( string symbol, int timeframe, int period, int shift)

Por lo tanto, lo correcto es:

MUCHAS GRACIAS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 
Gente, ¿cómo se saca el tiempo de formación de una columna concreta en el MACD sin usar un gráfico de precios?
 
Noterday >> :
Gente, ¿cómo se saca el tiempo de formación de una barra concreta en el MACD sin usar el gráfico de precios?

La columna corresponde al momento de la formación de la barra en el gráfico de precios,

Es decir, necesitas saber el número de una barra concreta.

 

¿Cuáles son las reglas de optimización del código? Me interesan las reglas de escritura, no el algoritmo.

Para ser más precisos, permítanme darles un ejemplo:

hay dos guiones "idénticos":

int start()
  {
//----
  int start=GetTickCount();
  int Massiv[100000000];
  int x=ArraySize( Massiv);
  for (int a=0; a<= x; a++)
    {
    Massiv[ a]= a;
    }
  Alert("прошло времени: ",GetTickCount()- start);
//----
   return(0);
  }

и

int start()
  {
//----
  int start=GetTickCount();
  int Massiv[100000000];
  for (int a=0; a<=ArraySize( Massiv); a++)
    {
    Massiv[ a]= a;
    }
  Alert("прошло времени: ",GetTickCount()- start);
//----
   return(0);
  }

el primero es el doble de rápido que el segundo. (para mí son 4 segundos)

Está claro que los arrays de cien millones no se usan a menudo :-) y que en realidad la ganancia es de un par de milisegundos para un array normal y que el principal problema está en los algoritmos con errores y no en esas nimiedades, pero sin embargo...

 
beruk >> :

¿Cuáles son las reglas de optimización del código? Me interesan las reglas de escritura, no el algoritmo.

Para ser más precisos, permítanme darles un ejemplo:

hay dos guiones "idénticos":

и

el primero es el doble de rápido que el segundo. (para mí son 4 segundos)

Está claro que las matrices de cien millones no se utilizan a menudo :-) y que en realidad la ganancia será de un par de milisegundos para una matriz ordinaria y que el principal problema está en los algoritmos con errores y no en detalles tan minúsculos, pero aun así...

No hay reglas como tales. Es decir, puedes escribirlo como te parezca y funcionará. Por supuesto, funcionará con diferente eficacia.

Para cada operación se conoce su coste en términos de expresión de tiempo - puedes encontrarlo en los estándares del lenguaje, así como el flujo de trabajo de los bucles y otras construcciones del lenguaje (el estándar de C - lo menciono porque dudo que hayas intentado entenderlo, empezando por lo básico - el productor recomendó consultar este mismo estándar del lenguaje en todos los casos no especificados).

En el segundo caso se llama constantemente a la función ArraySize(Massiv) - esta es la operación más cara (llamada a la función - cualquiera, no esta), mientras que la operación de comparación se llama en cada bucle.

En este caso: el bucle

for (int a=ArraySize(Massiv)-1;a>0;a--)

hará lo mismo pero significativamente más rápido. Me refiero a la forma de organizar el bucle. Si tiene cálculos voluminosos en un bucle, no habrá gran diferencia.

Hay un "pero": si utilizas un probador o redes reentrenadas, la diferencia será muy significativa y aparecerá muy, muy ....

Sí, una cosa más: tienes un error en el primer script - que va más allá de los límites del array. Lee los manuales, ahí está todo escrito. Deberías escribirlo así:

int x=Tamaño de la matriz(Massiv);
for (int a=0;a<x;a++)

Buena suerte.

 

Buenas tardes

Por favor, explique cómo interpretar este pasaje en el tutorial de FileOpen

===

El contenido de las entradas en los archivos

Con cualquier combinación de modos, los registros de datos se escriben en el archivo sin espacios. Cuando los archivos se forman en modo FILE_BIN, los registros de datos se escriben consecutivamente. Dependiendo del tipo de datos que se escriban en el archivo (y de las funciones de grabación utilizadas para ello), puede escribirse una combinación de caracteres de fin de línea ("\r\n") entre grupos de registros. Cuando se generan archivos en modo FILE_CSV, los registros de datos se separan con un separador de archivos (normalmente ';'), y los grupos de registros (formados por cadenas) se separan con una combinación de caracteres de fin de línea ("\r\n").

===

todo está clarocon "int FileOpen(string filename, int mode, int delimiter=';') "

¿Dónde debo poner ("\r\n")? ¿Se puede utilizar con FILE_CSV? Dame un ejemplo con ("\r\n") por favor, soy muy tonto.

 
Hola! Necesito escribir un Asesor Experto para esto: https://www.mql5.com/ru/code/8663 indicador, me refiero a HP.mq4 (si sube comprar, si baja vender). Sí que se sobregira, pero en el caso de periodos grandes, por ejemplo de 100 a 200, es soportable. O puede añadir una señal MA si la señal está por debajo de este indicador - comprar, si es superior - vender.
 
teetrinker >> :

Buenas tardes

Por favor, explique cómo interpretar este pasaje en el tutorial de FileOpen

===

El contenido de las entradas en los archivos

Con cualquier combinación de modos, los registros de datos se escriben en el archivo sin espacios. Cuando los archivos se forman en modo FILE_BIN, los registros de datos se escriben consecutivamente. Dependiendo del tipo de datos que se escriban en el archivo (y de las funciones de grabación utilizadas para ello), puede escribirse una combinación de caracteres de fin de línea ("\r\n") entre grupos de registros. Cuando se generan archivos en modo FILE_CSV, los registros de datos se separan con un delimitador de archivo (normalmente ';'), y los grupos de registros (formados por cadenas) se separan con una combinación de caracteres de fin de línea ("\r\n").

===

todo está clarocon "int FileOpen(string filename, int mode, int delimiter=';')".

pero, ¿dónde se debe utilizar "\N"? ¿Se puede utilizar con FILE_CSV?

En ninguna parte. El manual dice en ruso claro: "los grupos de registros (que hacen cadenas) se separan con una combinación de caracteres de fin de línea ("\r\n")".

 

¿Podría darme una pista?

en mi EA, hay varias alertas seguidas en un bloque, y varias seguidas en otro bloque

en el registro de la prueba no están en orden sino ordenados - 2 alertas del primer bloque, 3 del segundo, luego 3 del primero y las últimas 2 del segundo

poner un deslizamiento de 500 segundos después de cada uno, es decir, la mitad de un segundo y ninguna acción - todos son todavía al azar y en 1 segundo se puede colocar todos los 10

¿cuál es la razón?

¿cómo hacer que las alertas vayan en orden?

Razón de la queja: