| / | Форум |
|
sllawa3
12.06.2010 18:36
упёрся в проблемму for(int i = 0; i < OrdersTotal(); i++) { if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol() != Symbol()) continue; if(OrderMagicNumber() != MAGA) continue; if(OrderType() == OP_BUY)DS=1; |
|
Организуйте багтрекинг и техсаппорт для своей компании В TeamWox имеются все для того чтобы организовать багтрекинг. Интегрировав модуль Сервисдеск с веб-сайтом, Вы сможете получать заявки своих клиентов напрямую в TeamWox. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем. |
|
Techno
12.06.2010 19:07
sllawa3: с флагом упёрся в проблемму MODE_TRADES"Селектор" не будет вообще показывать закрытых позиций, только откоытые, если ноль открытых позиций цикл даже не запустится, так как условие будет ложное |
|
sllawa3
12.06.2010 19:12
Techno: с флагом "Селектор" не будет вообще показывать закрытых позиций, только откоытые, если ноль открытых позиций цикл даже не запустится, так как условие будет ложное вот именно что не запустится и сохранит последнюю позу уже закрытую.. у меня же так и написано.. через ордер селект можеи проверить наличие открытой позы а как проверить отсутствие ? |
|
Techno
12.06.2010 19:16
sllawa3: что-то непонятно написано. Вот даже сейчас, что значит "сохранит позу закрытую"? Если речь идет о подсчете позиций, как я могу только догадываться, то все переменные(для хранения количества ордеров) нужно обнулять в начале функции старт. Тоесть перед этим циклом. Если после цикла они останутся пустыми, значит поз нет.вот именно что не запустится и сохранит последнюю позу уже закрытую.. у меня же так и написано.. |
|
sllawa3
12.06.2010 19:18
кусок кода в начале темы.. если позы нет то DS останется =1 пока не появится новый ордер... хоть ордер и закрылся.. просто селекция и не запустится...что тут непонятного то..
|
|
sllawa3
12.06.2010 19:22
Techno: что-то непонятно написано. Вот даже сейчас, что значит "сохранит позу закрытую"? Если речь идет о подсчете позиций, как я могу только догадываться, то все переменные(для хранения количества ордеров) нужно обнулять в начале функции старт. Тоесть перед этим циклом. Если после цикла они останутся пустыми, значит поз нет. DS изначально прописана как инт = 0 перед циклом |
|
sllawa3
12.06.2010 19:26
Techno: вот и не обнуляется раз цикл не запустился, а он и не запустится раз нет поз |
|
Techno
12.06.2010 19:26
sllawa3: А, ну если она прописана и присвоено 0, по идее проблем быть не может, иначе откуда ей взяться равной единице. Ей ноль присвоен в функции старт или выше?DS изначально прописана как инт = 0 перед циклом |
|
sllawa3
12.06.2010 19:28
выше
|
|
sllawa3
12.06.2010 19:29
проблем быть не может но она есть.. можете сами попробовать и убедитесь
|
7380 |
sergeev
12.06.2010 19:29
Может так?
DS=0; for(int i = 0; i < OrdersTotal(); i++) { if (DS==0) DS=-1; if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue; if(OrderSymbol() != Symbol()) continue; if(OrderMagicNumber() != MAGA) continue; if(OrderType() == OP_BUY)DS=1; } if (DS==0) // поз никаких нет if (DS==-1) // позы есть, но нету БАЙ if (DS==1) // есть БАЙ |
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий