Вопросы новичка в S# (Закрыта)
Atom
01.12.2010


ttt

Фотография
Добрый день.
Очень понравилась идея использования Вашей библиотеки для реализации роботов.
Подскажите, пожалуйста:
1) Как идентифицировать заявку?
//например, выставляю заявку buy RIZ0 4 контракта по цене 160500. Каким образом далее смогу ее отслеживать?
Вариант с использованием таблицы сделок не подходит - необходимо реализовать контроль исполнения заявок пользуясь исключительно информацией из таблицы заявок.
С языком C# только начал разбираться, возможно поэтому не нашел в представленных в дистрибутиве S# проектах примеров контроля состояния заявки по ее уникальному признаку.
2) Верно ли я понимаю суть работы с Квиком: для реализации автономного робота необходимо организовать два потока на C#:
- первый: выполняет функции получения данных из Квика через DDE сервер (используя библиотеку S#);
- второй: непосредственно реализует алгоритм выставления и снятия заявок.
Можно ли обойтись одним потоком?

Теги:


Спасибо: Николай_Флёров


<< < 13 14 15 16 17  > >>
Mikhail Sukhov

Фотография
Дата: 15.03.2011


IlyaILH Перейти
Добрый день.

Приступил к изучению S# в связи с этим у меня возник вопрос:
при экспорте custom table все нормально работает, когда в таблице одна бумага, но как работать с несколькими бумагами
так, например, при завпросе code инструмента выдается только код 1-го по списку инструмента.

Заранее благодарен за помощь.


Чуть подробнее и с деталями.
Спасибо:

skuvv

Фотография
Дата: 15.03.2011


Mikhail Sukhov Перейти
skuvv Перейти
Mikhail Sukhov Перейти
skuvv Перейти
Появилась новая, при использовании для снятия ордера команды TraderHelper, он фризит все потоки(на 20 секунд) и соответсвенно до таймаута не может получить новые события(dde вывод тоже висит)


А как проверялось что и другие потоки замирали? Вообще фриз происходит только на текущий поток. GuarantyCancel напрямую вызывался из кода или через котирование?

Вызывался из основного потока и соответсвенно весь мой GUI замирал.
По логам никаких ивентов в этот промежуток небыло, зато сразу после фриза, накопленные данные пачкой выливаются из квика(сильный пик активности)


1. Из GUI потока торговлю делать не нужно.
2. Потому что наверняка вы из других обработчиков делаете GuiSync. А так как GUI поток заблокирован из-за неправильного пункта 1, то виснут и сами обработчики.

Проблема повторяется и не только из мейн потока.
Попробовал TraderHelper в Sample примере, все ок.
Видимо проблема у меня, но раньше её не было(до 3.0.13 включительно)....
Спасибо:

VsevolodG

Фотография
Дата: 15.03.2011


VsevolodG Перейти
Здравствуйте!

Мне нужно сделать робота со следующим алгоритмом:
1. При запуске выставляются две заявки на покупку и на продажу
2. После двух подряд покупок или продаж выставлять стоп-лимиты
3. Когда срабатывает стоп-лимит выставлять тейк-профит на обратную сделку

На основе примеров я создал подключение к Quik. Дальше сразу же затык на получении текущей цены бумаги, на основании которой выставлять первые две заявки.
После выставления заявок, как я понимаю, необходимо отслеживать событие NewTrades. Я прав?

Уточните, пожалуйста, как узнать текущую цену бумаги (которая отображается на "графике цены и объема"). А также правильным ли путем я иду или надо создавать какие-то стратегии?


Не оставляйте, пожалуйста, без внимания мои вопросы
Спасибо:

Alexander

Фотография
Дата: 15.03.2011


VsevolodG Перейти
VsevolodG Перейти
Здравствуйте!

Мне нужно сделать робота со следующим алгоритмом:
1. При запуске выставляются две заявки на покупку и на продажу
2. После двух подряд покупок или продаж выставлять стоп-лимиты
3. Когда срабатывает стоп-лимит выставлять тейк-профит на обратную сделку

На основе примеров я создал подключение к Quik. Дальше сразу же затык на получении текущей цены бумаги, на основании которой выставлять первые две заявки.
После выставления заявок, как я понимаю, необходимо отслеживать событие NewTrades. Я прав?

Уточните, пожалуйста, как узнать текущую цену бумаги (которая отображается на "графике цены и объема"). А также правильным ли путем я иду или надо создавать какие-то стратегии?


Не оставляйте, пожалуйста, без внимания мои вопросы



В первую очередь следует изучить документацию и посмотреть примеры более внимательно.

1) Что значит "текущая цена бумаги"? Цена последней сделки бумаги?
В данном вопросе уже содержится ответ.
Security - бумага
LastTrade - последняя сделка
Price - цена

Получаем Security.LastTrade.Price

2) Зачем все сделки, если интересуют только собственные сделки?
NewMyTrades отслеживать

Если это всё что нужно, то можно и без стратегий.
Спасибо:

IlyaILH

Фотография
Дата: 16.03.2011


Mikhail Sukhov Перейти
IlyaILH Перейти
Добрый день.

Приступил к изучению S# в связи с этим у меня возник вопрос:
при экспорте custom table все нормально работает, когда в таблице одна бумага, но как работать с несколькими бумагами
так, например, при завпросе code инструмента выдается только код 1-го по списку инструмента.

Заранее благодарен за помощь.


Чуть подробнее и с деталями.


Все с этим разобрался, Спасибо.
Спасибо:

VsevolodG

Фотография
Дата: 16.03.2011


Alexander Перейти
VsevolodG Перейти
VsevolodG Перейти
Здравствуйте!

Мне нужно сделать робота со следующим алгоритмом:
1. При запуске выставляются две заявки на покупку и на продажу
2. После двух подряд покупок или продаж выставлять стоп-лимиты
3. Когда срабатывает стоп-лимит выставлять тейк-профит на обратную сделку

На основе примеров я создал подключение к Quik. Дальше сразу же затык на получении текущей цены бумаги, на основании которой выставлять первые две заявки.
После выставления заявок, как я понимаю, необходимо отслеживать событие NewTrades. Я прав?

Уточните, пожалуйста, как узнать текущую цену бумаги (которая отображается на "графике цены и объема"). А также правильным ли путем я иду или надо создавать какие-то стратегии?


Не оставляйте, пожалуйста, без внимания мои вопросы



В первую очередь следует изучить документацию и посмотреть примеры более внимательно.

1) Что значит "текущая цена бумаги"? Цена последней сделки бумаги?
В данном вопросе уже содержится ответ.
Security - бумага
LastTrade - последняя сделка
Price - цена

Получаем Security.LastTrade.Price

2) Зачем все сделки, если интересуют только собственные сделки?
NewMyTrades отслеживать

Если это всё что нужно, то можно и без стратегий.


Тогда вопрос, как получить значение Security.LastTrade.Price?
В документации написано:
"RegisterSecurity - Начать получать новую информацию (например, LastTrade или BestBid) по инструменту."

Соответственно, делаю так:
this.Trader.RegisterSecurity(_lkoh);
this.Trader.SecuritiesChanged += new Action<IEnumerable<Security>>(Trader_SecuritiesChanged);

В итоге это событие не вызывается в принципе. Хотя в Quik изменения в стакане происходят регулярно.
Спасибо:

VsevolodG

Фотография
Дата: 16.03.2011


Событие SecuritiesChanged начало отрабатывать, после того как я подписался на событие:
this.Trader.RegisterQuotes(_lkoh);
this.Trader.QuotesChanged += new Action<IEnumerable<MarketDepth>>(Trader_QuotesChanged);

Но, цена последней сделки всегда равна нулю.
"LastTrade: 0, BestBid: Бид 1998,5 2"
Спасибо:

Mikhail Sukhov

Фотография
Дата: 16.03.2011


VsevolodG Перейти
Событие SecuritiesChanged начало отрабатывать, после того как я подписался на событие:
this.Trader.RegisterQuotes(_lkoh);
this.Trader.QuotesChanged += new Action<IEnumerable<MarketDepth>>(Trader_QuotesChanged);

Но, цена последней сделки всегда равна нулю.
"LastTrade: 0, BestBid: Бид 1998,5 2"


А таблица сделок экспортируется?
Спасибо: VsevolodG

Igor_B

Фотография
Дата: 16.03.2011


Михаил. доброе время.
Создали и экспортируем собственную таблицу из Квик. Данные по ДДЕ получаем (код, цена последней сделки, время посл.сделки...), сейчас пробуем экспорт стакана.
Работаем в своем приложении.
1.Можно ли экспортировать данные стакана (и/или любые другие) без открытия в Квике таблиц Инструменты...
2.Пробовали создавать таблицу инструменты в Квике (пример LKOH), при выполнении
lkoh = new Security();
Trader.RegisterQuotes(lkoh); - ошибка
"Для инструмента не было найдено информации в таблице инструменты.
Parameter name: security"
В чем м.б. ошибка?
Спасибо.


Спасибо:

VsevolodG

Фотография
Дата: 16.03.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);
Спасибо:
<< < 13 14 15 16 17  > >>

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

loading
clippy