Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite - страница 10
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У него отработало всё точно так же:
Вопрос был в другом: почему в журнал пишется "ENUM_ORDER_TYPE::-1", а не "WRONG_VALUE".
Ответ я уже дал.
А если посмотреть внимательно:
Для SigTrend вернуло -1, а SigAdd почему-то ORDER_TYPE_BUY. Поэтому я спросил - где весь полный код. Так как SigAdd инициализирована значением '-1', а выдало ORDER_TYPE_BUY
С точки зрения программиста, я понимаю это, но с точки зрения пользователя, я бы этого не ожидал. WRONG_VALUE также является допустимым значением перечисления.
From the programmer's point of view, I understand that, but from the user's point of view, I would not expect that. WRONG_VALUE is also a valid value of the enumeration.
Только в том случае, если в перечислении объявлена константа со значением -1.
Если в перечислении нет константы с таким значением, то в журнал выводится ваша попытка преобразования WRONG_VALUE в значение перечисления ENUM_ORDER_TYPE.
А если посмотреть внимательно:
Для SigTrend вернуло -1, а SigAdd почему-то ORDER_TYPE_BUY. Поэтому я спросил - где весь полный код. Так как SigAdd инициализирована значением '-1', а выдало ORDER_TYPE_BUY
Это не относится к его вопросу "Я ожидаю WRONG_VALUE, но не -1":
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite
Carl Schreiber, 2020.04.02 18:46
Нет WRONG_VALUE?
Эта:
Создает это в журнале экспертов:
Я ожидаю WRONG_VALUE, но не -1
Вполне вероятно, что код предоставлен не полный. Но я ответил на заданный вопрос, а не на то, почему он не предоставил полный код - может он до распечатки в журнал уже присвоил значение 0 переменной SigAdd. Это не относится к его вопросу же.
В общем - не суть важно :)
Переменные соответственно инициализируются.
Позже в коде, если условия выполняются, им присваиваются ORDER_TYPE_BUY или ORDER_TYPE_SELL (только эти два!) - если ни одно из условий не выполняется, значения остаются такими же, как в WRONG_VALUE:
The variables are initialized accordingly.
To me it's more a cosmetic problem than a serious one.Later in the code, if the conditions are met, they are assigned ORDER_TYPE_BUY or ORDER_TYPE_SELL (only those two!) - if neither of the conditions is true, the values remain as they are at WRONG_VALUE:
Переменные соответственно инициализируются.
Позже в коде, если условия выполняются, им присваиваются ORDER_TYPE_BUY или ORDER_TYPE_SELL (только эти два!) - если ни одно из условий не выполняется, значения остаются такими же, как в WRONG_VALUE:
The variables are initialized accordingly.
To me it's more a cosmetic problem than a serious one.Later in the code, if the conditions are met, they are assigned ORDER_TYPE_BUY or ORDER_TYPE_SELL (only those two!) - if neither of the conditions is true, the values remain as they are at WRONG_VALUE:
А проблема-то где?
Переменные соответственно инициализируются.
Позже в коде, если условия выполняются, им присваиваются ORDER_TYPE_BUY или ORDER_TYPE_SELL (только эти два!) - если ни одно из условий не выполняется, значения остаются такими же, как в WRONG_VALUE:
The variables are initialized accordingly.
Later in the code, if the conditions are met, they are assigned ORDER_TYPE_BUY or ORDER_TYPE_SELL (only those two!) - if neither of the conditions is true, the values remain as they are at WRONG_VALUE:
To me it's more a cosmetic problem than a serious one.
Обратите внимание на это
WRONG_VALUE
Константа может неявно приводиться к типу любого перечисления.
-1
Следовательно: Если вы присваиваете перечислениям ENUM_ORDER_TYPE значение WRONG_VALUE это не означает, что значение будет равно -1
Это означает, что будет присвоено значение 0, что означает ORDER_TYPE_BUY
Обратите внимание на это
WRONG_VALUE
Константа может неявно приводиться к типу любого перечисления.
-1
Следовательно: Если вы присваиваете перечислениям ENUM_ORDER_TYPE значение WRONG_VALUE это не означает, что значение будет равно -1
Это означает, что будет присвоено значение 0, что означает ORDER_TYPE_BUY
Не так.
WRONG_VALUE приводится к типу ENUM_ORDER_TYPE, соответственно и выводится значение WRONG_VALUE как тип ENUM_ORDER_TYPE:
ENUM_ORDER_TYPE::-1. При этом явно указывается контекст (::) именно перечисления.
WRONG_VALUE при этом никак не становится равным нулю. Невозможно взять, и присвоить константе ORDER_TYPE_BUY какое-либо значение кроме уже имеющегося.
Равно как и константе WRONG_VALUE нельзя присвоить иное значение кроме -1.
Так как в перечислении ENUM_ORDER_TYPE нет ни одной константы со значением -1 (которое можно сравнить с константой WRONG_VALUE), поэтому и выводится в журнал запись
ENUM_ORDER_TYPE::-1, говорящая о том, что константа WRONG_VALUE была приведена к типу перечисления ENUM_ORDER_TYPE.
А человек ожидал увидеть запись "WRONG_VALUE". Для этого ему самому нужно при выводе проверить значение переменной и вывести строку "WRONG_VALUE" в случае, если переменная равна -1.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 2360: Расширение интеграции с SQLite
fxsaber, 2020.03.24 23:13
Терминал по какой-то причине выбрал медленную торговую точку.
Пока вручную не сделал пересканирование, ничего не менялось. После пересканирования стало так.
По какой причине такое происходит?
На другом сервере ситуация такая же.
До ручного пересканирования.
После.
По двум ситуациям видно, что по какой-то причине MT5 начинает видеть только одну точку. После пересканирования - все.
На другом сервере ситуация такая же.
До ручного пересканирования.
После.
По двум ситуациям видно, что по какой-то причине MT5 начинает видеть только одну точку. После пересканирования - все.
Опишите предыдущее состояние терминала, пожалуйста: