Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы сделали не так, как я писал. - ВЫ НЕ ПОСТАВИЛИ условие открытия очередной позиции в зависимость от наличия (открытия) предыдущей!
Лучше всего вам воспользоваться рекомендациями пред. сообщ. от YuraZ
В самом примитивном же случае я бы выполнил открытие так:
Я сделал как вы сказали но у меня возникли сложности с магик номером и я переписал его без него и опять возникла ошибка 129.Я прикрепил файл проверьте пожалуйста.
Да проще всего так:
if (условия открытия 5 ордеров одновременно)
{
while(true)
{
result=OrderSend(ордер 1)
}
while(true)
{
result2=OrderSend(ордер 2)
}
и т.д.
}
Это гарантированно (если обрабатываются ошибки) открывает все ордера, если выполнено некое условие.
Да проще всего так:
if (условия открытия 5 ордеров одновременно)
{
while(true)
{
result=OrderSend(ордер 1)
}
while(true)
{
result2=OrderSend(ордер 2)
}
и т.д.
}
Это гарантированно (если обрабатываются ошибки) открывает все ордера, если выполнено некое условие.
Если упрощенно то - да
однако если начинать детализировать, надо предусмотреть выход после нескольких неудачных попыток
if(!result)
case 137: Print("Брокер занят. Пробуем ещё раз...");Sleep(1000);continue;{
error=GetLastError();
switch(error)
{
case 4: Print("Торговый сервер занят. Пробуем ещё раз...");Sleep(1000);continue;
case 146: Print("Подсистема торговли занята. Пробуем ещё...");Sleep(1000);continue;
case 2: Alert("Общая ошибка.");Sleep(1000);continue;
case 6: Alert("Нет связи с торговым сервером.");Sleep(1000);continue;
case 64: Alert("Счет заблокирован.");break;
case 133: Alert("Торговля запрещена.");break;
case 135: Alert("Цена изменилась.");RefreshRates();continue;
case 138: Alert("Реквот котировки."); RefreshRates();continue;
case 139: Alert("Ордер заблокирован и уже обрабатывается.");continue;
default : Print("Возникла ошибка - ",ErrorDescription(error));continue;
}
} else {error=0;break;}
Вот обработчик готовый. Т.е. если нет глобальных ошибок, то ордер откроется гарантированно.
Я сделал как вы сказали но у меня возникли сложности с магик номером и я переписал его без него и опять возникла ошибка 129.Я прикрепил файл проверьте пожалуйста.
А что проверять? В тестере и в онлайне позиции открываются. По три сразу.
Как я понял, - именно этого вам и хотелось. Вот поставил на демо - и сразу открылись без проблем позиции.
Ошибок журнал не печатает...
возникла ошибка 129.Я прикрепил файл проверьте пожалуйста.
//----------------------------------------------------------------------------------------
А вы знаете, что означает "ошибка 129" ?
Гляньте вот сюда - https://book.mql4.com/ru/appendix/errors
и подумайте, отчего могла произойти такая ошибка ?
Может быть дело то в начальных условиях для открытия, а вовсе не в порядке открытия?
if(!result)
case 137: Print("Брокер занят. Пробуем ещё раз...");Sleep(1000);continue;{
error=GetLastError();
switch(error)
{
case 4: Print("Торговый сервер занят. Пробуем ещё раз...");Sleep(1000);continue;
case 146: Print("Подсистема торговли занята. Пробуем ещё...");Sleep(1000);continue;
case 2: Alert("Общая ошибка.");Sleep(1000);continue;
case 6: Alert("Нет связи с торговым сервером.");Sleep(1000);continue;
case 64: Alert("Счет заблокирован.");break;
case 133: Alert("Торговля запрещена.");break;
case 135: Alert("Цена изменилась.");RefreshRates();continue;
case 138: Alert("Реквот котировки."); RefreshRates();continue;
case 139: Alert("Ордер заблокирован и уже обрабатывается.");continue;
default : Print("Возникла ошибка - ",ErrorDescription(error));continue;
}
} else {error=0;break;}
Вот обработчик готовый. Т.е. если нет глобальных ошибок, то ордер откроется гарантированно.
А как правильно его вставить в мой советник?
(Уже 40 $ по умолч. заработал на демо ваш эксперт!)
//----------------------------------------------------------------------------------------
А вы знаете, что означает "ошибка 129" ?
Гляньте вот сюда - https://book.mql4.com/ru/appendix/errors
и подумайте, отчего могла произойти такая ошибка ?
Может быть дело то в начальных условиях для открытия, а вовсе не в порядке открытия?
Закройте вручную одну из позиций и она не откроется снова .
Оставте советник работать несколько часов и вы увидете ошибки 138 и 129
Я специально упростил условие открытия позиций для того чтобы сделки были чаще и можно было быстрее получать результат на демо
А что проверять? В тестере и в онлайне позиции открываются. По три сразу.
Как я понял, - именно этого вам и хотелось. Вот поставил на демо - и сразу открылись без проблем позиции.
Ошибок журнал не печатает...
Закройте вручную все три позиции и советник начнёт открывать их .Попробуйте так 2-3раза и вы увидите ошибки 138 и 129
//------------------------------------------
Так мне уже совсем непонятно! Как вы хотите, чтобы открывались позиции ? То вас не устраивает, что они "снова открываются" !
То не устраивает, что - "Закройте вручную одну из позиций и она не откроется снова " !
А вообще то, лучше бы вам не заморачиваться с тиками, а сделать работу эксперта по ЦЕНАМ ОТКРЫТИЯ