Перезагрузи терминал. На последних билдах сам стал часто замечать
такое, что после компилирования советник ведет себя неадекватно.
Talex:
в том то и дело, что там вроде все верно, не должен быть инвалид
лотс. Я просил код рассмотреть внимательно, а не сообщение советника
:)
...ошибка, вроде все элементарно просто:
23:30:05 Советник EURJPY,M30: invalid lots amount for OrderSend function
Так все уже написано, зачем голову ломать. 23:30:05 Советник EURJPY,M30: invalid lots amount for OrderSend function
Перед ордерсендом дайте принтовку переменной defenselots.
mr_Johns:
в том то и дело, что там вроде все верно, не должен быть инвалид лотс. Я просил код рассмотреть внимательно, а не сообщение советника :)
Не должен быть, а он есть и терминал явно показывает где. Воспользуйтесь
советом Игоря, сделайте распринтовку, чтобы убедиться и еще
посмотрите примет ли ДЦ такой лот.
в том то и дело, что там вроде все верно, не должен быть инвалид лотс. Я просил код рассмотреть внимательно, а не сообщение советника :)
значение лота нужно не только нормализировать но и приводить к кратному шагу по лоту, иначе он будет как раз так и ругаться что инвалид лот
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
if(buylots>selllots && buylots!=selllots+selllotsSTO)
{
defenselots=NormalizeDouble(buylots+buylotsSTO-selllots-selllotsSTO+baselots, mmfx); //extern int mmfx -целый лот-0, мини-1, микро-2
RefreshRates();
priceopen=NormalizeDouble(lastfractallow-1*Point, Digits);
if(tps>0) takeprofit=NormalizeDouble(priceopen-tps*Point, Digits); else takeprofit=0;
ticket=OrderSend(Symbol(),OP_SELLSTOP,defenselots,priceopen,3,0,takeprofit,"", MagicNumber, 0,Red);
if(ticket>0)
{
Print(" Выставлен защитный ордер : #",ticket," sellstop open at ",priceopen, " ExpertMagic: ",MagicNumber);
Sleep(5000);
}}
Советник, выдает такое интересное сообщение:
23:30:05 Советник EURJPY,M30: invalid lots amount for OrderSend function
23:30:05 Советник EURJPY,M30: Выставлен защитный ордер : #-1 sellstop open at 156. 59 ExpertMagic: 100005
То есть if(ticket>0) проигнорирован?? Print() вроде не должен выполняться? или это просто глюк?