Обсуждение статьи "Как опубликовать свой продукт в сервисе Маркет" - страница 46

 
Evgenii Sidorov:

#property indicator_separate_window

#property indicator_chart_window

а как для разных буферов указать 2 разных отображения?

Никак. ObjectCreate в помощь. Рисуйте объектами.

 
Artyom Trishkin:

Уровень FreezeLevel не проверяете - если цена слишком близко к, например, уровню СтопЛосс, то СтопЛосс невозможно модифицировать. Расстояние заморозки как раз определяется уровнем FreezeLevel

тут ведь не стоп изменяется, а именно закрывается сделка или я не прав?

 
Vladimir Khlystov:

тут ведь не стоп изменяется, а именно закрывается сделка или я не прав?

Если операции заморожены, то и закрыть нельзя.  
 

Привет, ребята!

Надеюсь, все хорошо.

Я только что создал советника, как лучше всего лицензировать его для рынка mql? Я хочу представить этот советник для продажи на рынке, но я не хочу добавлять неправильный тип лицензирования, если это не нужно. Что вы, ребята, можете посоветовать?

 
MOTIONCAPITAL:

Привет, ребята!

Надеюсь, все хорошо.

Я только что создал советника, как лучше всего лицензировать его для рынка mql? Я хочу представить этот советник для продажи на рынке, но я не хочу добавлять неправильный тип лицензирования, если это не нужно. Что вы, ребята, можете посоветовать?

Существует только один способ предложения/лицензирования в MQL5 Market, читайте правила:

https://www.mql5.com/ru/market/rules

 
Aleksei Andarzhanov:
Написал советника на MQL4. Хочу выложить в Маркете. Для работы советника требуются два пользовательских индикатора, которых нет в терминале. Не пойму, как прикрепить их к советнику, перед отправкой на проверку. И еще. В правилах написано, что советник должен быть ex5. Если он на  MQL4 написан, как его в  ex5 сделать?

Рано Вам еще в маркет, если такие вопросы задаете. 

 
Evgeniy Zhdan:

Рано Вам еще в маркет, если такие вопросы задаете. 

 Разобрался. Прикрепил индикаторы в советник через #resource . Одно Но.. До этого советник шустрый был, быстро в Тестере летал, а сейчас скорость в десятки раз снизилась. Вроде все по правилам сделал, как в Справочнике написано, функцию вставил для поиска пути к индикатору GetRelativeProgramPath() - но скорость черепашья, один день тестирует 5 минут..

 
Aleksei Andarzhanov:

 Разобрался. Прикрепил индикаторы в советник через #resource . Одно Но.. До этого советник шустрый был, быстро в Тестере летал, а сейчас скорость в десятки раз снизилась. Вроде все по правилам сделал, как в Справочнике написано, функцию вставил для поиска пути к индикатору GetRelativeProgramPath() - но скорость черепашья, один день тестирует 5 минут..

данные индикатора опрашиваются на каждом тике?

 
Denis Nikolaev:

данные индикатора опрашиваются на каждом тике?

 Да. Все осталось как прежде в коде. Поменялось только расположение индикатора. Раньше он запрашивался из терминала из \\Indicators , а теперь из самой программы ex4.

#resource "\\Indicators\\##Contrast.ex4"

///////////

    string path=GetRelativeProgramPath();

    path=path+"::Indicators\\##Contrast.ex4";

   ContrastMain_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,0,0),Digits);

   ContrastSignal_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,1,0),Digits);

  //////////

  string GetRelativeProgramPath() 

  { 

   int pos2; 

//--- получаем абсолютный путь к программе 

   string path=MQLInfoString(MQL_PROGRAM_PATH); 

//--- находим позицию подстроки "\MQL4\" 

   int    pos =StringFind(path,"\\MQL4\\"); 

//--- подстрока не найдена - ошибка 

   if(pos<0) 

      return(NULL); 

//--- пропускаем каталог "\MQL4" 

   pos+=5; 

//--- пропускаем лишние '\' 

   while(StringGetCharacter(path,pos+1)=='\\') 

      pos++; 

//--- если это ресурс, возвращаем путь относительно MQL4-каталога 

   if(StringFind(path,"::",pos)>=0) 

      return(StringSubstr(path,pos)); 

//--- найдем разделитель для первого подкаталога в MQL4 (например, MQL4\Indicators) 

//--- если его нет, то вернем путь относительно MQL4-каталога 

   if((pos2=StringFind(path,"\\",pos+1))<0) 

      return(StringSubstr(path,pos)); 

//--- вернем путь относительно подкаталога (например, MQL4\Indicators) 

   return(StringSubstr(path,pos2+1)); 

  } 

 
Aleksei Andarzhanov:

 Да. Все осталось как прежде в коде. Поменялось только расположение индикатора. Раньше он запрашивался из терминала из \\Indicators , а теперь из самой программы ex4.

#resource "\\Indicators\\##Contrast.ex4"

///////////

    string path=GetRelativeProgramPath();

    path=path+"::Indicators\\##Contrast.ex4";

   ContrastMain_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,0,0),Digits);

   ContrastSignal_15 =NormalizeDouble(iCustom(NULL,15,path,coeff_1,1,0),Digits);

  //////////

  string GetRelativeProgramPath() 

  { 

   int pos2; 

//--- получаем абсолютный путь к программе 

   string path=MQLInfoString(MQL_PROGRAM_PATH); 

//--- находим позицию подстроки "\MQL4\" 

   int    pos =StringFind(path,"\\MQL4\\"); 

//--- подстрока не найдена - ошибка 

   if(pos<0) 

      return(NULL); 

//--- пропускаем каталог "\MQL4" 

   pos+=5; 

//--- пропускаем лишние '\' 

   while(StringGetCharacter(path,pos+1)=='\\') 

      pos++; 

//--- если это ресурс, возвращаем путь относительно MQL4-каталога 

   if(StringFind(path,"::",pos)>=0) 

      return(StringSubstr(path,pos)); 

//--- найдем разделитель для первого подкаталога в MQL4 (например, MQL4\Indicators) 

//--- если его нет, то вернем путь относительно MQL4-каталога 

   if((pos2=StringFind(path,"\\",pos+1))<0) 

      return(StringSubstr(path,pos)); 

//--- вернем путь относительно подкаталога (например, MQL4\Indicators) 

   return(StringSubstr(path,pos2+1)); 

  } 

Ну нагородили...
В iCustom() нужно такой путь подставлять:
"::Indicators\\##Contrast.ex4"