Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 668

 
Artyom Trishkin:

Делайте. Потом код сюда.

Кстати, Артем.

Поставленная задача сразу выявила интересный вопрос.

Чтобы ВСЕ проверить, необходима процедура "импорта данных".

То есть, в динамические массивы следует завести свои динамические данные из сторонних источников.

Я не знаю, в МТ4/МТ5 эта процедура есть - или ее нет?

Каким образом в МТ4/МТ5 импортировать данные?

Это, вообще, возможно???

-------------------------------------------------------------------

Меня интересует импорт динамических данных, а не просто чтение данных из массива.

---------------------------------------------------------------------------------------------------------------

Кстати, вот здесь http://tol64.blogspot.com/2015/12/easy-and-fast-gui-mql.html этот импорт должен быть по построению.

Просто, без него никак нельзя.

------------------------------------------------------------------------------------------

Импорта я не вижу ни в MT4/MT5, ни в их расширениях.

Дайте мне импорт!!!

Библиотека "Easy And Fast GUI" для создания графических интерфейсов на MQL
  • tol64.blogspot.com
С этой статьи я начинаю еще одну серию, относящуюся к разработке графических интерфейсов. На текущий момент нет ни одной библиотеки кода, которая позволяла бы легко и быстро создавать качественные графические интерфейсы в MQL-приложениях. Я имею в виду графические интерфейсы, к которым мы все привыкли в известных операционных системах. Цель проекта — дать конечному пользователю такую возможность и научить это делать с помощью моей библиотеки. Я постарался сделать ее максимально понятной в изучении, с возможностями дальнейшего развития.
 
Aleksey Lebedev:

Бред лютый, достойный войти в анналы форума.

«Ай, Моська! знать она сильна,
Что лает на Слона!»

https://ru.wikisource.org/wiki/%D0%A1%D0%BB%D0%BE%D0%BD_%D0%B8_%D0%9C%D0%BE%D1%81%D1%8C%D0%BA%D0%B0_(%D0%9A%D1%80%D1%8B%D0%BB%D0%BE%D0%B2)

Алексей!

Я из тебя, на форуме, сделаю отбивную !!!

Извини!

 

Добрый день!

Подскажите, пожалуйста, как правильно реализовать заполнение индикаторного буфера данными путем копирования из буфера другого индикатора, вызываемого через iCustom? Идея в том, чтобы можно было вызывать этот же индикатор, построенный по данным другого инструмента в окне текущего инструмента.

Буфер данных, в итоге, пустой, график не строится. Буфер цвета не важен.

//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots   1
#property indicator_type1   DRAW_COLOR_HISTOGRAM
#property indicator_color1  Green,Red
#property indicator_style1  0
#property indicator_width1  3

//--- input data
input string OtherSymbol=""; //Название символа, по которому считать. Если пусто - текущий символ
//---- indicator buffers
double                    DataBuffer[];
double                    ColorsBuffer[];
//---- external indicator handle
int                       CustomHandle=0;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {  
   SetIndexBuffer(0,DataBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ColorsBuffer,INDICATOR_COLOR_INDEX);
   IndicatorSetString(INDICATOR_SHORTNAME,"PercentChangeHistogram");
   IndicatorSetInteger(INDICATOR_DIGITS,2);
//----
   if (OtherSymbol!="") //если есть имя другого символа, рекурсивно вызываем индикатор через iCustom 
      { 
      CustomHandle=iCustom(OtherSymbol,_Period,"PercentChangeHistogram","");
     if (CustomHandle==-1)
         {Alert ("iCustom function initialization failed!");
         return (INIT_FAILED);}
     }
   return (INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|  OnCalculate                                                     |
//+------------------------------------------------------------------+
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)
      return(0);
   int start=prev_calculated-1;
   if(start<1) start=1;
   //---
   if (OtherSymbol=="")// если input переменная содержит пустую строку, заполняем индикаторный массив через простой расчет функцией CalculateData
                       // если input переменная содержит не пустую строку, пытаемся заполнить индикаторный массив копированием данных другого индикатора
   CalculateData(start,rates_total,open,close);
   else
   CopyBuffer(CustomHandle,0,start,rates_total-prev_calculated,DataBuffer);
   //---
   return(rates_total);
  }
  
...
 
Aleksey Lebedev:

Бред лютый, достойный войти в анналы форума.

Алексей!

У тебя какой трейдерский стаж? -

- Никакого?

Раньше трейдеры рассуждали  просто и понятно?

- У тебя какой счет, Алексей - в плюсе или минусе, и сколько лет? 

- Или у тебя трейдерского счета вообще нет?

- Или, ты просто, безмозглый,  и решил учить других трейдеров?

- Таких много.

--------------------------------------------------------------------------------------

- А у меня трейдерский счет  есть, и вполне достойный. Давно.20 лет.  И я никого не собираюсь учить.

- Вот такой парадокс. 

 
neverness:

Алексей!

У тебя какой трейдерский стаж? -

- Никакого?

Раньше трейдеры рассуждали  просто и понятно?

- У тебя какой счет, Алексей - в плюсе или минусе, и сколько лет? 

- Или у тебя трейдерского счета вообще нет?

- Или, ты просто, безмозглый,  и решил учить других трейдеров?

- Таких много.

--------------------------------------------------------------------------------------

- А у меня трейдерский счет  есть, и вполне достойный. Давно.20 лет.  И я никого не собираюсь учить.

- Вот такой парадокс. 

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

 
Vitaly Muzichenko:

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

Это почему?

Или Вы считаете, что трейдеры - это "безграмотные идиоты", которые играют и делают ставки на рынке?

Тогда я один из них.

Только я интеграл от dx беру без труда. А Вы? - Что, проблемы возникли?

Вы явно не трейдер, как, впрочем, и многие другие "специалисты" на этом форуме!

Для трейдера рынок FOREX - это ''святая корова", которая ВСЕГДА ПРАВА.

Если Вы сможете протолкнуть свою идею через этот рынок - вы герой!

Если рынок Вас опрокинет, то Вы сами понимаете, что Вас ждет! 

--------------------------------------------------------------------------------------------------------

Но на рынке Forex  никого не банят - еще один парадокс!!!

Прав ты , или нет - неважно! За все уплачено!!!

 
Artyom Trishkin:

Ещё раз. Внимательно смотрим на картинку:


Спасибо за подсказку.

 
neverness:

Это почему?

Или Вы считаете, что трейдеры - это "безграмотные идиоты", которые играют и делают ставки на рынке?

Тогда я один из них.

Только я интеграл от dx беру без труда. А Вы? - Что, проблемы возникли?

Вы явно не трейдер, как, впрочем, и многие другие "специалисты" на этом форуме!

Для трейдера рынок FOREX - это ''святая корова", которая ВСЕГДА ПРАВА.

Если Вы сможете протолкнуть свою идею через этот рынок - вы герой!

Если рынок Вас опрокинет, то Вы сами понимаете, что Вас ждет! 

--------------------------------------------------------------------------------------------------------

Но на рынке Forex  никого не банят - еще один парадокс!!!

Прав ты , или нет - неважно! За все уплачено!!!

Вам о массивах, а вы о форекс. Парадокс однако! 

 
neverness:


- А у меня трейдерский счет  есть, и вполне достойный. Давно.20 лет.  И я никого не собираюсь учить.

- Вот такой парадокс. 

Ощущение, что вы возраст свой называете, а не стаж.
 

Почитал вашу переписку возникшую из моей темы, это всё конечно весело :-) но как насчет вопроса, который это бурление породил?

Объявление массива через SetIndexBuffer(1, tmp1) ничего не дает. Я конечно могу увеличивать размерность массива в том же цикле, но хочется узнать более простой и эффективный способ.