vvt
|
Date: 3/30/2011
в обоих случаях уже стоит new Unit(50) и тейке и в лоссе, до этого я тоже додумался, так что дело не в этом вот код Code if (_order != null) { AddLog(StrategyErrorStates.None ,"Перед предпоследним When"); When(_order.NewTrades()). Do(this.Protect(_order, t => new TakeProfitStrategy(t, new Unit(50)) { IsForts = true, IsParallel = true }, // тейк на 50 пунктов t => new StopLossStrategy(t, new Unit(50)) { IsForts = true, IsParallel = true })). // стоп на 50 пунктов Activated<Strategy>(s => { AddLog(StrategyErrorStates.None ,"Перед последним When"); When(s.Stopped()). Do(() => { /* сработало стоп условие */ }); }); }
еще раз запустил с логированием лог здесь
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/31/2011
|
|
|
|
Цитата из вашего лога: Quote:CPS 23:07:28.9470510 Перед предпоследним When CPS 23:07:29.9601089 Перед предпоследним When CPS 23:07:30.9611662 Перед предпоследним When CPS 23:07:31.9612234 Перед предпоследним When CPS 23:07:32.9612806 Перед предпоследним When CPS 23:07:33.9613378 Перед предпоследним When CPS 23:07:34.9613950 Перед предпоследним When CPS 23:07:35.9644523 Перед предпоследним When CPS 23:07:36.9645095 Перед предпоследним When CPS 23:07:37.9645667 Перед предпоследним When CPS 23:07:38.9646239 Перед предпоследним When CPS 23:07:39.9646811 Перед предпоследним When CPS 23:07:40.9647383 Перед предпоследним When CPS 23:07:41.9647955 Перед предпоследним When CPS 23:07:42.9648527 Перед предпоследним When CPS 23:07:43.9649099 Перед предпоследним When CPS 23:07:44.9659672 Перед предпоследним When CPS 23:07:45.9660244 Перед предпоследним When CPS 23:07:46.9660816 Перед предпоследним When CPS 23:07:47.9661388 Перед предпоследним When CPS 23:07:48.9661960 Перед предпоследним When CPS 23:07:49.9662532 Перед предпоследним When CPS 23:07:50.9663104 Перед предпоследним When CPS 23:07:51.9663676 Перед предпоследним When CPS 23:07:52.9674248 Перед предпоследним When CPS 23:07:53.9674820 Перед предпоследним When CPS 23:07:54.9685393 Перед предпоследним When CPS 23:07:55.9695966 Перед предпоследним When CPS 23:07:56.9836546 Перед предпоследним When CPS 23:07:57.9857119 Перед предпоследним When CPS 23:07:58.9877692 Перед предпоследним When CPS 23:07:59.9888264 Перед предпоследним When CPS 23:08:00.9888836 Перед предпоследним When CPS 23:08:02.0049418 Перед предпоследним When CPS 23:08:03.0179997 Перед предпоследним When CPS 23:08:04.0250573 Перед предпоследним When CPS 23:08:05.0271146 Перед предпоследним When CPS 23:08:06.0271718 Перед предпоследним When CPS 23:08:07.0272290 Перед предпоследним When CPS 23:08:08.0272862 Перед предпоследним When CPS 23:08:09.0283435 Перед предпоследним When Документация по методу When: Quote:Зарегистрировать условие. Условие будет не активно до тех пор, пока к нему не будет добавлено действие через метод Do(Action). Дальше объяснять где бага?
|
|
Thanks:
|
|
|
|
|
vvt
|
Date: 3/31/2011
Quote:Дальше объяснять где бага? Да, просьба объяснить.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/31/2011
vvt Quote:Дальше объяснять где бага? Да, просьба объяснить. Вы регистрируете условие несколько десятков раз. Поэтому когда наступает событие о новых сделках, то и регистрация срабатывает ровно столько раз (и ровно столько будет сделок), сколько вы зарегистрировали условие.
|
|
Thanks:
|
|
|
|
|
vvt
|
Date: 4/1/2011
Все, принцип понял, спасибо.
Еще есть пара вопросов: 1) метод MakePeriodical() выполняется с частотой Strategy.Interval ? 2) можно ли в коде приведенном выше динамически изменять размер стопа в TakeProfitStrategy и StopLossStrategy во время работы стратегии? Если да, то как (желательно пример кода).
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 4/2/2011
vvt Все, принцип понял, спасибо.
Еще есть пара вопросов: 1) метод MakePeriodical() выполняется с частотой Strategy.Interval ? 2) можно ли в коде приведенном выше динамически изменять размер стопа в TakeProfitStrategy и StopLossStrategy во время работы стратегии? Если да, то как (желательно пример кода). 1. Это минимум. 2. Через изменение свойства ProtectiveDelta.
|
|
Thanks:
|
|
|
|
|
vvt
|
Date: 4/14/2011
|
|
|
|
попробовал перейти на [3.1], изменил код в соответствии с новым синтаксисом (на [3.0.19] работало как нужно) Code if (_isPosition != true) { AddLog(StrategyErrorStates.None, "Перед предпоследним When"); When(_order.NewTrades()). //() => Protect(_order, t => new TakeProfitStrategy(t, new Unit(150)) { IsParallel = true, IsMarket = true }, t => Sls1 = new StopLossStrategy(t, new Unit(_stopPrice)) { IsParallel = true, IsMarket = true, IsTrailing = true }).Activated<Strategy>( s => { AddLog(StrategyErrorStates.None, "Перед последним When"); When(s.Stopped()). Do(() => { // сработало стоп условие _isPosition = false; AddLog(StrategyErrorStates.None, string.Format("Сработало стоп-условие _stopPrice={0}", Sls1.ProtectiveDelta)); }); });
}
видно, что сработал TakeProfit, но вместо одной заявки выставляет кучу, похоже на баг вот лог Quote:CPS 16:32:40.9762649 Стратегия запущена. CPS 16:35:03.7004282 Правило активировано. CPS 16:35:03.7074286 Правило удалено. CPS 16:40:03.4545732 Правило активировано. CPS 16:40:03.4605735 Перед предпоследним When CPS 16:40:03.5345778 Правило удалено. CPS 16:40:04.5366351 Правило активировано. CPS 16:40:04.5416354 Стратегия запущена. CPS 16:40:04.5426354 Перед последним When CPS 16:40:04.5426354 Правило удалено. CPS 16:40:05.5436927 Правило активировано. CPS 16:40:05.5546933 Стратегия запущена. CPS 16:40:05.5546933 Стратегия запущена. CPS 16:40:05.5546933 Стратегия запущена. CPS 16:40:05.5546933 Стратегия запущена. CPS 16:40:05.5546933 Правило удалено. CPS 16:40:58.8447413 Регистрация защитной заявки с ценой 196185 и объемом 1. CPS 16:40:58.8447413 Регистрация новой заявки на Sell с ценой 196185 и объемом 1. CPS 16:40:58.8457414 Заявка 58461521 на Sell отправлена с ценой 196185 объемом 1. CPS 16:40:59.8467987 Котируемая заявка 58461521 исполнилась. CPS 16:40:59.8467987 Осталось 2 контрактов. CPS 16:41:00.8478559 Регистрация новой заявки на Sell с ценой 196185 и объемом 1. CPS 16:41:00.8478559 Заявка 58461522 на Sell отправлена с ценой 196185 объемом 1. CPS 16:41:01.8909156 Котируемая заявка 58461522 исполнилась. CPS 16:41:01.8909156 Осталось 3 контрактов. CPS 16:41:02.8929729 Регистрация новой заявки на Sell с ценой 196185 и объемом 1. CPS 16:41:02.8929729 Заявка 58461523 на Sell отправлена с ценой 196185 объемом 1. CPS 16:41:03.9060308 Котируемая заявка 58461523 исполнилась. CPS 16:41:03.9060308 Осталось 4 контрактов. CPS 16:41:04.9080881 Регистрация новой заявки на Sell с ценой 196185 и объемом 1. CPS 16:41:04.9080881 Заявка 58461524 на Sell отправлена с ценой 196185 объемом 1. CPS 16:41:05.9191460 Котируемая заявка 58461524 исполнилась. CPS 16:41:05.9191460 Осталось 5 контрактов. CPS 16:41:06.9202032 Регистрация новой заявки на Sell с ценой 196185 и объемом 1. CPS 16:41:06.9202032 Заявка 58461525 на Sell отправлена с ценой 196185 объемом 1. CPS 16:41:16.9537771 Котируемая заявка 58461525 исполнилась. CPS 16:41:16.9537771 Осталось 6 контрактов. CPS 16:41:17.9548344 Котируемая заявка 0 снята. CPS 16:41:17.9548344 Осталось 6 контрактов. CPS 16:41:18.9588918 Котируемая заявка 0 снята. CPS 16:41:18.9588918 Осталось 6 контрактов. CPS 16:41:19.9619492 Котируемая заявка 0 снята. CPS 16:41:19.9619492 Осталось 6 контрактов. CPS 16:41:20.9650065 Котируемая заявка 0 снята. CPS 16:41:20.9650065 Осталось 6 контрактов. CPS 16:41:21.9710641 Котируемая заявка 0 снята. CPS 16:41:21.9710641 Осталось 6 контрактов. CPS 16:41:22.9721213 Регистрация новой заявки на Sell с ценой 196185 и объемом 1. CPS 16:41:22.9721213 Заявка 58461526 на Sell отправлена с ценой 196185 объемом 1. CPS 16:41:28.6174442 Стратегия останавливается. CPS 16:41:28.6174442 Стратегия останавливается. CPS 16:41:28.6174442 Стратегия останавливается. CPS 16:41:28.6174442 Стратегия останавливается. CPS 16:41:28.6174442 Стратегия останавливается. CPS 16:41:28.6174442 Стратегия останавливается. CPS 16:41:28.9854653 Котирование отменяет заявку 58461526. CPS 16:41:28.9864653 Стратегия остановлена. CPS 16:41:28.9864653 Котирование закончилось. CPS 16:41:28.9864653 Стратегия остановлена. CPS 16:41:28.9934657 Стратегия остановлена. CPS 16:41:29.0404684 Стратегия остановлена. CPS 16:41:29.0414685 Стратегия остановлена. CPS 16:41:29.0424685 Стратегия остановлена.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 4/15/2011
vvt видно, что сработал TakeProfit, но вместо одной заявки выставляет кучу, похоже на баг
Да, баг, причем судя по логу не один. Буду разбираться. Спасибо за фидбек.
|
|
Thanks:
|
|
|
|
|
vvt
|
Date: 4/19/2011
в [3.1.2] баг исправлен
|
|
Thanks:
|
|
|
|