Ошибки, баги, вопросы - страница 2896

 
fxsaber:

Не нашел статистики по Маркету. Поэтому вопрос к продавцам кроссплатформенных продуктов.

Действительно ли MT5-версии продаются лучше MT4?

Можно взять за основу "Фриланс", в последнее время всё чаще работы под мт5

Время идёт быстро (очень), так что в действительности нужно брать ориентир на мт5. Это как маятник - долго раскачивается, но потом не остановишь, что уже видно.

 
Нужно уметь распечатывать текст макросов.
#define OnTick OnTick2


В лог нужно вывести

OnTick = OnTick2


Язык позволяет это сделать?

 
fxsaber:
Нужно уметь распечатывать текст макросов.

В лог нужно вывести

Язык позволяет это сделать?

Смотря какой? C++ позволяет, потому что там макросы правильно работают и можно построить любое требуемое выражение (в отличии от MQL). Хотя помню Вы неоднократно пытались доказать обратное

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

Результат: OnTick = OnTick2

 
A100:

Смотря какой? C++ позволяет, потому что там макросы правильно работают и можно построить любое требуемое выражение (в отличии от MQL). Хотя помню Вы неоднократно пытались доказать обратное

Результат: OnTick = OnTick2

Спасибо. Возможно, поправят.

 
fxsaber:

Спасибо. Возможно, поправят.

Если бы хотели - давно бы уже исправили - ранее неоднократно в том или ином виде писал об этом - вот последнее сообщение

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2020.07.30 02:25

По-моему тут даже дело даже не в приоритете, а в принципиально неправильно выбранном порядке макро подстановки:

а ожидалось, что все будет нормально - как в С++

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2020.07.30 10:53

В С++ макросы устроены так, чтобы можно было любой требуемый результат спроектировать, а в MQL получается, что не любой можно



 
Это баг или так и должно быть?
// Находим крипт-методы, в которых не работает шифрование с ключем.

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)); // Сообщаем о наличии/отсутствии бага.
  }
}


Результат.

        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


Шифрование для  CRYPT_BASE64 и CRYPT_ARCH_ZIP не работает.

 
fxsaber:

Не нашел статистики по Маркету. Поэтому вопрос к продавцам кроссплатформенных продуктов.

Действительно ли MT5-версии продаются лучше MT4?

Сейчас скорее нет, чем да. Но тенденция в сторону 5ки прослеживается, конечно.

 

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

Шифрование для  CRYPT_BASE64 и CRYPT_ARCH_ZIP не работает.

Принципиально разные методы в одну функцию объединили - поэтому создается впечатление бага

В CRYPT_BASE64 ключа никакого в принципе быть не может

 
fxsaber:

Действительно ли MT5-версии продаются лучше MT4?

точно нет. но если раньше разница была на порядок, то сейчас уже более сравнимые цифры

 
A100:

Принципиально разные методы в одну функцию объединили - поэтому создается впечатление бага

В CRYPT_BASE64 ключа никакого в принципе быть не может

Спасибо. Выходит, проблема только в ZIP.

Причина обращения: