Erreurs, bugs, questions - page 2896

 
Vous devez être en mesure d'imprimer le texte des macros.
#define OnTick OnTick2


Le journal doit être édité

OnTick = OnTick2


La langue vous permet-elle de le faire ?

 
fxsaber:
Vous devez être en mesure d'imprimer le texte des macros.

Le journal doit être édité

La langue vous permet-elle de le faire?

Cela dépend de quelle langue ? Le C++ le permet car les macros y fonctionnent correctement et vous pouvez construire n'importe quelle expression dont vous avez besoin (contrairement à MQL). Bien que je me souvienne que vous avez essayé à plusieurs reprises de prouver le contraire...

#ifdef __cplusplus
#define  MACRO1(X)	#X "=" MACRO2(X)
#define  MACRO2(X)	#X
void OnStart()
{
        printf( "%s", MACRO1( OnTick ));
}
#endif

Résultat : OnTick = OnTick2

 
A100:

Cela dépend-il de laquelle ? Le C++ le permet, car les macros y fonctionnent correctement et vous pouvez construire n'importe quelle expression que vous voulez (contrairement à MQL). Bien que je me souvienne que vous avez essayé à plusieurs reprises de prouver le contraire...

Résultat : OnTick = OnTick2.

Merci. Cela peut être corrigé.

 
fxsaber:

Merci. Peut-être le feront-ils.

Si c'était le cas, ils l'auraient corrigé depuis longtemps - j'ai déjà écrit à ce sujet à de nombreuses reprises sous une forme ou une autre - voici le dernier message en date

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Bugs, bugs, questions

A100, 2020.07.30 02:25

Je pense que ce n'est même pas la priorité mais une séquence macro fondamentalement erronée:

et l'on s'attendait à ce qu'il soit correct - comme dans C++.

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

Erreurs, bugs, questions

A100, 2020.07.30 10:53

En C++, les macros sont conçues de manière à ce que tout résultat requis puisse être projeté, alors qu'en MQL, il s'avère que ce n'est pas le cas.



 
Est-ce un bug ou est-ce que ça devrait l'être ?
// Находим крипт-методы, в которых не работает шифрование с ключем.

void OnStart()
{  
  const string Str = "Hello World!"; // Строка, которую будем шифровать/дешивровывать.

  uchar BytesStr[];

  StringToCharArray(Str, BytesStr); // Перевели строку в байты
  
  uchar KeyDecode[];
  uchar KeyEncode[];
    
  StringToCharArray("qwer", KeyDecode); // Задали код для шифровки
  StringToCharArray("asdf", KeyEncode); // Задали ДРУГОЙ код для расшифровки
    
  for (int i = 0; i < 8; i++) // Перебираем все штатный методы шифровки
  {
    const ENUM_CRYPT_METHOD Method = (ENUM_CRYPT_METHOD)i; // Текущий метод шифровки
    
    uchar BytesDecode[];
    uchar BytesEncode[];    
    
    CryptEncode(Method, BytesStr, KeyEncode, BytesEncode);    // Зашифровали
    CryptDecode(Method, BytesEncode, KeyDecode, BytesDecode); // Расшифровали
    
    Print("Crypt method " + EnumToString(Method) + " is bug - " + (string)(CharArrayToString(BytesDecode) == Str)); // Сообщаем о наличии/отсутствии бага.
  }
}


Résultat.

        Crypt method CRYPT_BASE64 is bug - true
        Crypt method CRYPT_AES128 is bug - false
        Crypt method CRYPT_AES256 is bug - false
        Crypt method CRYPT_DES is bug - false
        Crypt method CRYPT_HASH_SHA1 is bug - false
        Crypt method CRYPT_HASH_SHA256 is bug - false
        Crypt method CRYPT_HASH_MD5 is bug - false
        Crypt method CRYPT_ARCH_ZIP is bug - true


Le chiffrement pourCRYPT_BASE64 etCRYPT_ARCH_ZIP ne fonctionne pas.

 
fxsaber:

Je n'ai pas trouvé de statistiques sur le marché. Une question donc pour les vendeurs de produits multiplateformes.

Les versions MT5 se vendent-elles vraiment mieux que MT4 ?

Pas pour le moment, plutôt que oui. Mais il y a une tendance vers 5, bien sûr.

 

fxsaber:
Это баг или так и должно быть?

Le chiffrement pour CRYPT_BASE64 et CRYPT_ARCH_ZIP ne fonctionne pas.

Ils ont combiné des méthodes fondamentalement différentes en une seule fonction - c'est pourquoi cela ressemble à un bug.

DansCRYPT_BASE64, il ne peut pas y avoir de clé en principe.

 
fxsaber:

Les versions MT5 se vendent-elles vraiment mieux que MT4 ?

certainement pas. mais alors qu'il y avait un ordre de grandeur de différence, les chiffres sont maintenant plus comparables.

 
A100:

En principe, différentes méthodes sont combinées en une seule fonction - c'est pourquoi cela ressemble à un bug.

En principe, il ne peut y avoir aucune clé dans CRYPT_BASE64.

Merci. Il s'avère que le problème ne concerne que le ZIP.

 
Vitaly Muzichenko:
Andrey Khatimlianskii:
Andrei Trukhanovich:

Merci. Ai-je raison de supposer que s'il n'y a pas d'enregistrement sur la page du produit concernant le nombre d'exemplaires vendus au cours d'un mois, c'est qu'il n'y a pas eu de ventes pour ce mois ?

Voulez-vous dire le mois civil ou les 30 prochains jours ?