Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Виктор, тебе Ренат, в общем, правильно заметил, Алексей показал необходимую последнюю проверку, а ранее проведи все необходимые проверки на каждый параметр со всеми нюансами, чтобы избегнуть двоякости смысла и без упущения какого-нибудь условия!
А какой прок от этого? Ведь я в каждой функции сбрасываю значение _LastError. Она же у меня не висит постоянно в памяти...
ещё проверочка нужна, на предмет что если ни один из 3 параметров не изменился, то и OrderModify не надо трогать.
Я Вас понял. Не помогло. Вот кусок кода из моего метода модификации:
Тут явно видно, что сбрасывается значение ошибки.Потом получает рыночную инфу. Если модификация в тестере... то... произвожу проверку предложенную Алексеем, и.. если модификация не успешна, то... пишим лог и принты в журнал..
В общем, видно, что там ошибок между ResetLastError() нет.. Там ошибаться не в чем.
Журнал:
Я Вас понял. Не помогло. Вот кусок кода из моего метода модификации:
Тут явно видно, что сбрасывается значение ошибки.Потом получает рыночную инфу. Если модификация в тестере... то... произвожу проверку предложенную Алексеем, и.. если модификация не успешна, то... пишим лог и принты в журнал..
В общем, видно, что там ошибок между ResetLastError() нет.. Там ошибаться не в чем.
Журнал:
Так всё есть...
В эксперте вызываю метод класса так:
Вот кусок класса интересуемый нас:
Вот нужный кусок журнала:
Поясню. Модификация происходит в методе fOrderModify(). На входе в данный метод fOrderModify() в начале тела принтуются текущие значения параметров ордеров и новые запланированные. Оно и видно:
Этот кусок в журнале:
Видно, что параметры все разные. Проблем быть не должно.Так всё есть...
В эксперте вызываю метод класса так:
Вот кусок класса интересуемый нас:
Вот нужный кусок журнала:
Что-то я не пойму, при чём тут Bid если ордер отложенный?
Bid всегда ниже SellLimit соответственно строка if(New_OOP < Bid) никогда не будет истиной... соответственно модифай идёт беспрепятственно.
А может ещё и массив ошибок завести? Ведь в документации чёрным по белому написано, что переменная _LastError хранит номер последней ошибки. А сброс её производится функцией ResetLastError(). Если между вызовами _LastError не было ошибок больше, то _LastError хранит значение последней ошибки. У меня по ходу кода больше не было ошибок. А значится, вопрос не в этом.
Вы абсолютно неправы. Последняя ошибка еще как сбрасывается во множестве важных функций. Это и в WinAPI тоже так работает.
Поэтому сохраняйте код ошибки в локальную переменную сразу же после ее возникновения, а не пытайтесь использовать после десятикратной очистки этой системной переменной в массе ваших промежуточных функций.
Извините, SellLimit требует соблюдать дистацию:
не if (New_OOP < Bid) continue; а if (New_OOP-dist*Point < Bid) continue;
Как убрать эту долбаную ошибку? Она меня уже достала. Проверяю каждый вводный параметр функции. У меня, в данный момент, это так:
Т.е. если параметр не изменён, то изменять его ненужно. Раньше я так не делал, но решил уж...
Дальше у меня параметры передаются в метода модификации ордера так:
Нв выходе в журнале:
Получается, журнал уведомил, типа модификация: ОК, а дальше... ошибка. Ни один параметр при этом не изменился.
Ордер отложенный. Так что менять можно цену открытия, стоп и тейк. И это, как я понимаю, не противоречил документации.
Кто сталкивался с подобным? Как решать?