Добрый день.
Пытаюсь воспроизвести пример из видео "StockSharp. Быстрый старт! Торговый робот на Quik!" (http://stocksharp.com/products/api/). Не могу пройти простой квест: _trader.Connect() 😭
Скачал S#.API версии 4.3.13 (https://github.com/StockSharp/StockSharp/releases/download/4.3.13/StockSharp_4.3.13.zip) (проверил, версия StockSharp.Quik.dll действительно 4.3.13)
(Аналогично пробовал 4.2.75 - результат тот же, что и далее по тексту)
В Quik загружаю info.wnd (НО! Нашел в другой папке: ...\Samples\Quik\DDE\info.wnd, а не как было в видео: ...\Samples\Quik\info.wnd) ( также пробовал другие wnd: ...\Samples\Quik\DDE\info_extended.wnd, ...\Samples\Quik\DDE\info_options.wnd, ...\Samples\Quik\info_lua.wnd; после каждого выбора в торговые счета "добавлял все". )
Создаю проект (как в примере). Добавляю DLL-ки, как в примере:
- \References\Ecng.Common.dll
- \References\Ecng.ComponentModel.dll
- \References\Ecng.Xaml.dll
- \References\StockSharp.Algo.dll
- \References\StockSharp.BusinessEntities.dll
- \References\StockSharp.Quik.dll
- (т.к. при компиляции требовал добавить)
- \References\StockSharp.Logging.dll
- \References\StockSharp.Messages.dll
- Собираю простой тест (как в примере + кнопка Тест - для вывода ConnectionState):
private void btnConnect_Click(object sender, RoutedEventArgs e) { _trader = new QuikTrader(QuikTerminal.GetDefaultPath()); // "D:\Program Files (x86)\Info\info.exe" _trader.Connect(); }
private void btnTest_Click(object sender, RoutedEventArgs e) { MessageBox.Show(_trader.ConnectionState.ToString()); }
Запускаю. Если Quik запущен, то молча проходит метод btnConnect_Click. Quik никак не реагирует. При тесте получаем "Failed", вне зависимости от того, запущен сейчас Quik или нет...
Посмотрел настройки DDE вывода у таблиц. Там имя DDE сервера стоит wrapper. Попробовал у некоторых ("Инструменты" и "портфель по деривативам") изменить на STOCKSHARP (т.к. у объекта _trader.DdeServer = "STOCKSHARP"). Ничего не дает. Если еще в QUIK нажать "Начать вывод по DDE", то QUIK выдает ошибку:
Не удалось установить DDE соединение с сервером 'STOCKSHARP'. Либо не запущен 'портфель по деривативам', либо в него не загружен лист ''. Таблица 'Портфель по деривативам'
Версии: Microsoft Visual Studio Professional 2015 Version 14.0.23107.0 D14REL Microsoft .NET Framework Version 4.6.00081
С уважением, Владимир.
评论 (12)
登录 或 创建账户, 登录或注册以发表评论
Пользуйтесь Lua. DDE давно уже не поддерживается S#.
Есть способ добавить дополнительные колонки таблиц в Lua? Особенно гарантийное обеспечение интересует.
Спасибо!
Попрбовал через Lua.
Можно с (логином + паролем), а можно и без ( -- ServerLogin="quik" -- ServerPassword="quik" )
вот такой метод Connect-а:
Взлетело после включения _trader.IsDde = true; 🙂
Может заодно кто подскажет как можно получить через QuikTrader (lua соединение) из QuikJunior тиковые данные? Конкретно интересует цена с графика свечей. По доку понял, что надо вызывать сначала RegisterTrades, но NewTrades событие не вызывается, хотя в самом квике цена на графике успешно меняется. Или же можно как-то например через стакан почуть текущую цену? Стаканные данные умею получать.
unpresent, что-то вы путаете. IsDDE - как раз включает dde, а не луа. И при использовании луа должно быть false.
Да,да,да... Не могу спорить с тем, что (IsDde = true) -> (используется DDE); (IsDde = false) -> (используется Lua) Просто спешил поделиться радостью, что хоть как-то но получилось присоединиться к Quik-у...
Ну а раз зашла речь о разных типах подключения, тогда давайте буду спрашивать, почему DDE проходит, а Lua - нет.
Итак. Обращая внимания на пункт 5 статьи: http://stocksharp.com/doc/html/1fdfb45f-9d48-4560-bfc4-8d9b5b20a1cf.htm
Вот здесь у меня действительно получается создать DDE-подключение, даже получить список инструментов и портфелей:
Если же я пробую Lua-подключение:
knoppix, для этого сделки должны транслироваться в таблицу всех сделок. С этим на демо-счете могут быть проблемы, нужно смотреть транслируются в нем тики или нет. С графика тики браться не будут.
Если сделки не транслируются, можно написать в поддержку, чтобы включили. Например демо у quik.ru.
Т.е. в квике джуниор сделки/цены на графике приходят(считаются) как-то отдельно от реальных данных сделок и поэтому не экспортируются?
У меня QuikJunior от брокера "Открытие". У них тех. супорт есть?
У Открытия надо включить трансляцию всех сделок в Quik в ЛК:
Упс! Прочитал и сам же увидел свою ошибку... IP не тот указал... Надо было 127.0.0.1:5001.
Заработало и Lua, и DDE! Спасибо! 👍
Инструменты, даже сразу все выгрузились )).. Все... пора работать, работать.. Вечером буду уже играться - выгружать портфели, стаканы, сделки и т.п. Если будут вопросы, уж извините - буду беспокоить!