Questions de base ...

 

Bonjour

Je veux faire ce qui suit dans le code

Ne pas trader pendant les 30 minutes qui suivent ma dernière transaction.

Donc, si mes indicateurs indiquent que je devrais ajouter à mon trade actuel à nouveau, alors je place le trade dans la même direction seulement si 30 minutes sont passées.

Je fais ce qui suit - ce code ne fonctionne pas encore - il est juste en phase de conception - je ne sais pas comment ajouter 30 minutes à mon dernier ordre.

Ceci est pour un EA qui ne travaille que sur la paire actuelle.

int start()

{

int cnt, ticket, total, stop1 ;

static datetime lasttime

total=OrdersTotal() ;

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ;

//Déterminer l'heure du dernier OrderClose

if (OrderCloseTime > lasttime + 30)

{

lasttime = orderclosetime

}//if (OrderCloseTime)

}

Maintenant, je veux dire

si (Curtime() > lasttime + 30 minutes)

{

Poursuivre la négociation

}

Veuillez m'aider

 

Je pense que ça a l'air bien, mais dans la vérification de l'OrderCloseTime,

je ne vois pas pourquoi vous avez besoin des 30 minutes supplémentaires.

Si le plus récent OrderCloseTime est plus récent que le précédent, alors il devrait être lasttime.

 

si (Curtime() > lasttime + 30*60)

 

Question de base ...

Bonjour,

Je suis nouveau sur MetaTrader et j'ai une question de base :

Je veux limiter les positions ouvertes dans mon conseiller-expert à seulement 1 position à la fois - mais je veux cette limitation par symbole, donc si je lance un autre conseiller-expert sur un autre symbole, il ouvrira une nouvelle position sur ce symbole.

En d'autres termes, je veux pouvoir ouvrir 1 position pour tous les symboles, mais pas plus d'une position pour un symbole (et je parle de plusieurs conseillers-experts sur plusieurs symboles...).

Comment puis-je le faire ?

J'ai vu la fonction"totaltrades", mais d'après la documentation, j'ai compris que cette fonction s'applique au compte et non au symbole courant,

donc "if totaltrades=1 then exit ;" provoquera 1 position à la fois pour tous les symboles...

10X !

 

1 position pour tous les symboles

int total=OrdersTotal();

if(total<1)

{

.

.

.

}

 

Mais une position pour un symbole ou pour un graphique ouvert?

 

Eh bien, un par graphique est le mieux ...

Mais si ce n'est pas possible, alors un par symbole est également bon...

 

1 par symbole

...

for (int i=0; i<OrdersTotal(); i++) {

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

if (OrderSymbol()==Symbol() )

return(0);

....
 

Super !

10X plus !

 

Et je vais vous déranger à nouveau ... ( :

Puis-je le faire aussi par graphique ?

Parce que j'ai différents systèmes pour des graphiques à intervalles de temps différents ...

 

Désolé, je ne comprends pas.

Raison: