order.State
Atom
5/26/2010
XMbIPb


Почему то всегда возвращает None..хотя состояние меняется..в чём может быть дело?


Tags:


Thanks:


< 1 2 3 4 5  >
Alexander

Avatar
Date: 6/30/2010
Reply


Спс за наводку, подпишусь на эти события и потестирую вечером. Отпишусь по результатам

Thanks:

Alexander

Avatar
Date: 7/1/2010
Reply


Подписался на эти события - всё стало работать нормально. Только почему-то если шортить 1 контракт и регистрировать эту заявку в стратегии:

               Order newProfitOrder =

CreateOrder(OrderDirections.Sell,

Security.MinPrice, 1);

               Trader.RegisterOrder(newProfitOrder);
                base.AddOrder(newProfitOrder);

PositionManager.Position становится равным -2. Или так и должно быть?

Thanks:

Mikhail Sukhov

Avatar
Date: 7/1/2010
Reply


  1. Думаю, события тут не причем.
  2. Позиция расчитывается по случившимся сделкам, не заявкам.
Thanks:

Alexander

Avatar
Date: 7/1/2010
Reply


  1. Была лишь 1 заявка на 1 лот, т.е. была 1 сделка. Вот распечатка Order при каждом срабатывании события OrdersChanged: Balance (0), CancelTime (), ID (1846739022), InitializationTime (01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done), Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1), Direction(Sell) Balance (0), CancelTime (), ID (1846739022), InitializationTime (01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done), Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1), Direction(Sell) Balance (0), CancelTime (), ID (1846739022), InitializationTime (01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done), Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1), Direction(Sell) Balance (0), CancelTime (), ID (1846739022), InitializationTime (01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done), Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1), Direction(Sell) Balance (0), CancelTime (), ID (1846739022), InitializationTime (01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done), Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1), Direction(Sell) Balance (0), CancelTime (), ID (1846739022), InitializationTime (01.07.2010 10:51:36), Price (127615), State (Matched), Status (Done), Time (01.07.2010 10:51:38), TransactionId (39096772), Volume (1), Direction(Sell) Balance (0), CancelTime (), ID (1846743309), InitializationTime (01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done), Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1), Direction(Buy) Balance (0), CancelTime (), ID (1846743309), InitializationTime (01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done), Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1), Direction(Buy) Balance (0), CancelTime (), ID (1846743309), InitializationTime (01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done), Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1), Direction(Buy) Balance (0), CancelTime (), ID (1846743309), InitializationTime (01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done), Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1), Direction(Buy) Balance (0), CancelTime (), ID (1846743309), InitializationTime (01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done), Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1), Direction(Buy) Balance (0), CancelTime (), ID (1846743309), InitializationTime (01.07.2010 10:52:00), Price (138585), State (Matched), Status (Done), Time (01.07.2010 10:52:01), TransactionId (39120212), Volume (1), Direction(Buy)

Вначале открыли, потом, на новой минуте - закрыли. Между открытием и закрытием позиции печатал PositionManager.Position, он был равен -2. И ещё, почему событие OrdersChanged вызывается 6 раз для 1 заявки? Вроде был уже такой вопрос в группе, но не смог найти.

Thanks:

Alexander

Avatar
Date: 7/1/2010
Reply


Вот сейчас тоже по стратегии был открыт шорт на 20 лотов и выставлен стоп для шорта на теже 20 лотов. PositionManager.Position равен -40. Чего-то не понимаю видимо я =) Как-то можно получить конкретно эти открытые -20 лотов для стратегии?

On 1 июл, 12:53, Mikhail Sukhov <msou[url=...]...[/url]@gmail.com> wrote:

Thanks:

Alexander

Avatar
Date: 7/1/2010
Reply


Пошёл дальше в исследовании - у меня создаётся MultiTrader, который я и передаю в стратегию и именно его использую для регистрации заявок. Может как раз стоит использовать не его, а добавленный в него QuikTrader. Потому что, возвращаясь к этим 20 лотам шорта - в MyTrades у PositionManager аж 6 сделок отображено. И стоп-сделки, которая сработала, почему-то нет. Хотя и она была туда добавлена:

                               var stopOrder = new Order
                                {
                                    Account = Account,
                                    Type = OrderTypes.Conditional,
                                    Volume = Volume,
                                    Security = Security,
                                    Direction =

OrderDirections.Buy, Price = Security.MaxPrice, StopCondition = new QuikStopCondition { Type =

QuikStopConditionTypes. StopLimit, StopPrice = stopPrice, } }; Trader.RegisterOrder(stopOrder); base.AddOrder(stopOrder);

On 1 июл, 12:53, Mikhail Sukhov <msou[url=...]...[/url]@gmail.com> wrote:

Thanks:

Mikhail Sukhov

Avatar
Date: 7/1/2010
Reply


А сколько реально должно быть сделок? И плюс, ты Вы в курсе, что сделки по стоп заявки быть не должно, только по производной?

On 1 июл, 13:57, Alexander <amukhanch[url=...]...[/url]@gmail.com> wrote:

Thanks:

Mikhail Sukhov

Avatar
Date: 7/1/2010
Reply


Ок, а стоп был с каким направлением? Тоже на шорт или на защиту шорта (тоесть лонг)?

On 1 июл, 13:29, Alexander <amukhanch[url=...]...[/url]@gmail.com> wrote:

Thanks:

Alexander

Avatar
Date: 7/1/2010
Reply


По поводу производной не понял. Я поставил стоп на покупку как видно из текста, т.е. на защиту шорта. Он выставился в систему и уже сработал.

Реально не знаю сколько должно сделок, я хочу, регистрируя в стратегии сделку и получая состояние что она исполнена - получить в PositionManager.Position для данной стратегии столько лотов, сколько у меня было открыто в сделке. Или логика другая?

On 1 июл, 14:09, Mikhail Sukhov <msou[url=...]...[/url]@gmail.com> wrote:

Thanks:

Alexander

Avatar
Date: 7/1/2010
Reply


Идей пока нет, куда можно дальше копать?

Попутно наткнулся на такой эксепшен при попытке вызвать Trader.Disconnect(), где Trader - MultiTrader, куда добавлены 2 AggregatedTraders с одинаковыми QuikTrader (пути совпадают) и разными счетами:

Ecng.Trading.Quik.ApiException was caught Message=Код ошибки DllNotConnected Сообщение DLL is not connected to QUIK. Source=Ecng.Trading.Quik StackTrace: at . (Int32 , StringBuilder ) at . () at Ecng.Trading.Quik.QuikTrader.Disconnect() at Ecng.Trading.Algo.MultiTrader. (IEnumerable1 ) at Ecng.Trading.Algo.MultiTrader. . ( ) at Ecng.Collections.CollectionHelper.SyncDo[TCollection] (TCollection collection, Action1 action) at Ecng.Trading.Algo.MultiTrader. (Action`1 ) at Ecng.Trading.Algo.MultiTrader.Disconnect() at Robots.MainWindow.ConnectBtn_Click(Object sender, RoutedEventArgs e) in C:\Users\Alexander\Documents\Visual Studio 2010\Projects\Robots\Robots\MainWindow.xaml.cs:line 224 InnerException:

Thanks:
< 1 2 3 4 5  >

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

loading
clippy