Preguntas de un "tonto" - página 64

 
Europa:
Me pueden decir por qué la alerta da Orders_Total=1, cuando en realidad hay una posición y una orden, es decir, en teoría debería dar 2, no 1

Intenta hacer el ciclo al revés, desde el final.

string Symb="EURUSD";
  for(i=OrdersTotal()+PositionsTotal()-1;i>=0;i--)
     {
      if(Symb==PositionGetSymbol(i)) Orders_Total++;
     }
     Alert(Orders_Total);
 
tol64:

Intenta hacer el ciclo al revés, desde el final.

No ayudó ;(
 
Europa:
No funcionó ;(

Ah, sólo tienes un control de posición:

if(Symb==PositionGetSymbol(i)) Orders_Total++;
Ahí sólo se cuentan las posiciones.
 
tol64:

Ah, sólo tienes un control de posición:

Ahí es donde sólo cuentan las posiciones.
¡¡¡¡SO!!!! ¡¡¡Muchas gracias!!!
 
tol64:

La referencia dice que:

Se puede omitir la fecha (año, mes, fecha) o la hora (horas, minutos, segundos) o todo junto. La gama de valores va del 1 de enero de 1970 al 31 de diciembre de 3000.

Ejemplos:

D'2004.01.01 00:00' // Año Nuevo
D'1980.07.19 12:30:27'
D'19.07.1980 12:30:27'
D'19.07.1980 12' //año nuevo d'1980.07.19 12:00:00'
D'01 .01.2004' //equivalente D'01.01.2004 00:00:00'
D'12:30:27' //equivalente a D'[fecha de compilación] 12:30:27'
D' '//equivalente a D'[fecha de compilación] 00:00:00''

...

¿O es que lo he entendido mal?

La ayuda se modificará para que no surjan estas cuestiones en el futuro. Gracias.
 
Europa:
No sirvió de nada ;(

¿Por qué se suman moscas y chuletas y luego se determina cuántas chuletas hay?

Los pedidos cuentan por separado, las posiciones por separado. PositionGetSymbol() devuelve sólo la presencia de una posición por símbolo, y no dice nada sobre las órdenes. Como sólo hay una posición, da 1. Y sigues teniendo suerte, ya que el parámetro del bucle va más allá de los valores aceptables (PositionsTotal), puedes conseguir lo que quieras.

P.D. Ya has contestado, llego tarde.

 
No he podido encontrar ninguna función o propiedad interna para dar la propiedad de seleccionable a un objeto gráfico (por defecto, el objeto se dibuja programáticamente sin posibilidad de seleccionarlo con el ratón). Evidentemente, la pregunta es: ¿es posible dotar a un objeto gráfico de una propiedad de este tipo de forma normal, sin necesidad de bibliotecas adicionales y otras artimañas?
 
x100intraday:
No he podido encontrar ninguna función o propiedad interna para dar la propiedad de seleccionable al objeto gráfico (por defecto el objeto se dibuja programáticamente sin seleccionarlo con el ratón), sólo lo he encontrado en la librería gráfica incluida. Evidentemente, la pregunta es: ¿es posible dotar a un objeto gráfico de una propiedad de este tipo de forma normal, sin necesidad de bibliotecas adicionales y otras artimañas?

ObjectSetInteger

con prop_id=OBJPROP_SELECTABLE

 
Valmars:

ObjectSetInteger

con prop_id=OBJPROP_SELECTABLE

Muchas gracias.
 
bool ExtFunc (string str, int P, int i)
  {
   if (high[i] < high[i-1]) return(false);
   return(true);   
  }

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i=0;
   if ExtFunc("s",60,i) == 1)
     Buffer[i] = high[i];
  }

EnOnCalculate puedo utilizar fácilmente los elementos del array como alto por índice. ¿Es posible también acceder a los elementos del índice de este array en ExtFunc? Al llamar a mi función, ¿debo pasar el array-argumento por referencia, por puntero o por otra cosa? Hasta ahora he conseguido minimizar los mensajes de error a: "'high' - parameter conversion is not allowed" y "'high' - constant variable cannot be passed as reference" respecto a la misma línea de mi llamada a la función con el argumento del array de OnCalculate. ¿Es inútil o hay una solución?

Hasta ahora en OnCalculate he recurrido a copiar los altos a otro array:

ArrayCopy(CopyOfHigh,high,0,0,WHOLE_ARRAY);
y luego usar CopyOfHigh en ExtFunc en lugar de usar high-array directamente.