OrderModify в тестере

 
Столкнулся с проблемой, в советнике есть такой код:
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
ticket=OrderTicket();
....
Print("ticket=",ticket);
OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),,16384);


Так вот в журнале получаем:
2005.09.16 15:14:10 2004.05.05 08:00 <Sovet> USDJPY,H4: unknown ticket 1 for OrderModify function
2005.09.16 15:14:10 2004.05.05 08:00 <Sovet> USDJPY,H4: ticket=8
(порядок как есть в журнале)

От куда взялось изменять 1-й ордер???

Замена "ticket" на "OrderTicket()" ни к чему не приводит.

 
Выведи cnt и ticket в лог
 
и надо проверять результат OrderSelect:
if ( OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) == false ) { return(-1); }
 
С утра уже другая ошибка:
if(OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES)==false) {Print("Not select"); return(-1);}
ticket=OrderTicket();
...
Print("ticket/cnt=",ticket,"/",cnt);
OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),,16384);


Результат:

2005.09.19 07:59:34	2004.05.05 00:00  <Sovet> USDJPY,H4: ticket/cnt=8/0
2005.09.19 07:59:34	2004.05.05 00:00  <Sovet> USDJPY,H4: ticket for OrderModify function must be an integer
 
Вот тебе и ответ. Проблема в логике советника. cnt и ticket не совпадают
 
OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),_где_параметр_,16384);
В функции не хватает параметров...
 
Вот тебе и ответ. Проблема в логике советника. cnt и ticket не совпадают

Они и не должны совпадать. Один порядковый номер ордера в списке открытых ордеров в данный момент, второй - уникальный номер ордера.
 
OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),_где_параметр_,16384);
В функции не хватает параметров...


Сенкс - это помогло.
Но почему компилер не ругался? И насколько мне позволяют мои знания анг., сообщение об ошибке совсем о другом. В обоих случаях.
 
OrderModify(ticket,OrderOpenPrice(),OrderStopLoss(),OrderOpenPrice(),_где_параметр_,16384);
В функции не хватает параметров...


Сенкс - это помогло.
Но почему компилер не ругался? И насколько мне позволяют мои знания анг., сообщение об ошибке совсем о другом. В обоих случаях.

потому что там последних 4 параметра могут вообще не заполнятся - надо быть очень внимательным с такими ф-циями.
И справку почаще читать =)
Причина обращения: