Обсуждение статьи "Как опубликовать свой продукт в сервисе Маркет" - страница 36
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Разобрался. Прикрепил индикаторы в советник через #resource . Одно Но.. До этого советник шустрый был, быстро в Тестере летал, а сейчас скорость в десятки раз снизилась. Вроде все по правилам сделал, как в Справочнике написано, функцию вставил для поиска пути к индикатору GetRelativeProgramPath() - но скорость черепашья, один день тестирует 5 минут..
данные индикатора опрашиваются на каждом тике?
данные индикатора опрашиваются на каждом тике?
Да. Все осталось как прежде в коде. Поменялось только расположение индикатора. Раньше он запрашивался из терминала из \\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));
}
Да. Все осталось как прежде в коде. Поменялось только расположение индикатора. Раньше он запрашивался из терминала из \\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));
}
Ну нагородили...
Я сперва так и делал "::Indicators\\##Contrast.ex4" . Потом где то на форуме увидел такой вариант :
string path=GetRelativeProgramPath();
path=path+"::Indicators\\##Contrast.ex4";
Попробовал и так. В общем и в первом и втором варианте скорость тестирования не изменилась - она была низкой по сравнению, если брать значения индикатора из каталога терминала.
Я сперва так и делал "::Indicators\\##Contrast.ex4" . Потом где то на форуме увидел такой вариант :
string path=GetRelativeProgramPath();
path=path+"::Indicators\\##Contrast.ex4";
Попробовал и так. В общем и в первом и втором варианте скорость тестирования не изменилась - она была низкой по сравнению, если брать значения индикатора из каталога терминала.
Вы увидели на форуме не относящееся к советникам. В справке об этом всё написано.
Да, есть достаточно заметное замедление при использовании индикатора в качестве ресурса.
Для советника вполне возможно разместить в нём лишь расчётную часть от индикатора и к ней обращаться.
Но это при условии наличия исходника индикатора.
Вы увидели на форуме не относящееся к советникам. В справке об этом всё написано.
Да, есть достаточно заметное замедление при использовании индикатора в качестве ресурса.
Для советника вполне возможно разместить в нём лишь расчётную часть от индикатора и к ней обращаться.
Но это при условии наличия исходника индикатора.
Сейчас столкнулся с такой проблемой. До этого заполнял черновик, чтобы выложить советник на Маркете, но не получилось с скриншотами и закрыл страницу. Сейчас в своем профиле не пойму, как войти в старый Черновик - нет его. Начал заново заполнять, во вкладке Общая заново написал название советника, цену и т.д. - но не проходит, пишут что продукт с таким названием уже существует. Проверил в Поиске на Маркете - нет советников с таким названием. Я подозреваю, что когда вначале неудачно заполнил Черновик это название забронировалось. И после каждой неудачной попытки отправить советника на проверку придется менять название советника, скриншоты ?
Сейчас столкнулся с такой проблемой. До этого заполнял черновик, чтобы выложить советник на Маркете, но не получилось с скриншотами и закрыл страницу. Сейчас в своем профиле не пойму, как войти в старый Черновик - нет его. Начал заново заполнять, во вкладке Общая заново написал название советника, цену и т.д. - но не проходит, пишут что продукт с таким названием уже существует. Проверил в Поиске на Маркете - нет советников с таким названием. Я подозреваю, что когда вначале неудачно заполнил Черновик это название забронировалось. И после каждой неудачной попытки отправить советника на проверку придется менять название советника, скриншоты ?
Попробуйте пройти по ссылке https://www.mql5.com/ru/market/my
Попробуйте пройти по ссылке https://www.mql5.com/ru/market/my
Спасибо. Нашел, разобрался. Конечно, было бы намного удобней, чтобы все это делалось из профиля, чтобы новички, подобные мне, не искали и не задавали подобные вопросы..
Спасибо. Нашел, разобрался. Конечно, было бы намного удобней, чтобы все это делалось из профиля, чтобы новички, подобные мне, не искали и не задавали подобные вопросы..
Это сперва кажется всё непривычным. Затем будете не глядя попадать в нужный раздел.
Спасибо. Нашел, разобрался. Конечно, было бы намного удобней, чтобы все это делалось из профиля, чтобы новички, подобные мне, не искали и не задавали подобные вопросы..
Просто нажмите «Маркет» там «Мои продукты» и «Черновики». После чего все вопросы отпадут.