Comment coder ? - page 202

 
asgard2:
Bonjour,

Je ne peux pas le compiler à cause d'une erreur de parenthèses déséquilibrées. Quelqu'un peut-il me dire pourquoi elles sont déséquilibrées ?

Merci

Si vous obtenez cette erreur, c'est qu'il vous manque un des éléments suivants : [ ou { ou (

probablement quelque part dans votre code il y a une fonction où vous mettez trop de {[(

J'ai vérifié une partie de votre code et j'ai trouvé quelques erreurs. Essayez ceci :

if ((type == _OP_BUYSTOP) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))//Time Delay for the next Buy Stop Order

{

int hstTotal=OrdersHistoryTotal();

for(i=0;i<hstTotal;i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) == false)

{

Print("Access to history failed ("+GetLastError()+")");

break;

}

else

{

if (OrderDelete() && (((TimeCurrent() - OrderCloseTime())/60) =< NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

Je pense également que la dernière partie de votre code (OrderDelete) ne fonctionnera pas, car la fonction OrderDelete ne vérifie rien - elle supprime la commande sélectionnée. Vous devez donc lui passer un paramètre avec le ticket de commande. Au lieu de cela, vous pouvez reconnaître les commandes supprimées en vérifiant leurs commentaires. Chaque ordre supprimé aura "canceled" dans son commentaire - vous pouvez comparer le résultat de la fonction OrderComment() pour le découvrir.

 

Quelqu'un peut-il m'aider ?

Bonjour,

J'essaie d'écrire un EA, et j'ai besoin d'aide pour écrire une formule.

Je veux que la formule calcule la différence entre la clôture de la bougie précédente (PCC1) et la clôture de la bougie deux bougies plus loin (PCC2) (je vais exécuter ceci sur plusieurs paires). HoL=(PCC1-PCC2)

Mon but est de signaler un achat ou une vente ;

bool BuySignal=false ;

bool SellSignal=false ;

si(HoL>0) BuySignal=vrai ;

si(HoL<0) SellSignal=vrai ;

Merci pour votre aide.

 

...

Si vous voulez utiliser plusieurs symboles à partir d'une instance d'EA que vous pouvez utiliser quelque chose comme ceci :

double HoL=iClose(symbolName,0,1)-iClose(symbolName,0,2);[/php]Or to prevent some back testing surprises, a slightly more complicated code

int symbolShift1 = iBarShift(symbolName,0,Time[1]);

int symbolShift2 = iBarShift(symbolName,0,Time[2]);

double HoL = iClose(symbolName,0,symbolShift1)-iClose(symbolName,0,symbolShift2);

If you are going to use it only on symbol that your EA is attached to than this

[php]

double HoL=Close[1]-Close[2];

est suffisant

PS :"symbolName" doit être réglé sur le symbole de votre choix.

Salutations

mladen

ForExTryo:
Bonjour,

J'essaie d'écrire un EA, et j'ai besoin d'aide pour écrire une formule.

Je veux que la formule calcule la différence entre la clôture de la bougie précédente (PCC1) et la clôture de la bougie deux bougies plus loin (PCC2) (je vais exécuter ceci sur plusieurs paires). HoL=(PCC1-PCC2)

Mon but est de signaler un achat ou une vente ;

bool BuySignal=false ;

bool SellSignal=false ;

si(HoL>0) BuySignal=vrai ;

si(HoL<0) SellSignal=vrai ;

Merci pour votre aide.
 
 

Cacher le TP

Remplacer

void OpenBuy()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,Ask+TP*Poin t,"Ask-StopLoss*Point,EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}

void OpenSell()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,Bid-TP*Point,Bid+StopLoss*Point,"EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}[/CODE]

to

[CODE]void OpenBuy()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_BUY,lot2,Ask,1,0,0,"Ask-StopLoss*Point,EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}

void OpenSell()

{

int ticket,err;

if (!GlobalVariableCheck("InTrade")) {

GlobalVariableSet("InTrade", CurTime()); // set lock indicator

ticket = OrderSend(Symbol(),OP_SELL,lot2,Bid,1,0,0,"EA Order",magic,0,Red);

GlobalVariableDel("InTrade"); // clear lock indicator

}

}
 

Distance entre les ordres d' achat stop

Bonjour à tous, J'essaie d'implémenter une distance entre un ordre d'achat stop supprimé et l'ordre d'achat stop suivant.

J'ai écrit ce code qui fonctionne sauf si le dernier ordre est autre chose. Je ne sais pas comment sélectionner un ordre d'achat stop supprimé dans l'historique. Si quelqu'un pouvait m'indiquer la bonne direction, je l'apprécierais vraiment.

Merci

// Délai avant que le prochain ordre "Buy Stop" soit supprimé.

//Time Delay for the next Buy Stop Order

if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))

{

total = OrdersHistoryTotal();

for(e = total - 1; e >= 0; e--)

{

OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol() != Symbol()) continue;

{

if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

}

}

}

 
asgard2:
Salut tout le monde,

Je pense que c'est mieux :

//Time Delay for the next Buy Stop Order

if ((type == _OP_BUY) && (MayOpenDeferOrder && NextBuyStop_Order_Minutes !=0))

{

total = OrdersHistoryTotal();

for(e = total - 1; e >= 0; e--)

{

OrderSelect(e, SELECT_BY_POS,MODE_HISTORY);

if(OrderSymbol() != Symbol()) continue;

if(((TimeCurrent() - OrderOpenTime())/60) < NextBuyStop_Order_Minutes) MayOpenDeferOrder = false;

break;

}

}
 
Roger09:
Je pense que c'est mieux :

Bonjour Roger,

Je suis très novice en matière de codage, pourquoi dois-je utiliser le "break" à cet endroit ? Est-ce qu'il serait automatiquement interrompu lorsque l'instruction est terminée ?

En outre, avez-vous des indices sur la façon de sélectionner un ordre supprimé dans l'historique ?

Merci

 

Vous ne nous montrez qu'un fragment du code et je ne peux que deviner.

Je suppose que vous commencez à vérifier l'historique après la fermeture du dernier ordre, donc vous avez besoin de connaître l'heure à laquelle il a été fermé. L'ordre le plus récemment clôturé se trouve à la fin de l'historique, donc vous n'avez pas besoin d'en connaître un autre et de "casser" la vérification.

Il y a des tonnes de méthodes pour trouver le bon ordre dans l'historique, vous avez le type, le numéro magique, les commentaires, etc.

 

besoin d'un codeur pour un EA simple

système rentable : min 50 pips -200 pips de profits par trade

système en 1 heure

utiliser seulement 1 indicateur plus ATR (20)

EA simple avec tp/sl/trailing stop

EA coder peut aider gratuitement s'il vous plaît PM avec votre email