Mikhail Sukhov
|
Date: 3/15/2011
IlyaILH:
Добрый день.
Приступил к изучению S# в связи с этим у меня возник вопрос:
при экспорте custom table все нормально работает, когда в таблице одна бумага, но как работать с несколькими бумагами
так, например, при завпросе code инструмента выдается только код 1-го по списку инструмента.
Заранее благодарен за помощь.
Чуть подробнее и с деталями.
|
|
|
|
Thanks:
|
|
|
|
|
|
skuvv
|
Date: 3/15/2011
Mikhail Sukhov:
skuvv:
Mikhail Sukhov:
skuvv:
Появилась новая, при использовании для снятия ордера команды TraderHelper, он фризит все потоки(на 20 секунд) и соответсвенно до таймаута не может получить новые события(dde вывод тоже висит)
А как проверялось что и другие потоки замирали? Вообще фриз происходит только на текущий поток. GuarantyCancel напрямую вызывался из кода или через котирование?
Вызывался из основного потока и соответсвенно весь мой GUI замирал.
По логам никаких ивентов в этот промежуток небыло, зато сразу после фриза, накопленные данные пачкой выливаются из квика(сильный пик активности)
- Из GUI потока торговлю делать не нужно.
- Потому что наверняка вы из других обработчиков делаете GuiSync. А так как GUI поток заблокирован из-за неправильного пункта 1, то виснут и сами обработчики.
Проблема повторяется и не только из мейн потока.
Попробовал TraderHelper в Sample примере, все ок.
Видимо проблема у меня, но раньше её не было(до 3.0.13 включительно)....
|
|
|
|
Thanks:
|
|
|
|
|
|
VsevolodG
|
Date: 3/15/2011
VsevolodG:
Здравствуйте!
Мне нужно сделать робота со следующим алгоритмом:
- При запуске выставляются две заявки на покупку и на продажу
- После двух подряд покупок или продаж выставлять стоп-лимиты
- Когда срабатывает стоп-лимит выставлять тейк-профит на обратную сделку
На основе примеров я создал подключение к Quik. Дальше сразу же затык на получении текущей цены бумаги, на основании которой выставлять первые две заявки.
После выставления заявок, как я понимаю, необходимо отслеживать событие NewTrades. Я прав?
Уточните, пожалуйста, как узнать текущую цену бумаги (которая отображается на "графике цены и объема"). А также правильным ли путем я иду или надо создавать какие-то стратегии?
Не оставляйте, пожалуйста, без внимания мои вопросы
|
|
|
|
Thanks:
|
|
|
|
|
|
Alexander
|
Date: 3/15/2011
VsevolodG:
VsevolodG:
Здравствуйте!
Мне нужно сделать робота со следующим алгоритмом:
- При запуске выставляются две заявки на покупку и на продажу
- После двух подряд покупок или продаж выставлять стоп-лимиты
- Когда срабатывает стоп-лимит выставлять тейк-профит на обратную сделку
На основе примеров я создал подключение к Quik. Дальше сразу же затык на получении текущей цены бумаги, на основании которой выставлять первые две заявки.
После выставления заявок, как я понимаю, необходимо отслеживать событие NewTrades. Я прав?
Уточните, пожалуйста, как узнать текущую цену бумаги (которая отображается на "графике цены и объема"). А также правильным ли путем я иду или надо создавать какие-то стратегии?
Не оставляйте, пожалуйста, без внимания мои вопросы
В первую очередь следует изучить документацию и посмотреть примеры более внимательно.
- Что значит "текущая цена бумаги"? Цена последней сделки бумаги?
В данном вопросе уже содержится ответ.
Security - бумага
LastTrade - последняя сделка
Price - цена
Получаем Security.LastTrade.Price
- Зачем все сделки, если интересуют только собственные сделки?
NewMyTrades отслеживать
Если это всё что нужно, то можно и без стратегий.
|
|
|
|
Thanks:
|
|
|
|
|
|
IlyaILH
|
Date: 3/16/2011
Mikhail Sukhov:
IlyaILH:
Добрый день.
Приступил к изучению S# в связи с этим у меня возник вопрос:
при экспорте custom table все нормально работает, когда в таблице одна бумага, но как работать с несколькими бумагами
так, например, при завпросе code инструмента выдается только код 1-го по списку инструмента.
Заранее благодарен за помощь.
Чуть подробнее и с деталями.
Все с этим разобрался, Спасибо.
|
|
|
|
Thanks:
|
|
|
|
|
|
VsevolodG
|
Date: 3/16/2011
Alexander:
VsevolodG:
VsevolodG:
Здравствуйте!
Мне нужно сделать робота со следующим алгоритмом:
- При запуске выставляются две заявки на покупку и на продажу
- После двух подряд покупок или продаж выставлять стоп-лимиты
- Когда срабатывает стоп-лимит выставлять тейк-профит на обратную сделку
На основе примеров я создал подключение к Quik. Дальше сразу же затык на получении текущей цены бумаги, на основании которой выставлять первые две заявки.
После выставления заявок, как я понимаю, необходимо отслеживать событие NewTrades. Я прав?
Уточните, пожалуйста, как узнать текущую цену бумаги (которая отображается на "графике цены и объема"). А также правильным ли путем я иду или надо создавать какие-то стратегии?
Не оставляйте, пожалуйста, без внимания мои вопросы
В первую очередь следует изучить документацию и посмотреть примеры более внимательно.
- Что значит "текущая цена бумаги"? Цена последней сделки бумаги?
В данном вопросе уже содержится ответ.
Security - бумага
LastTrade - последняя сделка
Price - цена
Получаем Security.LastTrade.Price
- Зачем все сделки, если интересуют только собственные сделки?
NewMyTrades отслеживать
Если это всё что нужно, то можно и без стратегий.
Тогда вопрос, как получить значение Security.LastTrade.Price?
В документации написано:
"RegisterSecurity - Начать получать новую информацию (например, LastTrade или BestBid) по инструменту."
Соответственно, делаю так:
this.Trader.RegisterSecurity(_lkoh);
this.Trader.SecuritiesChanged += new Action<IEnumerable>(Trader_SecuritiesChanged);
В итоге это событие не вызывается в принципе. Хотя в Quik изменения в стакане происходят регулярно.
|
|
|
|
Thanks:
|
|
|
|
|
|
VsevolodG
|
Date: 3/16/2011
Событие SecuritiesChanged начало отрабатывать, после того как я подписался на событие:
this.Trader.RegisterQuotes(_lkoh);
this.Trader.QuotesChanged += new Action<IEnumerable>(Trader_QuotesChanged);
Но, цена последней сделки всегда равна нулю.
"LastTrade: 0, BestBid: Бид 1998,5 2"
|
|
|
|
Thanks:
|
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/16/2011
VsevolodG:
Событие SecuritiesChanged начало отрабатывать, после того как я подписался на событие:
this.Trader.RegisterQuotes(_lkoh);
this.Trader.QuotesChanged += new Action<IEnumerable>(Trader_QuotesChanged);
Но, цена последней сделки всегда равна нулю.
"LastTrade: 0, BestBid: Бид 1998,5 2"
А таблица сделок экспортируется?
|
|
|
|
|
|
|
Igor_B
|
Date: 3/16/2011
Михаил. доброе время.
Создали и экспортируем собственную таблицу из Квик. Данные по ДДЕ получаем (код, цена последней сделки, время посл.сделки...), сейчас пробуем экспорт стакана.
Работаем в своем приложении.
1.Можно ли экспортировать данные стакана (и/или любые другие) без открытия в Квике таблиц Инструменты...
2.Пробовали создавать таблицу инструменты в Квике (пример LKOH), при выполнении
lkoh = new Security();
Trader.RegisterQuotes(lkoh); - ошибка
"Для инструмента не было найдено информации в таблице инструменты.
Parameter name: security"
В чем м.б. ошибка?
Спасибо.
|
|
|
|
Thanks:
|
|
|
|
|
|
VsevolodG
|
Date: 3/16/2011
Подскажите, пожалуйста, по какой причине может не отрабатывать событие MyNewTrades?
Сделка в Quik появляется, а код, привязанный к событию MyNewTrades не отрабатывает.
Вот мой код:
this.Trader.NewMyTrades += myTrades =>
{
foreach (var myTrade in myTrades)
{
var trade = myTrade.Trade;
MessageBox.Show(String.Format("Сделка {0} по цене {1} по бумаге {2} по объему {3} в {4}.", trade.Id, trade.Price, trade.Security.Code, trade.Volume, trade.Time));
}
};
this.Trader.Terminal.StartDde(Trader.SecuritiesTable, Trader.MyTradesTable, Trader.EquityPositionsTable);
|
|
|
|
Thanks:
|
|
|
|
|