Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1245
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
не, к примеру передать вначале case 1, следом case 2 и т.д.
кейсы исполняют открытие ордеров
Да там не в одном месте идёт открытие. В таком коде разобраться, надо мыслить точно как вы мыслите, а это сложно.
Да там не в одном месте идёт открытие. В таком коде разобраться, надо мыслить точно как вы мыслите, а это сложно.
Если внутри OnTick эксперта есть цикл, занимающий прилично времени, то он будет выполняться полностью или приход нового тика все это перебьет?
да я вот чет тоже не пойму, у меня цикл исполняется по открытию ордеров и не все открываются, некоторые уже по второму кругу идут открываться, а некоторые пропущенными остаются, я так понимаю что новый тик как запускает в работу старт и код приостанавливает выполнение свое и начинает выполняться заново
я так понимаю что новый тик как запускает в работу старт и код приостанавливает выполнение свое и начинает выполняться заново
не выдумывайте
почитайте справку, там однозначно написано, что если в ЕА присутствуют сложные расчеты, то новый тик будет пропущен
где то в статье про функции обработки событий или, возможно, в торговых операциях или в RefreshRates
ищите ошибку в логике в своем коде
ЗЫ: switch() - case не используют для сложных логических условий, лучше комбинации if() else - так более однозначные логические ветвления получаются
не выдумывайте
почитайте справку, там однозначно написано, что если в ЕА присутствуют сложные расчеты, то новый тик будет пропущен
где то в статье про функции обработки событий или, возможно, в торговых операциях или в RefreshRates
ищите ошибку в логике в своем коде
ЗЫ: switch() - case не используют для сложных логических условий, лучше комбинации if() else - так более однозначные логические ветвления получаются
ага, спасибо, я уже тоже решил через if-else прописывать все
Зачем вообще switch прикрутили тут? Проще получить в функцию направление сделки и количество необходимых открытий и в цикле открыть сколько задано.
Потому я и говорю, что понять вашу логику не для моего ума. Зачем такие заморочки?
Зачем вообще switch прикрутили тут? Проще получить в функцию направление сделки и количество необходимых открытий и в цикле открыть сколько задано.
Потому я и говорю, что понять вашу логику не для моего ума. Зачем такие заморочки?
Ну у меня по итогу код просто в объеме вырос, а так думал несколько проще будет.
Как рас таки - будь возможность вызывать case сколько угодно раз в ходе выполнения одной функции, было бы проще и код компактнее.
Мне не нужно открывать в цикле одинаковые сделки, они открываются по разным инструментам одновременно(на сколько это возможно) при появлении сигнала.
case 1 - audusd buy
case 5 - gbpusd buy
case 9 - eurusd buy
и т.д.
В первом случае у меня один лист с case и второй с анализом, вот если бы они взаимодействовали, то было бы 500 строк.
Второй-имеющийся вариант подразумевает прописывать конкретное открытие ордера внутри функции с анализом, что вытягивается в пеленку и общие строки вышли в 1200+, что в конечном счете сыграет на скорости выполнения программы
Спецы, подскажите пожалуйста! В эксперте используется индикатор Envelopes c динамическим расчетом отклонения. Но при отображении на графике он рисует всю динамику изменений отклонений индикатора на всех прошлых барах.
1. Можно ли как-то сделать, чтобы индикатор рисовался корректно? Т.е. рисовал индикатор со своим отклонением только на своем баре.
2. Ну и как можно в эксперте отключить отрисовку индикатора а оставить только расчеты? Хочу в настройках эксперта прикрутить возможность отключения рисовалки )
Ну у меня по итогу код просто в объеме вырос, а так думал несколько проще будет.
Как рас таки - будь возможность вызывать case сколько угодно раз в ходе выполнения одной функции, было бы проще и код компактнее.
Мне не нужно открывать в цикле одинаковые сделки, они открываются по разным инструментам одновременно(на сколько это возможно) при появлении сигнала.
case 1 - audusd buy
case 5 - gbpusd buy
case 9 - eurusd buy
и т.д.
В первом случае у меня один лист с case и второй с анализом, вот если бы они взаимодействовали, то было бы 500 строк.
Второй-имеющийся вариант подразумевает прописывать конкретное открытие ордера внутри функции с анализом, что вытягивается в пеленку и общие строки вышли в 1200+, что в конечном счете сыграет на скорости выполнения программы
Чем вы набираете столько строк кода? Вот один из последних моих советников, работает с набором бумаг на ФОРТС
Сколько бумаг будет перечислено в этом списке, столько и будет торговать. И в этом советнике с контролем двух торговых периодов времени, с трейлингом и естественно с анализом всего 326 строк.
Если вам нестерпимо хочется попользовать switch то ведь не обязательно в каждый вариант вписывать открытие позиций. Ведь достаточно определить имя символа, тип торговой операции и
Но всё-же лучше, на мой взгляд, всё это завернуть в пользовательскую функцию.