Здравствуйте. Я так понимаю, что это событие вызвается через определенный интервал по времени. И хотелось бы узнать, как можно, допустим, генерировать и обрабатывать это событие на каждом тике? Я понимаю, что можно внутренние проверки устроить, например контролировать объем последней свечи или еще что то, но может быть есть более простой выход, которого я не знаю?
Comments (8)
Login or Create account, Log in or register to leave a comment
В описании написано http://stocksharp.com/doc/Default.aspx?topic=Stock%23
Interval Интервал стратегии. Как часто StrategyManager будет вызывать метод Process(). (Унаследовано от Strategy.)
Это то понятно, что событие OnProcess вызывается через заданный интервал. Меня интересует как сделать так, чтобы это событие вызывалось на каждом тике, не чаще и не реже.
strategy.Interval = TimeSpan.FromTicks(1)
К тому же, Михаил в шедулере стратегий использует Thread.Sleep, точность которого, мягко говоря, никакая =) Потому что шедулер операционной системы оперирует квантами, которые измеряются десятками и сотнями миллисекунд. На практике ваши 100 нс округлятся до 0 мс, которые дадут вам рандомную задержку, так как в этом случае она зависит от загрузки процессора. Если нет у шедулера операционной системы готового потока, вы задержки не получите вообще, а если есть, то задержка будет рандомной и, скорее всего, кратной кванту, потому что ваш поток может получть квант не следующий и не через один, а пятый, например, потому что у шедулера системы своё мнение на тему того, какой поток должен сейчас исполняться. "Скорее всего" кратный кванту, потому что другой поток тоже может пойти поспать, в этом случае вы получите оставшуюся часть его кванта.
Вероятно, это как в том анекдоте про яблоко, "папа, ты сейчас с кем разговаривал?". Но, надеюсь, понятно хотя бы, что никаких гарантий по интервалу никто дать не может. С большими интервалами, типа секунды, погрешность 10% не критична, а вот с предложенной вами задержкой 100 нс погрешность измеряется тысячами процентов.
Если нужны стаканы для скальпинга, подписывайтесь на событие изменения стаканов. Я не скальпер, событие на память не помню.
Андрей Андрея понял))
Да, так и делал раньше(на старой версии библиотеки). А сейчас делаю нового робота с новой библиотекой и почему-то подумалось, что такая возможность появилась)) Всем спасибо за ответы, буду делать по старому..
А вот это не оно Событийная модель?
возможно, это оно.. Буду разбираться. Спасибо!