TakeProfit & StopLoss & снятие заявок
Atom
01.07.2011


Возникла следующая ситуация, стратегия продала акцию сбера по цене 94.42, StopLoss на 94.47 и TakeProfit на 94.32. Далее цена сначала идет вниз, выставляется TakeProfit, но цена резко уходит вверх и выставляется StopLoss, который и срабатывает, но заявка TakeProfit не снимается[sad]

Цитата:
VS 01.07.2011 18:24:25.031 Стратегия запущена.
VS 01.07.2011 18:24:26.515 [BS] Стратегия запущена.
VS 01.07.2011 18:24:26.515 [BS] [BS] Стратегия запущена.
VS 01.07.2011 18:24:26.515 [BS] [BS] [TPS] Стратегия запущена.
VS 01.07.2011 18:24:26.515 [BS] [BS] [SLS] Стратегия запущена.
VS 01.07.2011 18:25:03.078 [BS] [BS] [TPS] Регистрация новой заявки на Buy с ценой 94.32 и объемом 1.
VS 01.07.2011 18:25:03.093 [BS] [BS] [TPS] Заявка 76898486 на Buy отправлена с ценой 94.32 объемом 1.
VS 01.07.2011 18:31:02.093 [BS] [BS] [SLS] Регистрация новой заявки на Buy с ценой 94.47 и объемом 1.
VS 01.07.2011 18:31:02.093 [BS] [BS] [SLS] Заявка 76898487 на Buy отправлена с ценой 94.47 объемом 1.
VS 01.07.2011 18:31:02.625 [BS] [BS] [SLS] Позиция изменилась на 1.
VS 01.07.2011 18:31:02.625 [BS] [BS] [SLS] Заканчиваем котирование с неисполненным объемом равный 0.
VS 01.07.2011 18:31:02.640 [BS] [BS] Стратегия останавливается.
VS 01.07.2011 18:31:02.640 [BS] [BS] [TPS] Стратегия останавливается.
VS 01.07.2011 18:31:02.640 [BS] [BS] Стратегия остановлена.
VS 01.07.2011 18:31:02.640 [BS] [BS] [TPS] Стратегия остановлена.
VS 01.07.2011 18:31:02.640 [BS] [BS] [SLS] Стратегия остановлена.


Так же интересует вопрос, почему первая BatchStrategy не останавливается?

Код
// сама пакетная стратегия так же является параллельной, чтобы она не блокирована основной код робота
		var batch = new BatchStrategy(BatchFinishModes.All);
			
		// для каждой сделки добавляем для защиты по пакетной стратегии
		batch.ChildStrategies.AddRange(trades.Select(t =>
			{
				var s = new BatchStrategy(BatchFinishModes.First);

				// выставляет тейк-профит в n пунктов
				var takeProfit = new TakeProfitStrategy(t, new Unit(Settings.TakeProfit))
				{
					UseMarketQuoting = true,

				};

				// выставляет стоп-лосс в m пунктов
					var stopLoss = new StopLossStrategy(t, new Unit(Settings.StopLoss))
				{
					UseMarketQuoting = true,

				};

				s.ChildStrategies.Add(takeProfit);
				s.ChildStrategies.Add(stopLoss);
				return s;
			}).Cast<Strategy>());

Теги:


Спасибо:


esper

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


Версия 3.2.3, при исполнении заявок по одной из защитных стратегий, заявки другой защитной стратегии снимаются. Т.е. первый вопрос отпадает.

По второй части вопроса пока не ясно, BatchStrategy не останавливается, хотя по логу видно, что все дочерние стратегии завершились. Завершается она только при остановке основной стратегии.
Спасибо:

Mikhail Sukhov

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


esper Перейти
По второй части вопроса пока не ясно, BatchStrategy не останавливается, хотя по логу видно, что все дочерние стратегии завершились. Завершается она только при остановке основной стратегии.


Пофиксил. Выложим.
Спасибо:


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

loading
clippy