Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях - страница 28

 
Andrey Khatimlianskii:

Если бы там был 0, сработала бы проверка, и не было бы zero divide.

Иляс уже ответил — скорее всего там NaN

I have changed my code to: / Я изменил свой код на:

BuffPrcRel[iB] = MathClassify(BuffAtrLong[iB]) != FP_NORMAL ? 1.0 : (fmax(BuffPrc[iB],cV*BuffVolDiff[iB]) / BuffPrcLong[iB] );

This way it should work. Этот способ должен сработать.

 
Ihor Herasko:

Что означает "полное заполнение (full fill)"?

Fulfill, очевидно - заполнять.
"Каким значением надо заполнить в ордере"
 

На удаленных машинах (VPS через RDP) постоянно сталкиваюсь с одной и той же проблемой.

Запущено несколько одинаковых советников. Одни реагируют на нажатие CTRL/SHIFT, другие - нет.

  static bool IsKeyCtrl( void )
  {
    return(::TerminalInfoInteger(TERMINAL_KEYSTATE_CONTROL) < 0);
  }


Если из советника, который не реагирует на эти клавиши, запустить что-нибудь стороннее через это.

  #import "shell32.dll"
    int ShellExecuteW( int, string, string, string, string, int );
  #import

То советник волшебным образом начинает реагировать на нажатия CTRL/SHIFT!


Вроде, про проблему отсутствия реакций на нажатия в VPS где-то озвучивалось ранее. Про костыль "лечения" - нет.

Просьба посмотреть эту проблему.

 

Из справки:

По умолчанию, целые числа отображаются в окне наблюдения в десятичном виде. Чтобы вывести значение в двоичном или шестнадцатеричном виде, в поле "Выражение" укажите через запятую модификатор b или x соответственно.

В последней сборке это больше не работает (2981/3021).

Отладка кода - Разработка программ - Справка по MetaEditor
Отладка кода - Разработка программ - Справка по MetaEditor
  • www.metatrader5.com
В MetaEditor встроен отладчик — инструмент, который позволяет проверить работу программы по шагам (по отдельным функциям). Вы расставляете в коде...
 

Ошибка в ME (b3021) при попытке перехода на метод.

class A
{
  static A* Array[];

  void Func1() {}  
    
  static void Func2()
  {
    A::Array[0].Func1(); // ALT+G на Func1 не работает!
  }
};

static A* A::Array[];

Строка для поиска: Oshibka 031.

 
fxsaber:

Ошибка в ME (b3021) при попытке перехода на метод.

Строка для поиска: Oshibka 031.

Исправлено

 
fxsaber:

На удаленных машинах (VPS через RDP) постоянно сталкиваюсь с одной и той же проблемой.

Запущено несколько одинаковых советников. Одни реагируют на нажатие CTRL/SHIFT, другие - нет.


Если из советника, который не реагирует на эти клавиши, запустить что-нибудь стороннее через это.

То советник волшебным образом начинает реагировать на нажатия CTRL/SHIFT!


Вроде, про проблему отсутствия реакций на нажатия в VPS где-то озвучивалось ранее. Про костыль "лечения" - нет.

Просьба посмотреть эту проблему.

Возможно проблема связана с фокусом чарта ?

MQL программы могут получать состояния клавиш только на "активных" чартах.

 
Ilyas:

Возможно проблема связана с фокусом чарта ?

MQL программы могут получать состояния клавиш только на "активных" чартах.

Окно чарта максимизировано. На другие клавиши реагирует отлично. Проблема только с этими.

Окно начинает замечать эти клавиши всегда, если запустить с советника из этого окна что-нибудь стороннее.


Итого получается, что открыто 10 окон. Беру любое активное - реагирует на все буквенные клавиши. Но только 20% реагирует на CTRL/SHIFT. На каждом из оставшихся что-нибудь запускаю стороннее, и тогда и они начинают видеть CTRL/SHIFT.


Беда происходит на WinServer 2019. Точно видел подобные сообщения на форуме. Найти не могу.

 

b2981

скрипт

void OnStart()
  {
    Print(INT_MIN/-1);
  }
при компиляции выдает ошибку "Internal compiler error"

вот этот компилируется нормально,

void OnStart()
  {
    int min=INT_MIN;
    long i=min/-1;
  }

но при запуске по F5 дебагер выдает алерт "Возникла критическая ошибка, отладка остановлена".

лог экспертов:

2021.08.20 18:54:45.472 sTestDivMinus1 (Si-9.21,M1)     Integer overflow in 'C:\trade\MT5-Open-FORTS\MQL5\Scripts\MyTest\sTestDivMinus1.ex5'
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)        crash -->  00000000040DA2D6 F7F9              idiv       ecx
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)                   00000000040DA2D8 4C63C0            movsxd     r8, eax
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)                   00000000040DA2DB 4C890424          mov        [rsp], r8
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)                   00000000040DA2DF 4883C410          add        rsp, 0x10
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)                   00000000040DA2E3 C3                ret        
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)                   00000000040DA2E4 48B8B0190C400100  mov        rax, 0x1400c19b0
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)                                    0000
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)                   00000000040DA2EE FFE0              jmp        rax
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     00: 0x00000000040DA2D6
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     01: 0x0000000000000001
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     02: 0x8000000000000000
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     03: 0x000000013FF0D01A
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     04: 0x000000013F657FDD
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     05: 0x000000013F80F5CC
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     06: 0x000000013F81A1BD
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     07: 0x00000001400CF944
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     08: 0x0000000076EB556D
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     09: 0x000000007711372D
2021.08.20 18:54:45.477 sTestDivMinus1 (Si-9.21,M1)     


Вариант с LONG_MIN при отладке выдает аналогичный крэш-лог.

long min=LONG_MIN;
long i=min/-1;


Может быть, в новых билдах исправлено?