Erreurs, bugs, questions - page 1541

 
Comment ouvrir un compte de démonstration sur le serveur metaquotes ? Pour obtenir les nouvelles versions de mt5 ...
 
Vladimir Pastushak:
Comment ouvrir un compte de démonstration sur le serveur metaquotes ? Pour obtenir les nouvelles versions de mt5 ...
choisir le serveur MetaQuotes-Demo lorsque vous ouvrez un compte de démonstration
 
Karputov Vladimir:
Avez-vous besoin d'un analogue du clic droit sur le graphique et de "Rafraîchir" pour l'indicateur ?

Oui, c'est vrai. Pour que l'indicateur puisse calculer, mais pas aborder l'init. ChartRedraw() ne le fait pas.

Appelé dans OnChartEvent

 
Владимир:

Oui, c'est vrai. Pour que l'indicateur puisse calculer, mais pas aborder l'init. ChartRedraw() ne le fait pas.

Appelé dans OnChartEvent

Faites de la boucle entière une fonction et appelez-la avec les paramètres requis à partir de l'endroit où vous voulez.
 
Владимир:

Oui, c'est vrai. Pour que l'indicateur puisse calculer, mais pas aborder l'init. ChartRedraw() ne le fait pas.

Appelé dans OnChartEvent

Pour quatre

  static int FullOnCalculate( void )
  {
    long volume[];
    int spread[];

    ArraySetAsSeries(volume, TRUE);
    ArraySetAsSeries(spread, TRUE);

    const int Size = MathMin(CopyTickVolume(Symbol(), Period(), 0, Bars, volume),
                             CopySpread(Symbol(), Period(), 0, Bars, spread));

    return(OnCalculate(Size, 0, Time, Open, High, Low, Close, Volume, volume, spread));
  }

De même pour le cinquième.

 

Pourquoi cette classe compile-t-elle sous MT4 mais pas sous MT5 ?

class CHARTOBJECT
{
public:
  template <typename T>
#ifdef __MQL4__
  void SetProperty( const int id, const T Value, const int Modifier = 0 ) const
#else #endif
#ifdef __MQL5__
  void SetProperty( const ENUM_OBJECT_PROPERTY_STRING id, const T Value, const int Modifier = 0 ) const
#endif      
  {
    const string sType = typename(T);

    if (sType == "double")
      ::ObjectSetDouble(0, "", id, Modifier, (double)Value);
    else if (sType == "string")
      ::ObjectSetString(0, "", id, Modifier, (string)Value);
    else
      ::ObjectSetInteger(0, "", id, Modifier, (long)Value);

    return;
  } 
  
  virtual void operator =( const string Value ) const
  {
    this.SetProperty(OBJPROP_TEXT, Value);

    return;
  }
};
 
Y a-t-il un #else ou un #endif là-dedans par hasard ?
 
Комбинатор:
Le #else ou le #endif ne sont-ils pas inutiles à cet endroit ?

Dans la ligne#else #endif, si j'enlève #endif, ça ne compile pas. Je ne sais pas non plus pourquoi ça ne compile pas.

Mais même si je supprime toute compilation conditionnelle, il ne compile pas sous MT5, mais compile sous MT4.

 
Alexey Kozitsyn:
Qu'est-ce qu'un multiterminal ?)
Il s'agit d'une version du terminal MT4, dont une instance est censée pouvoir travailler avec plusieurs comptes en même temps. J'ai téléchargé le fichier d'installation fcmt4multisetup_fr.exe depuis le site de FXCluba. S'agit-il de leur développement en général et que je m'adresse à la mauvaise adresse ?
 
comp:

Pourquoi cette classe compile-t-elle sous MT4 mais pas sous MT5 ?

Si vous supprimez la définition de l'opérateur dans cette classe, elle commence à compiler sous MT5. Il semble s'agir d'un bogue dans le compilateur MT5.
Raison: