Задаем и отвечаем на вопросы, касающиеся самого языка MQL5. Думаю, новичкам для изучения основ языка тема будет полезной. Более опытные соратники на нелегком трейдерском поприще помогают советами, рекомендации или даже отрывками программного кода.
class Dot
{
public:
double Price;
datetime Time;
};
Dot Dot0,Dot1;//Точки
языка MQL5
Нужно бы добавить в заголовок темы.
Сам задался сейчас вопросом, как программно создать трендовую линию по двум известным точкам.
Определил две точки таким образом.
Для определения точки нужны две координаты - ценовая координата и координата времени. Вот теперь изучаю справочник на предмет создания трендовой линии. Может кто подскажет, как лучше ее создать?Код:class Dot { public: double Price; datetime Time; }; Dot Dot0,Dot1;//Точки
Ну это понятно. Через две точки обычно проводятся линия. Ну а точка на двумерном графике чарта котировки, определяется через две координаты ( координата времени, координата цены). Кстати вопрос с созданием трендовой линии по двум точкам успешно решил. Если кому-то понадобиться, могу поделиться кодом.Для трендовой линии нужны не две координаты - ценовая координата и координата времени, а четыре, две координаты цены и две координаты времени.
ObjectCreate(0, "name", OBJ_TREND, 0, time1, price1, time2, price2);
У меня своя функцияДа чем тут делиться?
PHP:ObjectCreate(0, "name", OBJ_TREND, 0, time1, price1, time2, price2);
Ну, разве-что добавить контроль наличия такого имени объекта и контроль ошибки создания.
Дальше уже можно назначать параметры по вкусу, цвет, луч, толщину и прочее.
//+------------------------------------------------------------------+
//| Создает линию тренда по заданным координатам |
//+------------------------------------------------------------------+
bool TrendCreate(Dot &Dot0,Dot &Dot1)
{
ObjectCreate(chart_ID,NameLine,OBJ_TREND,sub_window,Dot0.Time,Dot0.Price,Dot1.Time,Dot1.Price)
Я вот уже десятый год программирую на mql и даже не собираюсь запоминать последовательность параметров функций, да и названия функций не все помню. Так-что мне не приходится вспоминать подзабытое. Для этого есть отличная документация по языку. Я без неё не работаю.Пришлось лезть в справочник. Вспоминать все подзабытое.
Здравствуйте вижу вы тут пишете что есть документация какая-то ,а где ее взять что=бы немного почитать и изучить я просто хочу переучиться с MQL4 на MQL5 или точнее доучить другой язык для переделки своих алгоритмов.Я вот уже десятый год программирую на mql и даже не собираюсь запоминать последовательность параметров функций, да и названия функций не все помню. Так-что мне не приходится вспоминать подзабытое. Для этого есть отличная документация по языку. Я без неё не работаю.
Здравствуйте вижу вы тут пишете что есть документация какая-то ,а где ее взять что=бы немного почитать и изучить я просто хочу переучиться с MQL4 на MQL5 или точнее доучить другой язык для переделки своих алгоритмов.
А F1 никогда не нажимал находясь в редакторе кодов? В MetaEditor есть встроенная документация вызываемая клавишей F1 как для mql4 так и для mql5. Ну, на худой конец есть на сайте mql5.com
Приветствую! Может кто подскажет. Хочу написать советник MQL5, Но никак не получается инициализировать пользовательский индикатор MACD который в списке терминала по дефолту. Функция iCustom не срабатывает, в журнале выдает ошибку, что индикатор не удалось инициализировать. Хендл создал. Функцию Copy buffer которую использую покажу, может, что-то неправильно написал
Хендл создать можно двумя способами.каким способом ты создал хендл и проверял-ли его значение?
- iCustom()
- IndicatorCreate()
iCustom(_Symbol, PERIOD_CURRENT, "Examples\\MACD", 12, 26, 9);
iMACD(_Symbol, PERIOD_CURRENT, 12, 26, 9, PRICE_CLOSE);
Пользовательский индикатор MACD находится в папке Examples.
Следовательно в функцию iCustom должно быть вставлено имя индикатора с указанием подпапки.
А лучше, на мой взгляд создать технический индикаторКод:iCustom(_Symbol, PERIOD_CURRENT, "Examples\\MACD", 12, 26, 9);
Код:iMACD(_Symbol, PERIOD_CURRENT, 12, 26, 9, PRICE_CLOSE);
Спасибо, Большое, все получилось! Через iCustom делаю, потому, что немного модифицировал MACD.
Я-бы поостерёгся модифицировать индикаторы идущие в поставке терминала. При первом-же обновлении он будет переписан. Лучше изменить ему имя. Или скопировать в другую папку.