Ошибки, баги, вопросы - страница 940

 

Добрый день.

Подскажите, что можно сделать ...

Вместо папки C:\Program files\MT 5 .........  всё устанавливается в папку  C:\Users\Iam\AppData\Roaming\MetaQuotes\Terminal\  ...

Несколько раз удалял и устанавливал МТ 5 - результат тот-же. Все это произошло после установки Windows 8.

 

С уважением, Э.Ковалев 

 
erkov:

Добрый день.

Подскажите, что можно сделать ...

Вместо папки C:\Program files\MT 5 .........  всё устанавливается в папку  C:\Users\Iam\AppData\Roaming\MetaQuotes\Terminal\  ...

Несколько раз удалял и устанавливал МТ 5 - результат тот-же. Все это произошло после установки Windows 8.

 

С уважением, Э.Ковалев 

у меня на семерке также, туда ставятся все советники индюки и тд

видимо это "по умолчанию"

мне тоже интересно как это поменять? а то пока дороешся до этой папки....не удобно вобщем

 
Access violation write to 0x000000001535C1D8


вот такое выдает скрипт, скрипт в цыкле вызывает один и тот же индикатор, только параметры меняются, примерно после 300 вызовов вот это сообщение

в начале цикла формирую хэндл

вызываю индюк

в конце каждого цикла ставлю IndicatorRelease(...);

может еще чтото надо чтоб индикатор удалить

 
vgeny:

у меня на семерке также, туда ставятся все советники индюки и тд

видимо это "по умолчанию"

мне тоже интересно как это поменять? а то пока дороешся до этой папки....не удобно вобщем

Посмотрите во встроенной справке  терминала - Справка по MetaTrader 5Начало работыЗапуск терминала:

Гостевой режим

Отличием гостевого режима запуска клиентского терминала является размещение его изменяемых файлов отдельно от неизменяемых. Данный режим запускается, если терминал установлен в системную папку (папка ОС, Program Files), а права пользователя на запись в нее ограничены.

Гостевой режим также включается в следующих ситуациях:

  • Если включена система UAC (User Account Control).
  • Если подключение к компьютеру осуществляется удаленно (Remote Desktop Protocol, RDP).

В вышеописанных ситуациях все изменяемые файлы терминала, в зависимости от используемой операционной системы, хранятся в следующих директориях:

Microsoft Windows XP:

  • C:\Documents and Settings\username\Application Data\MetaQuotes\Terminal\instance_id\

Microsoft Windows Vista и выше:

  • C:\Users\username\AppData\Roaming\MetaQuotes\Terminal\instance_id\

Здесь "С" — буква логического диска, на котором установлена операционная система, "username" — имя учетной записи в операционной системе, под которой был установлен терминал, а "instance_id" — уникальный идентификатор, генерируемый на основе пути к каталогу, в который установлен терминал.

Для быстрого доступа к этим папкам в терминале предусмотрена специальная команда — "Открыть каталог данных Открыть каталог данных", расположенная в меню "Файл".

  • В гостевом режиме для каждой учетной записи Windows каталог хранения изменяемых файлов терминала будет различаться.
  • Для принудительного запуска терминала в основном режиме следует запустить его из командной строки с ключом /portable.
  • Подробное описание структуры файлов клиентского терминала и их назначения приведены в соответствующем разделе.

Если не хотите иметь проблем с системой безопасности - не устанавливайте терминал в папку у /Program Files/.

Почитайте также статью Быстрое погружение в MQL5


 
vgeny: перед печатью

k2 = NormalizeDouble(k2, 2);

в журнале вот так получается

0.07000000000000001

и именно только когда коэффициент 0,07

тип к2       double k2;

в чем может быть дело?

По всей видимости, именно так и выглядит это число после нормализации. Посмотрите в Справочнике примечание к описанию функции NormalizeDouble(): что выдаст на печать нижеследующая строчка?

Print("DoubleToString(a,8)=",DoubleToString(a,8)); // выведем с заданной точностью

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 
vgeny:Access violation write to 0x000000001535C1D8

вот такое выдает скрипт, скрипт в цыкле вызывает один и тот же индикатор, только параметры меняются, примерно после 300 вызовов вот это сообщение

в начале цикла формирую хэндл, вызываю индюк, в конце каждого цикла ставлю IndicatorRelease(...);

может еще чтото надо чтоб индикатор удалить

Непрерывный вызов индикатора  в цикле? Это очень тяжкий путь. Вот, найдите начало и прочитайте внимательно всю тему: Фактически в 99% случаев вызов IndicatorRelease является логической ошибкой программиста
 
vgeny:

подскажите почему так получается, строка цикла

for(k2 = 0.01; k2 < 0.1; k2 += 0.01)

коэффициент к2 отправляю на печать

Print(k2);

перед печатью

k2 = NormalizeDouble(k2, 2);

в журнале вот так получается

0.07000000000000001

и именно только когда коэффициент 0,07

тип к2       double k2;

в чем может быть дело?

Вопрос уже много раз обсуждался.

Почитайте тут.

 
Yedelkin:
Непрерывный вызов индикатора  в цикле? Это очень тяжкий путь. Вот, найдите начало и прочитайте внимательно всю тему: Фактически в 99% случаев вызов IndicatorRelease является логической ошибкой программиста

ок 900 страниц))

Посоветуйте другой способ осмотра линии индикатора, 10000 разных вариантов параметра индикатора, результат каждого я осматриваю на размах и тд, сохраняю результат, беру следующий параметр и тд

например если бы вы МА рассматривали, 10000 периодов как бы вы это реализовали??

 
alexvd:

Вопрос уже много раз обсуждался.

Почитайте тут.

ок, спасибо за терпение и понимание)))   Юзеры одним словом)))
 

vgeny:

Yedelkin:
Непрерывный вызов индикатора  в цикле? Это очень тяжкий путь. Вот, найдите начало и прочитайте внимательно всю тему: Фактически в 99% случаев вызов IndicatorRelease является логической ошибкой программиста

ок 900 страниц))

Нет, не 900 страниц. Тема про неэффективное использование функции IndicatorRelease() врял ли наберёт более 10 страниц в окрестностях указанной ссылки. Именно поэтому я и посоветовал "найти начало" темы. Общую ветку "Ошибки, баги, вопросы" для этого перечитывать не обязательно.

vgeny: Посоветуйте другой способ осмотра линии индикатора, 10000 разных вариантов параметра индикатора, результат каждого я осматриваю на размах и тд, сохраняю результат, беру следующий параметр и тд

 Т.е. Вам для анализа нужно 10 тысяч индикаторов (10 тысяч версий одного индикатора с разными параметрами)? Могу ошибаться, но, по-моему, ответ на аналогичный вопрос тоже давался - попробуйте поискать по форуму темы с ключевым словом IndicatorRelease.

vgeny: например если бы вы МА рассматривали, 10000 периодов как бы вы это реализовали??

Трудно ответить на вопрос, когда не понимаешь смысла в использовании такого огромного количества периодов/параметров. Но, чисто теоретически, - я бы отказался от идеи использовать 10 тысяч стандартных индикаторов (10 тысяч версий стандартного индикатора с разными параметрами), и написал бы свой индикатор (один), который пересчитывает на каждом тике 10 тысяч значений и прочие производные показатели. С минимизацией количества индикаторных буферов - ведь Вам же нужны сами рассчитанные данные, а не их отражение на графике. И с обязательной проверкой, успевает ли такой гибрид осуществить все расчёты за один тик. Или за минуту, если Ваш анализ допускает не тиковый, а поминутный пересчёт.

Вот простой пример - ленты Боллинджера. Можно использовать три отдельных индикатора - для средней линии, верхней и нижней. А можно всё элегантно впихнуть в одну программу-индикатор. 

Причина обращения: