mzk_3om6u Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 А может цикл поможет! К сожалению, он в первой строчке двигает каретку до бесконечности, но на новую строчку не переходит. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Tatyana59 Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Но ведь мартышку можно удалить. Всего то нужно стоп вмонтировать. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Еще пока нет :( Вам нужно, чтобы цикл прошёл 8 проходов.Например: for(int a = 0; a Запись while (OrderProfit() , не корректна, хотя бы потому, что перед использованием OrderProfit(), этот самый ордер, должен быть выбран командой OrderSelect (она у нас после while), а так как значение выражения (OrderProfit() ) определяется до выполнения оператора, что мы считаем - неизвестно. Цитата if(OrderSelect(HistoryTotal()-a,SELECT_BY_POS,MODE_HISTORY)) Вроде OrdersHistoryTotal().Далее, если ордер выбран, можно проверить OrderProfit() , если выражение ложно, значит выходим из цикла и пишем в переменную, что не нужно открываться большим лотом, если истинно - следующий проход....В общем, это есть на первой станице ветки и в видео xbms, и в справке. Изменено 9 ноября, 2013 пользователем Vorchunozavr Ссылка на сообщение Поделиться на другие сайты More sharing options...
xbms Опубликовано 9 ноября, 2013 Автор Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Но ведь мартышку можно удалить. Всего то нужно стоп вмонтировать. Танюша, тут не совсем понятно куда его монтировать.Ведь логика эксперта может быть нарушена...Либо ставить стоп везде, где открываются ордера, а там есть и рыночные и стоп-ордера, либо только рыночным...В общем, нужно более подробно...А вообще, на мой взгляд это обычный сливатор, на который не стОит тратить время.Вы ведётесь на линию баланса, которая показывает прибыль и совсем не учитываете еквити, которую упрямо тянут вниз зависшие ордера...Рекомендую Вам заглянуть лучше в разделы "На заметку" и "Заслуживают внимания".Там Вы найдёте более достойных кандидатов на реальный счёт. Ссылка на сообщение Поделиться на другие сайты More sharing options...
yaakter Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Здравствуйте, уважаемые форумчане! Я смотрел урок в курсе программирования, где делали советник по индикатору ТМА, я параллельно писал советник , но по индикатору Ao_Adaptive( см. во вложении) Скомпилировался нормально, но не торгует. Дело в том, что это индикатор не будет работать без индикатора EMA-Adaptive( см во вложении). Я думаю моежт в этом дело. Помогите разобраться. Выкладываю советник и индюки Добавлено: 09-11-2013 14:06:55Добавлено: 09-11-2013 14:07:41AO_Adaptive.mq4Советник.mq4EMA_Adaptive_v22Price.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Здравствуйте, уважаемые форумчане! Я смотрел урок в курсе программирования, где делали советник по индикатору ТМА, я параллельно писал советник , но по индикатору Ao_Adaptive( см. во вложении) Скомпилировался нормально, но не торгует. Дело в том, что это индикатор не будет работать без индикатора EMA-Adaptive( см во вложении). Я думаю моежт в этом дело. Помогите разобраться. Выкладываю советник и индюки Привет!AO - подвальный индикатор, попробуйте вывести в журнал, значения PriceGreen и PriceRed.Вы увидите, сколь далеки эти значения от Bid или Ask.И почему, буфер 3 и 4, а не 1 и 2? Ссылка на сообщение Поделиться на другие сайты More sharing options...
yaakter Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Понял, ТМА же отображает цену поэтому в том сове оредера открываются. Как же мне написать условия для открытия чтобы ордер открывался на бай если столбик зеленый, и на селл елси красный. Я на самом деле первый день начал изучать mql. А вот почему буфер 2 и 3 это я просто скопировал с видеоурока, там это было связано с тем, что буферы считаются от 0 . Я в этом ничего не понял. Если не затруднит помогите разобраться. Понимаю что никуому не надо , но может быть...... Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Понял, ТМА же отображает цену поэтому в том сове оредера открываются. Как же мне написать условия для открытия чтобы ордер открывался на бай если столбик зеленый, и на селл елси красный. Я на самом деле первый день начал изучать mql. А вот почему буфер 2 и 3 это я просто скопировал с видеоурока, там это было связано с тем, что буферы считаются от 0 . Я в этом ничего не понял. Если не затруднит помогите разобраться. Понимаю что никуому не надо , но может быть...... Если стаж программирования = 1 день :) , поэкспериментируйте, для начала, со встроенной функцией iAOНапример:double AO_1 = iAO(NULL, 0, 1);double AO_2 = iAO(NULL, 0, 2);double AO_3 = iAO(NULL, 0, 3); Если (AO_2 - значит AO_2 красный.Если (AO_1 > AO_2) - значит AO_1 зелёный.if (AO_2 0) - значит пересекли нулевую линию снизу вверх. Ссылка на сообщение Поделиться на другие сайты More sharing options...
yaakter Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Спасибо Вам. =) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ricedeni Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Еще пока нет :( Вам нужно, чтобы цикл прошёл 8 проходов.Например: for(int a = 0; a Запись while (OrderProfit() , не корректна, хотя бы потому, что перед использованием OrderProfit(), этот самый ордер, должен быть выбран командой OrderSelect (она у нас после while), а так как значение выражения (OrderProfit() ) определяется до выполнения оператора, что мы считаем - неизвестно. Цитата if(OrderSelect(HistoryTotal()-a,SELECT_BY_POS,MODE_HISTORY)) Вроде OrdersHistoryTotal().Далее, если ордер выбран, можно проверить OrderProfit() , если выражение ложно, значит выходим из цикла и пишем в переменную, что не нужно открываться большим лотом, если истинно - следующий проход....В общем, это есть на первой станице ветки и в видео xbms, и в справке. Спасибо, буду еще раз пробовать :)Добавлено: 09-11-2013 21:33:41О, наконец получилось сделать то, что хотел. Теперь, вопрос, можно ли как то упростить этот код, что бы убрать лишнее?for (int a = 1; a if(OrderSelect(HistoryTotal() - a, SELECT_BY_POS, MODE_HISTORY)) { if (OrderProfit() >0) {break;} if (a>=8 ) {sell();}}} Изменено 9 ноября, 2013 пользователем Ricedeni Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Всем, пожалуйста! Старик, спасибо!RicedeniТак будут открываться дополнительные ордера. Т.е., если 8 убыточных - 1, если 9 - ещё один и т.д.Если так не нужно, значит после sell(), должен быть выход из цикла.И HistoryTotal() мой редактор не знает, только OrdersHistoryTotal(). Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ricedeni Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 Всем, пожалуйста! Старик, спасибо!RicedeniТак будут открываться дополнительные ордера. Т.е., если 8 убыточных - 1, если 9 - ещё один и т.д.Если так не нужно, значит после sell(), должен быть выход из цикла.И HistoryTotal() мой редактор не знает, только OrdersHistoryTotal(). HistoryTotal - устаревшая функция, я её даже не сразу нашел в справочнике :) надо переделать с новой.А выход из цикла не помогает :( На следующем баре, проверка повторяется и последний результат, попадает в новый цикл и открывается 9 ордер. Ссылка на сообщение Поделиться на другие сайты More sharing options...
elruso Опубликовано 9 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2013 А может цикл поможет! К сожалению, он в первой строчке двигает каретку до бесконечности, но на новую строчку не переходит. Ясно будет время попробую пару идей!!! Если найдёш отпиши мне тоже интересно! Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 10 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 ноября, 2013 А выход из цикла не помогает :( На следующем баре, проверка повторяется и последний результат, попадает в новый цикл и открывается 9 ордер. Значит с циклом разобрались. Дальше, машине нужно объяснять, сколько ордеров может быть в рынке - тип ордера (объём). Перед циклом условие, и т.д., в общем - полная свобода творчества. Ссылка на сообщение Поделиться на другие сайты More sharing options...
yaakter Опубликовано 10 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 ноября, 2013 Ну у меня заработало, спасибо Vorchunozavr, теперь немогу написать код чтобы он закрывал открытую позицию при смене сигнала. Помогите люди добрые) Добавлено: 10-11-2013 18:05:39Просто такая ситуация, я сфорексом знаком очень давно и пришёл к такому выводу, что системы практически все сливают, или дают такую маленькую прибыль что даже не стоит заморачиваться. Трендовые сливают во флете, флетовые в тренде, у сов мартингейлу в определенный момент не хватает средств открыть позу и тд. Чем больше идюков в сове или в ручной тс, тем более она/он уязвим . Вот хочу попробоваться написать советник на одном индикаторе, модеры извините за оффтоп .....Советник_АО.mq4 Изменено 10 ноября, 2013 пользователем yaakter Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ricedeni Опубликовано 10 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 ноября, 2013 Черт, мне прям не поддается цикл for. Вот, вроде бы простая функция, и ошибиться особо негде, а все равно не работает :( где я накосячил?int e = 0;int n = 5;for (int i =1; i if (Close[i+1] { e ++; if (e ==n) { BuyOrder(); } }} Ссылка на сообщение Поделиться на другие сайты More sharing options...
Vorchunozavr Опубликовано 10 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 ноября, 2013 yaakterЕсли есть ордер Бай, и (AO_1 (цвет сменился на красный), закрываем Бай (открываем Селл). Селл - наоборот.Проверять нужно, естественно, на начале каждого бара. Добавлено: 10-11-2013 20:14:48RicedeniЗа 4 прохода (i=1,2,3,4), e не станет равно n Изменено 10 ноября, 2013 пользователем Vorchunozavr 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
JR Опубликовано 10 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 ноября, 2013 Подскажите плз, а внешние объявленные переменные, которые extern, в самом коде менять нельзя? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Ricedeni Опубликовано 11 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 11 ноября, 2013 yaakterЕсли есть ордер Бай, и (AO_1 (цвет сменился на красный), закрываем Бай (открываем Селл). Селл - наоборот.Проверять нужно, естественно, на начале каждого бара. Добавлено: 10-11-2013 20:14:48RicedeniЗа 4 прохода (i=1,2,3,4), e не станет равно n А ведь и правда :) Спасибо! :) Ссылка на сообщение Поделиться на другие сайты More sharing options...
zuheren Опубликовано 12 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 ноября, 2013 А подскажите пожалуйста есть ли команда которая позволяет оценить уровень свободной маржи, тот что в процентах. Есть сова которую хочу поставить на две пары, но хочется задать условие на вход чтобы когда на одной из пар есть просадка по второй паре сова не лезла в рынок. Справку курил, поиск юзал, ничего не нашёл. Ссылка на сообщение Поделиться на другие сайты More sharing options...
JR Опубликовано 12 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 ноября, 2013 Ну а в справке в разделе Информация о счете разве ничего не подходит? Полно функций для вызова информаций о балансе, эквити, марже... Ссылка на сообщение Поделиться на другие сайты More sharing options...
zuheren Опубликовано 12 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 ноября, 2013 Ну а в справке в разделе Информация о счете разве ничего не подходит? Полно функций для вызова информаций о балансе, эквити, марже... блин точно, вот я осел )) Ссылка на сообщение Поделиться на другие сайты More sharing options...
v Опубликовано 12 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 ноября, 2013 Подскажите плз, а внешние объявленные переменные, которые extern, в самом коде менять нельзя? Можно в самом коде.Можно extern убрать из строчки и оставить только тип данных с переменной. Я так делаю, когда в iCustom много параметров надо переносить ненужных. Ссылка на сообщение Поделиться на другие сайты More sharing options...
mzk_3om6u Опубликовано 13 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 13 ноября, 2013 Может не совсем по теме, но проблема такая.Скачиваю через МТ4 сайт в тхт файл, да и просто если в строчку. То война кодировок происходит с русскими буквами, чем можно воспользоваться, чтобы сделать utf-8 в ansi? Ссылка на сообщение Поделиться на другие сайты More sharing options...
JR Опубликовано 14 ноября, 2013 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 ноября, 2013 Подскажите, а модифицировать отложки (установка сл - тп) лучше, если они становятся рыночными? Просто у меня при установки отложек и последующей модификации, в тестере вылазит ошибка OrderModify error 130. Причем через раз - первый запуск - ошибка, второй - нет ошибки... Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти