Qj Опубликовано 2 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 2 ноября, 2015 Доброе время суток. Возник еще один вопросик. К примеру мы запустили эксперта на оптимизацию, при каждой ли итерации ( в смысле прохода с новыми входными параметрами ) вызывается метод OnInit бот каждый раз переинициализируется? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 3 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 3 ноября, 2015 Qj по идее инит должен отрабатывать. можно проверить косвенно с помощью ММ - в Ините менять существенно лот в зависимости от одного оптимизируемого параметра, например если больше 5, то лот*10.Если бот не сильно сливной, то данные прогоны должны сгруппироваться. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Gruler Опубликовано 5 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2015 Уважаемые программисты, можете скинуть наглядный код того как узнать значение 2го хая, вершины ZigZag. Не второго экстремума, а 2й вершины?! ScreenShot.png Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 5 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2015 Дык, они же идут по-очереди (вершины и низины), если Вы узнали 1-ю вершину ищите через один экстремум. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Gruler Опубликовано 5 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2015 Это все понятно, но как, какой код этого счетчика?! Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 5 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2015 У Вас должен быть цикл по барам в поисках значения цены в буфере инд. Зиг-Заг. а в цикле считаете экстремумы - Вам нужен 0 и 2 экстремум, если счётчик = 0 , то это 1-я вершина, если счётчик = 2, то вторая...Счетчик описывается так: int cn = 0;Далее в цикле по барам:for (.....){ if (ZigZag > 0) // нашли экстремум { if (cn == 0) // первая вершина if (cn == 2) // вторая вершина // Вам только надо разбираться вершина или низина, если последняя - низина, а нужны вершины, то счетчик нужно уменьшать на 1. cn++; }} Ссылка на сообщение Поделиться на другие сайты More sharing options...
Gruler Опубликовано 5 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2015 на сколько я понял, таким образом мы узнаем значение перелома 3го зигзага, где на скрине отображена первая фиолетовая горизонтальная линия, но она ниже первой вершины, как и следующий зигзаг, а как по счетчику добраться до второй вершины, которая будет хоть чуть больше первой вершины, и пропускать счетчик будет значения переломов, которые меньше первой вершины? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 5 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2015 Тогда счётчик не нужен. записываем цену первой вершины и в цикле ищем большее значение, это и есть то, что Вам нужно.. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Gruler Опубликовано 5 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2015 я поэтому и создал тему, что бы узнать код счетчика, или цикла, или массива, смотря что в данном случае правильней будет.Если есть какой то шаблонный вариант - можете скинуть? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 5 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2015 Шаблонов нет. Давайте Ваш код добавим туда проверку. Ссылка на сообщение Поделиться на другие сайты More sharing options...
Gruler Опубликовано 5 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 5 ноября, 2015 Шаблонов нет. Давайте Ваш код добавим туда проверку. попробуйте пожалуйста, скриптzzsl.mq4 Изменено 5 ноября, 2015 пользователем Gruler Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 6 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 ноября, 2015 Так что делать с этой 2 вершиной? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Gruler Опубликовано 6 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 ноября, 2015 что бы ставил стоп лосс на значении этой второй вершины,или хотя бы выдавал алерт с этим значением второй вершины , к стоп лоссу я уже прикручу,а если вершины рядом за кокой то период, или свеч, или дней, не будет, выдавал алерт, что за данный период второй вершины нет. Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 6 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 6 ноября, 2015 Попробуй. Я не пробовал - написал в слепую... zzsl.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
VFRSV Опубликовано 9 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2015 Нету у меня ни какого int start, есть int onInit, есть int OnDeinit, есть void OnDeInit, void ontick, void ontimer, double ontester, void onchartEver; а int start нет @-) Ссылка на сообщение Поделиться на другие сайты More sharing options...
Qj Опубликовано 9 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2015 Нету у меня ни какого int start, есть int onInit, есть int OnDeinit, есть void OnDeInit, void ontick, void ontimer, double ontester, void onchartEver; а int start нет @-) http://docs.mql4.com/ru/mql4changes - первая табличка и первая строчка. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
pavlus777 Опубликовано 9 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 9 ноября, 2015 Перезаписан под актуальные билды первый урок курса "MQL программирование":http://tradelikeapro.ru/mql-nachalo/ 7 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Qj Опубликовано 10 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 ноября, 2015 Кто-нибудь пробовал реализовать делегаты или хотя бы знает как в MQL сделать указатель на функцию? Ссылка на сообщение Поделиться на другие сайты More sharing options...
Sergey Forex Опубликовано 10 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 10 ноября, 2015 Перезаписан под актуальные билды первый урок курса "MQL программирование":http://tradelikeapro.ru/mql-nachalo/ Спасибо. Смотрел старые уроки и сожалел, что есть расхождение с новыми билдами. Сейчас как-раз самое время изучить MQL.Выполнил ДЗ к первому уроку.test.mq4 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Rever27 Опубликовано 12 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 12 ноября, 2015 Подскажите, можно ли как то привязать лейбл к шкале времени не по левому краю (началу текста), а по правому?Устанавливаю лейбл рядом с линией на расстояние, равное 7 свечам от этой линии - вписывается нормальноНо при уменьшении zoom'а на графике она, естественно, смещается на линию:Как можно обойти данную проблему с целью улучшения "красоты" отображения графических фигур? :dUPDРазобрался )Угол привязки определяется с помощью функции OBJPROP_ANCHOR: ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_RIGHT); Изменено 13 ноября, 2015 пользователем Rever27 2 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Soldat Опубликовано 14 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 ноября, 2015 Добрый день.Помогите пожалуйста с функцией поиска нового бара и ограничения открытия позиций на одном определённом символе и таймфрейме. С обычным советником всё понятно. Можно использовать стандартную функцию из учебника Цитата bool New_Bar=false;bool Fun_New_Bar() // Ф-ия обнаружения .. { // .. нового бара static datetime New_Time=0; // Время текущего бара bool New_Bar=false; // Нового бара нет if (New_Time != Time[0]) // Сравниваем время { New_Time=Time[0]; // Теперь время такое New_Bar=true; // Поймался новый бар } return(New_Bar); } bool IsNewBar(){ static datetime _timeLastBar = 0; if(_timeLastBar == (datetime)0) //первый запуск _timeLastBar = Time[0]; if(Time[0] > _timeLastBar){ _timeLastBar = Time[0]; return true; } return false; } if (Fun_New_Bar()==true){} А как эту функцию приспособить к мультивалютному эксперту? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 14 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 ноября, 2015 Soldat так и применяйте - новый бар от на всех инструментах. правда тики не синхронно приходят, но с этим придётся жить... 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Soldat Опубликовано 14 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 ноября, 2015 Soldat так и применяйте - новый бар от на всех инструментах. правда тики не синхронно приходят, но с этим придётся жить... Да это понятно. Не понятно как её использовать при мультивалютности и различных таймфреймах. Допустим у меня 10 пар и 4 таймфрейма. Мне получается через цикл for 40 вариантов прописывать? Или через оператор if? Может есть иной, более компактный способ? Ссылка на сообщение Поделиться на другие сайты More sharing options...
0ll Опубликовано 14 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 ноября, 2015 Soldat у Вас 1 эксперт торгует по 10 парам - это понятно, при этом использует для поиска сигнала 4 ТФ - это можно понять, но в чём вопрос и сложность - не понятно...Ваш эксперт будет стоять и получать тики с одного графика (пары), узнать котировку по другой паре можно только специально через запрос, т.е. Вы можете отследить закрытие бара (любого ТФ) только на основной паре, а теперь, как говориться, следите за руками: тик пришел и сова поняла, что по основной паре открылся новый бар, а по другой паре (XXXYYY) тика ещё не было, вопрос что Вам вернёт функция iClose(XXXYYY, 0, 1)?Если Вы знаете ответ - то Вам должно быть вообще все понятно.Я точного ответа не знаю, но могу предположить, что эта функция вернёт Вам не то, что Вы ожидали, скажу даже больше, эта функция вернёт Вам не то, даже если Вы сделаете запрос по текущей паре, но с другого ТФ.Это я к тому, что отслеживать закрытие баров на 4 ТФ надо по той паре, где стоит сова, потом в цикле делать расчёты сигналов по всем парам (предполагая, что и там бары закрыты, или проверяя время открытия 1 бара на основной паре и рабочей паре). Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рустам 68 Опубликовано 14 ноября, 2015 Поделиться Обучение языку MQL4 под MetaTrader 4 Опубликовано 14 ноября, 2015 Выполнил задание по первому уроку. Очень рад, что попал в новую волну обучения. Огромное спасибо. Жду продолжения... . Zadanie_№1.mq4 Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти