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

Обучение языку MQL5 под MetaTrader 5


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

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


MathMod((double)Time[0],iTmfrm*60)==0


Первая секунда нового бара :), видимо...
Довольно криво - будет срабатывать крайне редко. Отследить закрытие бара нужно по другому.


То есть мы приводим значение в секундах к виду числа с запятой, делим на (таймфрейм*60 секунд) и смотрим, если остаток отсутствует, то это означает что пришел новый бар?
Ссылка на сообщение
Поделиться на другие сайты

  • Ответов 294
  • Создано
  • Последний ответ

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

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

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

Здравствуйте, друзья юные программисты! В этой ветке предлагаю обсуждать все возникающие вопросы в процессе освоения тонкостей языка MQL5. В настоящий момент мы записываем цикл уроков по MQL5, пока

Перейти

Уважаемые коллеги, добавлю от себя... По ссылке полный справочник по функциям MQL5, с примерами, который вы можете скачать себе локально. Хорошая штука, рекомендую :) https://yadi.sk/d/BBFYJw_-trnbN

Перейти

Нечеловеческое спасибо за тему >000 ЧИТАЕМ В ПЕРВУЮ ОЧЕРЕДЬ ПОЛНАЯ ДОКУМЕНТАЦИЯ ПО MQL5, ОНЛАЙН, БЕСПЛАТНО И БЕЗ СМС Руководство по интерфейсу // Алгоритимеческий трейдинг на MQL5 // Описание те

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

То есть мы приводим значение в секундах к виду числа с запятой, делим на (таймфрейм*60 секунд) и смотрим, если остаток отсутствует, то это означает что пришел новый бар?


Да. Другого ответа у меня нет. у MathMod входные параметры double, поэтому автор, видимо, сделал явную конвертацию.
Кривовато, если мягко выражаться..., котировка может прийти на 2 секунде и всё - условие не сработает. Баг.
Ссылка на сообщение
Поделиться на другие сайты

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

Да. Другого ответа у меня нет. у MathMod входные параметры double, поэтому автор, видимо, сделал явную конвертацию.
Кривовато, если мягко выражаться..., котировка может прийти на 2 секунде и всё - условие не сработает. Баг.


Хм, понял буду придумывать по своему. Я вообщем то дописал версию до отсутствия явных ошибок компиляции. Стопудово ошибок неявных куча, еще немного помучаю и хотелось бы кому нибудь отправить для ознакомления. Или прям тут ее прикрепить?
Ссылка на сообщение
Поделиться на другие сайты

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

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


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

Обучение языку MQL5 под MetaTrader 5 Опубликовано (изменено)

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


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


Добавлено: 14-08-2018 14:09:02


В общем вот. В тестере погонял, в визуализации глюки отловил, вроде все пашет. Добавил от себя ММ, в виде х объема на у депозита, с управлением шагом добавки к объему. Жду критику. Кому не лень, погоняйте, помучайте сову. Я на недельку в карелию с завтра, тут буду редко. Так что если не отвечаю, это не значит что я все бросил :)

Забыл добавить, обработок ошибок по кодам нет. Коды иные, еще не разбирался в них.

spring_8.25.mq5

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

  • 2 weeks later...
Обучение языку MQL5 под MetaTrader 5 Опубликовано

Я вернулся и добрался до проверок ордеров. Возникли вопросы.
1. Если я правильно понял из справки, то: Ordersend вернет ТРУ в случае принятия запроса, но не факт что ордер будет выполнен, значит после каждого запроса в случае ТРУ нужно все равно проверять MqlTradeResult на наличие тикета в поле deal ?
2. Следуя из первого вопроса мне не понятно каким образом проверить выполнен ли отложенный ордер, точнее стал ли отложенный ордер рыночным.....
3. Не совсем понятно когда ордер переезжает в Хистори, то есть предположим я открываю ордер по рынку, TRADE_ACTION_DEAL. Ордер переходит в хистори как только открывается позиция? или когда эту позицию закроем?
4. retcode_external ????? Что делать с этим зверем??? И надо ли вообще?
5. retcode обрабатываем так же как в mql4 или есть изменения/дополнения?

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

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


Новый урок:
http://tradelikeapro.ru/pishem-ea-martin-na-mql5/


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

  • 1 month later...
Обучение языку MQL5 под MetaTrader 5 Опубликовано

Таак, сентябрь прошел, а нового урока нет! :d
Спасибо огромное за уроки еще раз. Особенно за первые по mql4 ^:)^
В любом случае, хочу для начинающих программеров (хотя я и сам такой - на mql4 опыта пока пару лет) тут написать - я вот уже три дня изучаю MQL5 :d :d. По сути - ничего сложного, нужно лишь понимать, что многие функции работают по другому. Я-то уж испугался, что там использование классов будет обязательным. У меня к ним отношение, так же, как и у 0ll не очень хорошее, а вот без структур и массивов жизнь свою представить не могу.

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

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

Новый урок:



Новый урок, это замечательно, благодарю. Только одно неудобство размер текста очень мелковат и очень плохо видно. Пожелание более продуктивно использовать размер картинки. Область с программным кодом, это полезная зона, но ее всего процентов 25-30 от ширины экрана.
Большая просьба приложите исходный файл, очень плохо видно текст с экрана.
Ссылка на сообщение
Поделиться на другие сайты

Обучение языку MQL5 под MetaTrader 5 Опубликовано (изменено)


Большая просьба приложите исходный файл, очень плохо видно текст с экрана.


Исходник к уроку "MQL5: Как написать индикатор для MetaTrader 5" http://tradelikeapro.ru/mql5-pishem-indikator/

MaOsc.mq5

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

  • 2 weeks later...
Обучение языку MQL5 под MetaTrader 5 Опубликовано (изменено)

Странно, но советник из этого урока не ставит тейк-профит при прогоне в тестере. В терминале ошибка 10036 при попытке установки ТП.
Советник при этом компилируется без ошибок.


Сразу кидаться тапочками и говорить, что не работает, не надо. Будьте внимательны. Урок MQL5: Пишем советник на Мартингейле, написан для "неттинговых" счетов (по одному финансовому инструменту можно иметь только одну позицию). Для "хеджинговых" счетов (по одному финансовому инструменту можно иметь множество позиций, в том числе — разнонаправленных) нужно немного доработать и изменить.


Новый урок:
http://tradelikeapro.ru/mql5-pishem-indikator/


Приветствую Вас! Прошу пояснить момент из урока. А именно 51:13 минуту или строки по коду 256-260

if (OrderPrice == 0)
return;

if (OrderPrice == oldOrderPrice)
return;

По моему пониманию, когда мы отправляем запрос MqlTradeRequest, программа замирает и ждет ответа MqlTradeResult от сервера, который анализируем. А дальше от результата модифицируем позицию.

С Ваших слов я понял так : На предыдущем тике отправленный запрос MqlTradeRequest на сервер, прислал липовый ответ MqlTradeResult. А в настоящем тике перед модификацией мы проверяем еще раз обновилась ли цена или открылся ли ордер?

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

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

Приветствую всех!
Есть ряд вопросов по mql5, прошу помочь..
1. Есть одномерный массив с направлением индексации AS_SERIES true. Размер массива задан. В массиве хранится история последних ХХ расчетов. Необходимо перезаполнять массив по мере поступления новых данных по методу FIFO. ArrayCopy() самого в себя не получилось сделать, пришлось использовать еще один массив, копировать в него, а потом обратно.. Не очень красиво. Может есть еще способ?
2. На основе данных массива мне необходимо нарисовать график в подокне. Сейчас на каждом баре рисую TrandLine, но не знаю, как задать верхнюю и нижнюю границу (отрицательные значения рисуются ниже экрана). Делать пользовательский индикатор не очень хочется...
3. В советнике применяется индикатор АТР. При тестировании в визуале он рисуется в подокне. Как отключить визуализацию?


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

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


3. В советнике применяется индикатор АТР. При тестировании в визуале он рисуется в подокне. Как отключить визуализацию?


TesterHideIndicators(true);//перед инициализацией индикатора
  • Лайк 2
Ссылка на сообщение
Поделиться на другие сайты

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

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

ArrayCopy отлично работает с обычными массивами,


В общем то работает. Через temp массив. Я думал, что можно без него обойтись. Вроде как лишняя операция копирования.. Размер предполагается 500-1000 элементов, вдруг это на производительность повлияет...

то лучше делать индюк

Блин, а это печаль...
Народ наоборот, ищет пути внедрения кода индюка в советник. Писать отдельно только ради визуализации... так себе идея...
Ссылка на сообщение
Поделиться на другие сайты

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

В общем то работает. Через temp массив.

Нет я писал о копировании в себя со сдвигом. Дело в том, что копируется всё равно по-битно, но важно чтоб начиналось с конца - когда n-1 элемент копируется в n позицию, поэтому работает только на обычных массивах, а не перевёрнутых (серийных).

Народ наоборот, ищет пути внедрения кода индюка в советник.

Дык это для увеличения скорости и экономии памяти - без визуализации! А у Вас нужно рисовать, да ещё и в подвале!
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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

поэтому работает только на обычных массивах, а не перевёрнутых (серийных).


прикольно...нигде не видел такого комментария...

А у Вас нужно рисовать, да ещё и в подвале!


Офигенно трудоемкая задача! В индикаторах реализовано как должное, а в сове через задницу (точнее, никак)!
Ладно, докурю тему. Если что найду, запостю.

Добавлено: 19-10-2018 16:36:43

Дык это для увеличения скорости и экономии памяти - без визуализации!


ИМХО, народ точно не думает об экономии памяти (минус буфер с красками?). В основном хотят скрыть логику сова...
  • Лайк 1
Ссылка на сообщение
Поделиться на другие сайты

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

Приветствую
Индикатор в журнале пишет "2018.10.24 23:32:25.265 RSI (GOLD-12.18,M5) indicator is too slow, 3000 ms. rewrite the indicator, please"
Причем стандартный, добавил только вывод значений на экран. Терминал используется на фьючерсах биржи.
Может знаете чего ему нехватает в коде 8-> :-?

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

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


Приветствую
Индикатор в журнале пишет "2018.10.24 23:32:25.265 RSI (GOLD-12.18,M5) indicator is too slow, 3000 ms. rewrite the indicator, please"
Причем стандартный, добавил только вывод значений на экран. Терминал используется на фьючерсах биржи.
Может знаете чего ему нехватает в коде 8-> :-?


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

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


Ребята подскажите пож. стоит уже на МТ5 переходить. Или это только шум пока?


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

Обучение языку MQL5 под MetaTrader 5 Опубликовано (изменено)

Приветствую всех.. Есть вопрос по последнему уроку.

for(int i=limit;1>=0;i--)
{
MAOSBuffer=FastBuffre-SlowBuffer;//Здесь выход за пределы массива
ColorsBuffer=(MAOSBuffer>0?(MAOSBuffer>MAOSBuffer[i+1]?0:1):MAOSBuffer }

Почему ругается размерность массива??

И почему то не даёт код вставить в сообщение..

123.jpg

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

  • 2 weeks later...
Обучение языку MQL5 под MetaTrader 5 Опубликовано (изменено)

Всем привет, есть индикатор для ручной разметки волн Эллиотта в МТ4, может кто-нибудь помочь его конвертировать в mql5?

ewm.mq4
usability.png

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

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

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

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

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

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

Войти

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

Войти

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


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

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