order.State
Atom
26.05.2010
XMbIPb


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

Теги:


Спасибо:


< 1 2 3 4 5  >
Alexander

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


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

Спасибо:

Alexander

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


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

Order newProfitOrder =
CreateOrder(OrderDirections.Sell,

Security.MinPrice, 1);

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

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

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

Alexander

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


2. Была лишь 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 заявки?
Вроде был уже такой вопрос в группе, но не смог найти.

Спасибо:

Alexander

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


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

On 1 июл, 12:53, Mikhail Sukhov <msou...@gmail.com> wrote:

Спасибо:

Alexander

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


Пошёл дальше в исследовании - у меня создаётся 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...@gmail.com> wrote:

Спасибо:

Mikhail Sukhov

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


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

On 1 июл, 13:57, Alexander <amukhanch...@gmail.com> wrote:

Спасибо:

Mikhail Sukhov

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


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

On 1 июл, 13:29, Alexander <amukhanch...@gmail.com> wrote:

Спасибо:

Alexander

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


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

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

On 1 июл, 14:09, Mikhail Sukhov <msou...@gmail.com> wrote:

Спасибо:

Alexander

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


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

Попутно наткнулся на такой эксепшен при попытке вызвать
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. (IEnumerable`1 )
at Ecng.Trading.Algo.MultiTrader. . ( )
at Ecng.Collections.CollectionHelper.SyncDo[TCollection]
(TCollection collection, Action`1 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:

Спасибо:
< 1 2 3 4 5  >

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

loading
clippy