Гидра тормозит когда в позиции
Atom Ответить
17.01.2012


Странный глюк: при тестировании захожу в позицию и скорость теста резко снижается, выхожу из позиции - опять скорость нормальная



Спасибо:




16 Ответов
Alexander

Фотография
Дата: 17.01.2012
Ответить


Как связаны гидра с тестированием?
Можно подробнее про последовательность действий и про наблюдаемые тормоза гидры
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 19.01.2012
Ответить


Да, вопрос именно по тестированию, я думал оно связанно с гидрой)

1) Тестирую медленную стратегию, которая работает с 15мин свечками, о приходе каждой 15 мин свечки сообщение в лог. Захожу в позу и 15 мин свечки начинают приходить медленно, выхожу из позы опять быстро. Я не вижу, чтобы какая-то часть моего кода так тормозила, даже если просто отключить стратегию и по кнопке заходить/выходить тормоза есть.

2) Тестирую оч быструю стратегию, которая на каждый тик должна реагировать, стратегия реализована как событийная. В методе OnProcess() выдаю лог с ценой/временем последней сделки (this.Security.LastTrade).
Ожидал увидеть все тики, с вместо этого лог выдает трейды с разницей 1-2екунды. Это так должно быть? Как тестировать быстрые стратегии?
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 19.01.2012
Ответить


FiNick Перейти
Да, вопрос именно по тестированию, я думал оно связанно с гидрой)

1) Тестирую медленную стратегию, которая работает с 15мин свечками, о приходе каждой 15 мин свечки сообщение в лог. Захожу в позу и 15 мин свечки начинают приходить медленно, выхожу из позы опять быстро. Я не вижу, чтобы какая-то часть моего кода так тормозила, даже если просто отключить стратегию и по кнопке заходить/выходить тормоза есть.

2) Тестирую оч быструю стратегию, которая на каждый тик должна реагировать, стратегия реализована как событийная. В методе OnProcess() выдаю лог с ценой/временем последней сделки (this.Security.LastTrade).
Ожидал увидеть все тики, с вместо этого лог выдает трейды с разницей 1-2екунды. Это так должно быть? Как тестировать быстрые стратегии?


1. Тестирование замедляется при матчинге заявок. Что вполне нормально, так как загрузка данных быстрее, чем загрузка данных + исполнение заявок.
2. TF модель лучше вообще забыть. Она реагирует не на каждый тик, а со своим дифференциалом.
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 19.01.2012
Ответить


Mikhail Sukhov Перейти

2. TF модель лучше вообще забыть. Она реагирует не на каждый тик, а со своим дифференциалом.


Я и не использую TF модель, у меня событийная, стоит правило SecurityNewTrades.
Так всетаки, EmulationTrader выдает все тики точно также, как это делал бы PlazaTrader или QuikTrader? Или из-за вопроса быстродействия большая часть тиков пропускается?
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 19.01.2012
Ответить


FiNick Перейти

Я и не использую TF модель, у меня событийная, стоит правило SecurityNewTrades.


OnProcess - это что?
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 19.01.2012
Ответить


Mikhail Sukhov Перейти
OnProcess - это что?

OnProcess это обработчик события прихода новых трейдов.
У меня в стратегии включено правило:
Код
this
    .When(this.Security.SecurityNewTrades())
    .Do(OnProcess);

Т.е. OnProcess должно вызываться на каждый тик. Внутри OnProcess пишу в лог цену и время последней сделки. Время между сделками получается достаточно большим, значит либо OnProcess не успевает обрабатывать все тики, либо EmulationTrader присылает не все тики.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 19.01.2012
Ответить


FiNick Перейти

Т.е. OnProcess должно вызываться на каждый тик. Внутри OnProcess пишу в лог цену и время последней сделки. Время между сделками получается достаточно большим, значит либо OnProcess не успевает обрабатывать все тики, либо EmulationTrader присылает не все тики.


EmulationTrader.NewTrades что пишет?
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 19.01.2012
Ответить


Mikhail Sukhov Перейти
EmulationTrader.NewTrades что пишет?


Короче я понял, NewTrades при срабатывании выдает обьект типа IEnumerable<MyTrade>, т.е. пачку трейдов, если раскрыть эту пачку трейдов то какраз получатся все тики(сравнивал с тем что гидра из квика накачала). По какому принципу тики упакованы в пачки не понятно, не по времени, и не по цене, как я вижу.
Далее, OnProcess похоже вызывается ровно столько же раз сколько и NewTrades, причем если взять strategy.Security.LastTrade то мы какраз получим последний трейд последней пачки.
Т.е. правило SecurityNewTrades срабатывает не на каждый тик, а по приходу последней пачки тиков, и вот интересно, оно внутрь пачки заглядывает, чтобы понять менялась ли цена, или только на последний трейд пачки смотрит.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.01.2012
Ответить


S# какой версии?
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 20.01.2012
Ответить


Mikhail Sukhov Перейти
S# какой версии?


StockSharp.Algo(и другие) версия 4.0.14.0
Данные качал гидрой с квика.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 21.01.2012
Ответить


FiNick Перейти
Mikhail Sukhov Перейти
S# какой версии?


StockSharp.Algo(и другие) версия 4.0.14.0
Данные качал гидрой с квика.


Не подтверждается. Можете это зарепродюсить на примере SampleHistoryTesting?
Спасибо:

FiNick

Фотография
Благотворитель
Дата: 22.01.2012
Ответить


Хорошо, как время будет, сделаю.
Автор топика
Спасибо:

hobo

Фотография
Дата: 17.02.2012
Ответить


Mikhail Sukhov Перейти
Не подтверждается. Можете это зарепродюсить на примере SampleHistoryTesting?

Наблюдаю тот же эффект: в стратегии сделки из EmulationTrader приходят частями. На картинке: что пришло в EmulationTrader, затем в стратегии видна лишь последняя сделка из пачки


На примере SampleHistoryTesting "зарепродюсил" на 4.0.19 (на 4.0.1 и релизном 4.0.14 тоже самое)
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 17.02.2012
Ответить


hobo Перейти
Mikhail Sukhov Перейти
Не подтверждается. Можете это зарепродюсить на примере SampleHistoryTesting?

Наблюдаю тот же эффект: в стратегии сделки из EmulationTrader приходят частями. На картинке: что пришло в EmulationTrader, затем в стратегии видна лишь последняя сделка из пачки


Перед анализом еще раз уточню - в пачках сделки от разного времени?
Спасибо:

hobo

Фотография
Дата: 18.02.2012
Ответить


Хм, время одинаковое. Вот первые 4 пачки.
Код
497896647 10:00:00.070 
497896648 10:00:00.070 
497896649 10:00:00.070 
497896650 10:00:00.070 
497896651 10:00:00.070 
497896652 10:00:00.070 

497896660 10:00:01.513 
497896661 10:00:01.513 
497896662 10:00:01.513 
497896663 10:00:01.513 
497896664 10:00:01.513 
497896665 10:00:01.513 

497896684 10:00:01.607 

497896685 10:00:01.643 

Раз вы про время спросили, видимо все работает правильноHuh
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 18.02.2012
Ответить


hobo Перейти
Раз вы про время спросили, видимо все работает правильноHuh


Видимо. И видимо, раз предыдущей рапортер так же не развивал тему, то и у него все заработало правильно.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy