MCTuTeJ|19951995
|
Дата: 14.03.2011
А у всех в Win7 справка криво работает ? Её нужно в корень копировать (или чтобы путь был без спецальных символов и русских букв).
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 14.03.2011
MCTuTeJ|19951995 Ну да, сделал вроде всё как описано - колонки в конец и потом Код Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Volatility); Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.SettlementDate); Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.ExpiryDate);
У меня в разделе Модификация стандартных таблиц версии 2.6 написано совсем другое: Код// создаем шлюз к Quik-у _trader = new QuikTrader(this.Path.Text);
var columns = _trader.SecuritiesTable.Columns;
// вставляем колонку Время последнего изменения по индексу колонки Время последней сделки // последняя при это перемещается "вперед" columns.Insert(columns.IndexOf(DdeSecurityColumns.LastTradeTime), DdeSecurityColumns.LastChangeTime);
|
|
Спасибо:
|
|
|
|
|
skuvv
|
Дата: 14.03.2011
skuvv Mikhail Sukhov skuvv По поводу ReRegisterOrder, при использовании такого кода: Код 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 вывод тоже висит) Код try { TraderHelper.GuarantyCancelOrder(order); } catch (Exception ex) { Console.WriteLine(Time.ToString(timefmt) + " ***Cancelling order Reject*** "+ex.ToString()); }
Как только срабатывает эксепшн, собятия начинают приходить
|
|
Спасибо:
|
|
|
|
|
MCTuTeJ|19951995
|
Дата: 14.03.2011
Mikhail Sukhov MCTuTeJ|19951995 Ну да, сделал вроде всё как описано - колонки в конец и потом Код Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.Volatility); Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.SettlementDate); Trader.SecuritiesTable.Columns.Add(DdeSecurityColumns.ExpiryDate);
У меня в разделе Модификация стандартных таблиц версии 2.6 написано совсем другое: Код// создаем шлюз к Quik-у _trader = new QuikTrader(this.Path.Text);
var columns = _trader.SecuritiesTable.Columns;
// вставляем колонку Время последнего изменения по индексу колонки Время последней сделки // последняя при это перемещается "вперед" columns.Insert(columns.IndexOf(DdeSecurityColumns.LastTradeTime), DdeSecurityColumns.LastChangeTime); Там же вроде указано несколько вариантов... Использую описанный выше - волатильность и дата эксперации нормально работают.
|
|
Спасибо:
|
|
|
|
|
VsevolodG
|
Дата: 14.03.2011
Здравствуйте!
Мне нужно сделать робота со следующим алгоритмом: 1. При запуске выставляются две заявки на покупку и на продажу 2. После двух подряд покупок или продаж выставлять стоп-лимиты 3. Когда срабатывает стоп-лимит выставлять тейк-профит на обратную сделку
На основе примеров я создал подключение к Quik. Дальше сразу же затык на получении текущей цены бумаги, на основании которой выставлять первые две заявки. После выставления заявок, как я понимаю, необходимо отслеживать событие NewTrades. Я прав?
Уточните, пожалуйста, как узнать текущую цену бумаги (которая отображается на "графике цены и объема"). А также правильным ли путем я иду или надо создавать какие-то стратегии?
|
|
Спасибо:
|
|
|
|
|
MCTuTeJ|19951995
|
Дата: 14.03.2011
Не знаю как у других, но для меня стратегии существенно упростили работу со s#.
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 15.03.2011
skuvv Появилась новая, при использовании для снятия ордера команды TraderHelper, он фризит все потоки(на 20 секунд) и соответсвенно до таймаута не может получить новые события(dde вывод тоже висит)
А как проверялось что и другие потоки замирали? Вообще фриз происходит только на текущий поток. GuarantyCancel напрямую вызывался из кода или через котирование?
|
|
Спасибо:
|
|
|
|
|
skuvv
|
Дата: 15.03.2011
Mikhail Sukhov skuvv Появилась новая, при использовании для снятия ордера команды TraderHelper, он фризит все потоки(на 20 секунд) и соответсвенно до таймаута не может получить новые события(dde вывод тоже висит)
А как проверялось что и другие потоки замирали? Вообще фриз происходит только на текущий поток. GuarantyCancel напрямую вызывался из кода или через котирование? Вызывался из основного потока и соответсвенно весь мой GUI замирал. По логам никаких ивентов в этот промежуток небыло, зато сразу после фриза, накопленные данные пачкой выливаются из квика(сильный пик активности)
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 15.03.2011
skuvv Mikhail Sukhov skuvv Появилась новая, при использовании для снятия ордера команды TraderHelper, он фризит все потоки(на 20 секунд) и соответсвенно до таймаута не может получить новые события(dde вывод тоже висит)
А как проверялось что и другие потоки замирали? Вообще фриз происходит только на текущий поток. GuarantyCancel напрямую вызывался из кода или через котирование? Вызывался из основного потока и соответсвенно весь мой GUI замирал. По логам никаких ивентов в этот промежуток небыло, зато сразу после фриза, накопленные данные пачкой выливаются из квика(сильный пик активности) 1. Из GUI потока торговлю делать не нужно. 2. Потому что наверняка вы из других обработчиков делаете GuiSync. А так как GUI поток заблокирован из-за неправильного пункта 1, то виснут и сами обработчики.
|
|
Спасибо:
|
|
|
|
|
IlyaILH
|
Дата: 15.03.2011
Добрый день.
Приступил к изучению S# в связи с этим у меня возник вопрос: при экспорте custom table все нормально работает, когда в таблице одна бумага, но как работать с несколькими бумагами так, например, при завпросе code инструмента выдается только код 1-го по списку инструмента.
Заранее благодарен за помощь.
|
|
Спасибо:
|
|
|
|