Вот бы такую на МТ. Генератор генерит, программа ходит по шагам и ждет внешних событий: прихода тика, появления объекта на окне. Быстро обрабатывает и ходит дальше. Красота :)))
В сущности, в моём случае так и происходит.
Зацикленный скрипт только тем и занимается, что безостановочно ходит по кругу, последовательно опрашивая всё своё окружение, выискивая в этом окружении какие бы то ни было изменения. А при нахождении изменений - реагирует на них. В том-то и ценность этой "зацикленой" технологии.
А подгонять торговый сервер никак? Только сидеть и ждать как он отреагирует?
В этой части никак. Это от событий на стороне трейдера никак не зависит.
Что может сделать трейдер, если проблемы с доставкой информ. пакетов из Новосибирска в Москву происходят где-то в Челябинске? Или что он может сделать, если завис сервер, просто не отвечает?
Каждый решает эту проблему по-своему и в зависимости от нужды.
Скажем, если надо просто закрыть один-единственный ордер, то можно просто почаще отсылать приказы (вообще-то, так делать не правильно, но в данном случае мы говорим о техн. возможности), а если надо открыть ордер и один приказ отправлен на сервер и не получен ответ, то.. что? отправить ещё один приказ? (риск, что открыто будет 2 ордера) или не отправлять? - риск, что не откроется ни один.
В общем, оношения с сервером штука специфическая и универсального решения не имеет.
Скрипт от советника отличается только тем, что после прихода тика (запускаются они оба одинаково - по факту прихода тика) скрипт, когда дойдёт до return, выгружается, а эксперт в этой же ситуации переходит в ждущий режим и снова запускается следующим тиком. В остальном они практически одинаковы.
Вот тебе кусок кода советника, который удаляет отложенные ордера, когда один из них сработал. Если у тебя на одной валюте только один советник стоит, то МагикНомер можешь убрать.
Скрипт от советника отличается только тем, что после прихода тика (запускаются они оба одинаково - по факту прихода тика) скрипт, когда дойдёт до return, выгружается, а эксперт в этой же ситуации переходит в ждущий режим и снова запускается следующим тиком. В остальном они практически одинаковы.
Скрипт на тики ни как не реагирует
Оговорился? =)
Нет, пожалуй, не оговорился. Это мой прокол. Скрипт-то у меня с самого начала зациклен. Вот я и не уделил этой мысли никакого внимания.
Конечно же, когда скрипт присоединяется к окну, он начинает работать тотчас же. Тики тут ни при чём.
Мда..:)
Большое спасибо Roger. Как раз то, что нужно. Я так понимаю, когда на экране много графиков разных валют, то на каждом графике отложенные ордера с одинаковыми магик номерами, а на каждую валюту свой магик номер. Да?
Нет. По валютам он и так проводит селекцию. На один тип советника свой магик номер. Он может работать на всех валютах. А вот если ты на ту же валюту, но на другой график сажаешь другой советник, тогда меняй магик номер.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
В сущности, в моём случае так и происходит.
Зацикленный скрипт только тем и занимается, что безостановочно ходит по кругу, последовательно опрашивая всё своё окружение, выискивая в этом окружении какие бы то ни было изменения. А при нахождении изменений - реагирует на них. В том-то и ценность этой "зацикленой" технологии.
В этой части никак. Это от событий на стороне трейдера никак не зависит.
Что может сделать трейдер, если проблемы с доставкой информ. пакетов из Новосибирска в Москву происходят где-то в Челябинске? Или что он может сделать, если завис сервер, просто не отвечает?
Каждый решает эту проблему по-своему и в зависимости от нужды.
Скажем, если надо просто закрыть один-единственный ордер, то можно просто почаще отсылать приказы (вообще-то, так делать не правильно, но в данном случае мы говорим о техн. возможности), а если надо открыть ордер и один приказ отправлен на сервер и не получен ответ, то.. что? отправить ещё один приказ? (риск, что открыто будет 2 ордера) или не отправлять? - риск, что не откроется ни один.
В общем, оношения с сервером штука специфическая и универсального решения не имеет.
Оговорился? =)
for(cnt=0;cnt<OrdersTotal();cnt++) { OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()&& OrderMagicNumber()==1) { for(i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderType()>OP_SELL && OrderSymbol()==Symbol()&& OrderMagicNumber()==1){result=OrderDelete(OrderTicket());return(0);} } } }Но если несколько, то не забудь задать его при постановке.
Оговорился? =)
Нет, пожалуй, не оговорился. Это мой прокол. Скрипт-то у меня с самого начала зациклен. Вот я и не уделил этой мысли никакого внимания.
Конечно же, когда скрипт присоединяется к окну, он начинает работать тотчас же. Тики тут ни при чём.
Мда..:)