[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 580
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ура, я , кажется проблему удаления ордеров у себя решил. Отдельной функцией считаю количество "нужных"(подлежащих удалению) ордеров -- Total --, вызываю эту функцию, затем while с условием ( Total>0) потом, цикл удаления for(int i=Total-1 ;i<=0l;i--), опять ф-я подсчета "нужных" , счетчик попыток удаления с выходом из while при достижении заданного уровня. Так удаляются все.
нужно вставить условия НАЛИЧИЯ открытой сделки (одной, без всяких майджиков) в один ряд например, с пересечением средних.
нашел это
==============================================
int start()
{
for(int i=0; i<OrdersTotal(); i++)
{
if ((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) )
PlaySound ("alert.wav");
return(0);
}}
==============================================
открытая позиция есть, а звука нет.
подскажите что не так?
или как проще записать условие:
ЕСЛИ МА 5 пересекает МА 10 и есть открытая позиция - закрыть эту позицию.
кажется тут понадобится void....
да..просто надо эти mqh файлы открывать 4-ым Эдитором...
Если они из учебника по MQL 4, они и будут открываться 4-ым Эдитором . Поместите их в папку includ или переименуйте в mq4 и поместите в папу эксперт ,основную, если это советник, или папки скриптов или индикаторов соответственно, и открывайте.
кстати хороший вариант, и пусть этот while гоняет свой цикл до конца света пока не удалит ордера, спасибо, щас попробую.
Если поместить в деинит --не толучится. на ее выполнение в мт 4 отводится 2.5 сек.
Если поместить в деинит --не толучится. на ее выполнение в мт 4 отводится 2.5 сек.
чёрт, значит в этом проблема у меня. интересно а как же её тогда обойти ,если удалять мне нужно всю сетку только когда я выгружаю робота...я тут даже ничего не могу придумать получается :(
нужно вставить условия НАЛИЧИЯ открытой сделки (одной, без всяких майджиков) в один ряд например, с пересечением средних.
нашел это
==============================================
int start()
{
for(int i=0; i<OrdersTotal(); i++)
{
if ((OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true) )
PlaySound ("alert.wav");
return(0);
}}
==============================================
открытая позиция есть, а звука нет.
подскажите что не так?
или как проще записать условие:
ЕСЛИ МА 5 пересекает МА 10 и есть открытая позиция - закрыть эту позицию.
кажется тут понадобится void....
Посмотрите, разрешены ли звуки для МТ в винде, и есть ли файлы в папке Sound. Но на бстром рынке сн будет работать как будильник.
Посмотрите, разрешены ли звуки для МТ в винде, и есть ли файлы в папке Sound. Но на бстром рынке сн будет работать как будильник.
не, ну я хоть и новичок, но такие ошибки не делаю. :))
другие эксперты поют как соловьи! в этом же терминале!
чёрт, значит в этом проблема у меня. интересно а как же её тогда обойти ,если удалять мне нужно всю сетку только когда я выгружаю робота...я тут даже ничего не могу придумать получается :(
поместить перед вызовом деинит по тому же условию, по которому вызываете деинит.
не, ну я хоть и новичок, но такие ошибки не делаю. :))
другие эксперты поют как соловьи! в этом же терминале!
И еще если это скрипт -- надо чтобы было включено разрешение на торговлю для экспертов, и чтобы в окне, куда вы его бросаете не было других работающих скриптов или экспертов.К тому же он будет " дзенькать " если будут открытые сделки по любому инструменту.
поместить перед вызовом деинит по тому же условию, по которому вызываете деинит.
Так деинит вызывается когда я удаляю робота с графика - я это условие по другому не могу отследить.....наверное тогда проще написать отдельный скрипт который удаляет все оставшиеся отложенники, по другому походу никак.
кстати ещё мысль вот по этому поводу:
Ура, я , кажется проблему удаления ордеров у себя решил. Отдельной функцией считаю количество "нужных"(подлежащих удалению) ордеров -- Total --, вызываю эту функцию, затем while с условием ( Total>0) потом, цикл удаления for(int i=Total-1 ;i<=0l;i--), опять ф-я подсчета "нужных" , счетчик попыток удаления с выходом из while при достижении заданного уровня. Так удаляются все.
тут может возникнуть бесконечный цикл если вдруг после момента подсчёта один из ордеров по любой причине исчезнет