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

 
Artyom Trishkin:

Vérifiez. PLOT_SHOW_DATA

Merci beaucoup !

 
Pouvez-vous suggérer un analogue pour MQL5 de la fonction SetIndexDrawBegin() de MQL4.
 
The_Sheikh:
Veuillez suggérer un analogue de la fonction SetIndexDrawBegin() de MQL4 pour MQL5.

https://www.mql5.com/ru/articles/81

void SetIndexDrawBegin(int index,
                       int begin)
bool PlotIndexSetInteger(index,PLOT_DRAW_BEGIN,begin)
SetIndexDrawBegin
Définissez le numéro de série de la barre à partir du début des données, à partir duquel le dessin de la ligne indicatrice indiquée doit commencer.
PlotIndexSetInteger
Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
Est-il possible de désactiver les journaux du testeur de stratégie dans MT5 ? Je n'ai pas de Print de rechange, mais j'ai 20Gb pendant la nuit, le VPS est bloqué. J'ai une stratégie qui fonctionne sur 7 paires et jusqu'à 10 transactions par jour sur chaque...
 
Evgeny Dyuka:
Est-il possible de désactiver les journaux du testeur de stratégie dans MT5 ? Je n'ai pas de Print de rechange, mais j'ai 20Gb pendant la nuit, le VPS est bloqué. J'ai une stratégie qui fonctionne sur 7 paires et jusqu'à 10 transactions par jour sur chaque...

Y a-t-il un EA multi-devises fonctionnant sur le VPS ? Pour quelle période le test a-t-il été réalisé ? Ou bien y a-t-il 7 testeurs en cours ?

 
Alexey Viktorov:

Y a-t-il un EA multi-devises en cours d'exécution sur le VPS ? Pour quelle période le test est-il livré ? Ou bien y a-t-il 7 testeurs en cours ?

Un EA multi-devises fonctionnant sur 7 paires, 70-80 trades par jour, je l'ai mis pendant un an, après 5 heures de test le log était de plus de 20GB, le VDS est mort. Le problème avec les logs est constant, parfois le bot plumé depo n'arrête pas le test, mais continue à montrer la charge depo 150% et si je ne l'arrête pas, il continue à écrire des logs jusqu'à ce que le VDS se bloque. J'ai résolu ce problème de manière programmatique - lorsque "Sedstva" est inférieur à 10% du dépôt de départ, le testeur s'arrête, mais c'est une béquille. Mais je ne sais pas quoi faire avec une multidevise.

 

La modification du type de données rompt la normalisation :


      V=NormalizeDouble(size,2);
      closePrice=NormalizeDouble(partPrice,_Digits);

      Print("V = ",V, "","  closePrice = ",closePrice);
      Print("V = ",DoubleToString(V), "","  closePrice = ",DoubleToString(closePrice));


2019.05.05 20:04:29.483 _part_close (EURUSD,D1) V = 0.01 closePrice = 1.13456

2019.05.05 20:04:29.483 _part_close (EURUSD,D1) V = 0.01000000 closePrice = 1.13456000


Est-ce normal ?

 
psyman:

La modification du type de données rompt la normalisation :

Est-ce normal ?

Il n'y a pas de conversion de type dans votre code, vous avez simplement utilisé la fonctionhttps://www.mql5.com/ru/docs/convert/doubletostring.

avec le paramètre par défaut, donc vous avez obtenu 8 caractères dans Print()

Документация по MQL5: Преобразование данных / DoubleToString
Документация по MQL5: Преобразование данных / DoubleToString
  • www.mql5.com
[in]  Формат точности. Если значение digits лежит в диапазоне от 0 до 16, то будет получено строковое представление числа с указанным количество знаков после запятой. Если значение digits лежит в диапазоне от -1 до -16, то...
 

Bonjour !

Je n'arrive pas à comprendre quelle est l'erreur. J'ai besoin d'obtenir tous les ticks pour la bougie actuelle.

Lors de la vérification, la taille du tableau de ticks ne change pas, et n'est pas égale au nombre actuel de ticks de la bougie.

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   ArraySetAsSeries(time,true);
   _R=__TIK__(time,0);
   return(rates_total);
  }
//+------------------------------------------------------------------+
bool __TIK__(const datetime &time[],int _i)
  {
   MqlTick tick_array[];   // массив для приема тиков 
   MqlTick lasttick;       // для получения данных последнего тика 

   ulong    from_msc=time[_i]*1000;  
   ulong    to_msc=time[_i+1]*1000;              

   CopyTicksRange(Symbol(),tick_array,COPY_TICKS_ALL,from_msc,to_msc);
   int __ArraySize=ArraySize(tick_array);
   Print((string)__ArraySize+"  "+(string)time[_i]+"  "+(string)time[_i+1]);


   return ( false );
  }
 

Comment changer la couleur d'une ligne d'ordre ou d'une position ouverte?

Pour l'instant, ils sont tous du même vert, ce qui crée une confusion, et je ne peux pas les trouver par force brute.

   int obj_total=ObjectsTotal(0,0,-1);
   string name;
   for(int i=0;i<obj_total;i++)
    {
     name = ObjectName(0,i,-1,-1);
     Print(i," - объект ",name);
    }

Seuls les objets qui ont été créés par l'utilisateur sont disponibles.

Raison: