Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1017

 

вопросы от начинающих...

а я вот кончающий, и у меня встаёт вопрос.


вот это нужно рассматривать в качестве пожеланий метаквотам, или это уже есть?


16. чтобы фон индикатора в подвале был прозрачным и, таким образом, не закрывал цену.

17. чтобы цветовые настройки индикатора сохранялись в шаблон.

см прикрепл.


спсб

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

могу это сделать?

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

спсб

 
Stalker:

вопросы от начинающих...

а я вот кончающий, и у меня вопрос.


вот это нужно рассматривать в качестве пожеланий метаквотам, или это уже есть?


16. чтобы фон индикатора в подвале был прозрачным и, таким образом, не закрывал цену.

17. чтобы цветовые настройки индикатора сохранялись в шаблон.

https://hkar.ru/XGKT (у меня НЕТ ВОЗМОЖНОСТИ ВСТАВИТЬ КАРТИНКУ, вот доказательство https://hkar.ru/XI9n )


спсб

Ну, когда кончишь попробуй просто перетащить картинку в окно ввода текста.

 
Alexey Viktorov:

Ну, когда кончишь попробуй просто перетащить картинку в окно ввода текста.

сделал вырезку и нажал вставить. не помогло! прикрепил.
[Удален]  
Alexey Viktorov:

Я немного не о том. Ведь ничего не мешает временно скопировать эти два индикатора в нормальное место, скомпилировать, удалить и работать советником без ограничений.

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

Дошли руки )))

Сделал. Подключил ресурс, скомпилировал. Работает. Есть у меня терминал "чистый", без СС. Скопировал я этот индикатор в него, запустил.... И не работает (((

Это почему?

//----------------------------------------------------------------------------------------------
#resource   "\\Indicators\\Market\\XXXX.ex5"
//----------------------------------------------------------------------------------------------
#property   strict
........
   handle_MA = iCustom(Symbol(),0,"::Indicators\\Market\\XXXX.ex5",InpPeriodMA);
   if(handle_MA == INVALID_HANDLE)                                         // проверяем наличие хендла индикатора
   {
      Print("Не удалось получить хендл индикатора handle_MA");             // если хендл не получен, то выводим сообщение в лог об ошибке
      return(INIT_FAILED);                                                 // завершаем работу с ошибкой
   }
2019.03.23 14:24:18.908 XXXX    invalid license (538)
2019.03.23 14:24:18.908 my_XXXX (USDCHF,H1)     cannot load custom indicator '....\MQL5\Indicators\my_XXXX.ex5::Indicators\Market\XXXX.ex5' [4802]
2019.03.23 14:24:18.908 my_XXXX (USDCHF,H1)     Не удалось получить хендл индикатора handle_MA
 
Сергей Таболин:

Дошли руки )))

Сделал. Подключил ресурс, скомпилировал. Работает. Есть у меня терминал "чистый", без СС. Скопировал я этот индикатор в него, запустил.... И не работает (((

Это почему?

много вариантов почему, я пробовал с ресурсами работать, тоже не сразу получилось, как вариант - имя ресурса не должно превышать 63 символа

Длина константной строки <путь_к_файлу_ресурса> не должна превышать 63 символа.

и сам путь должен быть правильным, я бы сначала обычнй индикатор попробовал бы подключить, а потом уже из Маркета - индикаторы из Маркета тоже с ограничением, демо работают только в тестере и индикаторы из Маркета нельзя просто копированием переносить - нужно скачивать в каждый терминал
 
Сергей Таболин:

С такими именами сложно что-то понять. У меня с подключением индикаторов в качестве ресурсов проблем нету.


 
Сергей Таболин:

Дошли руки )))

Сделал. Подключил ресурс, скомпилировал. Работает. Есть у меня терминал "чистый", без СС. Скопировал я этот индикатор в него, запустил.... И не работает (((

Это почему?

А при каких делах тут

#property   strict
[Удален]  
Alexey Viktorov:

С такими именами сложно что-то понять. У меня с подключением индикаторов в качестве ресурсов проблем нету.


Наличие исходника (.mq5) обязательно?

Alexey Viktorov:

А при каких делах тут

А разве это влияет на подключение ресурса? 

 
Сергей Таболин:

Наличие исходника (.mq5) обязательно?

быстрее проверить, вот сделал в МТ5 подключение через ресурс, проблем не вижу

// close.mql5
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

double buff[];

int OnInit()
  {
   SetIndexBuffer(0,buff,INDICATOR_DATA);
   return(INIT_SUCCEEDED);
  }

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[])
  {
   int i,limit;
   if(prev_calculated==0) limit=0; else limit=prev_calculated-1;
   for(i=limit;i<rates_total;i++) buff[i]=close[i];
   return(rates_total);
  }

и подключаем этот индикатор в виде ресурса, потом удалил этот индикатор, чтобы проверить, что реально из ресурсов идет вызов:

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot Label1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

#resource "close.ex5"

//--- indicator buffers
double         Label1Buffer[];
int handle;

int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,Label1Buffer,INDICATOR_DATA);
   handle = iCustom(Symbol(),0,"::close.ex5");
   if(handle == INVALID_HANDLE)                                         // проверяем наличие хендла индикатора
   {
      Print("Не удалось получить хендл индикатора handle_MA");             // если хендл не получен, то выводим сообщение в лог об ошибке
      return(INIT_FAILED);                                                 // завершаем работу с ошибкой
   }
//---
   return(INIT_SUCCEEDED);
  }

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[])
  {
//---
   int copy=CopyBuffer(handle,0,0,rates_total,Label1Buffer); 
//--- return value of prev_calculated for next call
   return(rates_total);
  }