Erreurs, bugs, questions - page 1290

 

1. Pourquoi lorsque je change la langue sur un terminal, elle change sur tous les autres après les avoir redémarrés ?

En détail : j'ai 10 terminaux MT4/765 en cours d'exécution, j'ai changé la langue de l'un d'eux du russe à l'anglais et je l'ai redémarré. Après avoir redémarré les autres terminaux, leur langue change également !

2. Pourquoi le profil n'est-il pas automatiquement mémorisé lorsque je le modifie - paramètres des indicateurs, des Expert Advisors, des graphiques ?

Pour être précis : hier, j'ai configuré un profil, j'ai négocié dessus, et aujourd'hui, il a été noirci et lorsque j'ai redémarré les terminaux, aucune modification n'a été enregistrée et seules celles que j'avais avant les modifications ont été téléchargées.
Il serait bon de rappeler automatiquement le profil après un certain temps, par exemple toutes les 10 minutes ou toutes les heures.

 
Novikov:

2. Pourquoi le profil n'est-il pas automatiquement mémorisé lorsque des modifications y sont apportées - paramètres des indicateurs, conseillers experts, graphiques ?

Le profil est enregistré lorsque vous fermez l'application normalement.
Si vous avez besoin de le sauvegarder, fermez le terminal et rouvrez-le, alors vous serez content :)
 
fyords:
Le profil est enregistré lorsque vous fermez l'application normalement.
Si vous avez besoin de le sauvegarder, fermez le terminal et rouvrez-le, alors vous serez content :)

"qu'est-ce que je ferais sans toi" :)

3. Où vont les citations ?

Lorsque je télécharge des cotations m1 pour construire des graphiques RENCO, après un arrêt incorrect du terminal (panne de courant), les cotations doivent être rechargées !

 
comment se fait-il que lorsque l'on accède au profil d'une autre personne depuis un mobile android, il n'y a pas de bouton pour écrire un message ? des messages, il faut taper le nom d'utilisateur du nouveau correspondant .... c'est très gênant...
 
Novikov:

"qu'est-ce que je ferais sans toi" :)

3. Où vont les citations ?

Je télécharge les cotations m1 pour construire les graphiques RENCO, mais après une terminaison incorrecte du terminal (panne de courant), les cotations doivent être rechargées !

on vous dit que tous les changements sont sauvegardés avec l'arrêt correct ..... y compris les devis téléchargés
 

Je comprends qu'un membre de la structure ne peut pas être utilisé comme un tampon indicateur, par exemple comme ceci :

struct Buffers
{
    double buffer [];
};

mais alors que faire si vous avez besoin de plusieurs dizaines de tampons et que ça ne fonctionne pas comme ça :

struct Buffers
{
    double buffer [];
};

Buffers IndBuff;

void Func()
{
  IndBuff[0].buffer[0]=3.1415926;
}
 
paladin800:
Oui, je suis aussi tombé sur cette fonction. Je n'arrive pas à trouver comment faire en sorte qu'une variable des paramètres externes soit 4 heures du matin et l'autre 5 heures du soir, puis comparer le résultat de TimeGMT() avec ces variables.

Je n'ai pas regardé depuis un moment.

4AM est 04:00
5PM est 17:00

 
joo:

Si j'ai bien compris, un membre de la structure ne peut pas être utilisé comme un tampon indicateur :

Can
 
joo:

Je comprends qu'un membre de la structure ne peut pas être utilisé comme un tampon indicateur, par exemple comme ceci :

Mais que faire si vous avez besoin de plusieurs dizaines de tampons et que cela ne fonctionne pas comme ça :

J'ai trouvé un tel exemple d'un auteur inconnu. )

//+------------------------------------------------------------------+
//|                                                  EMA_Rainbow.mq5 |
//|                                       Copyright 2012, MetaDriver |
//|                                            MetaDriver@rambler.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaDriver"
#property link      "MetaDriver@rambler.ru"
#property version   "1.00"
//---
#define  CountLine  50
//---
#property indicator_chart_window
#property indicator_buffers CountLine
#property indicator_plots   CountLine

//--- Внешние параметры
input int   FastPeriod   =5;
input int   PeriodStep   =5;
input color FastColor    =clrAqua;
input color MiddleColor  =clrDodgerBlue;
input color SlowColor    =clrBlue;
input color LFastColor   =clrYellow;
input color LMiddleColor =clrOrange;
input color LSlowColor   =clrOrangeRed;
//--- 
struct SBuffer
  {
   double            B[];
  };
//--- indicator buffers
SBuffer       EmaBuffer[CountLine];
//---
color Colors[CountLine];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   InitColors();
//---
   for(int i=0; i<CountLine; i++)
      InitBuffers(i);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int    rates_total,
                const int    prev_calculated,
                const int    begin,
                const double &price[])
  {
//---
   int limit=rates_total-prev_calculated;
//---
   if(limit==1)
      limit++;
//---
   if(prev_calculated==0)
     {
      limit-=begin+1;
      for(int i=0; i<CountLine; i++)
         EmaBuffer[i].B[limit]=price[limit];
     }
//---
   if(limit!=0)
     {
      for(int i=0; i<CountLine; i++)
        {
         double p=2./(FastPeriod+PeriodStep*(CountLine-i)+1);
         //---
         for(int j=limit-1; j>=0; j--)
            EmaBuffer[i].B[j]=price[j]*p+EmaBuffer[i].B[j+1]*(1.-p);
        }
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| Инициализация цветных буферов                                    |
//+------------------------------------------------------------------+
void InitColors()
  {
   int Half=CountLine/2;
//---
   for(int i=0; i<Half; i++)
     {
      if(i%4==3)
         Colors[i]=MixColor(LSlowColor,LMiddleColor,i*1.0/Half);
      else
         Colors[i]=MixColor(SlowColor,MiddleColor,i*1.0/Half);
     }
//---
   for(int i=Half; i<CountLine; i++)
     {
      if(i%4==3)
         Colors[i]=MixColor(LMiddleColor,LFastColor,(i-Half)*1.0/Half);
      else
         Colors[i]=MixColor(MiddleColor,FastColor,(i-Half)*1.0/Half);
     }
  }
//+------------------------------------------------------------------+
//| Определение цвета                                                |
//+------------------------------------------------------------------+
color MixColor(color A,color B,double mix)
  {
   int r = (int)MathRound((B     & 0xFF) * mix + (A     & 0xFF) * (1. - mix));
   int g = (int)MathRound((B>>8  & 0xFF) * mix + (A>>8  & 0xFF) * (1. - mix));
   int b = (int)MathRound((B>>16 & 0xFF) * mix + (A>>16 & 0xFF) * (1. - mix));
   return color(r|g<<8|b<<16);
  }
//+------------------------------------------------------------------+
//| Инициализация индикаторных буферов                               |
//+------------------------------------------------------------------+
void InitBuffers(int index)
  {
   SetIndexBuffer(index,EmaBuffer[index].B,INDICATOR_DATA);
   PlotIndexSetInteger(index,PLOT_DRAW_TYPE,DRAW_LINE);
   PlotIndexSetInteger(index,PLOT_LINE_COLOR,Colors[index]);
   PlotIndexSetDouble(index,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---
   if(index%8==7) PlotIndexSetInteger(index,PLOT_LINE_WIDTH,1);
  }
//+------------------------------------------------------------------+
 
tol64:

Voici un exemple que j'ai trouvé d'un auteur non inconnu. )

Wow ! C'est génial ! Merci.
Je ne l'ai pas fait. :)