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

 
void f( int = 0, ) {}

Это правильно, что компилируется без ошибок?

 
Ilyas:

Вы нарвались на особенность работы памяти в Windows

Сразу после ArrayResize добавьте

Это инициирует реальное выделение физической памяти, чтобы этого не происходило при тесте.


Вот результаты с моего компьютера

Да, действительно, работает.
Спасибо. 
Очень интересно. Хотя и не понятно.
Будем знать, что для быстрой работы с памятью после ArrayResize нужно делать полную инициализацию массива с помощью ArrayInitialize или ArrayFill (работает и так и так).  С ArrayInitialize проще.

 Пробовал инициализировать каждый 4096 элемент массива. Но на повышение быстродействия работы ArrayFill это не влияет. 

for (int i=0;i<size;i+=4096) arr[i]=0;
 
Nikolai Semko:

Будем знать, что для быстрой работы с памятью после ArrayResize нужно делать полную инициализацию массива с помощью ArrayInitialize или ArrayFill (работает и так и так).  С ArrayInitialize проще.

Вы неправильный вывод сделали. Все и так работает быстро. Просто в "тормозном" варианте Вы замеряли помимо заполнения еще и реальное выделение памяти, т.к. ArrayResize - это намерение выделить память, а не само выделение.

 
fxsaber:

Вы неправильный вывод сделали. Все и так работает быстро. Просто в "тормозном" варианте Вы замеряли помимо заполнения еще и реальное выделение памяти, т.к. ArrayResize - это намерение выделить память, а не само выделение.

Да, Вы правы.

Спасибо!
А еще я был не прав, когда утверждал, что связка ArrayInitialize + ArrayCopy работает быстрее, т.к. заполнял массив теми же значениями, что заполнял до этого ArrayFill. Просто компилятор не дурак и не делает одну и ту же работу два раза.
Если заполнять массив уже другими значениями то результат будет другим:

2018.09.06 12:10:36.602 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayFill первая попытка= 299
2018.09.06 12:10:36.602 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayInitialize + ArrayCopy = 425
2018.09.06 12:10:36.602 TestArrayFill (EURUSD,H1)       Время заполнения через ArrayFill вторая попытка = 78

Таким образом я лажанулся. Сорри.
Продолжаем использовать ArrayFill в рабочем порядке.

Файлы:
 

А почему у меня в профиле изменилась страна проживания? 
Последние три года была Канада. Я не менял. И теперь изменить не могу. 

Т.е. первоначальная страна проживания при регистрации это навсегда. Даже если Вы проживаете не в России и стали резидентом или гражданином другой страны?

 
Дайте знать, будете этой проблемой заниматься или нет?

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

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

fxsaber, 2018.09.06 09:31

Почему так иногда происходит? Тестер позиции закрывает не на последнем тике, а на предпоследнем. Ситуация на некоторых кастомных символах.

Если нужно воспроизведение, готов предоставить.


ЗЫ Почему это важно. На кастомных символах с биржевым исполнением маркеты исполняются по ласт-ценам. Для кастомных символов чаще всего тиковая история - bid/ask, без last. Поэтому на таких символах тестер закрывает текущие позиции на последнем тике по нулевой last. Обходится это тем, что в последнем тике насильно прописывается last = (bid + ask) / 2. Однако, случаются ситуации, когда Тестер по какой-то причине все закрывает не на последнем, а на предпоследнем тике, где last нулевой. По итогу имеем вот такую кочергу


Смотришь результаты Оптимизации и видишь какие-то огромные числа прибыли/убытка. И не поймешь, что это баг, пока не запустишь одиночное тестирование и не посмотришь в конец торговой истории.

 
Nikolai Semko:

А почему у меня в профиле изменилась страна проживания? 
Последние три года была Канада. Я не менял. И теперь изменить не могу.

Т.е. первоначальная страна проживания при регистрации это навсегда. Даже если Вы проживаете не в России и стали резидентом или гражданином другой страны?

Вы зарегистрированы как продавец из России. Если желаете внести правки в регистрационные данные продавца - вэлкам

 
 
fxsaber:
Дайте знать, будете этой проблемой заниматься или нет?
Разберёмся
 
Marsel:

Вы зарегистрированы как продавец из России. Если желаете внести правки в регистрационные данные продавца - вэлкам

Подскажите тогда где спрятаны эти настройки? Я не могу их найти. В СД тоже нет такой опции.
Причина обращения: