Comment coder ? - page 19

 

Merci pour votre effort Nicholishen. Malheureusement, cela n'a pas fonctionné. Il modifie les ordres mais dans les deux sens. Ce que je veux dire, pour plus de clarté, c'est qu'en cas d'achat, le stop est déplacé vers le haut par les points du parcours, mais il est aussi déplacé vers le bas.

 

Je comprends ce que vous voulez dire, mais le code est correct. Soit un autre EA modifie ces ordres, soit il y a un autre code dans l'EA qui le fait, car ce n'est certainement pas ce code. Vous devrez arrêter tous les autres EA et vérifier le code de l'EA primaire pour d'autres appels à OrderModify().

Bonne chance =)

Dossiers :
 

Merci pour le temps que vous consacrez à ma maladresse.

le seul autre ordre modifié dans le code est un break even et un lock pips. je vais le joindre.

BEx=montant de pips à verrouiller

Je l'ai parcouru tant de fois que je suis sûr qu'il me regarde, mais je ne suis pas un pro, au mieux un hacker.

Merci encore Nicholishen !

void DoBE(int byPips)

{

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

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}

J'ai oublié d'ajouter que c'est le seul EA. Je fais actuellement un backtesting.

 
C.E.O.:
Merci pour le temps que vous consacrerez à ma petite personne

la seule autre modification d'ordre dans le code est un break even et un lock pips. je vais le joindre.

BEx=montant de pips à verrouiller

Je l'ai fait tellement de fois que je suis sûr qu'il me regarde, mais je ne suis pas un pro, au mieux un hacker.

Merci encore Nicholishen !

void DoBE(int byPips)

{

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

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // only look if mygrid and symbol...

{

if (OrderType() == OP_BUY) if (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

if (OrderType() == OP_SELL) if (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT)) if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT))) OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red);

}

}

}[/PHP]

Oh forgot to add, this is the only EA. Just currently backtesting.

Il est probable que ce qui se passe est qu'une fonction annule l'autre. Vous devez vérifier votre logique pour qu'une seule fonctionne à la fois.

[PHP]void DoBE(int byPips)

{

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

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES) ;

if ( OrderSymbol()==Symbol() && ( (OrderMagicNumber() == uniqueGridMagic) || (OrderComment() == GridName)) ) // ne regarde que si mygrid et symbol...

{

if (OrderType() == OP_BUY)

{

si (Bid - OrderOpenPrice() > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

si (OrderStopLoss() != (OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() + MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red) ;

}

}

}

if (OrderType() == OP_SELL)

{

si (OrderOpenPrice() - Ask > byPips * MarketInfo(OrderSymbol(), MODE_POINT))

{

if (OrderStopLoss() != (OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)))

{

OrderModify(OrderTicket(), OrderOpenPrice(), OrderOpenPrice() - MarketInfo(OrderSymbol(), MODE_POINT)*BEx, OrderTakeProfit(), Red) ;

}

}

}

}

}

retour ;

}
 

Vérification des commandes/codes MQL4

Message supprimé. Désolé pour la gêne occasionnée.

 

Code pour 'Allow live trading

Bonjour, pour que les EA fonctionnent, nous devons activer l'option 'Allow live trading'. Au lieu de devoir la cocher tout le temps lors du chargement de l'EA, quelle ligne de code dois-je ajouter pour que cette option soit automatiquement activée dans l'EA ?

Merci

 

Vous n'avez pas besoin de code pour faire cela...

matrixebiz:
Bonjour, pour que les EA fonctionnent, nous devons activer l'option 'Allow live trading'. Au lieu de devoir la cocher tout le temps au chargement de l'EA, quelle ligne de code dois-je ajouter pour que cette option soit automatiquement activée dans l'EA ? Merci

Hallo Matricebiz,

Vous pouvez le faire facilement en allant dans le menu de MetaTrader. Allez dans "Outils" puis "Options" (ou tapez simplement CRTL-O). Ensuite, dans l'onglet "Expert Advisor", cochez l'option "Allow live trading". Et voilà, tous les EA que vous attacherez ensuite seront autorisés à trader en direct.

-RJ1-

 

Oh, ok, c'était facile Merci

 

Code horaire EA

Je veux le code horaire de l'EA. Par exemple, il ne permettrait que le trading de 18:00-1:00. Est-ce possible ?

 

J'ai trouvé ceci

if (UseHourTrade){

if( !(Hour()>=FromHourTrade&&Hour()<=ToHourTrade)){

Comment("Heures de non-négociation !") ;

retour(0) ;

Une question :

Il utilise l'heure de mon courtier forex : Oui ou Non ??

Je pense que oui mais je veux être sûr

Et comment puis-je mettre les minutes comme 15:30 ? Il n'y a que des heures ?