Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1270

 
ANDREY:

Bonne journée à tous !

J'ai commencé à étudier le mql5. J'ai commencé par étudier la manière dont les commandes sont ouvertes. J'ai compris que le code pour ouvrir une commande est écrit dans un fichier include séparé. J'ai maintenant maîtrisé ce code et sa variante finale pour le trading. J'ai été surpris de constater que l'ouverture des commandes dans mql4 est beaucoup plus facile et plus simple que dans mql5.

Je voudrais demander si je suis sûr que j'ai déjà le fichier avec le code pour ouvrir la commande et que je n'ai pas besoin d'écrire ce code. Si un tel fichier est disponible quelque part, il me suffit de le connecter à mon EA et de définir les valeurs des paramètres d'ordre dont j'ai besoin ? S'il existe un tel fichier, où et comment il doit être trouvé, et quel est son nom.

Merci.

Si je vous comprends bien, c'est #include <Trade\Trade.mqh>.

Dossiers :
ng4txc.PNG  116 kb
15vegf1.PNG  114 kb
 
SanAlex:

Si je vous comprends bien, c'est #include <Trade\Trade.mqh>.

Merci beaucoup pour ces informations précieuses.

Ai-je bien compris que je n'ai pas à chercher ces fichiers quelque part, mais qu'il suffit d'écrire au bon endroit du code #include <Trade\Trade.mqh> et que ce fichier rejoindra automatiquement mon Conseiller Expert qui y accédera en cas de besoin ?

 
ANDREY:

Merci beaucoup pour ces informations précieuses.

Ai-je bien compris que je n'ai pas à chercher ces fichiers quelque part, mais qu'il suffit d'écrire au bon endroit du code #include <Trade\Trade.mqh> et que ce fichier rejoindra automatiquement mon EA et que l'EA y accédera en cas de besoin ?

Oui ! Vous n'avez pas besoin de le chercher, il est déjà là.

Vous pouvez regarder le fichier de code(Moving Averages.mq5 ou MACD Sample.mq5), à partir du terminal.

 
SanAlex:

Oui ! Vous n'avez pas besoin de le chercher, il est déjà là.

Merci beaucoup pour ces informations précieuses.
Si j'ai bien compris le fichier que vous m'avez envoyé s'appelle CLASS Ce fichier est destiné à l'ouverture d'une commande. Je pense qu'il y a beaucoup de CLASSES et que chacune d'entre elles a sa propre utilité, par exemple pour clôturer la commande, pour modifier la commande, pour sortir certaines informations, etc.

Q : Où puis-je trouver une liste de toutes les classes avec leurs descriptions détaillées ?
Merci encore pour votre aide.

 
ANDREY:

Merci beaucoup pour ces informations précieuses.
Si je comprends bien, le fichier que vous m'avez envoyé s'appelle CLASS Ce fichier sert à ouvrir une commande. Je pense qu'il y a beaucoup de CLASSES et que chacune d'entre elles a son propre objectif spécifique, par exemple pour clôturer un ordre, pour modifier un ordre, pour produire des informations, etc.

Q : Où puis-je trouver une liste de toutes les classes avec leurs descriptions détaillées ?
Merci encore pour votre aide.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека MQL5 написана на языке MQL5 и предназначена для облегчения написания программ (индикаторов, скриптов, экспертов) конечным пользователям. Библиотека обеспечивает удобный доступ к большинству внутренних функций MQL5.
 
Artyom Trishkin:

Merci beaucoup pour ces informations précieuses. Je vais maintenant commencer à le digérer, c'est-à-dire à l'assimiler ..... dans la mesure de mes capacités mentales.

 
ANDREY:

Bonne journée à tous !

J'ai commencé à étudier le mql5. J'ai commencé par étudier la manière dont les commandes sont ouvertes. J'ai compris que le code pour ouvrir une commande est écrit dans un fichier include séparé. J'ai maintenant maîtrisé ce code et sa variante finale pour le trading. J'ai été surpris de constater que l'ouverture des commandes dans mql4 est beaucoup plus facile et plus simple que dans mql5.

Je voudrais demander si je suis sûr d'avoir déjà le fichier avec le code pour ouvrir la commande et que je n'ai pas besoin d'écrire ce code. Si un tel fichier est disponible quelque part, il me suffit de le connecter à mon EA et de définir les valeurs des paramètres d'ordre dont j'ai besoin ? S'il existe un tel fichier, où et comment il doit être trouvé, et quel est son nom.

Merci.

J'ai une approche différente de l'écriture d'une EA pour moi. J'ai juste besoin de le corriger pour moi-même.

-( pourquoi réinventer la roue quand elle a déjà été créée )

----------------------------------------------------------------------

c'est ici que nous reprenons les indicateurs

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit(void)
  {
//--- prepare trade class to control positions if hedging mode is active
   ExtHedging=((ENUM_ACCOUNT_MARGIN_MODE)AccountInfoInteger(ACCOUNT_MARGIN_MODE)==ACCOUNT_MARGIN_MODE_RETAIL_HEDGING);
   ExtTrade.SetExpertMagicNumber(MA_MAGIC);
   ExtTrade.SetMarginMode();
   ExtTrade.SetTypeFillingBySymbol(Symbol());
//--- Moving Average indicator
   ExtHandle=iMA(_Symbol,_Period,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE);
   if(ExtHandle==INVALID_HANDLE)
     {
      printf("Error creating MA indicator");
      return(INIT_FAILED);
     }
//--- ok
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

et ici nous les paramétrons pour que les indicateurs s'ouvrent correctement en fonction du signal

//+------------------------------------------------------------------+
//| Check for open position conditions                               |
//+------------------------------------------------------------------+
void CheckForOpen(void)
  {
   MqlRates rt[2];
//--- go trading only for first ticks of new bar
   if(CopyRates(_Symbol,_Period,0,2,rt)!=2)
     {
      Print("CopyRates of ",_Symbol," failed, no history");
      return;
     }
   if(rt[1].tick_volume>1)
      return;
//--- get current Moving Average 

   double   ma[1];
   if(CopyBuffer(ExtHandle,0,0,1,ma)!=1)
     {
      Print("CopyBuffer from iMA failed, no data");
      return;

     }
//--- check signals
   ENUM_ORDER_TYPE signal=WRONG_VALUE;

   if(rt[0].open>ma[0] && rt[0].close<ma[0])
      signal=ORDER_TYPE_SELL;    // sell conditions
   else
     {
      if(rt[0].open<ma[0] && rt[0].close>ma[0])
         signal=ORDER_TYPE_BUY;  // buy conditions
     }
//--- additional checking
   if(signal!=WRONG_VALUE)
     {
      if(TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) && Bars(_Symbol,_Period)>100)
         ExtTrade.PositionOpen(_Symbol,signal,TradeSizeOptimized(),
                               SymbolInfoDouble(_Symbol,signal==ORDER_TYPE_SELL ? SYMBOL_BID:SYMBOL_ASK),
                               0,0);
     }
//---
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin:

Pour m'aider à mieux comprendre MQL5, je vous serais très reconnaissant de bien vouloir traduire ce code simple de MQL4 en code MQL5.

Merci pour votre aide.

int s1,SL,a;
double Lou=Bid,Hay,DL=0.0030;
void OnTick()
{
if (Bid < Lou)
{
Lou=Bid;
}
if (Bid > Hay)
Hay=Bid;
if (Bid - Lou > DL&& Lou!=0)
{
Lou=Bid;
Hay=Bid;
s1=1;
}
////=======================
if (Hay-Bid>0.0000)
if (s1==1)
{
for(int c=0; c<=500;c+=20)
{
a++;
{
SL=300+c;
OrderSend(Symbol(),OP_SELL,0.1,Bid, 3,Ask+SL*Point,Ask-SL/3*Point,"300",100);
Lou=Bid;
Hay=Bid;
}
}
a=0;
s1=0;
}
}
 

numPosOr= 4 ;

numStepCount= 1 ;

iK = (numPosOr - numStepCount) / numPosOr ;

Pourquoi ce calcul donne-t-iliK = 0 ?

 
Sysmart:

numPosOr= 4 ;

numStepCount= 1 ;

iK = (numPosOr - numStepCount) / numPosOr ;

Pourquoi ce calcul donne-t-iliK = 0 ?

S'il vous plaît donnez-moi le code entier