Зачем исправлять? Следуя этой логике, много чего еще можно исправить, например, POSITION_TYPE_BUY :)
Хотел ответить, что исправить таки нужно, потому что нельзя однозначно сказать, удалось ли получить свойство (и оно = 0) или это OrderGetInteger не смог выполнится (и присвоился 0 по умолчанию):
ENUM_ORDER_STATE state = (ENUM_ORDER_STATE)OrderGetInteger( ORDER_STATE );
switch ( state )
{
caseORDER_STATE_STARTED: // Ордер проверен на корректность, но еще не принят брокеромcaseORDER_STATE_FILLED: // Ордер выполнен полностью
{
А потом обнаружил, что есть 2-й вариант функции с проверкой результата:
//2. Возвращает true или false в зависимости от успешности выполнения функции. В случае успеха значение свойства помещается в приемную переменную, передаваемую по ссылке последним параметром.boolOrderGetInteger(
ENUM_ORDER_PROPERTY_INTEGER property_id, // идентификатор свойстваlong& long_var // сюда примем значение свойства
);
Так действительно неоднозначности нет, до проверки состояния просто не дойдет дело.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
Зачем исправлять? Следуя этой логике, много чего еще можно исправить, например, POSITION_TYPE_BUY :)
Хотел ответить, что исправить таки нужно, потому что нельзя однозначно сказать, удалось ли получить свойство (и оно = 0) или это OrderGetInteger не смог выполнится (и присвоился 0 по умолчанию):
А потом обнаружил, что есть 2-й вариант функции с проверкой результата:
Так действительно неоднозначности нет, до проверки состояния просто не дойдет дело.
Андрей, есть некие правила и общие положения,
а иногда просто хороший тон писать (код) грамотно.
Да, я не дочитал, что это поле не заполняется, НО (и это мне и вам очевидно),
что в этом поле (даже если оно не заполняется) не должно быть значащего выражения.
Я бы так (как сделано у MQ) никогда не сделал.
Перечисления начинать с 0 тоже принято.
Я не знаю, как правильно. Для меня главное, что я могу получить ожидаемый результат.
Зачем вам вообще функция OnTradeTransaction ?
Бестолковая функция, можно и без нее спокойно обойтись.
Зачем вам вообще функция OnTradeTransaction ?
Бестолковая функция, можно и без нее спокойно обойтись.
Хочу и использую, а вы не хотите и не используете.
У каждого свой выбор (слава богу, что он есть).
И ещё...
А что вы используете, при работе с OrderSendAsync?
Хочу и использую, а вы не хотите и не используете.
У каждого свой выбор (слава богу, что он есть).
И ещё...
А что вы используете, при работе с OrderSendAsync?
Только не нервничайте. Я вам не запрещаю)
Теперь понятно. Я не пользую OrderSendAsync. C OrderSendAsync возможно понадобится OnTradeTransaction.
Но лучше без него, имхо.
Боже упаси нервничать!
Повторяю, у каждого свой выбор.
Я уважаю ваш выбор.
В справке написано, что OnTradeTransaction может и не дойти (потеряться).
Не люблю полагаться на случай, лучше самому все перепроверить. Поэтому даже не пытаюсь использовать данную функцию.
Сергей!
Никто не может гарантировать, что клиент-сервер на 100% без ошибок и потерь!
Что не используй, всё-равно есть вероятность, что что-то потеряется.....
OnTrade - так же может не дойти или потеряться.