Не могу понять как работает WhenStopping() для стратегий...
Как я понимаю, этот кусок кода должен выполняться в момент окончания стратегии до перехода в состояние Stopped:
strategy.WhenStopping()
.Do(() =>
{
Debug.WriteLine("Stopping Strategy now");
})
.Apply();
Тем не менее, ничего не выводится...
Задача следующая: когда на бэктесте стратегия выполнилась, надо вывести всю статистику (последние значения переменных, считавшихся во время исполнения статегии)
コメント (10)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
Михаил, может ты сможешь помочь?=)
Код правильный и рабочий. Не понимаю что именно нужно прокомментировать. Если из разряда "почему у меня не работает", то это надо самостоятельно разбираться или логи подкреплять.
Если поставить в дебаггере точку остановки на Debug.WriteLine(...), то на практике этот кусок кода никогда не исполняется.
Что надо выводить в лог и как понять почему так происходит?
Ок. Вот есть кусок кода в SmaStrategy из SampleHistoryTesting:
Данных код никогда не исполняется. (проверил на последнем билде)
Также если поставить в SampleHistoryTesting следующий код:
то этот код тоже никогда не срабатывает
В SampleHistoryTesting стратегия только запускается. Там нет остановки. Добавь остановку и событие будет срабатывать.
Стоп, давай тогда определим, что мы понимаем под "остановкой". Я думал, что "остановка" - это когда ты запустил стратегию, она отработала и завершилась = остановилась... нет? Тогда вопрос есть ли состояние WhenFinishing?
Да так.
Думаю WhenStopping срабатывает при выполнении метода Strategy.Stop(), к тестеру это не имеет отношения. Здесь надо события тестера искать какие то видимо.
Ну если это так, то когда тестер завершается и connector.IsFinished, что остановка стратегии не происходит
Скорее всего так и есть... короче поведение стратегии на тестере и вживую отличается похоже