Erreurs, bugs, questions - page 1398

 

Erreur de compilation :'=' - la structure a des objets et ne peut être copiée.

struct S1 {       int s1; };
struct S2 { const int s2; };

void OnStart()
{
        S1 a;
        S2 b;
        a = b;
}
et si par exemple
struct S2 {       uint s2; };
alors c'est bon. Quelle est la différence ?
 
Ilya Malev:
L'erreur est-elle présente en temps réel ? Ou seulement dans le testeur ?
 
Tapochun:
L'erreur est-elle présente en temps réel ? Ou seulement dans le testeur ?
J'ai supprimé le message, parce que je me suis ridiculisé. J'aurais dû utiliser BarsCalculated au lieu de CopyBuffer.
 
Ilya Malev:
Existe-t-il un moyen de s'assurer que le CopyBuffer de l'indicateur de l'ancien TF renvoie la valeur à la date, à laquelle le CopyTime de ce TF indique le même décalage ?

Ce problème est également résolu par BarsCalculated. Si BarsCalculated par l'indicateur est inférieur à SeriesInfoInteger(...SERIES_BARS_COUNT), cela signifie que l'indicateur n'a pas eu le temps de calculer sur le TF supérieur.

C'est bien qu'une telle fonction existe et fonctionne :)

 

existe-t-il un tel caractère en allemand dans l'alphabet ?

"d", "z".

 
Alexandr Bryzgalov:

existe-t-il un tel caractère en allemand dans l'alphabet ?

"d", "z".

Réglez le système d'exploitation sur les paramètres linguistiques allemands pour les applications non unicode.
 
Ilya Malev:

Ce problème est également résolu par BarsCalculated. Si BarsCalculated par l'indicateur est inférieur à SeriesInfoInteger(...SERIES_BARS_COUNT), cela signifie que l'indicateur n'a pas eu le temps de calculer sur le TF supérieur.

C'est bien qu'une telle fonction existe et fonctionne :)

Avez-vous essayé d'analyser le paramètre prev_calculated ?

int OnCalculate (const int rates_total,      // размер входных таймсерий
                 const int prev_calculated,  // обработано баров на предыдущем вызове
...
 
A100:

Erreur de compilation :'=' - la structure a des objets et ne peut pas être copiée.

Mais si par exemple c'est ok. Quelle est la différence ?

int est constant et n'est pas initialisé.

Habituellement,const est initialisé à la compilation, c'est-à-dire qu'il est assigné immédiatement à la déclaration. Mais dans le cas de la structure en MQL, je ne sais pas quoi faire ici. Le C++ émet une erreur indiquant que la variable n'est pas initialisée.

En général, on n'ajoute pas de variables constantes à une structure.

 

Question sur le mql4 :

Je n'arrive pas à écrire certains caractères dans le commentaire d'ordre ? Par exemple, j'écris

string comm="Extremum DC && KF";

vraiment écrire Extremum DC _KF dans le commentaire

si écrire

string comm="Extremum DC & KF";

Est-ce que Extremum DC KF épelle "real" dans le commentaire ?

Quelles autres icônes et leurs combinaisons sont remplacées par d'autres caractères ? Le fait est que j'écris parfois mes informations de travail dans le commentaire.

Certains caractères sont utilisés pour le trouver dans la chaîne, par exemple #, $, %.

 
Artyom Trishkin:

Question sur le mql4 :

Vous ne pouvez pas écrire certains caractères dans le commentaire de l'ordre ? Par exemple, en écrivant dans le commentaire

vraiment écrire Extremum DC _KF dans le commentaire

si écrire

De façon réaliste, dans le commentaire vous écrivez Extremum DC KF

Quelles autres icônes et leurs combinaisons sont remplacées par d'autres personnages ? Le fait est que j'écris parfois mes informations de travail dans le commentaire.

Certains caractères sont utilisés pour le trouver dans la chaîne, par exemple #, $, %.

Voici la solution :

//+------------------------------------------------------------------+
//|                                                  test_script.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
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- объявим символьные константы & #, $, %
   int a='&';
   int b='#';
   int c='$';
   int d='%';
//--- выведем константы на печать
   Print(a,b,c,d);
//--- добавим символ в строку
   string test="";
   StringSetCharacter(test,0,a);
   Print(test);
//--- соединим свою фразу со строкой
   Print("Extremum DC"+test+"KF");

//--- заменим символ в строке
   StringSetCharacter(test,0,b);
   Print(test);
//--- соединим свою фразу со строкой
   Print("Extremum DC"+test+"KF");

//--- заменим символ в строке
   StringSetCharacter(test,0,c);
   Print(test);
//--- соединим свою фразу со строкой
   Print("Extremum DC"+test+"KF");

//--- заменим символ в строке
   StringSetCharacter(test,0,d);
   Print(test);
//--- соединим свою фразу со строкой
   Print("Extremum DC"+test+"KF");
  }
//+------------------------------------------------------------------+

et le résultat est imprimé :

2015.10.14 13:55:42.863 Script TestScripts\test_script WTI,Daily: loaded successfully
2015.10.14 13:55:42.866 test_script WTI,Daily: initialized
2015.10.14 13:55:42.866 test_script WTI,Daily: 38353637
2015.10.14 13:55:42.866 test_script WTI,Daily: &
2015.10.14 13:55:42.866 test_script WTI,Daily: Extremum DC&KF
2015.10.14 13:55:42.866 test_script WTI,Daily: #
2015.10.14 13:55:42.866 test_script WTI,Daily: Extremum DC#KF
2015.10.14 13:55:42.866 test_script WTI,Daily: $
2015.10.14 13:55:42.866 test_script WTI,Daily: Extremum DC$KF
2015.10.14 13:55:42.866 test_script WTI,Daily: %
2015.10.14 13:55:42.866 test_script WTI,Daily: Extremum DC%KF
2015.10.14 13:55:42.866 test_script WTI,Daily: uninit reason 0
2015.10.14 13:55:42.866 Script test_script WTI,Daily: removed
Raison: