Выведи cnt и ticket в лог
и надо проверять результат OrderSelect:
if ( OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) == false ) { return(-1); }
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 параметра могут вообще не заполнятся - надо быть очень внимательным с такими ф-циями.
И справку почаще читать =)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Так вот в журнале получаем:
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()" ни к чему не приводит.