[¡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 159

 
anton777:
Lo he escrito un poco mal, lo he corregido.

¿Es un guión o algo así?
 
bikrus13:

¿es esto un guión o qué?
Este es un trozo de código de mi EA, que aumenta los lotes de órdenes a medida que se colocan.
 
anton777:
Este es un trozo de código de mi EA que aumenta los lotes de órdenes a medida que se colocan.

Envíame el propio EA a mi correo si puedes, le echaré un vistazo.
 
bikrus13:

Envía tú mismo el EA si puedes, le echaré un vistazo.


Tienes un asesor en pausa.

 

¿Puedes decirme por qué iBarShift en el indicador sigue devolviendo 0?

Todo comenzó cuando el indicador dejaba de dibujarse periódicamente. Decidí averiguar la razón por la que esto sucede y me encontré con que iBarShift siempre devuelve 0.

Un trozo de código:

   int shift = getShift(PERIOD_D1, 1); 
   datetime dt = iTime( Symbol(), PERIOD_D1, shift); //----- время всегда возвращает правильно
   int a = iBarShift( Symbol(), PERIOD_H1, dt, false); //----- а тут всегда 0

//--------
int getShift(int timeframe, int shift)
{
  return(iBarShift(NULL, timeframe, Time[shift]));
} 
 
alsu:
Creo que sí, comprueba...
Acabo de ver tu sugerencia, pero a estas alturas ya se me ha ocurrido a mí ))) Gracias
 
hola. ¿saben si hay una función incorporada que permita determinar el número de la vela a la que pertenece el tiempo?
 
nadya:
Hola. ¿Sabéis si existe una función integrada que permita determinar el número de vela a partir de la hora?

int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)
Busca el bar por tiempo. La función devuelve el desplazamiento de la barra a la que pertenece la hora especificada. Si no hay ninguna barra para el tiempo especificado (un "hueco" en el historial), la función, dependiendo del parámetro exacto, devuelve -1 o el desplazamiento de la barra más cercana.
 
Vinin:

int iBarShift( string symbol, int timeframe, datetime time, bool exact=false)
Busca el bar por tiempo. La función devuelve el desplazamiento de la barra a la que pertenece la hora especificada. Si no hay ninguna barra para el tiempo especificado (un "hueco" en el historial), la función, dependiendo del parámetro exacto, devuelve -1 o el desplazamiento de la barra más cercana.
¡Muchas gracias, recuerdo que estaba por ahí y es un problema encontrarlo!
 

Aquí está el código del script:

int start()
{
   int n=0, m=7, t=2, k;
   string s;
   for(n=0;k<10000;t++)
   {k=t*4/2;
   Print("k=", k);}

   return(0);
}

Cuando se ejecuta el script, se muestra un mensaje en el registro de expertos:

2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=10000
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9998
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9996
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9994
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9992
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9990
......................................................
......................................................
......................................................
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9576
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9574
2012.06.03 19:16:39     Task1.4_hoz AUDUSD,M15: k=9572

Es decir, el valor de k parte de 9572, y debe ser el primer valor t*4/2 = 2*4/2 = 4. ¿Cuál es el problema?

Razón de la queja: