Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
это связано с тем что стоимость пункта на разных парах разная...
По моему стоимость пункта учитывать лишнее в режиме отображения "прибыль в пунктах"
По моему стоимость пункта учитывать лишнее в режиме отображения "прибыль в пунктах"
Глюки....
1) если удалить из "Обзора рынка" ненужные инструменты, а потом опять добавить какие-нибудь, получается интересная штука.
Щелкните правой кнопкой на инструменте, выберите "Окно графика" - для открытия графика.
Откроется график инструмента другого, не того который выбран!!
Чтобы эта ошибка произошла, нужно выбрать инструмент из только что заново добавленных. (см скрины pic1, pic2, pic3)
2) у меня на скрине видно, что инструмент USDCHF отмечен как выбранный в окне "Символы", хотя реально в "Обзоре рынка" его нет. (pic4)
Возможно первый глюк - следствие второго, т.к. сбилась нумерация инструментов в "Обзоре рынка".
Интернет у меня очень плохой, поэтому все скрины - в архиве.
Вот ссылка http://www.sendspace.com/file/tbav73
Глюки....
1) если удалить из "Обзора рынка" ненужные инструменты, а потом опять добавить какие-нибудь, получается интересная штука.
Щелкните правой кнопкой на инструменте, выберите "Окно графика" - для открытия графика.
Откроется график инструмента другого, не того который выбран!!
Сегодня (вернее уже вчера) утром получил странный глюк в МТ4 - OrderSelect не нашёл ордер по номеру тикета в одном эксперте.
В эксперте выставляются два отложенных ордера BUY_STOP и SELL_STOP по разные стороны от текущей цены. Тикеты этих ордеров хранятся в t1 и t2. Код, в котором произошла ошибка и который приведён ниже, делает следующее: при открытии одного из этих отложенников второй удаляется и вместо него выставляется следующий отложенник с номером t3. Если при первоначальном выставлении t1 и t2 были ошибки, то ошибочного тикета не должно быть в списке ордеров. Именно это и проверяется с помощью if (OrderSelect ...) и в случае ошибки в лог пишется сообщение и делается выход из серии функцией restart().
Сегодня в 6:30 открылся t1. Ордер t2 тут же был удалён советником (удалён с рынка, но остался в истории - "canceled", я проверил). После этого был выставлен t3. Эти все события есть в логах МТ и советника. Далее проверка "OrderSelect(t2, SELECT_BY_TICKET)" возвращает ЛОЖЬ и серия обрывается с ошибкой "Unknown order t2". Странно, ведь t2 был выставлен и удалён без ошибок и остался в истории. Режим показа истории в МТ - "Вся история". Как OrderSelect смог его не найти?
Компьютер стоит отдельно, используется только для торговли, ни для чего больше. Никто кроме меня его не трогает. Загрузка процессора в среднем 10%. Памяти, места на винте и т.д. хватает с большим запасом.
Версия МТ4 - 402. Советник работает уже несколько месяцев в разных вариациях в реалтайме на демо в одном МТ параллельно на трёх разных парах (на трёх графиках). Никаких проблем с этой частью кода до сегодняшнего утра не было. И после этого днём и вечером по другим парам на этом же советнике тоже всё прошло гладко. То есть, ошибку воспроизвести по желанию не получится.
Вопрос: как такое могло произойти? Это глюк МТ или я что-то не учёл в коде?
В коде используются функции OrderDeleteX и OrderSendX - обёртки над стандартными OrderDelete и OrderSend, добавляющие проверку торгового потока на незанятость и фиксирующие в логе эксперта события типа "Deleting order ..." и "Sending order ..."
Расчёты цен я убрал для упрощения и бОльшей наглядности кода.
Номера ордеров по переменным:
t2 = 119732180
t3 = 119733656
Не могу найти ордер. Здесь видно по отчету ДЦ, что ордер 67930924 был открыт...
это закрытые сделки в истории счета, начиная с 08.06.11. как видим этого ордера здесь нет.
Значит он должен быть в открытых сделках. Картинка ниже, открытые сделки.
Но его здесь тоже нет. Интересно какой отчет завтра пришлет ДЦ, но я хочу услышать версию разработчиков ПО, как такое может быть.
И еще один момент, может это и не важно, но ни как не сохраняется дата, как не открою выбор периода всегда стоит май месяц.
Не могу найти ордер. Здесь видно по отчету ДЦ, что ордер 67930924 был открыт...
это закрытые сделки в истории счета, начиная с 08.06.11. как видим этого ордера здесь нет.
Значит он должен быть в открытых сделках. Картинка ниже, открытые сделки.
Но его здесь тоже нет. Интересно какой отчет завтра пришлет ДЦ, но я хочу услышать версию разработчиков ПО, как такое может быть.
И еще один момент, может это и не важно, но ни как не сохраняется дата, как не открою выбор периода всегда стоит май месяц.
В продолжение темы "OrderSelect не нашёл ордер по номеру тикета".
Сегодня утром в этом же эксперте на другой паре произошла такая же ошибка. Отложенный ордер t2=#119899844 был выставлен успешно, потом так же успешно удалён, после него был без ошибок выставлен отложенник t3=#119903758, и после этого t2 не был найден функцией OrderSelect.
Между вчерашней ошибкой и сегодняшней приведённый в моём предыдущем сообщении код в эксперте несколько раз отрабатывал успешно, без ошибок, удалённые ордера были найдены без проблем.
До этого несколько месяцев эксперт работал в версии МТ4 229. Подобного не наблюдалось. На выходных, 4 дня назад, перешёл на версию 402. Не знаю, связаны ли ошибки с новой версией. Вернуться на старую уже нет возможности, так как Альпари, где торгует этот эксперт, изменил часовой пояс котировок, а эти изменения правильно отрабатывает только версия 402 (так утверждают в Альпари).
Вопросы остались открытыми:
Как такое могло произойти, почему OrderSelect не нашёл ордер в истории, при том, что история отображается вся, потерянный ордер в ней виден? Это глюк МТ или я что-то не учёл в коде?
Есть библиотека DLL написанная на Дельфи7. В ней реализована всего одна функция - проверка наличия файла по указанному пути.
Вот ее код.
Ничего сложного, ничего особенного. всего одна функция.
Вот код советника, который эту функцию юзает:
и вот код заголовочного файла
Теперь вопрос. Почему если в терминале один советник, то все пашет как часы, сутками напролет.
Если в терминале два таких советника в разных окнах и они вызывают эту функцию, то раз в несколько часов оба советника прекращают свою работу, а в журнале появляются сообщения