Перейти к содержанию

Обучение языку MQL4 под MetaTrader 4


Рекомендуемые сообщения

Обучение языку MQL4 под MetaTrader 4 Опубликовано


А может цикл поможет!


К сожалению, он в первой строчке двигает каретку до бесконечности, но на новую строчку не переходит.
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 6,8k
  • Создано
  • Последний ответ

Популярные авторы

Популярные авторы

Популярные посты

Смотрим видео-уроки, изучаем MQL:       Скачать видеокурс «MQL программирование. Как самому написать форекс советник/ индикатор/ скрипт»   P.S. Тема про Обучение MQ

Перейти

Циклы цикл for Иногда необходимо повторять одно и то же действие несколько раз подряд. Для этого используют циклы. К примеру, мы хотим проанализировать последние 10 баров и выяснить наименьшую цен

Перейти

Речь идет о том, что не будет значимых нововведений. А только баги периодически будут править. А вот все новое мол - в МТ5. Когда они вживую сказали то же самое на конференции в Москве, я уточнил: "То

Перейти
Обучение языку MQL4 под MetaTrader 4 Опубликовано


Еще пока нет :(



Вам нужно, чтобы цикл прошёл 8 проходов.
Например: for(int a = 0; a
Запись while (OrderProfit() , не корректна, хотя бы потому, что перед использованием OrderProfit(), этот самый ордер, должен быть выбран командой OrderSelect (она у нас после while), а так как значение выражения (OrderProfit() ) определяется до выполнения оператора, что мы считаем - неизвестно.

Цитата

if(OrderSelect(HistoryTotal()-a,SELECT_BY_POS,MODE_HISTORY))


Вроде OrdersHistoryTotal().
Далее, если ордер выбран, можно проверить OrderProfit() , если выражение ложно, значит выходим из цикла и пишем в переменную, что не нужно открываться большим лотом, если истинно - следующий проход....

В общем, это есть на первой станице ветки и в видео xbms, и в справке.
Изменено пользователем Vorchunozavr
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Но ведь мартышку можно удалить. Всего то нужно стоп вмонтировать.



Танюша, тут не совсем понятно куда его монтировать.
Ведь логика эксперта может быть нарушена...
Либо ставить стоп везде, где открываются ордера, а там есть и рыночные и стоп-ордера, либо только рыночным...

В общем, нужно более подробно...

А вообще, на мой взгляд это обычный сливатор, на который не стОит тратить время.

Вы ведётесь на линию баланса, которая показывает прибыль и совсем не учитываете еквити, которую упрямо тянут вниз зависшие ордера...

Рекомендую Вам заглянуть лучше в разделы "На заметку" и "Заслуживают внимания".
Там Вы найдёте более достойных кандидатов на реальный счёт.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Здравствуйте, уважаемые форумчане! Я смотрел урок в курсе программирования, где делали советник по индикатору ТМА, я параллельно писал советник , но по индикатору Ao_Adaptive( см. во вложении) Скомпилировался нормально, но не торгует. Дело в том, что это индикатор не будет работать без индикатора EMA-Adaptive( см во вложении). Я думаю моежт в этом дело. Помогите разобраться. Выкладываю советник и индюки


Добавлено: 09-11-2013 14:06:55



Добавлено: 09-11-2013 14:07:41

AO_Adaptive.mq4
Советник.mq4
EMA_Adaptive_v22Price.mq4

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Здравствуйте, уважаемые форумчане! Я смотрел урок в курсе программирования, где делали советник по индикатору ТМА, я параллельно писал советник , но по индикатору Ao_Adaptive( см. во вложении) Скомпилировался нормально, но не торгует. Дело в том, что это индикатор не будет работать без индикатора EMA-Adaptive( см во вложении). Я думаю моежт в этом дело. Помогите разобраться. Выкладываю советник и индюки



Привет!
AO - подвальный индикатор, попробуйте вывести в журнал, значения PriceGreen и PriceRed.
Вы увидите, сколь далеки эти значения от Bid или Ask.
И почему, буфер 3 и 4, а не 1 и 2?
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Понял, ТМА же отображает цену поэтому в том сове оредера открываются. Как же мне написать условия для открытия чтобы ордер открывался на бай если столбик зеленый, и на селл елси красный. Я на самом деле первый день начал изучать mql. А вот почему буфер 2 и 3 это я просто скопировал с видеоурока, там это было связано с тем, что буферы считаются от 0 . Я в этом ничего не понял. Если не затруднит помогите разобраться. Понимаю что никуому не надо , но может быть......

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Понял, ТМА же отображает цену поэтому в том сове оредера открываются. Как же мне написать условия для открытия чтобы ордер открывался на бай если столбик зеленый, и на селл елси красный. Я на самом деле первый день начал изучать 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) - значит пересекли нулевую линию снизу вверх.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано



Еще пока нет :(



Вам нужно, чтобы цикл прошёл 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();}
}
} Изменено пользователем Ricedeni
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Всем, пожалуйста! Старик, спасибо!

Ricedeni
Так будут открываться дополнительные ордера. Т.е., если 8 убыточных - 1, если 9 - ещё один и т.д.
Если так не нужно, значит после sell(), должен быть выход из цикла.
И HistoryTotal() мой редактор не знает, только OrdersHistoryTotal().

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Всем, пожалуйста! Старик, спасибо!

Ricedeni
Так будут открываться дополнительные ордера. Т.е., если 8 убыточных - 1, если 9 - ещё один и т.д.
Если так не нужно, значит после sell(), должен быть выход из цикла.
И HistoryTotal() мой редактор не знает, только OrdersHistoryTotal().


HistoryTotal - устаревшая функция, я её даже не сразу нашел в справочнике :) надо переделать с новой.
А выход из цикла не помогает :( На следующем баре, проверка повторяется и последний результат, попадает в новый цикл и открывается 9 ордер.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано



А может цикл поможет!


К сожалению, он в первой строчке двигает каретку до бесконечности, но на новую строчку не переходит.


Ясно будет время попробую пару идей!!! Если найдёш отпиши мне тоже интересно!
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


А выход из цикла не помогает :( На следующем баре, проверка повторяется и последний результат, попадает в новый цикл и открывается 9 ордер.



Значит с циклом разобрались. Дальше, машине нужно объяснять, сколько ордеров может быть в рынке - тип ордера (объём). Перед циклом условие, и т.д., в общем - полная свобода творчества.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Ну у меня заработало, спасибо Vorchunozavr, теперь немогу написать код чтобы он закрывал открытую позицию при смене сигнала. Помогите люди добрые)


Добавлено: 10-11-2013 18:05:39

Просто такая ситуация, я сфорексом знаком очень давно и пришёл к такому выводу, что системы практически все сливают, или дают такую маленькую прибыль что даже не стоит заморачиваться. Трендовые сливают во флете, флетовые в тренде, у сов мартингейлу в определенный момент не хватает средств открыть позу и тд. Чем больше идюков в сове или в ручной тс, тем более она/он уязвим . Вот хочу попробоваться написать советник на одном индикаторе, модеры извините за оффтоп .....

Советник_АО.mq4

Изменено пользователем yaakter
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Черт, мне прям не поддается цикл for. Вот, вроде бы простая функция, и ошибиться особо негде, а все равно не работает :( где я накосячил?

int e = 0;
int n = 5;
for (int i =1; i if (Close[i+1] {
e ++;
if (e ==n)
{
BuyOrder();
}
}
}

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
yaakter

Если есть ордер Бай, и (AO_1 (цвет сменился на красный), закрываем Бай (открываем Селл). Селл - наоборот.
Проверять нужно, естественно, на начале каждого бара.

Добавлено: 10-11-2013 20:14:48

Ricedeni

За 4 прохода (i=1,2,3,4), e не станет равно n
Изменено пользователем Vorchunozavr
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Подскажите плз, а внешние объявленные переменные, которые extern, в самом коде менять нельзя?

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


yaakter

Если есть ордер Бай, и (AO_1 (цвет сменился на красный), закрываем Бай (открываем Селл). Селл - наоборот.
Проверять нужно, естественно, на начале каждого бара.


Добавлено: 10-11-2013 20:14:48

Ricedeni

За 4 прохода (i=1,2,3,4), e не станет равно n



А ведь и правда :) Спасибо! :)
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

А подскажите пожалуйста есть ли команда которая позволяет оценить уровень свободной маржи, тот что в процентах. Есть сова которую хочу поставить на две пары, но хочется задать условие на вход чтобы когда на одной из пар есть просадка по второй паре сова не лезла в рынок. Справку курил, поиск юзал, ничего не нашёл.

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Ну а в справке в разделе Информация о счете разве ничего не подходит? Полно функций для вызова информаций о балансе, эквити, марже...

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Ну а в справке в разделе Информация о счете разве ничего не подходит? Полно функций для вызова информаций о балансе, эквити, марже...


блин точно, вот я осел ))
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано


Подскажите плз, а внешние объявленные переменные, которые extern, в самом коде менять нельзя?


Можно в самом коде.
Можно extern убрать из строчки и оставить только тип данных с переменной.
Я так делаю, когда в iCustom много параметров надо переносить ненужных.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Может не совсем по теме, но проблема такая.
Скачиваю через МТ4 сайт в тхт файл, да и просто если в строчку. То война кодировок происходит с русскими буквами, чем можно воспользоваться, чтобы сделать utf-8 в ansi?

Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано

Подскажите, а модифицировать отложки (установка сл - тп) лучше, если они становятся рыночными? Просто у меня при установки отложек и последующей модификации, в тестере вылазит ошибка OrderModify error 130. Причем через раз - первый запуск - ошибка, второй - нет ошибки...

Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Специальное предложение


  • Рекомендуемые брокеры

  • ×
    ×
    • Создать...