Discussion de l'article "Livre de recettes MQL5 - Expert Advisor multi-devises et utilisation des commandes en attente dans MQL5" - page 3

 

Otto ...maintenant tu peux l'utiliser :-)

Chez moi, il fait des trades.

 

C'est une réponse très forte. Merci !

Je voulais juste signaler que les auteurs des articles devraient s'en occuper un peu.

Il suffit de

CheckTradingPermission()
et tous les déchets de MQL5xxx et ça marche;)
 
Otto Pauser:

C'est une réponse très forte. Merci !

Je voulais simplement signaler que les auteurs des articles devraient s'en occuper un peu.

Mmmhhh ..oui, nous savons.

Et j'ai donné un peu d'expression à cela.

C'est efficace, on le remarque à d'autres endroits, même si personne ne dit rien :-)

 
Christian:

Mmmhhh ..oui nous savons.

Et je l'ai un peu exprimé.

Ce genre de choses fonctionne, on le remarque à d'autres endroits, même si personne ne dit rien :-)

Il s'agissait de reprogrammer les MarketOrders en PendigOrders.

Pour ceux qui en ont besoin, voici le code de fonctionnement.

Il ne s'agit pas d'un EA utile, mais seulement d'un exemple de calcul. J'espère que c'est correct, cela fonctionne dans le testeur.

Ce n'est pas vraiment mon style de programmation, c'est très simple.

#include <Trade\Trade.mqh> CTrade Trade;

//+------------------------------------------------------------------+
input int    inp_Dist     =  120;   // Distance en attente de l'ordre (points)
input int    inp_Stop     =  125;   // SL (points)
input int    inp_Take     =  150;   // TP (points)
input double inp_Volume   = 0.01;   // Volume

//+------------------------------------------------------------------+
double distPend = inp_Dist*_Point;
double distStop = inp_Stop*_Point;
double distTake = inp_Take*_Point;

//+------------------------------------------------------------------+
bool   done     = false;
double ask;
double bid;
double levelSell;
double levelBuy;
double stopSell;
double stopBuy;
double takeSell;
double takeBuy;

void OnTick()
{
   if(done)
      return;
   
   ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   levelBuy =NormalizeDouble(bid-distPend,_Digits);
   levelSell=NormalizeDouble(ask+distPend,_Digits);

   stopBuy  =NormalizeDouble(levelBuy -distStop,_Digits);
   stopSell =NormalizeDouble(levelSell+distStop,_Digits);

   takeBuy  =NormalizeDouble(levelBuy +distTake,_Digits);
   takeSell =NormalizeDouble(levelSell-distTake,_Digits);

   SellLimit();
   BuyLimit();

   done=true;
}

bool BuyLimit()
{
   //return(Trade.BuyLimit (inp_Volume,levelBuy )) ;
   return(Trade.BuyLimit (inp_Volume,levelBuy ,_Symbol,stopBuy,takeBuy ));
}

bool SellLimit()
{
   //return(Trade.SellLimit(inp_Volume,levelSell)) ;
   return(Trade.SellLimit(inp_Volume,levelSell,_Symbol,stopSell,takeSell));
}