MQL4 - automated forex trading   /  

Форум

ПОМОГИТЕ КТО МОЖЕТ !!!

К списку тем  | 1 2 3 4 5 6 7 8 9 10 11 12 Авторизуйтесь или зарегистрируйтесь, чтобы создать новую тему

avatar
1823
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. Более того, вся переписка с клиентами автоматически распознается и попадает в архив, где ее без труда можно найти в будущем.


avatar
1160
Techno 12.06.2010 19:07 
sllawa3:

упёрся в проблемму


селектор находит ордер если есть открытыйб но если открытых нет то как это обнаружить ? в селекторе всё равно же будет показывать последнюю закрытую позу...
с флагом
MODE_TRADES
"Селектор" не будет вообще показывать закрытых позиций, только откоытые, если ноль открытых позиций цикл даже не запустится, так как условие будет ложное

avatar
1823
sllawa3 12.06.2010 19:12 
Techno:
с флагом
"Селектор" не будет вообще показывать закрытых позиций, только откоытые, если ноль открытых позиций цикл даже не запустится, так как условие будет ложное

вот именно что не запустится и сохранит последнюю позу уже закрытую.. у меня же так и написано.. через ордер селект можеи проверить наличие открытой позы а как проверить отсутствие ?

avatar
1160
Techno 12.06.2010 19:16 
sllawa3:

вот именно что не запустится и сохранит последнюю позу уже закрытую.. у меня же так и написано..
что-то непонятно написано. Вот даже сейчас, что значит "сохранит позу закрытую"? Если речь идет о подсчете позиций, как я могу только догадываться, то все переменные(для хранения количества ордеров) нужно обнулять в начале функции старт. Тоесть перед этим циклом. Если после цикла они останутся пустыми, значит поз нет.

avatar
1823
sllawa3 12.06.2010 19:18 
кусок кода в начале темы.. если позы нет то DS останется =1 пока не появится новый ордер... хоть ордер и закрылся.. просто селекция и не запустится...что тут непонятного то..

avatar
1823
sllawa3 12.06.2010 19:22 
Techno:
что-то непонятно написано. Вот даже сейчас, что значит "сохранит позу закрытую"? Если речь идет о подсчете позиций, как я могу только догадываться, то все переменные(для хранения количества ордеров) нужно обнулять в начале функции старт. Тоесть перед этим циклом. Если после цикла они останутся пустыми, значит поз нет.

DS изначально прописана как инт = 0 перед циклом

avatar
1823
sllawa3 12.06.2010 19:26 
Techno:


вот и не обнуляется раз цикл не запустился, а он и не запустится раз нет поз

avatar
1160
Techno 12.06.2010 19:26 
sllawa3:

DS изначально прописана как инт = 0 перед циклом
А, ну если она прописана и присвоено 0, по идее проблем быть не может, иначе откуда ей взяться равной единице. Ей ноль присвоен в функции старт или выше?

avatar
1823
sllawa3 12.06.2010 19:28 
выше

avatar
1823
sllawa3 12.06.2010 19:29 
проблем быть не может но она есть.. можете сами попробовать и убедитесь

avatar
Модератор
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) // есть БАЙ
К списку тем   | 1 2 3 4 5 6 7 8 9 10 11 12  

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий