ltrim
|
Date: 12/16/2010
|
|
|
|
|
Я не пойму чего то! Я делаю базовую стратегию Strategy.
Делаю дочерню MarketQuotingStrategy чтобы она исполнила мой ордер как только ордер исполняется появляются MyTrades, соответсвенно я из перехватываю и делаю:
Ecng.Trading.Algo.Strategies.TakeProfitStrategy(MyTrade, New Ecng.Trading.BusinessEntities.Unit(2))
и
Ecng.Trading.Algo.Strategies.StopLossStrategy(MyTrade, New Ecng.Trading.BusinessEntities.Unit(2))
и вот что мне возвращает лог Strategy
Стратегия запущена. SSP
Стратегия запущена. MQS
Цена текущей 106,8 и лучшей 109,8. MQS
Котирование заявки 76330095 на Buy с ценой 106,8 объемом 1. MQS
Перекотирование зарегистрировано для заявки 76330097 на Buy с ценой 109,8 объемом 1. MQS
Стратегия запущена. BS
Стратегия запущена. BS
Стратегия запущена. TPS
Стратегия запущена. TPS
Стратегия запущена. SLS
Стратегия запущена. SLS
Заканчиваем котирование с неисполненным объемом равный 0 контрактов. MQS
Стратегия останавливается. MQS
Котирование отменяет заявку 76330097. MQS
Стратегия остановлена. MQS
и все! И больше ничего не происходит! Даже если в стакане все меняется. Блин я уже запарился.
|
|
|
|
Thanks:
|
|
|
|
|
|
ltrim
|
Date: 12/16/2010
Да кстати версия S# 2.6.1.0
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 12/17/2010
ltrim:
Всем привет! Ребят, кому не жалко, выложите пример как правильно организовать BatchStrategy с дочерними тэкпроф и стоплос. В описании ничего не понятно, а примеры все на студии 2010. У меня 2008
Есть stocksharp.sln (это для VS 2010) и stocksharp_2008.sln (это для VS 2008).
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 12/17/2010
ltrim:
и все! И больше ничего не происходит! Даже если в стакане все меняется. Блин я уже запарился.
Не совсем понял, что и как делаете, плюс какой результат ожидается.
|
|
|
|
Thanks:
|
|
|
|
|
|
ltrim
|
Date: 12/17/2010
Mikhail Sukhov:
ltrim:
и все! И больше ничего не происходит! Даже если в стакане все меняется. Блин я уже запарился.
Не совсем понял, что и как делаете, плюс какой результат ожидается.
Давайте так. Я делаю заявку. Ожидаю, что по ее исполнению я зарегистрирую стратегию BatchStrategy и дочерние TakepropitStrategy и StopLossStrategy на каждую Mytrade по исполненной заявке. И если вдруг текущая цена инструмента уйдет от цены MyTrade на указанный размер, то срабатывает TakepropitStrategy или StopLossStrategy. Я правильно предполагаю?
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 12/17/2010
ltrim:
Mikhail Sukhov:
ltrim:
и все! И больше ничего не происходит! Даже если в стакане все меняется. Блин я уже запарился.
Не совсем понял, что и как делаете, плюс какой результат ожидается.
Давайте так. Я делаю заявку. Ожидаю, что по ее исполнению я зарегистрирую стратегию BatchStrategy и дочерние TakepropitStrategy и StopLossStrategy на каждую Mytrade по исполненной заявке. И если вдруг текущая цена инструмента уйдет от цены MyTrade на указанный размер, то срабатывает TakepropitStrategy или StopLossStrategy. Я правильно предполагаю?
MarketQuotingStrategy где используется в этом схеме?
|
|
|
|
Thanks:
|
|
|
|
|
|
ltrim
|
Date: 12/17/2010
Я сейчас не возле компа с проетом. Но суть такая: В дочерние стратегии базового класса Strategy добавляю инициированный MarketQuotingStrategy, потом делаю MyStrategy.RegisterOrder(Order).
Лог говорит, что MarketQuotingStrategy отрабатывает нормально, заявка исполняется, срабатывает событие при появлении новых MyTrade. Там я создаю BatchStrategy добавляю дочерние стратегии TakeProfitStrategy и StopLimitStrategy указаываю все как положено. Лог говорит стратегии запущены но они дальше не работают, то есть ничего не происходит
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 12/17/2010
ltrim:
Я сейчас не возле компа с проетом. Но суть такая: В дочерние стратегии базового класса Strategy добавляю инициированный MarketQuotingStrategy, потом делаю MyStrategy.RegisterOrder(Order).
Лог говорит, что MarketQuotingStrategy отрабатывает нормально, заявка исполняется, срабатывает событие при появлении новых MyTrade. Там я создаю BatchStrategy добавляю дочерние стратегии TakeProfitStrategy и StopLimitStrategy указаываю все как положено. Лог говорит стратегии запущены но они дальше не работают, то есть ничего не происходит
А код можете привести, как именно создаете BatchStrategy и ее заполняете? Я правильно понял, что эту стратегию создаете в обработчике Strategy.NewMyTrades?
|
|
|
|
Thanks:
|
|
|
|
|
|
ltrim
|
Date: 12/17/2010
|
|
|
|
|
Mikhail Sukhov:
ltrim:
Я сейчас не возле компа с проетом. Но суть такая: В дочерние стратегии базового класса Strategy добавляю инициированный MarketQuotingStrategy, потом делаю MyStrategy.RegisterOrder(Order).
Лог говорит, что MarketQuotingStrategy отрабатывает нормально, заявка исполняется, срабатывает событие при появлении новых MyTrade. Там я создаю BatchStrategy добавляю дочерние стратегии TakeProfitStrategy и StopLimitStrategy указаываю все как положено. Лог говорит стратегии запущены но они дальше не работают, то есть ничего не происходит
А код можете привести, как именно создаете BatchStrategy и ее заполняете? Я правильно понял, что эту стратегию создаете в обработчике Strategy.NewMyTrades?
Да, точно так!
Public Sub NewMyTrades(ByVal obj as ... MyTrades)
Dim Trade as MyTrade
Dim BaseBathStrategy as New BatchStrategy(all)
BaseBathStrategy.IsParalel = True
For each Trade In obj
Dim Bath as New BatchStrategy(First)
Dim Tkprf as TakeProfitStrategy(Trade, New Ecng.Trading.BusinessEntities.Unit(2))
Tkprf.IsParalell = True
Dim Stplm as StopLossStrategy(Trade, New Ecng.Trading.BusinessEntities.Unit(2))
Stplm.IsParalell = True
Bath.ChildStrategys.Add(Tkprf)
Bath.ChildStrategys.Add(Stplm)
Next
BaseBathStrategy.ChildStrategys.Add(Bath)
End sub
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 12/17/2010
ltrim:
Да, точно так!
Public Sub NewMyTrades(ByVal obj as ... MyTrades)
Dim Trade as MyTrade
Dim BaseBathStrategy as New BatchStrategy(all)
BaseBathStrategy.IsParalel = True
For each Trade In obj
Dim Bath as New BatchStrategy(First)
Dim Tkprf as TakeProfitStrategy(Trade, New Ecng.Trading.BusinessEntities.Unit(2))
Tkprf.IsParalell = True
Dim Stplm as StopLossStrategy(Trade, New Ecng.Trading.BusinessEntities.Unit(2))
Stplm.IsParalell = True
Bath.ChildStrategys.Add(Tkprf)
Bath.ChildStrategys.Add(Stplm)
Next
BaseBathStrategy.ChildStrategys.Add(Bath)
End sub
А саму то BaseBathStrategy куда нибудь добавляли? Подозреваю что забыли в конце добавить Me.ChildStrategys.Add(BaseBathStrategy)
|
|
|
|
Thanks:
|
|
|
|
|