Вопрос по организации стопов
Atom
19.01.2014


Т.к. у меня периодически на новой версии (4.2.x) библиотеки возникают проблемы (кросс-сделки, приводящие к бесконечному перевыставлению заявки), подскажите, камрады, верно ли я прописываю код регистрации нового трейлинг-стопа?

Код

                            var newPositionToOpen = this.CreateOrder(newOrderDirection, newOrderPrice, 1);
                            newPositionToOpen.WhenMatched().Do(() => newPositionToOpen.WhenNewTrades().Do(OnNewOrderTrades).Apply(this)).Apply(this);


где

Код

        private void OnNewOrderTrades(IEnumerable<MyTrade> myTrades)
        {
            var protectiveStrategies = myTrades.Select(t =>
            {
                var newStrategyFromTrade = new StopLossStrategy(t, new Unit(TraderHelper.ShrinkPrice(t.Trade.Security, stopLossParameter * (decimal)currentParams.candleSize))) { IsTrailing = true, UseQuoting = false, PriceOffset = (decimal)currentParams.candleSize*3, DisposeOnStop = true, ProtectiveVolume = t.Trade.Volume, MaxRegisterFailCount = 5, };

                return newStrategyFromTrade;
            });

            foreach(var s in protectiveStrategies)
                ChildStrategies.Add(s);

            base.OnNewMyTrades(myTrades);
        }


Мне кажется, что где-то здесь у мну ошибка - мб кто поможет нубу да прокомментирует?

Пасиба.

Теги:


Спасибо:


kesot

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


вызывая базовый метод base.OnNewMyTrades(myTrades);
ты создаешь бесконечную рекурсию. тут косяк.
Спасибо: Rebelion


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

loading
clippy