[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 581
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
И еще если это скрипт -- надо чтобы было включено разрешение на торговлю для экспертов.
это советник.
все разрешения конечно включены (есть другие советники - они работаю -НЕ одновременно)
то есть проблема в коде. что-то там не то.....
Спасибо за ответ. Отложенники нужны не все, только байлимит и селлимит, да и ставлю я тоже только их, магик тоже присутствует везде одинаковый. Приведённый вами код посмотрел, столько там всего, сидел разбирался ,вообщем если своими силами проблему не решу то сяду разбирать ваши скрипты более основательно, по другому иначе никак, не удаляет и все тут (
Я тут о чем подумал. У меня удаление всех отложенников стоит только в одном месте - когда я выгружаю робота ,те в разделе деинит. Может на этот раздел есть какое то ограничение по времени ? и поэтому ордера не успевают удалиться ? ведь когда ордеров мало все шикарно удаляется, а когда раскидывается полностью сетка то ппц что твориться, десяток ордеров всегда остаётся и руками потом это чистить не вариант, это же АТС вроде как.
Мой скрипт использует эту библиотеку. А в ней за удаление ордеров отвечает функция:
Для выдирания функции из библиотеки нужны определённые знания, а вот использовать всю библиотеку вполне приемлемо для новичка.
Ура, я , кажется проблему удаления ордеров у себя решил. Отдельной функцией считаю количество "нужных"(подлежащих удалению) ордеров -- Total --, вызываю эту функцию, затем while с условием ( Total>0) потом, цикл удаления for(int i=Total-1 ;i<=0l;i--), опять ф-я подсчета "нужных" , счетчик попыток удаления с выходом из while при достижении заданного уровня. Так удаляются все.
При использовании циклов ВСЕГДА нужно быть осторожным: ставить счётчик итераций и условие выхода при запрете советнику на торговлю.
Спасибо за подсказку. Про условие выхода при запрете торговли я забыл. сейчас себе поставлю.
чёрт, значит в этом проблема у меня. интересно а как же её тогда обойти ,если удалять мне нужно всю сетку только когда я выгружаю робота...я тут даже ничего не могу придумать получается :(
Можно в deinit() через библиотеку загрузить на чарт скрипт:
с функцией удаления всех ордеров.
P.S. С теми или иными затратами средств и энергии можно решить ЛЮБЫЕ экзотические желания трейдера, НО нужна ли подчас эта "экзотика"... :)))
эх...почему условие проверки открытых ордеров нельзя было записать так:
if OrdersTotal() > 0
все ясно и понятно... было бы...
а то я уже час не могу понять КАК это условие записать...
эх...почему условие проверки открытых ордеров нельзя было записать так:
if OrdersTotal() > 0
все ясно и понятно... было бы...
а то я уже час не могу понять КАК это условие записать...
Почему нельзя? можно, но будет срабатывать при наличии открытых или отложенных ордеров на любом инструменте.
Почему нельзя? можно, но будет срабатывать при наличии открытых или отложенных ордеров на любом инструменте.
да пусть бы срабатывал -у меня одна позиция и один инструмент.
но ведь не работает!
ругается на ошибки в коде
на вот это
---------------------------
int start()
{
//----
if OrdersTotal()>0
PlaySound ("alert.wav");
//----
return(0);
}
-----------------------------
выдает 8 ошибок!!
А так ?
А так ?
:)))))))))))))))))))
шикарно! Спасибо