Questions des débutants MQL5 MT5 MetaTrader 5 - page 560

 
Pouvez-vous me dire ce qu'il faut écrire dans le code pour que les ordres ne s'ouvrent pas à chaque tick?
 
int OnInit()
  {
   double LotSize(string symbol,datetime tbar)
     {
      double size;
      string BQ,currency=AccountCurrency();
      switch(MarketInfo(symbol,MODE_PROFITCALCMODE))
        {
         case 0:
           {
            int sbar=iBarShift(symbol,0,tbar);
            size=MarketInfo(symbol,MODE_LOTSIZE);
            if(StringSubstr(symbol,3,3)=="USD") break;
            if(StringSubstr(symbol,0,3)=="USD") size=size/iClose(symbol,0,sbar);
            else
              {
               BQ=StringSubstr(symbol,0,3)+"USD";
               if(iClose(BQ,0,0)==0) BQ="USD"+StringSubstr(symbol,0,3);
               if(iClose(BQ,0,0)==0) break;
               int BQbar=iBarShift(BQ,0,tbar);
               if(StringSubstr(BQ,0,3)=="USD") size=size/iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
               else size=size*iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
              }
           }
         break;
         case 1: size=MarketInfo(symbol,MODE_LOTSIZE); break;
         case 2: size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
        }
      if(currency!="USD")
        {
         BQ=currency+"USD";
         if(iClose(BQ,0,0)==0)
           {
            BQ="USD"+currency;
            size*=iClose(BQ,0,iBarShift(BQ,0,tbar));
           }
         else size/=iClose(BQ,0,iBarShift(BQ,0,tbar));
        }
      return(size);
     }
Il y a deux erreurs lors de la compilation : Je n'arrive pas à trouver ce qui ne va pas et comment le réparer. S'il vous plaît, donnez-moi un indice.
 
Alexandr Saprykin:
Deux erreurs pendant la compilation : je n'arrive pas à trouver ce qui ne va pas et comment le réparer. Pouvez-vous me dire comment le réparer ?
Les télépathes sont en vacances et vous n'avez pas d'en-tête ou d'extension dans l'en-tête du code. Comment puis-je savoir ce que c'est et dans quelle langue c'est :)
 
Karputov Vladimir:
Les télépathes sont en vacances et vous n'avez pas d'en-tête ou d'extension dans le code de l'en-tête. Allez voir ce que c'est et dans quelle langue c'est :)

Pour les non-télépathes)))

//+------------------------------------------------------------------+
//|                                                   Break Even.mq4 |
//|                                                 Copyright 2016,  |
//|                                         /ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, "
#property link      "/ru"
#property version   "1.00"
#property strict
#property indicator_chart_window   //отображение внутри основного окна
#property indicator_buffers 1
#property indicator_plots   1
//--- plot BreakEven
#property  indicator_label1  "BreakEven"     //название индикатора
#property  indicator_type1   DRAW_LINE      //рисовать линией
#property  indicator_color1  clrGold       // цвет индикатора
#property  indicator_style1  STYLE_SOLID  //стиль индикатора
#property  indicator_width1  1
//--- indicator buffers
double         BreakEvenBuffer[];
//+------------------------------------------------------------------+
//| Рассчитываем точку безубыточности                                |
//+------------------------------------------------------------------+
int OnInit()
  {
   double LotSize(string symbol,datetime tbar)
     {
      double size;
      string BQ,currency=AccountCurrency();
      switch(MarketInfo(symbol,MODE_PROFITCALCMODE))
        {
         case 0:
           {
            int sbar=iBarShift(symbol,0,tbar);
            size=MarketInfo(symbol,MODE_LOTSIZE);
            if(StringSubstr(symbol,3,3)=="USD") break;
            if(StringSubstr(symbol,0,3)=="USD") size=size/iClose(symbol,0,sbar);
            else
              {
               BQ=StringSubstr(symbol,0,3)+"USD";
               if(iClose(BQ,0,0)==0) BQ="USD"+StringSubstr(symbol,0,3);
               if(iClose(BQ,0,0)==0) break;
               int BQbar=iBarShift(BQ,0,tbar);
               if(StringSubstr(BQ,0,3)=="USD") size=size/iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
               else size=size*iClose(BQ,0,BQbar)/iClose(symbol,0,sbar);
              }
           }
         break;
         case 1: size=MarketInfo(symbol,MODE_LOTSIZE); break;
         case 2: size=MarketInfo(symbol,MODE_TICKVALUE)/MarketInfo(symbol,MODE_TICKSIZE);
        }
      if(currency!="USD")
        {
         BQ=currency+"USD";
         if(iClose(BQ,0,0)==0)
           {
            BQ="USD"+currency;
            size*=iClose(BQ,0,iBarShift(BQ,0,tbar));
           }
         else size/=iClose(BQ,0,iBarShift(BQ,0,tbar));
        }
      return(size);
     }
//--- indicator buffers mapping
   SetIndexBuffer(0,BreakEvenBuffer);

//---
   return(INIT_SUCCEEDED);
  }
 
Alexandr Saprykin:

Pour ceux qui ne sont pas télépathes))))

Retirez la fonction LotSize de OnInit().
 
edutak:

Cue erreur dans la logique, pourquoi les ordres opposés ne s'ouvrent pas ?

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Questions des débutants

Karputov Vladimir, 2016.04.16 13:04

Les télépathes sont en vacances et vous n'avez pas d'en-tête ou d'extension dans l'en-tête du code. Allez voir ce que c'est et dans quelle langue c'est :)

 
Karputov Vladimir:

Besoin de décrire l'algorithme ?
 
edutak:
Besoin de décrire l'algorithme ?

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Questions des débutants

Karputov Vladimir, 2016.04.16 13:04

Les télépathes sont en vacances et vous n'avez pas d'en-tête ou d'extension dans l'en-tête du code. Allez voir ce que c'est et dans quelle langue c'est :)

 
savinkins:
J'ai le nom d'utilisateur et le mot de passe par défaut pour le terminal. Aucun nom de serveur dans la liste de sélection, je le copie. Maintenant, je n'ai pas du tout d'agents dans la liste du réseau, bien que le solde soit affiché.
 
savinkins:

Pour mettre à jour le terminal, connectez-vous au serveur de trading MetaQuotes-Demo.


Raison: