Erreurs, bugs, questions - page 1434

 
A100:

Erreur de compilation :'<' - incompatibilité de modèle

Merci.
 

Vous ne pouvez pas spécifier le nom complet d'un constructeur et d'un destructeur dans une déclaration, alors que vous le pouvez pour les méthodes (et pourquoi les premières sont-elles pires ?).

class A {
        void A::f() {}     //нормально
               A::A() {}  //Error: '::' - name expected
        virtual A::~A() {} //Error: '::' - name expected
};
Pourquoi cela est-il nécessaire ? - il s'est avéré que c'était le seul moyen de séparer la déclaration et l'implémentation dans les modèles.
 

Faites quelque chose à propos de la fenêtre de fermeture des commandes.
Les numéros de commande ne sont pas entièrement visibles. Lorsque vous modifiez la largeur d'une colonne, celle-ci n'est pas fixe et se rétrécit à nouveau. Et la fenêtre elle-même ne peut pas être étirée.


 

Impossible de sortir le cinquième chiffre avec SetLevelValue()

//+------------------------------------------------------------------+
//|                                               Ind_TickTest01.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
//-----
double   Buffer0[];
double   Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorSetInteger(INDICATOR_DIGITS,8);
   SetIndexBuffer(0,Buffer0);
   SetIndexBuffer(1,Buffer1);
//-----
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   IndicatorShortName("Ind Bid NO 5-ZNAK!!! >>"+DoubleToString(Bid,_Digits));
   Buffer0[0]=Bid-0.00015;
   Buffer1[0]=Bid+0.00015;
   SetLevelValue(0,Bid-0.0001);
   SetLevelValue(1,Bid-0.00005);
   SetLevelValue(2,Bid);
   SetLevelValue(3,Bid+0.00005);
   SetLevelValue(4,Bid+0.0001);
   return(rates_total);
  }
//+------------------------------------------------------------------+

Résultat :

NO5-Znak

 
IndicatorDigits. Je ne sais pas comment ça s'appelle pour l'instant. Je pense que quelqu'un va me le dire.
 
Комбинатор:
IndicatorDigits. Maintenant, je ne sais pas comment ça s'appelle. Je pense que quelqu'un va me le dire.

Ce doit être ça ;)

IndicatorSetInteger(INDICATOR_DIGITS,Digits());
 
Artyom Trishkin:

Ce doit être ça ;)

J'ai essayé - ça n'aide pas.

Pas de cinquième chiffre

//+------------------------------------------------------------------+
//|                                               Ind_TickTest01.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
//----- indicator_levelN
double   Buffer0[];
double   Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   IndicatorSetInteger(INDICATOR_DIGITS,5);
   SetIndexBuffer(0,Buffer0);
   SetIndexBuffer(1,Buffer1);
//-----
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
   IndicatorShortName("Ind Bid NO 5-ZNAK!!! >>"+DoubleToString(Bid,_Digits));
   Buffer0[0]=Bid-0.00015;
   Buffer1[0]=Bid+0.00015;
   SetLevelValue(0,Bid-0.0001);
   SetLevelValue(1,Bid-0.000075);
   SetLevelValue(2,Bid-0.00005);
   SetLevelValue(3,Bid-0.000025);
   SetLevelValue(4,Bid);
   SetLevelValue(5,Bid+0.000025);
   SetLevelValue(6,Bid+0.00005);
   SetLevelValue(7,Bid+0.000075);
   SetLevelValue(8,Bid+0.0001);
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Yury Kirillov:

J'ai essayé - ça ne marche pas.

Réponse SD :

Équipe de soutien2015.11.20 14:33

En quatre, les niveaux sont émis avec une précision de 4 chiffres.

Personne ne faisait attention à ça avant. C'est pourquoi cet endroit n'a pas été touché jusqu'à maintenant.

Faisons-le sortir avec laprécision de l'indicateur Digits.

 

Erreur de compilation

struct A {
        int a1;
        int a2;
};
struct B {
        static A a;
        static int b1;
        static int b2;
        static int b3;
};
A B::a = { 2, 3 };
int B::b1 = 1;
int B::b2 = B::b1;   //нормально
int B::b3 = B::a.a2; //'a2' - non-static members and methods cannot be used
Il suffit que B::a soit statique.
 

J'ai d'abord pensé qu'il s'agissait d'un problème avec mes indicateurs, puis je me suis rendu compte que tout est défaillant.

Lorsque je charge le terminal, l'historique des citations reste le même (comme si la session précédente n'existait pas) et l'historique n'est pas mis à jour automatiquement.

Le prix est ancien, mais pour une raison quelconque, les tampons de l'indicateur montrent le calcul précédent (nouveaux prix).

Lorsque le marché est ouvert, la "merde" se met à jour (apparemment sur un nouveau tick) et tout devient normal.

Lorsque le marché est fermé, vous pouvez contempler les "déchets" des tampons "pour le week-end", à moins de mettre à jour les cotations de force.

A titre d'illustration, je joins le graphique avec la SMA standard du jeu d'indicateurs MT5 :

Indicateur standard par exemple

Bild 2010, et c'était la même chose sur les anciens.