StoplossStrategy
Atom
20.02.2014
kesot


При старте стратегии добавляю правило обработки всех моих новых сделок.
Код

protected override void OnStarted()
        {
            _series.WhenCandlesFinished()
                .Do(ProcessFinCandle)
                .Apply(this);
            this.WhenNewMyTrades().Do(OnNewOrderTrades).Apply(this);
            
            // запоминаем текущее положение относительно друг друга
           // _isShortLessThenLong = true;// ShortSma.GetCurrentValue() < LongSma.GetCurrentValue();

            base.OnStarted();
        }


На каждую сделку создаю стоплосс

Код

private void OnNewOrderTrades(IEnumerable<MyTrade> myTrades)
{
            var protectiveStrategies = trades.Select(t =>
            {
                // выставляет стоп-лосс в deflevel пунктов 
                var stopLoss = new StopLossStrategy(t, deflevel);
                stopLoss.IsTrailing = true;
                return stopLoss;
            });

            //ChildStrategies.AddRange(protectiveStrategies);
            foreach (var st in protectiveStrategies)
                ChildStrategies.Add(st);
}


Кстати, вместо фора в примере из документации был метод AddRange, которого нет у ChildStrategies. Это нормально?


Лог файл:
Код
0001/01/01 00:00:00.000|       |HistoryEmulationConnector|Connect
0001/01/01 00:00:00.000|       |HistoryEmulationConnector|StartExport
2013/11/11 00:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Stopped -> Starting
2013/11/11 00:00:00.000|       |HistoryEmulationConnector|Создан новый портфель test account.
2013/11/11 00:00:00.000|       |HistoryEmulationConnector|Изменение состояния эмуляции Starting -> Started
2013/11/11 00:00:00.000|       |RS_RIZ3@FORTS_test account|Стратегия запущена. [0,-1]. Позиция при старте 0.
2013/11/11 00:00:00.000|       |HistoryEmulationConnector|Инструмент RIZ3@FORTS зарегистрирован на получение рыночных данных для Trades.
2014/02/20 22:46:36.015|       |HistoryMessageAdapter|Loading 11.11.2013 0:00:00 Events: 0
2014/02/20 22:47:01.204|       |HistoryMessageAdapter|Loading 12.11.2013 0:00:00 Events: 216755
2013/11/12 17:00:00.000|       |RS_RIZ3@FORTS_test account|Регистрация новой Limit (0x2EF88D4) заявки на Buy с ценой 199682.000000000 и объемом 1. 
2013/11/12 17:00:00.000|       |HistoryEmulationConnector|RegisterOrder: 0/0 Покупка Цена=199682.000000000 Объем=1 Сост=None Бал=0 
2013/11/12 17:00:00.000|       |HistoryEmulationConnector|New order: 81994450/0 Покупка Цена=199682.000000000 Объем=1 Сост=Pending Бал=1 
2014/02/20 22:47:20.756|       |#=q2fRM7GzyJ0kaPhi$YJWwNpgrAk0q2mq7ulLgxePcsZw=|Заявка 81994450 зарегистрирована.
2013/11/12 17:00:00.000|       |HistoryEmulationConnector|Order changed: 81994450/1 Покупка Цена=199682.000000000 Объем=1 Сост=Active Бал=1 
2014/02/20 22:47:20.890|       |#=q2fRM7GzyJ0kaPhi$YJWwNpgrAk0q2mq7ulLgxePcsZw=|Заявка 81994450. Исполнение объема 1 по цене 143520.000000000.
2014/02/20 22:47:20.890|       |#=q2fRM7GzyJ0kaPhi$YJWwNpgrAk0q2mq7ulLgxePcsZw=|Заявка 81994450 полностью исполнена.
2014/02/20 22:47:20.893|       |#=q2fRM7GzyJ0kaPhi$YJWwNpgrAk0q2mq7ulLgxePcsZw=|Сделка 1 заявки 81994450 P=81994450 V=143520.000000000.
2013/11/12 17:00:01.000|       |HistoryEmulationConnector|Order changed: 81994450/1 Покупка Цена=199682.000000000 Объем=1 Сост=Done Бал=0 
2013/11/12 17:00:01.000|       |RS_RIZ3@FORTS_test account|Новая позиция: test account-RIZ3@FORTS=1.
2013/11/12 17:00:01.000|       |RS_RIZ3@FORTS_test account|Заявка 81994450 больше не активна.
2013/11/12 17:00:01.000|       |SLS_RIZ3@FORTS_test account|Стратегия запущена. [0,1]. Позиция при старте 0.
2013/11/12 17:00:01.000|       |SLS_RIZ3@FORTS_test account|Защита сделки 1 заявки 81994450.
2013/11/12 17:00:01.000|       |SLS_RIZ3@FORTS_test account|Котирование на Sell объема 1.
2013/11/12 17:00:01.000|       |SLS_RIZ3@FORTS_test account|Приостановка правил. _rulesSuspendCount 1.
2013/11/12 17:00:01.000|       |SLS_RIZ3@FORTS_test account|Возобновление правил. _rulesSuspendCount 0.
2013/11/12 17:00:01.000|       |RS_RIZ3@FORTS_test account|Новая Buy сделка 1 по цене 143520.000000000 на 1 заявки 81994450.

Теги:


Спасибо:


kesot

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


Как оказалось для стратегии stoploss в определении цены используются не трейды, а стакан.
Поэтому при тестировании на данных без данных о стакане необходимо использовать стаканогенератор.

Интересно почему этого нет в документации.
Спасибо:

Mikhail Sukhov

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


kesot

Интересно почему этого нет в документации.


Потому что для этого у нас сделано обучение. Документация вообще мало что содержит. Скорее это Quick Start а не документация.
Спасибо:


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

loading
clippy