Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 57

 
FAQ:

Et les tableaux ?

Nous lisons la liste des commandes dans un tableau à deux dimensions, la première dimension est un magik, la seconde est un profit.

ArraySort() - les ordres sont alignés par des magiciens dans l'ordre, puis on commence à les additionner et à les afficher.

C'est cool !

Qu'avons-nous à l'intersection des dimensions ?

 

Si nous lisons directement les ordres à partir de la liste, les magiciens seront éparpillés, c'est-à-dire que nous devons au moins connaître les magiciens, ou faire une boucle à l'intérieur de la boucle pour trouver un magicien dans la deuxième liste et lui ajouter un bénéfice.

Après ArraySort() les magiciens sont alignés dans l'ordre. nous parcourons simplement le tableau et additionnons la deuxième dimension (profit) dès qu'un magicien de la première dimension a changé - nous sortons une variable texte :

int premagic = arr[0][0];
string text = "";
for(i=0;i=ArrayRange(arr,0);i++){
   if(arr[i][0]==premagic){
       profit += arr[i][1];
   }else{
       text = text + "MagickNum :"+premagic+"  Profit :"+profit+"\n";
       profit   = arr[i][1];
       premagic = arr[i][0];
   }
}
Comment(text);
 
borilunad:
Vérifiez exactement l'histoire hebdomadaire de W1 !

Merci, seulement je télécharge l'historique lors de l'installation et je vérifie spécifiquement sur la période où il n'y a définitivement pas de trous - les chandeliers sont sur le graphique.
 
Aide pour un débutant ! Je ne parviens pas à résoudre un seul problème.
Un conseiller expert ouvre jusqu'à 100 ordres, puts sl et thr. Lorsqu'un certain niveau de signal est franchi, l'ordre est modifié sl. et thr. Chaque commande a son propre niveau de signal individuel, sl et thr. Sl et thr pour une modification ultérieure est calculé au moment de l'ouverture de la commande.
Je ne peux pas penser à un algorithme. S'il vous plaît, poussez-moi ! !!
 
Comment puis-je faire en sorte que mon EA se souvienne que deux ordres au maximum peuvent être ouverts sur un chandelier particulier ?
 
MauzerVII:
Comment faire pour que l'EA se souvienne que deux ordres au maximum peuvent être ouverts sur un certain chandelier ?


Si vous venez du marché, retenez l'heure d'ouverture d'un ordre et fixez le nombre d'ordres ouverts à un.

Lorsque l'ordre suivant est ouvert, vérifiez le temps, s'il n'a pas dépassé la barre, alors incrémentez le nombre d'ordres ouverts.

Le reste de la logique est assez facile à construire.

 

une autre question :

Nous clôturons un lot de commandes, environ 30 commandes par cycle.

Comment vérifier si tous les ordres sont fermés ou faire une boucle qui va pilonner le courtier jusqu'à ce qu'il arrête les requotes?

J'ai juste dessiné la première chose qui m'est venue à l'esprit, est-ce possible de le faire ?

void close (int m)
{
for( int f=OrdersTotal()-1; f>=0; f--)
if ( OrderSelect(f,SELECT_BY_POS)    )
if ( OrderSymbol()==Symbol()         )
if ( OrderMagicNumber()==m           )
if (OrderType()==0)
if (OrderClose(OrderTicket(),OrderLots(),Bid,Slip,Red)==true) continue;
else f++;
if (OrderType()==1)
if (OrderClose(OrderTicket(),OrderLots(),Ask,Slip,Red)==true) continue;
else f++;
}
 
nachalo = H;
finich = D;

if (DayOfWeek() == 1 && Hour()==H && Minute()<=00)
      {
      Opn_B = true;
      }
if(DayOfWeek() == 2 && Hour()==D && Minute()<=01)
      {                                           
      Cls_B=true;                 
      }

En testant l'EA par jours de la semaine et par heures, j'ai écrit le code suivant :

Sortie des variables "H", "D" vers.. :

extern int  H = 18;  
extern int  D =19;
dans les propriétés de l'EA, j'ai défini les valeurs de départ des variables de 0 à 23, étape 1.
Tous les résultats sont rejetés comme non significatifs. D'autres EA ont défini une plage de test mais celui-ci ne fonctionne pas.
S'il vous plaît, dites-moi ce qui ne va pas ?
 
nachalo = H;
finich = D;

if (DayOfWeek() == 1 && Hour()==H && Minute()<=0)
      {
      Opn_B = true;
      }
if(DayOfWeek() == 2 && Hour()==D && Minute()<=1)
      {                                           
      Cls_B=true;                 
      }
 
VOLDEMAR:


Merci, il m'a fallu trois jours pour le calculer manuellement.

La seule chose ennuyeuse est que le pourcentage de transactions rentables n'est pas visible dans l'optimisation. Y a-t-il un moyen de l'afficher ?


Raison: