[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 227

 
oyshen >> :

Comment puis-je sélectionner les 2 dernières transactions déjà clôturées (dans la liste de l'historique du compte) ?

Cela devrait être quelque chose comme ceci

comment écrire le paramètre correct à sélectionner ?

Les deux dernières commandes auront les numéros OrdersHistoryTotal()-1 et OrdersHistoryTotal()-2.


Voici un script à tester

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()));  
   }
}

>> Bonne chance !

 
alsu >> :

le code est assez grossier.

Voir : i=Bars-Period1+1 à la première itération de la boucle, nous obtenons k=i+Period1-1=Bars-Period1+1+Period1-1=Bars et ensuite Close[k], ce qui signifie que nous sommes déjà sortis du tableau.

Correct : i=Bars-Period1-1

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

Existe-t-il un moyen de trouver le maximum(min) du rapport close[i]/close[i+1], mais sans utiliser de tableaux ??? Merci !

 
Mr-Franklyn >> :

Existe-t-il un moyen de trouver le maximum(min.) de la relation close[i]/close[i+1], mais sans utiliser de tableaux ??? Merci !

la question est de savoir où écrire ce que le maximum sera recherché. cela s'appelle généralement un tableau :) ArrayMax(in)imum est optimal

 
alsu >> :

la question est de savoir où écrire ce que le maximum sera recherché. cela s'appelle généralement un tableau :) ArrayMax(in)imum -optimal

Et si vous l'écrivez dans un tampon ?

 
Mr-Franklyn >> :

Existe-t-il un moyen de trouver le maximum(min.) du rapport close[i]/close[i+1], mais sans utiliser de tableaux ??? Merci !

Si j'ai bien compris la question. Vous pouvez expérimenter non pas avec close[i], mais comme ceci :

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

où Cbar, -nombre de dernières mesures, parmi lesquelles un extremum est recherché

 
rid >> :

Si j'ai bien compris la question. Il est possible d'expérimenter non pas de près, mais comme ceci :


où Cbar est le nombre de dernières mesures parmi lesquelles l'extremum est recherché.

C'est la valeur absolue du rapport Prace[i]/Price[i+1] qui m'intéresse.

 
Mr-Franklyn >> :

Et si vous le mettiez dans un tampon ?

Un tampon n'est-il pas un tableau ?

 
alsu >> :

Un tampon n'est-il pas un tableau ?

Oui, mais si j'écris Buffer[i]=close[i]/close[i+1] et que j'utilise ensuite la fonction iHighest, rien ne fonctionne !!!!.

 
Mr-Franklyn >> :

Oui, mais si j'écris Buffer[i]=close[i]/close[i+1] et que j'utilise ensuite la fonction iHighest, rien ne se passe !!!!.

parce que iHighest ne fonctionne qu'avec des séries chronologiques. Pour les autres tableaux, l'analogue de 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
}