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

 

Большая просьба выложить исходник записи "Tester\cache\*.opt". По содержимому видно, что формат очень простой.

Работать с результатами Оптимизации очень нужно. Спасибо!

 

По какой-то причине производительность Тестера падает с нарастанием количества сделок. При этом никакого обращения к торговой истории не происходит со стороны советника.

Такое положение видится неправильным.

 

В Тестере запоминается интервал, соответствующий режиму "Вся история". Добавляю в кастомный символ историю, перегружаю Терминал, а интервал соответствующий "Вся история" остается неизменным.

При этом если выбрать всю историю, задав всю историю вручную, то все норм. Просьба поправить.

 

В обозначенно месте не хватает крестика - удаление соответствующей строке записи в кеше.

Много делаю оптимизаций. Некоторые уже давно не актуальны. А механизма удаления этих вариантов нет. Выпадает иногда огромный список и начинаешь искать среди ненужных свой вариант.

Поэтому просьба рассмотреть возможность удаления ненужных данных по крестику в обозначенном на картинке месте.

 
A100:
Ошибка при выполнении

Результат: true:false:7:4

Это как это строки разной длины оказались вдруг равны? При том что сравнение с помощью StringCompare дает противоположный == результат

Спасибо за сообщение, изменили поведение посимвольного сравнения строк.

Если раньше строки сравнивались как Z-строки (до нулевого символа), то теперь они сравниваются как PASCAL-строки (с учётом длины).

На существующие коды с "нормальными" строками (без Z-нулевого символа внутри) данное изменение не повлияет.

 
Большая просьба в Тестере маркеты закрывать по Bid/Ask, если последняя известная last нулевая.
 
Ilyas:

Спасибо за сообщение,

А что с этим делать?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2018.09.01 15:25

Ошибка при выполнении: Cannot find 'g' in 'Test2.ex5'

//Test.mqh
class A {};
//Test1.mq5
#include "Test.mqh"
#import "Test2.ex5"
        void g( A* );
#import
void OnStart()
{
        A  a[1];
        ArrayPrint( a ); //(*)
        g(&a[0]);
}
//Test2.mq5
#property library
#include "Test.mqh"
void g( A* ) export {}

А если в Test1.mq5 строку со (*) убрать - то нормально. А как она повлияла??? Build 1881\32

Это ведь не рядовая ошибка при компиляции - программа не запускается (и ArrayPrint там просто для примера - можно заменить на другую подходящую функцию)

Ведь эта ошибка уже год назад обнаружилась... исправлялась неоднократно но всплывала вновь и вновь. И здесь тоже не работает https://www.mql5.com/ru/forum/1111/page2131#comment_6575893

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.08.30
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
fxsaber:

Какую папку Терминала через mklink разместить на RAM-диск, чтобы данные считывались/писались не с SSD, а из памяти? Готов предоставить данные, какое это даст ускорение при Оптимизации.

Tester папку перенес на 5Gb RAMDisk и в MT5-директории выполнил

mklink /j Tester z:\Tester


Теперь SSD спит спокойно, Оптимизация стала в ~1.5 раза (на глаз) быстрее, бесплатно!

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

fxsaber, 2017.01.26 17:33

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

Например, оптимизирую. Осталось еще несколько часов. Но я вижу уже интересные результаты. Хочу посмотреть какой-то из хороших одиночных результатов - прогнать в бэктестере. Но при этом не останавливать оптимизацию (особенно актуально для ГА). Можно ли в такой ситуации освободить один из локальных агентов и направить ему одиночный прогон. А затем дальше загружать оптимизационными пакетами этот агент.

А то сейчас исследования встают колом, пока оптимизатор не закончит. А это иногда ну очень долго. 

Актуально, не смотря на отличные кеши. Просьба открыть формат opt-файлов.

Как пример, зачем это нужно. Вот отсортировал результаты Оптимизации по прибыльности (PF)

Посмотрите на количество трейдов - они статистически ничего не значат: меньше 30. Но у них PF зашкаливает и таких результатов сотни/тысячи. Ну зачем этот мусор в таблице?

Если бы был открыть opt-формат, то можно было бы этот мусор автоматом убивать, оставляя только интересные более-менее стат. значимые результаты.

Что уж говорить о кастомных сортировках по нескольким критериям одновременно и т.д.


ЗЫ Предполагается, что можно самому не только читать, но и писать opt-файлы. А затем скармливать его Тестеру, как это уже сейчас реализовано

Тем самым пользуясь всеми преимуществами GUI Тестера для почищенного от мусора кеша. Для этого нужно только открыть opt-формат.

 

Результаты Оптимизации можно сортировать по различным критериям

В MT5 уже есть механизм задания текстовых формул для так называемых формульных синтетиков.

Предлагаю использовать этот же механизм текстовых формул для задания произвольных критериев сортировки.