Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
...
вызовы все в privat методах, но есть ли "джедайский прием ?" чтобы уйти в тексте исходника от CheckPointer(m_order)==POINTER_INVALID
...
Тут скорее дело не в приеме, алгоритм должен быть таким, что бы эта часть кода не выполнялась, если ордера нет.
А может быть так и задумано. Но вряд ли, если указатель есть, это не означает, что есть ордер, поэтому надо проверять существование ордера.
и если мне не изменяет память, то в начале года можно было распринтовать NULL в лог и получить там 0 , сейчас ошибку выдает
Изменяет
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Kirill Belousov, 2017.12.14 21:34
пора на пенсию
Изменяет
да действительно, но вспомнил как в МТ4 делал раньше, вот так распринтовывал указатели:
2019.09.17 07:52:40.855 tst (EURUSD,H1) 1 : 0
2019.09.17 07:52:40.856 tst (EURUSD,H1) 2 : 1048576
2019.09.17 07:52:40.856 tst (EURUSD,H1) 3 : 0
2019.09.17 07:52:40.856 tst (EURUSD,H1) 1 undeleted objects left
2019.09.17 07:52:40.856 tst (EURUSD,H1) 1 object of type A left
2019.09.17 07:52:40.856 tst (EURUSD,H1) 24 bytes of leaked memory
Тут скорее дело не в приеме, алгоритм должен быть таким, что бы эта часть кода не выполнялась, если ордера нет.
А может быть так и задумано. Но вряд ли, если указатель есть, это не означает, что есть ордер, поэтому надо проверять существование ордера.
зависит от задачи, у меня было уже написано в коде как создать "объект ордер", который сам разберется, что там в рынке - поиск в конструкторе по магику, если нашел то подхватит, открытие ордера по цене, тип ордера сам считает (рыночный или отложенный), нормализация лота, повторная попытка открытия ордера если реквоты были на предыдущем тике, после удачного выставления ордера на следующем тике выставление сл и тп... это все сам делает без вмешательства "объект ордер"
а если ордер был закрыт, то он все равно как бы есть для стратегии - стратегии интересен в конечном итоге профит ордера (текущий или уже закрытого - не важно!), ну и само состояние ордера (еще не выставлен, работает и уже закрыт)
все работает как задумано, возможно где то Вы и правы, но пока код тестирую, указатели нужно проверять обязательно, потом можно попробовать без этой проверки...хотя логика работы подразумевает следующие действия если нет такого объекта....в принципе совсем не много осталось, чтобы на виртуальные ордера все переделать, подумать еще нужно ))))
хотел написать как было раньше у меня вместо
было так:
но вспомнил как проверить макроподстановки в MQL
2019.09.16 22:57:42.837 tst (EURUSD,H1) a = 1
2019.09.16 22:57:42.837 tst (EURUSD,H1) POINTER_INVALID = 0
2019.09.16 22:57:42.837 tst (EURUSD,H1) NULL = 0
и если мне не изменяет память, то в начале года можно было распринтовать NULL в лог и получить там 0 , сейчас ошибку выдает
т.е. поведение NULL как бы не должно измениться в дальнейшем, но что там подставляется вместо NULL не понятно, наверное если эту ситуацию сейчас проверил, то как написал if( CheckPointer(m_order)==POINTER_INVALID ) то это так сказать правильной код )))
Ну и вот это, для сахара:
Первый же простейший тест показывает
, что это не сахар, а другая... более жидкая субстанция
Первый же простейший тест показывает
, что это не сахар, а другая... более жидкая субстанция
Потому что здесь вам не там)) NULL тут ни туда и ни сюда. Надо пользоваться функцией CheckPointer(). Самостоятельно обнулять указатель не нужно, он после delete сам становится POINTER_INVALID.
Потому что здесь вам не там)) NULL тут ни туда и ни сюда. Надо пользоваться функцией CheckPointer(). Самостоятельно обнулять указатель не нужно, он после delete сам становится POINTER_INVALID.
согласен полностью, если почитать админов, то обычно это звучит как - пишите свои коды правильно
с MQL вообще всегда жестко, новый билд, новые неприятности, начинаешь выяснять, ну как бы не по классике использовал, вот держите и распишитесь )))
Первый же простейший тест показывает
, что это не сахар, а другая... более жидкая субстанция
Мил человек. А где статистика Ваших работ на фрилансе, продукты в маркете, публикации, касающиеся программирования? Или Вы пытаетесь кому-то глаза открыть на тему константных указателей,или блеснуть так сказать знаниями на тему типов субстанций..? В будущем просьба контекст примеров учитывать, а не пытаться ошибку компилятора воспроизвести.
У меня простой контекст: Если код (в данном случае макрос) написан с ошибкой, то считаю возможным об этом сообщить (и привести подтверждающий это пример). И в указанном контексте мне не понятно при чем здесь статистика
И в указанном контексте мне не понятно при чем здесь статистика
будьте проще и люди потянутся к Вам
;)
ЗЫ: в Ваших сообщениях есть рац.зерно почти всегда, но подача материала, ну как бы не совсем с благими намерениями, дело конечно Ваше, но имхо, хотите помочь - помогите, хотите по умничать, ну часто так и получается
дело конечно Ваше, но поднимать самооценку за счет интернет ресурсов - .... лень дальше мне печатать