![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
2012.02.26 10:57:51 Tester quality of analyzed history is 100%
2012.02.26 10:57:51 Core 1 EURUSD,H1: testing of Experts\pattern10000.ex5 from 2009.12.01 00:00 to 2012.02.10 00:00 started
......
Вроде в логах всё красиво. Всё же попробуйте поискать ошибку в эксперте.
При беглом осмотре кода, например, я обнаружил, что в программе используется 3 файла, а в пропертях указан только один.
#property tester_file "primer_massivstarihpatternovdlyaraboty.csv"
поменял код - теперь видна ошибка
2012.02.26 11:24:56 Core 1 2009.12.01 00:00:00 error = 5004
ошибка открытия файла - хотя файл лежит в C:\ProgramData\MetaQuotes\Terminal\Common\Files и стоит #property tester_file "primer_massivstarihpatternovdlyaraboty.csv" и стоит флаг FILE_COMMON
Салют! Джентельмены подскажите пожалуйста. Пишу простой мультивалютный индикатор для отображения 2 инструментов(валютных пар) на одном графике. Подскажите через какую функцию обеспечить выбор и обработку данных для отрисовки по задаваемому инструменту. Если есть небольшой пример буду очень благодарен. Спасибо!
Сейчас у меня голый алгоритм индикации текущего графика выглядит так:
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[])
{
int i=0;
bool vol=true;
if(i<prev_calculated) i=prev_calculated-1;
while(i<rates_total && !IsStopped())
{
ExtCloseBuffer[i]=close[i];
if(i>0)
{
if(close[i]>close[i-1]) vol=true;
if(close[i]<close[i-1]) vol=false;
}
i++;
}
return(rates_total);
}
поменял код - теперь видна ошибка
2012.02.26 11:24:56 Core 1 2009.12.01 00:00:00 error = 5004
ошибка открытия файла - хотя файл лежит в C:\ProgramData\MetaQuotes\Terminal\Common\Files и стоит #property tester_file "primer_massivstarihpatternovdlyaraboty.csv" и стоит флаг FILE_COMMON
Салют! Джентельмены подскажите пожалуйста. Пишу простой мультивалютный индикатор для отображения 2 инструментов(валютных пар) на одном графике. Подскажите через какую функцию обеспечить выбор и обработку данных для отрисовки по задаваемому инструменту. Если есть небольшой пример буду очень благодарен. Спасибо!
Сейчас у меня голый алгоритм индикации текущего графика выглядит так:
...Получать данные можно через структуру MqlRates или отдельно каждую из таймсерий Справочник MQL5 / Доступ к таймсериям и индикаторам
Через MqlRates лучше тк она хранит и данные о времени бара (это важно тк бары на разных инструментах разсинхронизированы), но через таймсерии экономнее.
Но главная проблема для мультивалютников именно разсинхронизация, не каждому бару запрошенному по индексу в одном инструменте соответствует тодже индекс в другом инструменте. И чем дальше в лес тем толще партизаны, смещение по индексам накапливается.
Опять же придётся решать проблему разной длинны массивов (тк на разных инструментах разное количество данных).
Ну и третья проблема не всякий бар на чарте индикатора можно отобразить (например по родному символу бара нет, а по другим был, куда его пихать??).
Вот такие вот проблемки вырисовываются.
посмотрел, поместил файл в Mql5\Tester\Files
но тестер просто стоит на месте
Свойство #property tester_file предназначено именно для того, чтобы ручками ничего никуда не класть.
tester_file
string
Имя файла для тестера с указанием расширения, заключенное в двойные кавычки (как константная строка). Указанный файл будет передан тестеру в работу. Входные файлы для тестирования, если необходимы, должны указываться всегда
Если для работы программы требуется некоторый файл с данными datafile.csv, который лежит в папке каталог_терминала\MQL5\Files, то файл будет автоматически перенесен тестером в каталог_агента_тестирования\MQL5\Files (для этого и необходимо указание #property tester_file datafile.csv).
поменял код - теперь видна ошибка
2012.02.26 11:24:56 Core 1 2009.12.01 00:00:00 error = 5004
ошибка открытия файла - хотя файл лежит в C:\ProgramData\MetaQuotes\Terminal\Common\Files и стоит #property tester_file "primer_massivstarihpatternovdlyaraboty.csv" и стоит флаг FILE_COMMON
Ошибка видна, только не понятно к какому файлу относится
Почему в пропертях закомментировал остальные файлы? И кстати там ошибка: одинаковые расширения, хотя по тексту один из них "signal10000.dat".
У меня твоих файлов нет, поэтому проверяй сам.
Теперь - как найти эту злополучную папку каталог_агента_тестирования\MQL5\Files ? Начиная с Windows Vista система защиты и политика безопасности стали гораздо сложнее и способны запутать кого-угодно. Самый простой способ найти эту папку - спросить у тестера, он то точно знает где лежат агенты тестирования. В Журнале тестера по окончании тестирования всегда пишется путь к логам тестера, например:
Значит, папка агента тестирования находится здесь - C:\Program Files\MetaTrader 5 Alpari\Tester\Agent-127.0.0.1-3000\logs\20120226.log.
В лоб не получится. Нельзя. MetaQuotes Software Corp. против. // Я считаю что ошибочно, но им, возможно, виднее.
Есть один довольно трудоёмкий вариант - использовать режим математических расчётов. Если не слабо - попробуйте.
Теперь - как найти эту злополучную папку каталог_агента_тестирования\MQL5\Files ? Начиная с Windows Vista система защиты и политика безопасности стали гораздо сложнее и способны запутать кого-угодно. Самый простой способ найти эту папку - спросить у тестера, он то точно знает где лежат агенты тестирования. В Журнале тестера по окончании тестирования всегда пишется путь к логам тестера, например:
Значит, папка агента тестирования находится здесь - C:\Program Files\MetaTrader 5 Alpari\Tester\Agent-127.0.0.1-3000\logs\20120226.log.
теперь выдает
2012.02.26 15:47:46 Tester file C:\Users\openlive\AppData\Roaming\MetaQuotes\Terminal\9C3619DDD286B60B1DB9B989A2FFC701\MQL5\Files\signal10000.csv open error [32]