Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А может быть Вы его замучали? :)
Так и есть. Достается ему очень сильно. Надо отдать должное - в ступор хоть и впадает, но редко.
Симпатичный тиковый индикатор написал. Отлаживать редкие сбои лень.
Так и есть. Достается ему очень сильно. Надо отдать должное - в ступор хоть и впадает, но редко.
Симпатичный тиковый индикатор написал. Отлаживать редкие сбои лень.
Удается каждый раз укладывать ровно все тики в свечу в реальном времени?
Добавлено:
В режиме COPY_TICKS_TRADE с проверкой по объемам.
Удается каждый раз укладывать ровно все тики в свечу в реальном времени?
Добавлено:
В режиме COPY_TICKS_TRADE с проверкой по объемам.
У меня несколько другое. Типа "не имеет аналогов" и бла-бла-бла.
По производительности не думаю, т.к. в ближайшем билде обещано ее существенное улучшение.
У меня несколько другое. Типа "не имеет аналогов" и бла-бла-бла.
По производительности не думаю, т.к. в ближайшем билде обещано ее существенное улучшение.
Да тут дело не в производительности... бывают такие ситуации, например сейчас:
Индикатор собирает тики и считает по ним объем. Потом сравнивает этот объем с объемом из volume[].
И случаются ошибки нескольких ситуаций:
1. Иногда некорректно просчитывается объем первой свечи дня (не совпадает с контрольным);
2. Иногда объем по тикам считается корректно, а volume возвращает некорректное значение;
3. Иногда объем по тикам считается некорректно, а volume возвращает некорректное значение;
Самое интересное, что если ошибки 1,2 или 3 случаются на истории, после перекомпиляции индикатора ошибка не пропадает. А в случае подключения к другому серверу - пропадает.
Короче, чудеса пока не заканчиваются.
Если этот пост прочитают разработчики и захотят разобраться - милости прошу в сервисдеск, предоставлю все исходники.
Вот как надо тестировать CopyTicks:
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnTick()
{
ulong from =(TimeTradeServer()-1200)*1000;
ulong ticks =GetMicrosecondCount();
int records=CopyTicks(_Symbol,ExtArr,COPY_TICKS_INFO,from,2048);
ticks=GetMicrosecondCount()-ticks;
Print("Time: ",ticks," msc for ",records," records");
}
Вот вывод в микросекундах: 95 микросекунд на выборку 2048 INFO тиков за прошлые 20 минут
Тормоза после закрытия рынка
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
void OnStart()
{
ulong from =(TimeCurrent()-1200)*1000;
ulong ticks =GetMicrosecondCount();
int records=CopyTicks(_Symbol,ExtArr,COPY_TICKS_INFO,from,2048);
ticks=GetMicrosecondCount()-ticks;
Print("Time: ",ticks," msc for ",records," records");
}
Результат
2016.10.29 00:31:05.435 Test (EURCHF,M1) Time: 15283 msc for 874 records
2016.10.29 00:31:03.960 Test (EURCHF,M1) Time: 11629 msc for 874 records
2016.10.29 00:31:02.128 Test (EURCHF,M1) Time: 10127 msc for 874 records
2016.10.29 00:31:00.332 Test (EURCHF,M1) Time: 7318 msc for 874 records
2016.10.29 00:30:52.049 Test (EURUSD,M1) Time: 51 msc for 862 records
Может показаться, что это только на EURCHF. Но стоит взять EURUSD и позакачивать котиры. Как скрипт начинает и на EURSD выполняться десятки мс. Начались эти тормоза после закрытия рынка. До закрытия все было на порядки быстрее.
Уважаемые разработчики! Проблема CopyTicks(), а в частности, синхронизация объемов на свече (укладывание всех объемов тиков свечи в свечу и сравнение с volume[] этой свечи). Продолжается.
Сейчас снова вылезло 2 ошибки:
1. Стабильно возникает ошибка контроля объемов на свече открытия (10.00). Тестирую по RTS, SBRF, Si (все -12.16). Ошибка по каждому из этих инструментов!
2. Если по какой-то причине возникает ошибка контроля объемов на свече после 10.00 в реальном времени, то эта же ошибка возникает и на истории. Однако! Если изменить сервер - ошибка на истории пропадает.
Пример к предыдущему посту (по ошибке 2):
2016.10.31 12:13:43.699 (Si-12.16,M1) VolumeControl: Контроль свечи 2016.10.31 10:06 пройден! Контрольная сумма = 4103 (2236+1867)
2016.10.31 12:13:43.699 (Si-12.16,M1) VolumeControl: ОШИБКА на свече 2016.10.31 10:07! Сумма объемов на покупку = 1074, сумма объемов на продажу = 3917, контрольная сумма (покупки+продажи) = 5009
2016.10.31 12:13:43.699 (Si-12.16,M1) VolumeControl: Контроль свечи 2016.10.31 10:08 пройден! Контрольная сумма = 3121 (1479+1642)
2016.10.31 12:13:43.699 (Si-12.16,M1) VolumeControl: Контроль свечи 2016.10.31 10:09 пройден! Контрольная сумма = 3760 (1046+2714)
Это до смены сервера. А вот лог после смены сервера:
2016.10.31 12:18:12.109 (Si-12.16,M1) VolumeControl: Контроль свечи 2016.10.31 10:06 пройден! Контрольная сумма = 4103 (2236+1867)
2016.10.31 12:18:12.109 (Si-12.16,M1) VolumeControl: Контроль свечи 2016.10.31 10:07 пройден! Контрольная сумма = 5009 (1082+3927)
2016.10.31 12:18:12.109 (Si-12.16,M1) VolumeControl: Контроль свечи 2016.10.31 10:08 пройден! Контрольная сумма = 3121 (1479+1642)
2016.10.31 12:18:12.110 (Si-12.16,M1) VolumeControl: Контроль свечи 2016.10.31 10:09 пройден! Контрольная сумма = 3760 (1046+2714)
Вот он, локализованный "КОСЯК"! Я сам тут контроли не рисую, значения в скобках не подгоняю, мне это не нужно. Но ошибка есть, и исправляется она путем смены сервера!
Это лог с контроля истории (при запуске индикатора/нажатия кнопки "обновить").
А теперь замечания по ошибке №1.
Через некоторое время после открытия рынка (сейчас прошло около 40 минут). При полном пересчете индикатора - ошибки контроля свечи в 10.00 уже нет! Даже без переключения сервера. Как будто кто-то на сервер дозакачал историю.
Еще наблюдение по ошибке №2:
Если по какой-то причине возникает ошибка контроля объемов на свече после 10.00 в реальном времени, то эта же ошибка возникает и на истории. Однако! Если изменить сервер - ошибка на истории пропадает.