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

 
oyshen >> :

¿Cómo puedo seleccionar las 2 últimas operaciones ya cerradas (de la lista del historial de la cuenta)?

Debería ser algo así

¿cómo escribir el parámetro correcto a seleccionar?

Los dos últimos pedidos tendrán los números OrdersHistoryTotal()-1 y OrdersHistoryTotal()-2.


Aquí hay un script para probar

int start()
{
   int i, accTotal=OrdersHistoryTotal();
   for( i=0; i< accTotal; i++)
   {
     if(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY)==false)
       {
        Alert("Ошибка при доступе к исторической базе (",GetLastError(),")");
        break;
       }
     Alert( i,":",TimeToStr(OrderCloseTime()));  
   }
}

>> Buena suerte.

 
alsu >> :

el código es bastante tosco.

Véase: i=Bars-Period1+1 en la primera iteración del bucle, obtenemos k=i+Period1-1=Bars-Period1+1+Period1-1=Bars y luego Close[k], lo que significa que ya estamos fuera del array.

Correcto: i=Bars-Period1-1

..................

¿Hay alguna manera de encontrar el máximo(min) de la relación close[i]/close[i+1], pero sin usar arrays? Gracias.

 
Mr-Franklyn >> :

¿Existe alguna forma de encontrar el máximo (mínimo) de la relación close[i]/close[i+1], pero sin utilizar arrays? Gracias.

la cuestión es dónde escribir lo que se buscará como máximo. esto se suele llamar un array:) ArrayMax(in)imum es óptimo

 
alsu >> :

la cuestión es dónde escribir lo que se buscará como máximo. esto se suele llamar un array:) ArrayMax(in)imum -óptimo

¿Y si lo escribes en un buffer?

 
Mr-Franklyn >> :

¿Existe alguna forma de encontrar el máximo (mínimo) de la relación cierre[i]/cierre[i+1], pero sin utilizar matrices? Gracias.

Si he entendido bien la pregunta. Puedes experimentar no con close[i], sino así:

макс= iHigh(NULL,0,iHighest(NULL,0,MODE_HIGH, Cbar,0));
мин= iLow (NULL,0,iLowest (NULL,0,MODE_LOW, Cbar,0));  

donde Cbar, -número de últimos compases, entre los que se busca un extremo

 
rid >> :

Si he entendido bien la pregunta. Es posible experimentar no con cerca, sino así:


donde Cbar es el número de últimos compases entre los que se busca el extremo

Lo que me interesa es el valor absoluto de la relación Prace[i]/Price[i+1].

 
Mr-Franklyn >> :

¿Y si lo pones en un buffer?

¿Un buffer no es un array?

 
alsu >> :

¿Un buffer no es un array?

¡¡¡¡Sí, pero si escribo Buffer[i]=close[i]/close[i+1] y luego uso la función iHighest, no funciona nada!!!!

 
Mr-Franklyn >> :

¡¡¡¡Sí, pero si escribo Buffer[i]=close[i]/close[i+1] y luego uso la función iHighest, entonces no pasa nada!!!!

porque iHighest sólo funciona con series temporales. Para otras matrices análogas a ArrayMaximum

 
double Buffer[];

int init()
{
   SetIndexBuffer(0, Buffer);
}

int start()
{
for( i= start; i>=0; i--)
{
   Buffer[ i]=Close[ i]/Close[ i+1];
   double max= Buffer[ArrayMaximum( Buffer, period, i)];
   double min= Buffer[ArrayMinimum( Buffer, period, i)];
   double stddev=iStdDevOnArray( Buffer, period,8,0,MODE_EMA, i);
//TODO
}
///TODO
}
Razón de la queja: