Может кто помочь перегнать это в MT4 плиз
Например так:
Насчет "Exit" надо смотреть в контексте всей проги.
int i, result; ... result=0; for (i=0;i<OrdersTotal();i++) { if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; if (OrderSymbol()!=Symbol() && OrderTicket()!=TicketSWS) continue; if (OrderClose(OrderTicket(),OrderLots(),Ask,Slippage)) result=1; break; } if (result>0) T41Cnt++;
Насчет "Exit" надо смотреть в контексте всей проги.
спасибо огромное!
и еще один вопросик?
стоитли выходить из еа (return(0)) после каждого OrderClose(...) если нужно закрыть неприер 4 ордера (3 Buy и 1 Sell ) или мт4 может закрыть их подрят и без ошибок?
зарание блогодарен!
и еще один вопросик?
стоитли выходить из еа (return(0)) после каждого OrderClose(...) если нужно закрыть неприер 4 ордера (3 Buy и 1 Sell ) или мт4 может закрыть их подрят и без ошибок?
зарание блогодарен!
Теоретически можно, но ...
1. Перед выполнением любой торговой функции делаем проверку:
2. Из опыта следует, что надёжнее после запроса любой торговой фунции выйти до прихода нового тика (перед выходом выполнить проверку возвращаемого значения и напечатать код ошибки, если терминал версии 4.xx). Хотя выход после вызова любой торговой функции был строго небходим при использовании терминала 3.xx версии, не вижу препятствий для использования этого способа и при использовании терминала версии 4.xx. Надёжность в реале важнее красивого алгоритма.
3. Частенько в терминале на нескольких графиках висит по советнику. Будет лучше, если они будут выполнять свои операции минимально короткое время и не будут мешать друг другу. Поэтому такую "классную" фичу как Sleep(), а тем более в циклах, старательно игнорируем.
1. Перед выполнением любой торговой функции делаем проверку:
// // в начале функции start() if(IsTradeAllowed()!=true) return; // в цикле if(IsTradeAllowed()!=true) continue;
2. Из опыта следует, что надёжнее после запроса любой торговой фунции выйти до прихода нового тика (перед выходом выполнить проверку возвращаемого значения и напечатать код ошибки, если терминал версии 4.xx). Хотя выход после вызова любой торговой функции был строго небходим при использовании терминала 3.xx версии, не вижу препятствий для использования этого способа и при использовании терминала версии 4.xx. Надёжность в реале важнее красивого алгоритма.
3. Частенько в терминале на нескольких графиках висит по советнику. Будет лучше, если они будут выполнять свои операции минимально короткое время и не будут мешать друг другу. Поэтому такую "классную" фичу как Sleep(), а тем более в циклах, старательно игнорируем.
EvgeniX:
стоитли выходить из еа (return(0)) после каждого OrderClose(...) если нужно закрыть неприер 4 ордера (3 Buy и 1 Sell ) или мт4 может закрыть их подрят и без ошибок?
Эксперт или скрипт не выпустит одновременно несколько торговых
приказов.стоитли выходить из еа (return(0)) после каждого OrderClose(...) если нужно закрыть неприер 4 ордера (3 Buy и 1 Sell ) или мт4 может закрыть их подрят и без ошибок?
Более того, он не выпустит очередной приказ до тех пор, пока не получит ответ сервера по факту исполнения или неисполнения предыдущего приказа. Советник просто не передаст управление следующей командной строке (оператору), находящейся непосредственно за функцией, отправляющей торговый приказ, до ответа сервера. Это значит, что не будет являться некоррекным код, кот. поочерёдно посылает торговые приказы по нескольким ордерам в рамках одного запуска ф-ии Start().
Нужно только следить, чтобы перед отправкой приказа был проанализирован текущий курс, например, использовать RefreshRates(). Если курс изменился, то необходимо откорректировать значения параметров торговой функции. При хорошей связи ордера могут быть закрыты с периодичностью приблизительно 0,5 - 1 сек, что зачастую меньше, чем промежуток времени между тиками.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь