Азбука MQL5 - страница 2

 

Далее. Вот здесь

#property indicator_separate_window
#property indicator_minimum -1
#property indicator_maximum 1
#property indicator_buffers 3
#property indicator_plots   1
//--- plot Label1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

задана одна графическая серия. А вот здесь

   SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,MA,INDICATOR_DATA);
связаны, скажем так, два массива для отражения двух графических серий на графике. Надо бы привести в соответствие.
 
GKS:

Все это похоже на содержание  книги не находите Roch ?? Об этом -  электронной книге как то раз писал Renat.

Может вам заняться к раз таки ! 

Какая нафиг книга? Язык еще развивается.

Статей хватает. Тот кто действительно хочет, научится. Книга всего лишь на чуть опустит планку.

 
abolk:
Это также есть в статьях. Например, посмотрите https://www.mql5.com/ru/articles/190#Blau_MACD

Благодарствую. Отличная статься. Не совсем уверен правда что MACD это производная от скользящей средней, он разность двух скользящих, что не совсем то, в широком смысле возможно близок к ней, но нужно все таки мне поставить все точки над i. Наверняка я задумал изобрести велосипед, так оно скорей всего и есть, но интуиция мотивирует разобраться... Я сделаю презентационный набросок логики и покажу что имею в виду, потом уже буду переносить на MQL5, так как сразу я погрязну в багах и не буду понимать в чом глюк в логике или в ошибках с кодом.

 

Yedelkin:

Значения МА и её "производной" могут оказаться совершенно разного порядка. И с  трудом помещаться на один график (в одном окне). Выводить график "производной" в отдельное окно не пробовали?

А вот это

можно вообще вынести на глобальный уровень программы.............

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

 

Зелёный это исходный график клосов фунта\долара, синим SМА(price,30), желтым SMA((price -SMA(price,30)),6),  чорный с красными и зелёными местами это вторая производная от желтого выведенная в цвет , можно наблюдать как стрелочки которые по определённому порогу от значения второй производной верно показывают на развороты.

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

Если что получится путное то буду уже на mql5 кодить, наверняка зная какой результат получу.

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

 

 

вроде заработал код с пока только первой производной от МА, проблема была в стартовой точке цикла и как говорил уважаемый Yedelkin в масштабе окна, сама производная крайне очень в маленьком диапазоне колеблется и естественно должна быть в другом окне.

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  Red

input int period= 60;
input int shift = 0;


double graphikBuffer[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnInit()
  {
   SetIndexBuffer(0,graphikBuffer,INDICATOR_DATA);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {

   int start,i,j;
   double sum,d1_MA;
   start=period+begin;

   for(i=start; i<rates_total; i++)
     {
      sum=0.0;
      for(j=0; j<period; j++)
         sum+=(price[i-j]-price[i-j-1]);

        d1_MA=sum/period;
        graphikBuffer[i]= d1_MA;

   
  }
return(rates_total);
//+------------------------------------------------------------------+
}

 Вроде начинает быть отдалённо похоже на правду, но непонятна причина сильного шума при любых коэффициентах периода усреднения, по идее она должна быть мягенькой, чего не происходит.

 
chtacK: Вроде начинает быть отдалённо похоже на правду, но непонятна причина сильного шума при любых коэффициентах периода усреднения, по идее она должна быть мягенькой, чего не происходит.

Вот эти строчки

      sum=0.0;
      for(j=0; j<period; j++) sum+=(price[i-j]-price[i-j-1]);

должны давать такой же результат, как и строчка

      sum=price[i]-price[i-period];
Приверженцы т.н. технического анализа могут разглядеть в этой записи один из простейших осцилляторов. А поскольку все значения массива graphikBuffer[] являются результатом деления на одно и то же  число (period), это деление совершенно не влияет на визуальное отражение линии индикатора в отдельном окне.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Линии индикаторов - Документация по MQL5
 

Поддерживаю chtacK в начинаниях создания азбуки на примере своего опыта обучения, прошу по возможности комментировать код, как было обещано в предыдущих постах, иначе голый код понятен только лично Вам и профессионалам которым он скорей всего не нужен. Новичкам же следующих за Вами, интересны как раз разъяснения каждой строчки кода, если это конечно не отнимет много времени и Вам в какой то мере интересно, чтобы другим было полезны Ваши изыскания.

Заранее благодарю. 

 

Глупый вопрос в социальном контексте: Пользоваться MQL5 Wizard-ом это профессионально? Или это переходный этап для новичков? Интересно профи им пользуются или это зазорно?

Прошу прощения если совсем тупой вопрос, интересно куда стремиться просто.

 
EvMir:

Глупый вопрос в социальном контексте: Пользоваться MQL5 Wizard-ом это профессионально? Или это переходный этап для новичков? Интересно профи им пользуются или это зазорно?

Прошу прощения если совсем тупой вопрос, интересно куда стремиться просто.

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

 Смотря к какой цели стремитесь: научиться программировать или пользоваться чужими разработками.

EvMir: Глупый вопрос в социальном контексте...

Наверное, "соцконтексты" лучше раскрываются при голосовании :) ..За всё время существования Визарда встречал на форуме не более 5-7 вопросов по этой тематике.

 
Yedelkin:

 Смотря к какой цели стремитесь: научиться программировать или пользоваться чужими разработками.

Наверное, "соцконтексты" лучше раскрываются при голосовании :) ..За всё время существования Визарда встречал на форуме не более 5-7 вопросов по этой тематике.

Я имею в виду следующую гипотетическую ситуацию, mql5 программист устраивается на контору, сидит как полагается в общем цеху с мониторами направленными в центр комнаты, или ещё хуже в направлении где сидит надзиратель, ну и по привычке прогер открывает визард, ну и явные и скрытые последствия этого.. К примеру аплодисменты:)))) Или обратная реакция, истерический хохот некоторых, обмороки других и судороги у третьих, надзиратель вскакивает переворачивая стол и не добегая до виновника ловит инсульт. Шучу...

Но думаю тем кто планирует сидеть в цеху такая причинность, в не таких контрастных масштабах, может быть интересна. 

Кстати есть ли подобные конторы, где например как в разработке игрушек или софта, сидят mql-щики и кодят что то экстраординарное? 

Причина обращения: