MCTuTeJ|19951995
|
Date: 3/14/2011
А у всех в Win7 справка криво работает ? Её нужно в корень копировать (или чтобы путь был без спецальных символов и русских букв).
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/14/2011
MCTuTeJ|19951995 Ну да, сделал вроде всё как описано - колонки в конец и потом Code Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Volatility); Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.SettlementDate); Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.ExpiryDate);
У меня в разделе Модификация стандартных таблиц версии 2.6 написано совсем другое: Code// создаем шлюз к Quik-у _trader = new QuikTrader(this.Path.Text);
var columns = _trader.SecuritiesTable.Columns;
// вставляем колонку Время последнего изменения по индексу колонки Время последней сделки // последняя при это перемещается "вперед" columns.Insert(columns.IndexOf(DdeSecurityColumns.LastTradeTime), DdeSecurityColumns.LastChangeTime);
|
|
Thanks:
|
|
|
|
|
skuvv
|
Date: 3/14/2011
skuvv Mikhail Sukhov skuvv По поводу ReRegisterOrder, при использовании такого кода: Code Ecng.Trading.BusinessEntities.Order _order = order.Clone(); _order.Volume = newQty; _order.Price = newPrice; _trader.ReRegisterOrder(order, _order);
получаю отклоненный ордер с сообщением "Сообщение [FORTS] Ошибка в задании входных параметров.. New Order1 ID: 0, new Order2 ID:0" Подозреваю, что какие то параметры неправильные. newQty и newPrice проверьте. v3.0.13 ошибка ушла. замененный ордер не заполняет поле OrderStatus, и всегда ==null PS для стоп-ордеров статус корректный Подтверждаю в 3.0.16 ошибка исправлена, Появилась новая, при использовании для снятия ордера команды TraderHelper, он фризит все потоки(на 20 секунд) и соответсвенно до таймаута не может получить новые события(dde вывод тоже висит) Code try { TraderHelper.GuarantyCancelOrder(order); } catch (Exception ex) { Console.WriteLine(Time.ToString(timefmt) + " ***Cancelling order Reject*** "+ex.ToString()); }
Как только срабатывает эксепшн, собятия начинают приходить
|
|
Thanks:
|
|
|
|
|
MCTuTeJ|19951995
|
Date: 3/14/2011
Mikhail Sukhov MCTuTeJ|19951995 Ну да, сделал вроде всё как описано - колонки в конец и потом Code Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Volatility); Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.SettlementDate); Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.ExpiryDate);
У меня в разделе Модификация стандартных таблиц версии 2.6 написано совсем другое: Code// создаем шлюз к Quik-у _trader = new QuikTrader(this.Path.Text);
var columns = _trader.SecuritiesTable.Columns;
// вставляем колонку Время последнего изменения по индексу колонки Время последней сделки // последняя при это перемещается "вперед" columns.Insert(columns.IndexOf(DdeSecurityColumns.LastTradeTime), DdeSecurityColumns.LastChangeTime); Там же вроде указано несколько вариантов... Использую описанный выше - волатильность и дата эксперации нормально работают.
|
|
Thanks:
|
|
|
|
|
VsevolodG
|
Date: 3/14/2011
Здравствуйте!
Мне нужно сделать робота со следующим алгоритмом: 1. При запуске выставляются две заявки на покупку и на продажу 2. После двух подряд покупок или продаж выставлять стоп-лимиты 3. Когда срабатывает стоп-лимит выставлять тейк-профит на обратную сделку
На основе примеров я создал подключение к Quik. Дальше сразу же затык на получении текущей цены бумаги, на основании которой выставлять первые две заявки. После выставления заявок, как я понимаю, необходимо отслеживать событие NewTrades. Я прав?
Уточните, пожалуйста, как узнать текущую цену бумаги (которая отображается на "графике цены и объема"). А также правильным ли путем я иду или надо создавать какие-то стратегии?
|
|
Thanks:
|
|
|
|
|
MCTuTeJ|19951995
|
Date: 3/14/2011
Не знаю как у других, но для меня стратегии существенно упростили работу со s#.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/15/2011
skuvv Появилась новая, при использовании для снятия ордера команды TraderHelper, он фризит все потоки(на 20 секунд) и соответсвенно до таймаута не может получить новые события(dde вывод тоже висит)
А как проверялось что и другие потоки замирали? Вообще фриз происходит только на текущий поток. GuarantyCancel напрямую вызывался из кода или через котирование?
|
|
Thanks:
|
|
|
|
|
skuvv
|
Date: 3/15/2011
Mikhail Sukhov skuvv Появилась новая, при использовании для снятия ордера команды TraderHelper, он фризит все потоки(на 20 секунд) и соответсвенно до таймаута не может получить новые события(dde вывод тоже висит)
А как проверялось что и другие потоки замирали? Вообще фриз происходит только на текущий поток. GuarantyCancel напрямую вызывался из кода или через котирование? Вызывался из основного потока и соответсвенно весь мой GUI замирал. По логам никаких ивентов в этот промежуток небыло, зато сразу после фриза, накопленные данные пачкой выливаются из квика(сильный пик активности)
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 3/15/2011
skuvv Mikhail Sukhov skuvv Появилась новая, при использовании для снятия ордера команды TraderHelper, он фризит все потоки(на 20 секунд) и соответсвенно до таймаута не может получить новые события(dde вывод тоже висит)
А как проверялось что и другие потоки замирали? Вообще фриз происходит только на текущий поток. GuarantyCancel напрямую вызывался из кода или через котирование? Вызывался из основного потока и соответсвенно весь мой GUI замирал. По логам никаких ивентов в этот промежуток небыло, зато сразу после фриза, накопленные данные пачкой выливаются из квика(сильный пик активности) 1. Из GUI потока торговлю делать не нужно. 2. Потому что наверняка вы из других обработчиков делаете GuiSync. А так как GUI поток заблокирован из-за неправильного пункта 1, то виснут и сами обработчики.
|
|
Thanks:
|
|
|
|
|
IlyaILH
|
Date: 3/15/2011
Добрый день.
Приступил к изучению S# в связи с этим у меня возник вопрос: при экспорте custom table все нормально работает, когда в таблице одна бумага, но как работать с несколькими бумагами так, например, при завпросе code инструмента выдается только код 1-го по списку инструмента.
Заранее благодарен за помощь.
|
|
Thanks:
|
|
|
|