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

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


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

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


Советник нарисовал линий на хай и лоу свечи, но вот при смене таймфрейма линий сбрасываются.... Что пройсходит при смене таймфрейма и как зделать так чтобы линий были устойчивы к таким переключениям???


тут много нюансов, нужно переменные отвечающие за линии обозначить на глобальном уровне, или искать для них данные на заданном таймфреме.
больше тут ничем не помочь, без кода..
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Перейти

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

Перейти

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

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



Советник нарисовал линий на хай и лоу свечи, но вот при смене таймфрейма линий сбрасываются.... Что пройсходит при смене таймфрейма и как зделать так чтобы линий были устойчивы к таким переключениям???


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


искать для них данные на заданном таймфреме. Гениально, при смене таймфрейма обновляются хай и лоу на текущем периоде, записаные даные для заданого таймфрейма не соответствуют действительности, а удаляются согласно внутреней логике прописаные мною. буду искать таблэтку. спасибо!
Ссылка на сообщение
Поделиться на другие сайты

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




Советник нарисовал линий на хай и лоу свечи, но вот при смене таймфрейма линий сбрасываются.... Что пройсходит при смене таймфрейма и как зделать так чтобы линий были устойчивы к таким переключениям???


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


искать для них данные на заданном таймфреме. Гениально, при смене таймфрейма обновляются хай и лоу на текущем периоде, записаные даные для заданого таймфрейма не соответствуют действительности, а удаляются согласно внутреней логике прописаные мною. буду искать таблэтку. спасибо!

Если Вы не знаете как на часовике работать с минутками и на минутках работать с дневным периодом то это Ваши проблемы учитесь, иначе используйте глобальные переменные, но их то же нужно правильно контролировать что бы они не меняли свои значения...
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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

Всем привет. Прохожу третий урок, при компиляции вылетают ошибки. Сделал всё как в видео и проверил не раз. ПОМОГИТЕ!!!

test3.mq4

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

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


Всем привет. Прохожу третий урок, при компиляции вылетают ошибки. Сделал всё как в видео и проверил не раз. ПОМОГИТЕ!!!


После if () не ставим точку с запятой...

test3.mq4

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

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


Всем привет. Прохожу третий урок, при компиляции вылетают ошибки. Сделал всё как в видео и проверил не раз. ПОМОГИТЕ!!!



Исправил, оператора if закрываете ; (точка с запятой), ошибки вывел в коментарий в коде.



Добавлено: 31-03-2016 15:29:35

Вопрос: Пример: У меня 100 доларов, советник заработал 20 доларов,итого у меня 120 доларов. И советник поймал лося и закрыл по стопу 10 $ . как зафиксировать найвысшую точку в 120 $ и в коде это выразить, чтобы советник при достижений профита до этой точки закрыл половину лота.

if(equity() >= Profit)
{
CloseOrder(.........Lots/2...);
}

test3.mq4

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

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





Советник нарисовал линий на хай и лоу свечи, но вот при смене таймфрейма линий сбрасываются.... Что пройсходит при смене таймфрейма и как зделать так чтобы линий были устойчивы к таким переключениям???


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


искать для них данные на заданном таймфреме. Гениально, при смене таймфрейма обновляются хай и лоу на текущем периоде, записаные даные для заданого таймфрейма не соответствуют действительности, а удаляются согласно внутреней логике прописаные мною. буду искать таблэтку. спасибо!

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

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

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



Всем привет. Прохожу третий урок, при компиляции вылетают ошибки. Сделал всё как в видео и проверил не раз. ПОМОГИТЕ!!!



Исправил, оператора if закрываете ; (точка с запятой), ошибки вывел в коментарий в коде.



Добавлено: 31-03-2016 15:29:35

Вопрос: Пример: У меня 100 доларов, советник заработал 20 доларов,итого у меня 120 доларов. И советник поймал лося и закрыл по стопу 10 $ . как зафиксировать найвысшую точку в 120 $ и в коде это выразить, чтобы советник при достижений профита до этой точки закрыл половину лота.

if(equity() >= Profit)
{
CloseOrder(.........Lots/2...);
}

переменную Profit надо обозначить на глобальном уровне и правильно обнулять или сделать её статичной ...


Добавлено: 31-03-2016 15:42:27






Советник нарисовал линий на хай и лоу свечи, но вот при смене таймфрейма линий сбрасываются.... Что пройсходит при смене таймфрейма и как зделать так чтобы линий были устойчивы к таким переключениям???


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


искать для них данные на заданном таймфреме. Гениально, при смене таймфрейма обновляются хай и лоу на текущем периоде, записаные даные для заданого таймфрейма не соответствуют действительности, а удаляются согласно внутреней логике прописаные мною. буду искать таблэтку. спасибо!

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

Я тут ошибся выражая свой мысли, удаляются линий, а не данные хай и лоу.

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

Обучение языку MQL4 под MetaTrader 4 Опубликовано
voldemar227
переменную Profit надо обозначить на глобальном уровне и правильно обнулять или сделать её статичной ...

double Profit=AccountBalance();
double StaticBalans=1.0; // вынести в глобальные переменные
if(Profit >= StaticBalans)
StaticBalans=Profit;
if(AccountEquity() >= StaticBalans)
OrderClose(.....Lots/2....);

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

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


voldemar227
переменную Profit надо обозначить на глобальном уровне и правильно обнулять или сделать её статичной ...

double Profit=AccountBalance();
double StaticBalans=1.0; // вынести в глобальные переменные
if(Profit >= StaticBalans)
StaticBalans=Profit;
if(AccountEquity() >= StaticBalans)
OrderClose(.....Lots/2....);

Так правильно или нет?


Не знаю, инфы не достаточно вот простой пример

double Profit=0; // За пределами всех функций

if(AccountProfit()>Profit)
Profit=AccountProfit(); // Максимальный профит на аккаунте
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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



voldemar227
переменную Profit надо обозначить на глобальном уровне и правильно обнулять или сделать её статичной ...

double Profit=AccountBalance();
double StaticBalans=1.0; // вынести в глобальные переменные
if(Profit >= StaticBalans)
StaticBalans=Profit;
if(AccountEquity() >= StaticBalans)
OrderClose(.....Lots/2....);

Так правильно или нет?


Не знаю, инфы не достаточно вот простой пример

double Profit=0; // За пределами всех функций

if(AccountProfit()>Profit)
Profit=AccountProfit(); // Максимальный профит на аккаунте

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

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

Хочу свечу перевести в проценты, как правильно это зделать?
int Prosent=(Хай[1] - лоу[1])*100% // это правильно?

компилятор меня не понимает, выдает ошибку!

Prosent.mq4

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

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

У вас свеча - это 100% (если я правильно понял). Т.е. Хай - Лоу = 100%. Отсюда и пляшите в дальнейших расчетах.

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

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

приветствую всех.

Есть индикатор который строит линию по данным из файла CSV. Если кинуть его на график, работает, а в тестере никак не хочет ни линию рисовать, ни буфер для советника выгружать. Что делать, чтобы в тестере отображалась полоса.

Код прикрепляю. Сразу скажу, код не мой. Я его только откомпилировал под новый билд МТ4

Plot_External_Data.mq4

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

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

В советнике когда открывается ордер на продажу, так же ставится страховочный стопордер на покупку. Необходимо чтобы при закрытии ордера на продажу(не важно по стоп-лоссу или тейк-профиту) удалялся страховочный ордер. Может кто подскажет как примерно будет выглядеть это условие?

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

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


В советнике когда открывается ордер на продажу, так же ставится страховочный стопордер на покупку. Необходимо чтобы при закрытии ордера на продажу(не важно по стоп-лоссу или тейк-профиту) удалялся страховочный ордер. Может кто подскажет как примерно будет выглядеть это условие?


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

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

Советник из третьего урока. Появляется ошибка OrderSend 130. Гляньте пожалуйста

test3.mq4

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

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

А вы погуглите ошибку OrderSend error 130 - самая распространенная ошибка. Ее описание даже в справочнике есть:

Цитата

В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).


При выставлении SL-TP в любом порядочном советнике должна быть обязательная проверка на стоп-уровни.
Ссылка на сообщение
Поделиться на другие сайты

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

Я знаю что это за ошибка, но так как я ещё учусь, поэтому и спрашиваю как модифицировать советник, что бы этой ошибки не возникало.

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

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


Я знаю что это за ошибка, но так как я ещё учусь, поэтому и спрашиваю как модифицировать советник, что бы этой ошибки не возникало.


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

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


А вы погуглите ошибку OrderSend error 130 - самая распространенная ошибка. Ее описание даже в справочнике есть:

Цитата

В случае ошибочных, а также ненормализованных стопов генерируется ошибка 130 (ERR_INVALID_STOPS).


При выставлении SL-TP в любом порядочном советнике должна быть обязательная проверка на стоп-уровни.


Я знаю что это за ошибка, но так как я ещё учусь, поэтому и спрашиваю как модифицировать советник, что бы этой ошибки не возникало.


Поскольку бот учебный, никто вам не даст ответа как его модифицировать.
Это задача из лично вашего задачника - и нефиг подглядывать ответ или списывать решение, правда? :)

Инструкции надо читать и выполнять не просто буквально, а посимвольно.
Каждое слово порознь - и вместе.
Ответ уже дан - вы его не видите.

Все числовые параметры в любом операторе открытия, выставления или модификации ордеров должны быть заданы 100% корректно.
По каждому параметру разберитесь какое его корректное значение.

И если вам что-то не ясно в работе бота, печатайте в лог значения всех используемых переменных, задаваемых параметров - распечатывайте все переменные в проблемном фрагменте бота..
Это называется отладочная печать.
По ней быстрее всего вы поймете что вы делаете некорректно.

И гугл реально в помощь!
Если у вас "дыра" в знаниях после многократного просмотра урока - через гугл можно найти превосходные пояснения по любой вашей проблеме.

Программисты обычно одиноки.
Это не значит, что нельзя спрашивать - это значит, что чаще всего некому, некогда и, в итоге, нечем помочь.
Так что спрашивайте - но гугл программисту тоже друг.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL4 под MetaTrader 4 Опубликовано
qwert55r Вашу сову запустить не могу - нет индюков. Где ошибка? в рыночных или отложках?
в рыночных дату экспирации указывать не надо. Сами расчёты СЛ и ТП корректны, если запускаете с настройками по дефолту... после расчёта СЛ и ТП выведи их принтом + цену открытия ордера - по принтам разбирайся.
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Войти

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

Войти

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


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

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