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

 
Dmitriy VC #:

Это понятно. Так и сделано.

Вопрос в том, как его в Маркете разместить. При публикации Эксперта, возможно ли указать еще и файл ресурса... 

Перефразирую:

- если в коде Эксперта есть ссылка на ресурс в котором указан кастомный индикатор, будет ли система предлагать загрузить и его тоже?

Ресурс вставляется командой #resource "<путь к файлу ресурса>"

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

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

Компилятор ищет ресурс по указанному пути в следующей последовательности:

  • если в начале пути стоит разделитель обратная косая черта "\" (пишется "\\"), то ресурс ищется относительно каталога каталог_данных_терминала\MQL4\,
  • если обратной косой черты нет, то ресурс ищется относительно расположения исходного файла, в котором этот ресурс прописывается.
 

вот внизу есть подключение индикатора в качестве ресурса

https://www.mql5.com/ru/docs/runtime/resources

Документация по MQL5: Программы MQL5 / Ресурсы
Документация по MQL5: Программы MQL5 / Ресурсы
  • www.mql5.com
Ресурсы - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
По идее, при подключении индикатора к советнику через ресурс, при компиляции получается один файл, который Вы можете разместить в Маркете.
 
Aleksei Stepanenko #:
По идее, при подключении индикатора к советнику через ресурс, при компиляции получается один файл, который Вы можете разместить в Маркете.

Увы. Индикатор это Индикатор и при подключении через ресурс, Советник лишь обращается к нему. Они ведь по разному работают. Один файл получается даже когда звуки и картинки в ресурсе...

 
Fast235 #:

вот внизу есть подключение индикатора в качестве ресурса

https://www.mql5.com/ru/docs/runtime/resources

Ребята, у меня тут хоть и мало сообщений, но "прописные истины" я знаю.

И вопрос не в том как в качестве ресурса подключить к советнику, а как один продукт состоящий из двух файлов загрузить на Маркет...

Кто-нибудь имеет такой опыт?

 
в один файл и упаковывается все, все доп индикаторы - все включается в один файл(советник), о каких еще может быть речь двух файлах?
 
Fast235 #:
в один файл и упаковывается все

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

Например, Индикатор работает с OnCalculate() и не может работать с OnTrade(). Как можно это все в один ехе? Научите!

Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Выполнение программ - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Dmitriy VC #:

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

можете продолжать дальше так думать)

 
Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Выполнение программ - Программы MQL5 - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Вот индикатор:

#property version   "1.00"
#property strict
#property indicator_chart_window

int OnInit()
   {
   
   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[])
   {
   printf("preved medved!");
   return(rates_total);
   }

Вот эксперт:

#property version   "1.00"
#property strict
#resource "\\Indicators\\Res_Ind.ex4"

int OnInit()
   {
   return(INIT_SUCCEEDED);
   }

void OnDeinit(const int reason)
   {
   
   }

void OnTick()
   {
   double val=iCustom(Symbol(),0,"::Indicators\\Res_Ind.ex4",0,0);
   }

Вот всё в одном файле:

Четвёрка правда, но в пятёрке также.
Файлы:
Res_Exp.ex4  12 kb
Причина обращения: