Вопросы от "чайника" - страница 131

 
GameOver:


поиски на форуме (поиск в справке mql5 на фразы day_of_week, dayofweek ниче не дал.. )

Справочник MQL5 / Стандартные константы, перечисления и структуры / Структуры данных / Структура даты:

  int day_of_week;    // день недели (0-воскресенье, 1-понедельник, ... ,6-суббота)
 
Yedelkin:

Попробуем разобраться. Для функции CopyRates() предпоследний параметр

Т.е. количество копируемых элементов. В Вашей конструкции кол-во элементов - Unlimited. Грубо говоря, unreal :)  Вот, наверно, и происходит при работе непрерывное перераспределение памяти, пока она не истощится. Попробуйте ипользовать не TerminalInfoInteger(TERMINAL_MAXBARS), а более конкретное значение: Справочник MQL5 / Доступ к таймсериям и индикаторам / Bars  

ок, спасибо!
остаецо только неясным, нафига оно вообще, это  TerminalInfoInteger(TERMINAL_MAXBARS);

..чтобы было! ? :-))

со справочником все же удобнее работать, пользуясь поиском. чем заменить функции из mql4? справка не дает Даже намеков, где копать.
конечно, если наизусть знаешь язык - найти в справочнике не составит труда - тока тогда и справочник не нужен.
а вот если не знаешь - и/или переходишь с mql4 - поиск в справочнике ничем практически не помогает (((

зы. въезжать в mql5 сложнее, чем с 3 на 4ку было ;-) кто бы что ни говорил.

 
GameOver:

ок, спасибо!
остаецо только неясным, нафига оно вообще, это  TerminalInfoInteger(TERMINAL_MAXBARS);

..чтобы было! ? :-))

А это, например, чтоб знать, на какую глубину рассчитываются индикаторные буферы. И, понимать, произошёл ли перерасход ресурсов из-за "неэкономной" программы, или же из-за избыточного указания значения TERMINAL_MAXBARS. Поскольку TERMINAL_MAXBARS меняется только вручную пока, можно контролировать его размер и при необходимости сообщать сторонним пользователям Вашей программы, чтоб снизили планку.

GameOver:


со справочником все же удобнее работать, пользуясь поиском. чем заменить функции из mql4? справка не дает Даже намеков, где копать.
конечно, если наизусть знаешь язык - найти в справочнике не составит труда - тока тогда и справочник не нужен.
а вот если не знаешь - и/или переходишь с mql4 - поиск в справочнике ничем практически не помогает (((

 Да я по поисковому слову "day_of_week" нашёл, вообще-то. Среди 7 ссылок - и указанная выше.

GameOver:


зы. въезжать в mql5 сложнее, чем с 3 на 4ку было ;-) кто бы что ни говорил.

 Здесь ничего сказать не могу.

 
Yedelkin:

А это, например, чтоб знать, на какую глубину рассчитываются индикаторные буферы. И, понимать, произошёл ли перерасход ресурсов из-за "неэкономной" программы, или же из-за избыточного указания значения 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[])
{

//---- проверка количества баров на достаточность для расчёта
   if (rates_total < 2*iPeriod) return(0);

// ????? :-)

   return(rates_total);
}

double calcPrice(int type){
switch (type){
case 1: return(high); ??
case 1: return(high - fmax(open,close)); ??????
}

 

начало то ясно ))) а вот дальше..... 

заранее спасибо.

 

добрый день!

Подскажите,  пжл, есть ли в РФ брокеры, которые предоставляют в качестве терминала для работы на ФОРТС и ММВБ Метатрейдер? 

 
GameOver:

у меня тогда другой вопрос, если позволите.

нифига не вкуриваю, как рисовать индикаторы. у всех понаписано по разному, куча какого то кода подключаецо, просвета не видно.

для усвоения хочу сделать ма от верхних и нижних теней, плюс свой метод расчета сглаживания.
но для начала хотя бы самому реализовать стандартные.
как? мозг закипает, если честно. вроде просто, но абстракции вгоняют в тоску по mql4 :-)))
может кто сделает с пояснениями?   

начало то ясно ))) а вот дальше..... 

заранее спасибо. 

Если любите копаться в коде, то лучше всего поступить так: в редакторе открыть навигатор => папка Indicators => папка Examples. Далее можно найти коды работающих индикаторов  (ParabolicSAR, Custom Moving Average и т.д.), написанных без использования включаемых файлов. Проработаете несколько - многое прояснится. Остальное разъяснят на форуме. Чужие индикаторы многим писать  лень.
 
Yedelkin:
Если любите копаться в коде, то лучше всего поступить так: в редакторе открыть навигатор => папка 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..
кароче, запутался уже (
поясните по полочкам, кто понимает.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
GameOver:

давать советы типа "открой пример и трахайся с ним пока не надоест" я и сам могу ))))) но я то просил не совета, а помощи.. 

В данном случае просто поделился своим опытом. Получается, что копаться в коде Вы любите меньше, чем я :) Ну да ладно.

GameOver:

попробую уточнить вопросы. например, про две формы индикатора.
в первой форме передается 4 параметра. проясните назначение begin пжлст. почему в первой форме оно есть, а во второй нет? значит оно необязательно?
а зачем тогда? в чем суть "откуда начинаются значимые данные", в чем физический смысл этого параметра, что мы делаем его столь глобальным ?

Посмотрите здесь (нашёл по ключевому слову begin - пользуйтесь поиском): Справочник MQL5 / Пользовательские индикаторы

GameOver:


так же вопрос по массиву для расчета - список задается на вкладке parameters, и как я понимаю, это только для первой формы и этот список неизменен? или таки можно докинуть своих массивов (в разрезе вышеописанной задачи - например массив средних теней)? (как?)

Для начала посмотрите Справочник MQL5 / Основы языка / Переменные / Input переменные

 

По поводу глобального подхода к изучению: если на интересующие Вас вопросы здесь не будет дано ответа, а копаться в коде Вам не так интересно, то остаётся набрать в поисковой системе сайта слово "начинающим", выбрать раздел "Статьи", и там смотреть статьи для начинающих про индикаторы. Понимаю, кажется муторно. Но просмотрев пару-тройку подходящих статей, Вы сможете сначала нарисовать простую линию, затем линию средних значений между максимумом и минимумом бара [(high[i]-low[i]/2)], далее сможете построить САМИ простейшую МА, и, в итоге, придёте к реализации своего замысла.

Переход на новые рельсы: пользовательские индикаторы в MQL5
Переход на новые рельсы: пользовательские индикаторы в MQL5
  • 2009.11.23
  • Андрей
  • www.mql5.com
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
 
Yedelkin:

В данном случае просто поделился своим опытом. Получается, что копаться в коде Вы любите меньше, чем я :) Ну да ладно.

Посмотрите здесь (нашёл по ключевому слову begin - пользуйтесь поиском): Справочник MQL5 / Пользовательские индикаторы

Для начала посмотрите Справочник MQL5 / Основы языка / Переменные / Input переменные
1. не то чтобы меньше люблю. хотя наверное... не знаю насколько вы любите - я предпочитаю таки торговать в первую очередь. а самописание - лишь подсобный инструмент. но если на него надо тратить энергии больше чем на сами идеи... стоит ли тогда овчинка выделки?
меня ооп не греет как то. мутно очень. потому и спрашиваю у тех, кто в нем монстр. чтоб пример написали.
пример никто написать не может, но на форумах все высокомерно заявляют, что ООП - проще простого.

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

3. посмотрел. я спрашивал как реализовать расчет на своих данных, а не как задать список входных параметров. там про это ни слова ((((
 
GameOver:
 но на форумах все высокомерно заявляют, что ООП - проще простого.

Такого никто не заявлял. Потрудиться придётся.

GameOver:

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

Ну, не знаю. Мне там из примера всё стало понятно про begin.

GameOver:
3. посмотрел. я спрашивал как реализовать расчет на своих данных, а не как задать список входных параметров. там про это ни слова ((((

 Был вопрос "как задать свои данные?". Один из способов я указал.

Если интересует расчёт на данных другого индикатора, то делается так. Сначала создается тот самый другой индикатор с о своим методом расчёта данных, затем берётся хендл этого индикатора (Справочник MQL5 / Технические индикаторы / iCustom ) и уже этот хендл используется в новом индикаторе. Посмотрите внимательно пример. Если будут вопросы по примеру -

Документация по MQL5: Технические индикаторы
Документация по MQL5: Технические индикаторы
  • www.mql5.com
Технические индикаторы - Документация по MQL5
Причина обращения: