![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
поиски на форуме (поиск в справке mql5 на фразы day_of_week, dayofweek ниче не дал.. )
Справочник MQL5 / Стандартные константы, перечисления и структуры / Структуры данных / Структура даты:
Попробуем разобраться. Для функции CopyRates() предпоследний параметр
Т.е. количество копируемых элементов. В Вашей конструкции кол-во элементов - Unlimited. Грубо говоря, unreal :) Вот, наверно, и происходит при работе непрерывное перераспределение памяти, пока она не истощится. Попробуйте ипользовать не TerminalInfoInteger(TERMINAL_MAXBARS), а более конкретное значение: Справочник MQL5 / Доступ к таймсериям и индикаторам / Barsок, спасибо!
остаецо только неясным, нафига оно вообще, это TerminalInfoInteger(TERMINAL_MAXBARS);
..чтобы было! ? :-))
со справочником все же удобнее работать, пользуясь поиском. чем заменить функции из mql4? справка не дает Даже намеков, где копать.
конечно, если наизусть знаешь язык - найти в справочнике не составит труда - тока тогда и справочник не нужен.
а вот если не знаешь - и/или переходишь с mql4 - поиск в справочнике ничем практически не помогает (((
зы. въезжать в mql5 сложнее, чем с 3 на 4ку было ;-) кто бы что ни говорил.
ок, спасибо!
остаецо только неясным, нафига оно вообще, это TerminalInfoInteger(TERMINAL_MAXBARS);
..чтобы было! ? :-))
А это, например, чтоб знать, на какую глубину рассчитываются индикаторные буферы. И, понимать, произошёл ли перерасход ресурсов из-за "неэкономной" программы, или же из-за избыточного указания значения TERMINAL_MAXBARS. Поскольку TERMINAL_MAXBARS меняется только вручную пока, можно контролировать его размер и при необходимости сообщать сторонним пользователям Вашей программы, чтоб снизили планку.
со справочником все же удобнее работать, пользуясь поиском. чем заменить функции из mql4? справка не дает Даже намеков, где копать.
конечно, если наизусть знаешь язык - найти в справочнике не составит труда - тока тогда и справочник не нужен.
а вот если не знаешь - и/или переходишь с mql4 - поиск в справочнике ничем практически не помогает (((
Да я по поисковому слову "day_of_week" нашёл, вообще-то. Среди 7 ссылок - и указанная выше.
зы. въезжать в mql5 сложнее, чем с 3 на 4ку было ;-) кто бы что ни говорил.
Здесь ничего сказать не могу.
А это, например, чтоб знать, на какую глубину рассчитываются индикаторные буферы. И, понимать, произошёл ли перерасход ресурсов из-за "неэкономной" программы, или же из-за избыточного указания значения TERMINAL_MAXBARS. Поскольку TERMINAL_MAXBARS меняется только вручную пока, можно контролировать его размер и при необходимости сообщать сторонним пользователям Вашей программы, чтоб снизили планку.
Да я по поисковому слову "day_of_week" нашёл, вообще-то. Среди 7 ссылок - и указанная выше.
Здесь ничего сказать не могу.
а, ясно. т е один - количество закаченых баров, второй - количество отображаемых. странно только, почему столь разная идентификация - одно прямо и просто Bars,
второе через фигзнаетоткуда.
про справку - терпения не хватило просмотреть все, тем паче что по самой функции dayOfWeek найдено ниче не было, а по первым линкам day_of_week (как я должен догадацо что надо писать именно так?) была чушь, к делу не относящаяся :-)
у меня тогда другой вопрос, если позволите.
нифига не вкуриваю, как рисовать индикаторы. у всех понаписано по разному, куча какого то кода подключаецо, просвета не видно.
для усвоения хочу сделать ма от верхних и нижних теней, плюс свой метод расчета сглаживания.
но для начала хотя бы самому реализовать стандартные.
как? мозг закипает, если честно. вроде просто, но абстракции вгоняют в тоску по mql4 :-)))
может кто сделает с пояснениями?
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
#property indicator_type1 DRAW_LINE
#property indicator_color1 Red
input int iPeriod = 13; // период
input int iMode = 1; // тип сглаживания
input int iPrice = 5; // цена
input int iBars = 480; // количество баров для просчета, если это возможно в принципе ограничить
double iBuffer[];
void OnInit(){
SetIndexBuffer(0, iBuffer, INDICATOR_DATA);
}
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime& time[],
const double& open[],
const double& high[],
const double& low[],
const double& close[],
const long& tick_volume[],
const long& volume[],
const int& spread[])
{
//---- проверка количества баров на достаточность для расчёта
return(rates_total);if (rates_total < 2*iPeriod) return(0);
// ????? :-)
}
double calcPrice(int type){
switch (type){
case 1: return(high); ??
case 1: return(high - fmax(open,close)); ??????
}
}
начало то ясно ))) а вот дальше.....
заранее спасибо.
добрый день!
Подскажите, пжл, есть ли в РФ брокеры, которые предоставляют в качестве терминала для работы на ФОРТС и ММВБ Метатрейдер?
у меня тогда другой вопрос, если позволите.
нифига не вкуриваю, как рисовать индикаторы. у всех понаписано по разному, куча какого то кода подключаецо, просвета не видно.
для усвоения хочу сделать ма от верхних и нижних теней, плюс свой метод расчета сглаживания.
но для начала хотя бы самому реализовать стандартные.
как? мозг закипает, если честно. вроде просто, но абстракции вгоняют в тоску по mql4 :-)))
может кто сделает с пояснениями?
начало то ясно ))) а вот дальше.....
заранее спасибо.
Если любите копаться в коде, то лучше всего поступить так: в редакторе открыть навигатор => папка Indicators => папка Examples. Далее можно найти коды работающих индикаторов (ParabolicSAR, Custom Moving Average и т.д.), написанных без использования включаемых файлов. Проработаете несколько - многое прояснится. Остальное разъяснят на форуме. Чужие индикаторы многим писать лень.
любить то люблю ) ЕСЛИ код интуитивно понятен.. смотрю на горы кода - не проясняется пока ((
давать советы типа "открой пример и трахайся с ним пока не надоест" я и сам могу ))))) но я то просил не совета, а помощи..
попробую уточнить вопросы. например, про две формы индикатора.
в первой форме передается 4 параметра. проясните назначение begin пжлст. почему в первой форме оно есть, а во второй нет? значит оно необязательно?
а зачем тогда? в чем суть "откуда начинаются значимые данные", в чем физический смысл этого параметра, что мы делаем его столь глобальным ?
так же вопрос по массиву для расчета - список задается на вкладке parameters, и как я понимаю, это только для первой формы и этот список неизменен? или таки можно докинуть своих массивов (в разрезе вышеописанной задачи - например массив средних теней)? (как?)
по второй форме тоже не все ясно. т е вроде бы возможностей побольше.
можно использовать ENUM_APPLIED_PRICE при задании данных. с другой стороны, там нет выбора данных предыдущего индикатора (как в первой форме). как?
опять же - как задать свои данные? заделать свой массив,ок, но как просчитать ма по нему?
double newData[];
double outBuffer[];
for(i=limit;i<rates_total && !IsStopped();i++){
newData[i]=(High[i]+fmax(Open[i],Close[i]))/2;
}
// и дальше чего? как мне индикатор то заполнить используя iMA ? самому сглаживать вторым циклом? или что?
outBuffer=????????????
не понимаю ( все примеры на стандартных данных.. как свое сделать, пока неясно ((
с одной стороны - готовится некий хендл iMA() аж в onInit, но данные для него у нас еще не определены, они определяются в onCalculate..
кароче, запутался уже (
поясните по полочкам, кто понимает.
давать советы типа "открой пример и трахайся с ним пока не надоест" я и сам могу ))))) но я то просил не совета, а помощи..
В данном случае просто поделился своим опытом. Получается, что копаться в коде Вы любите меньше, чем я :) Ну да ладно.
попробую уточнить вопросы. например, про две формы индикатора.
в первой форме передается 4 параметра. проясните назначение begin пжлст. почему в первой форме оно есть, а во второй нет? значит оно необязательно?
а зачем тогда? в чем суть "откуда начинаются значимые данные", в чем физический смысл этого параметра, что мы делаем его столь глобальным ?
Посмотрите здесь (нашёл по ключевому слову begin - пользуйтесь поиском): Справочник MQL5 / Пользовательские индикаторы
так же вопрос по массиву для расчета - список задается на вкладке parameters, и как я понимаю, это только для первой формы и этот список неизменен? или таки можно докинуть своих массивов (в разрезе вышеописанной задачи - например массив средних теней)? (как?)
Для начала посмотрите Справочник MQL5 / Основы языка / Переменные / Input переменные
По поводу глобального подхода к изучению: если на интересующие Вас вопросы здесь не будет дано ответа, а копаться в коде Вам не так интересно, то остаётся набрать в поисковой системе сайта слово "начинающим", выбрать раздел "Статьи", и там смотреть статьи для начинающих про индикаторы. Понимаю, кажется муторно. Но просмотрев пару-тройку подходящих статей, Вы сможете сначала нарисовать простую линию, затем линию средних значений между максимумом и минимумом бара [(high[i]-low[i]/2)], далее сможете построить САМИ простейшую МА, и, в итоге, придёте к реализации своего замысла.
В данном случае просто поделился своим опытом. Получается, что копаться в коде Вы любите меньше, чем я :) Ну да ладно.
Посмотрите здесь (нашёл по ключевому слову begin - пользуйтесь поиском): Справочник MQL5 / Пользовательские индикаторы
Для начала посмотрите Справочник MQL5 / Основы языка / Переменные / Input переменныеменя ооп не греет как то. мутно очень. потому и спрашиваю у тех, кто в нем монстр. чтоб пример написали.
пример никто написать не может, но на форумах все высокомерно заявляют, что ООП - проще простого.
2. посмотрел. не понял, почему во второй форме оно не используется(точнее - зачем оно в первой форме?). все равно оно определяется пользователем (на вкладке оно не определяется, так?),
нафига его пихать во входные параметры в первой форме? чем это отличается от произвольной переменной?
3. посмотрел. я спрашивал как реализовать расчет на своих данных, а не как задать список входных параметров. там про это ни слова ((((
но на форумах все высокомерно заявляют, что ООП - проще простого.
Такого никто не заявлял. Потрудиться придётся.
2. посмотрел. не понял, почему во второй форме оно не используется(точнее - зачем оно в первой форме?). все равно оно определяется пользователем (на вкладке оно не определяется, так?),
нафига его пихать во входные параметры в первой форме? чем это отличается от произвольной переменной?
Ну, не знаю. Мне там из примера всё стало понятно про begin.
3. посмотрел. я спрашивал как реализовать расчет на своих данных, а не как задать список входных параметров. там про это ни слова ((((
Был вопрос "как задать свои данные?". Один из способов я указал.
Если интересует расчёт на данных другого индикатора, то делается так. Сначала создается тот самый другой индикатор с о своим методом расчёта данных, затем берётся хендл этого индикатора (Справочник MQL5 / Технические индикаторы / iCustom ) и уже этот хендл используется в новом индикаторе. Посмотрите внимательно пример. Если будут вопросы по примеру -