Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Извините за нескромный вопрос к организаторам Чемпионата:
Как будет решаться вопрос с налогооблажением приза ( ведь сумма каждого приза очень большая):
каждый призер будет уплачивать сам? ( и по какой ставке?) или это будет решено централизовано? ( т.е. налоги уже учтены?).
Жалко ведь будет отдать полприза на налоги!
А вообще-то лучше совсем не выигрывать, чтобы не жалко было.. .
Извините за нескромный вопрос к организаторам Чемпионата:
Как будет решаться вопрос с налогооблажением приза ( ведь сумма каждого приза очень большая):
каждый призер будет уплачивать сам? ( и по какой ставке?) или это будет решено централизовано? ( т.е. налоги уже учтены?).
Жалко ведь будет отдать полприза на налоги!
Да, призеры сами оплачивают все налоги - такова стандартная практика по отношению к призам во всем мире.
Вопрос в следующем: если код ошибки не будет равен 135 или 138 произойдет ли зацикливание? Если да, то как этого избежать, при этом с гарантией, что ордера закроются?
Никак не могу протестировать, будет ли всегда корректно работать такое закрытие ордеров:
Прочтите еще раз статью с советами, пожалуйста.
Грубое пренебрежение контролем над ошибками с зацикливанием
(у меня стоит контроль на ошибки, отложенные ордера не используются, или ещё надо делать условие на выход из цикла? Как тогда быть с гарантированностью закрытия ордеров? Или я не все коды ошибок отработал?)
Отсутствие контроля за OrderSelect - асинхронность процессов в действии
(да, я не проверяю, что возвращает Order_Select! Ну допустим если в данном конкретном случае вернет false, что изменится внутри цикла, или что будет некорректно? Я же не модифицирую ордер, а закрываю его!)
Пропуск функции обновления рыночного окружения через RefreshRates()
(вроде рефрешусь, тут должно быть все нормально)
Может просто есть готовый кусок кода, по закрытию ВСЕХ ордеров? Буду признателен, если выложите!
P.S. то, что предлагал Rosh http://www.alpari-idc.ru/ru/experts/articles/9.html , не дает гарантии на закрытие ордеров!
- не проверяется результат OrderSelect
- не проверяется явным образом результат OrderClose()
- GetLastError() может вызываться без торговых операций (например, если нарвались на отложенных ордер)
- RefreshRates() вызывается не всегда, а лишь при отказах - грубейшая ошибка
- если в списке есть отложенные ордеры, то 100% зацикливание
Как результат: в 9 строках 5 ошибок - код только выкинуть.Даже 5 ошибок:
- не проверяется результат OrderSelect
- не проверяется явным образом результат OrderClose()
- GetLastError() может вызываться без торговых операций (например, если нарвались на отложенных ордер)
- ...
Как результат: в 9 строках 5 ошибок - код только выкинуть.OrderSelect должен выбрать , а OrderClose закрыть нужные ордера.
А ошибок быть не должно :-)
Или за счёт клиента :-)
Даже 5 ошибок:
Ограничения: не используются отложенные ордера
1. Зачем проверять результат, если требуется закрыть ордер? Если возвращает false, то вернется к нему в следующем проходе, так как используется цикл while.
2. См. п.1.
3. Для этого есть проверка на коды ошибок
4. Если обновлять всегда, тогда нет смысла проверять на ошибки :(
5. Нет отложенных ордеров
Все примеры по закрытию ордеров, которые я нашел в поиске, однопроходные и работают только если все хорошо с сервером, нет никаких реквот и т.д. И все они приводят к тому, что в один прекрасный момент, у нас не закроется какой-нибудь ордер и мы хорошо влетим... Если я не прав, поправте меня, или дайте ссылку, где я могу убедиться в своей неправоте.
Конечно, я прекрасно понимаю, что мой код может привести к зацикливанию, но на мой взгляд, это лучше, чем риск не закрытия ордера, который может привести к серъезным финансовым потерям.
Хотя лучше, чтобы все ордера закрывались со 100% гарантией и не было вероятности зацикливания, вот такой код я и хочу от Вас получить =)
Вот немного измененный код, который даже должен учитывать отложенные ордера:
Он не такой "безбашенный", как предыдущий?
Я так и не понял, зачем в данном случае проверять OrderSelect и OrderClose?
OrderSelect надо всегда проверять, об этом явно сказано в Полезных советах:
Обычно трейдер воспринимает свою программу как однозадачную и единственную. Но в реальности на торговом счете происходят множество асинхронных изменений прямо во время работы эксперта. Позиции модифицируются, добавляются и удаляются. Если не контролировать результат каждого вызова OrderSelect(), то может случиться так, что в определенный момент эксперт будет оперировать неверными (нулевыми) данными и сделает неверный ход.
К сожалению, никаких гарантий по торговым операциям никто не даст. Указанный код гораздо лучше предыдущего.
OrderSelect надо всегда проверять, об этом явно сказано в Полезных советах:
... Позиции модифицируются, добавляются и удаляются. ...
Про "добавляются и удаляются" без комментариев :-(
Пожалуйста, приведите мне работающий пример кода с использованием OrderSelect для получения OrderCloseTime.