Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Почти на пустом маркетвотче Альпари тормоза копитикс не меньше, чем на БКС.
На робо все более, чем на порядок, быстрее.
Результаты на USDCHF M1, CalcLength из индикатора https://www.mql5.com/ru/code/16537:
Результаты постоянно плавают + не соблюдено правило единых потоков - на одном без стакана потоки (где не надо выборок и слияний делать для CopyTicks),на другом со стаканом. На БКС демо не открывается, но главное, что на Робофорексе нет стаканов
Странный код замера. Меряли кучу лишнего, но никак не время запроса CopyTicks:
{
const ulong StartTime = ::GetMicrosecondCount();
int X0;
int Y0;
BARS bars(this.Chart);
TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0);
this.SetProperty(::OBJPROP_XDISTANCE, X0);
this.SetProperty(::OBJPROP_YDISTANCE, Y0);
TicksPicture.Fill(ColorBid, ::BID);
TicksPicture.Fill(ColorAsk, ::ASK);
TicksPicture.Fill(ColorSpread, ::AVG);
TicksPicture.SendToResource(this.Resource);
::Comment("LastCalcTime = " + (string)::TimeLocal() +
", Ticks = " + (string)bars.GetAmountTicks() +
", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms.");
::ChartRedraw(this.Chart);
return;
}
В любом случае, вызов копирования тиков оптимизируем. Много занимают.
Результаты на USDCHF M1, CalcLength из индикатора https://www.mql5.com/ru/code/16537:
Проблемы на Альпари-реал и БКС-реал. Реал элементарно открыть
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Статистика проскальзываний лимитных ордеров на бирже
pivomoe, 2016.08.25 15:15
Начните делать демо счет mt5 в бкс. Вам придет письмо с ссылкой на дистрибутив. На этапе выбора сервера выбираете не демо сервер, а для реальных торгов. Создайте учетную запись с произвольными данными. Сделайте сертификат. Все у вас реальный счет с нулевым балансом с реальными котировками и историей.
Результаты постоянно плавают + не соблюдено правило единых потоков - на одном без стакана потоки (где не надо выборок и слияний делать для CopyTicks),на другом со стаканом. На БКС демо не открывается, но главное, что на Робофорексе нет стаканов
Странный код замера. Меряли кучу лишнего, но никак не время запроса CopyTicks:
Это не ко мне. Замеряется все вместе. Единственное отличие - торговый сервер. Так что тормоза только с копитикс связаны.
В любом случае, вызов копирования тиков оптимизируем. Много занимают.
Копитикс в текущем виде очень неудобен. Например, совершенно непонятно, как получить тик, который был перед from.
Почему нельзя возвращать индекс на массив базы и работать с базой, как с массивом? Проблемы дописывания в базу полностью возлагать на пользователя. Пусть сам разруливает, если что-то не получается. Сейчас работа с копитикс ну очень неудобна. Я, похоже, один из немногих, кто очень активно его использует. И могу говорить об этом довольно ответственно.
Результаты на USDCHF M1, CalcLength из индикатора https://www.mql5.com/ru/code/16537:
Результаты постоянно плавают + не соблюдено правило единых потоков - на одном без стакана потоки (где не надо выборок и слияний делать для CopyTicks),на другом со стаканом. На БКС демо не открывается, но главное, что на Робофорексе нет стаканов
Странный код замера. Меряли кучу лишнего, но никак не время запроса CopyTicks:
{
const ulong StartTime = ::GetMicrosecondCount();
int X0;
int Y0;
BARS bars(this.Chart);
TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0);
this.SetProperty(::OBJPROP_XDISTANCE, X0);
this.SetProperty(::OBJPROP_YDISTANCE, Y0);
TicksPicture.Fill(ColorBid, ::BID);
TicksPicture.Fill(ColorAsk, ::ASK);
TicksPicture.Fill(ColorSpread, ::AVG);
TicksPicture.SendToResource(this.Resource);
::Comment("LastCalcTime = " + (string)::TimeLocal() +
", Ticks = " + (string)bars.GetAmountTicks() +
", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms.");
::ChartRedraw(this.Chart);
return;
}
В любом случае, вызов копирования тиков оптимизируем. Много занимают.
Поясните, пожалуйста, что Вы имеете ввиду про единые потоки?
Еще вопрос, чтобы тики приходили как можно быстрее, нужно, чтобы стакан не был открыт в терминале и не было подписки на событие обновления стакана из эксперта/индикатора?
Из справки:
Скорость выдачи: терминал хранит по каждому символу 4096 последних тиков в кеше для быстрого доступа (для символов с запущенным стаканом – 65536 тиков), запросы к этим данным выполняются быстрее всего.
Поясните, пожалуйста, что Вы имеете ввиду про единые потоки?
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Тестируем 'CopyTicks'
fxsaber, 2016.10.13 10:18
есть MT-нюанс с тиками, когда сама история тиков переписывается задним числом из-за нескольких источников получения тиков.
Благодарю, а про стакан и скорость получения не в курсе?
Нет, к сожалению. Ренат утверждал, что стакан постоянно стримится на весь маркетвотч. Но это не целесообразное решение для большинства ситуаций.
Вот как надо тестировать 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 минут
Поясните, пожалуйста, что Вы имеете ввиду про единые потоки?
Потоr bid/ask и поток полного стакана с объемами и last/traded ценами - это две большие разницы.
Кардинально большие разницы.
Еще вопрос, чтобы тики приходили как можно быстрее, нужно, чтобы стакан не был открыт в терминале и не было подписки на событие обновления стакана из эксперта/индикатора?
Открытость в терминале или подписка в эксперте не имеют значения.
Если символ есть в маркетвотче, значит терминал получает весь полный тиковый поток со стаканами безусловно.
Но самое главное - расчеты скоростей выборок выше не имеют значения. Они выполнены настолько топорно (замеряется все что угодно, но не время CopyTicks), что даже удивительно.