| / | Форум |
|
chv
28.04.2006 15:02
Приветствую.
Есть задача - закрыть все ордера на BUY (или на SELL) на определенной валюте. Прохожу по всем ордерам, из них нахожу Sumbol() == OrderSymbol() нужную валюту и OrderType() тип OP_BUY или SELL, выбираю ордер OrderSelect() и через OrderClose() закрываю. Проблема в том, что не всегда все заказы одного типа (BUY или SELL) закрываются, иногда остаются открытыми. В чём может быть дело? |
|
Организуйте багтрекинг и техсаппорт для своей компании В TeamWox имеются все для того чтобы организовать багтрекинг. Интегрировав модуль Сервисдеск с веб-сайтом, Вы сможете получать заявки своих клиентов напрямую в TeamWox. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем. |
|
SKif
28.04.2006 15:15
Дело может быть в цене закрытия.
Пока один ордер закрывается цена может измениться, поэтому сервер отказывает в исполнении. Для качественного закрытия необходимо внимательно анализировать ситуацию. |
5198 |
stringo
28.04.2006 15:20
Может, у Вас цикл обхода ордеров от нуля до TotalTrades?
|
|
chv
29.04.2006 01:23
Код такой:
Он не всегда закрывает ордера нужного типа. |
33759 |
Rosh
29.04.2006 11:39
Че гадать, вставь распринтовку и сразу все станет ясно.
ЗЫ. Я бы все-таки рекомендовал закрытвать прождажи по Ask, а покупки по Bid. Но не наставиваю, автору видней . ЗЗЫ. заодно можно подумать на кой хер в эти функции передается параметр
ЗЗЗЫ На самом деле вопросов больше к автору, а не к коду. |
|
SKif
29.04.2006 12:54
chv: Правильно ли я понимаю? Были случаи, когда ордера закрывались?Проблема в том, что не всегда все заказы одного типа (BUY или SELL) закрываются, иногда остаются открытыми. |
|
chv
29.04.2006 13:23
Да, иногда OrderClose в журнале был, они закрывались.
Я переделал код на:
т.е. поставил вызов RefreshRates() до закрытия, может быть дело в этом. 2. И второй вопрос по поводу фразы "Я бы все-таки рекомендовал закрытвать прождажи по Ask, а покупки по Bid. Но не наставиваю" - это верно? Мне кажется, всё нужно закрывать по Ask, и BUY и SELL, это же последняя известная цена продажи. Или я не прав? 3. По поводу передачи параметра lots - он же используется в вызове:
Как я могу закрыть ордер без этого параметра, или можно закрыть весь ордер без передачи lots? |
33759 |
Rosh
29.04.2006 13:50
Как я могу закрыть ордер без этого параметра, или можно закрыть
весь ордер без передачи lots? Да, есть OrderLots().
|
|
SKif
29.04.2006 15:06
Мне кажется, всё нужно закрывать по Ask, и BUY и SELL, это же последняя
известная цена продажи. Или я не прав? Не прав.Для правильного понимания легче всего ориентироваться на такое правило: Все ордера всегда открываются и закрываются по худшему для трейдера курсу. Возьмём для примера BUY. Он открывается по Ask и закрывается по Bid. В момент открытия доход по ордеру сразу же начинает считаться от Bid и равен спреду со знаком минус. И только если цена пойдёт в нужную сторону, когда цена по Bid сравняется с курсом открытия ордера, прибыль по ордеру будет равна 0. Это же требование справедливо и для отложенных ордеров. Для открытия BuyLimit и BuyStop необходимо касание Ask-ом заявленного курса отл. ордера. То же касается и StopLoss и TakeProfit ордеров. Для BUY необходимо достижение этих цен Bid-ом Для ордеров SELL применяются зеркальные требования. ---------- В приведенном коде всё написано наоборот. Поэтому удивительно, что программа вообще что-либо закрывала. Видимо, это происходило в тех редких случаях, когда за время, пока приказ доходит до сервера, цена меняется настолько, что укладывается в slippage, в представленном коде это 3. |
|
chv
29.04.2006 18:54
Спасибо.
Тогда, на ваш взгляд, такой вариант лучше? Для SELL:
и для BUY:
|
|
SKif
29.04.2006 21:32
Так правильней, конечно.
В остальном - смотря к чему стремиться. Например, я бы не ставил слип 30. Кроме того, если дилер настойчиво не закрывает, то можно подогнать поближе Стоп и Профит, в расчёте на то, что приказы на модификацию (на большинстве ДЦ) исполняются автоматически и при достижении Стопа или Профита ордер автоматически закроется. В общем, смотря.. "- Вы, наверное, хорошо стреляете? - Подходяще, - ответил Азазелло. - А на сколько шагов? - задала Маргарита Азазелло не совсем ясный вопрос. - Во что, смотря по тому, - резонно ответил Азазелло" (М.Булгаков) |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий