Как работает strategy.WhenStopping()?
Atom
19.07.2014


Не могу понять как работает WhenStopping() для стратегий...

Как я понимаю, этот кусок кода должен выполняться в момент окончания стратегии до перехода в состояние Stopped:
Код

strategy.WhenStopping()
                .Do(() =>
                {
                    Debug.WriteLine("Stopping Strategy now");                   
                })
                .Apply();


Тем не менее, ничего не выводится...

Задача следующая: когда на бэктесте стратегия выполнилась, надо вывести всю статистику (последние значения переменных, считавшихся во время исполнения статегии)

Теги:


Спасибо:


devruss

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


Михаил, может ты сможешь помочь?=)
Спасибо:

Mikhail Sukhov

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


Код правильный и рабочий. Не понимаю что именно нужно прокомментировать. Если из разряда "почему у меня не работает", то это надо самостоятельно разбираться или логи подкреплять.
Спасибо:

devruss

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


Михаил Сухов Перейти
Код правильный и рабочий. Не понимаю что именно нужно прокомментировать. Если из разряда "почему у меня не работает", то это надо самостоятельно разбираться или логи подкреплять.


Если поставить в дебаггере точку остановки на Debug.WriteLine(...), то на практике этот кусок кода никогда не исполняется.

Что надо выводить в лог и как понять почему так происходит?
Спасибо:

devruss

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


Михаил Сухов Перейти
Код правильный и рабочий. Не понимаю что именно нужно прокомментировать. Если из разряда "почему у меня не работает", то это надо самостоятельно разбираться или логи подкреплять.


Ок. Вот есть кусок кода в SmaStrategy из SampleHistoryTesting:
Код

// если наша стратегия в процессе остановки
			if (ProcessState == ProcessStates.Stopping)
			{
				// отменяем активные заявки
				CancelActiveOrders();
				return;
			}

Данных код никогда не исполняется. (проверил на последнем билде)

Также если поставить в SampleHistoryTesting следующий код:
Код

this.WhenStopping()
                .Do(() =>
                {
                    Debug.WriteLine("********************* STOPPING ************************************");
                })
                .Apply();

то этот код тоже никогда не срабатывает
Спасибо:

Mikhail Sukhov

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


В SampleHistoryTesting стратегия только запускается. Там нет остановки. Добавь остановку и событие будет срабатывать.
Спасибо:

devruss

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


Михаил Сухов Перейти
В SampleHistoryTesting стратегия только запускается. Там нет остановки. Добавь остановку и событие будет срабатывать.


Стоп, давай тогда определим, что мы понимаем под "остановкой". Я думал, что "остановка" - это когда ты запустил стратегию, она отработала и завершилась = остановилась... нет?
Тогда вопрос есть ли состояние WhenFinishing?
Спасибо:

Mikhail Sukhov

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


devruss Перейти

Стоп, давай тогда определим, что мы понимаем под "остановкой". Я думал, что "остановка" - это когда ты запустил стратегию, она отработала и завершилась = остановилась... нет?


Да так.
Спасибо:

vsnoopy83

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


devruss Перейти
Михаил Сухов Перейти
В SampleHistoryTesting стратегия только запускается. Там нет остановки. Добавь остановку и событие будет срабатывать.


Стоп, давай тогда определим, что мы понимаем под "остановкой". Я думал, что "остановка" - это когда ты запустил стратегию, она отработала и завершилась = остановилась... нет?
Тогда вопрос есть ли состояние WhenFinishing?


Думаю WhenStopping срабатывает при выполнении метода Strategy.Stop(), к тестеру это не имеет отношения. Здесь надо события тестера искать какие то видимо.
Спасибо:

devruss

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


Михаил Сухов Перейти
devruss Перейти

Стоп, давай тогда определим, что мы понимаем под "остановкой". Я думал, что "остановка" - это когда ты запустил стратегию, она отработала и завершилась = остановилась... нет?


Да так.


Ну если это так, то когда тестер завершается и connector.IsFinished, что остановка стратегии не происходит
Спасибо:

devruss

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


vsnoopy83 Перейти

Здесь надо события тестера искать какие то видимо.


Скорее всего так и есть... короче поведение стратегии на тестере и вживую отличается похоже

Спасибо:


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

loading
clippy