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


TakeProfit & StopLoss & снятие заявок
Atom
7/1/2011


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

Quote:
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 не останавливается?

Code
// сама пакетная стратегия так же является параллельной, чтобы она не блокирована основной код робота
		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>());

Tags:


Thanks:


esper

Avatar
Date: 7/5/2011
Reply


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

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

Mikhail Sukhov

Avatar
Date: 7/5/2011
Reply


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


Пофиксил. Выложим.
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy