← Atrás

Запуск программы

Добрый день, заинтересовала ваша программа. Сам я не программист, хоть раньше и приходилось писать программы по работе, сейчас я выпал из темы. Подскажите пожалуйста, что нужно установить на компе, чтобы запустить S#? Framework 3.5, MS Visual C++ 2005 Redistributable установлено. Но в папке Sample файл MainWindow.xaml не запускается. Как я понимаю Visual Studio 2008 необходимо для написания программ, компилирования, но не является необходимой для их запуска? Может я что- то не так делаю?

¿Le resultó útil este tema?

Compartir tema

Comentarios (29)

Iniciar sesión o Crear cuenta, Inicie sesión o regístrese para dejar un comentario

Mikhail Sukhov
Mikhail Sukhov

VS - это среда разработки. На ней пишется программа, и далее эта программа живет самостоятельно.

Да, нужна VS 2008. Можно использовать и 2005 но нужно аддоны устанавливать.

dart
dart Autor

При запуске Ecng.Trading в VS 2008 выскакивает сообщение: "Не удается найти поставщика системы управления версиями, связанного с решением. Проекты будут считаться не подлежащими контролю версий.

Выполнить безвозвратное удаление привязок системы управления версиями из проектов?"

После чего, например, кнопка Путь у Quik (FindPath) не активна. Заранее спасибо

Mikhail Sukhov
Mikhail Sukhov

Посмотрите сюдаhttp://groups.google.com/group/stocksharp/t/52b3b49af72b5ee9

Здесь убрано сообщение о поставщике версий. Насчет неактивной кнопки, не совсем понял. Какой именно пример запускаете?

dart
dart Autor

При подключении к квику выскакивает ошибка: Ecng.Trading.Quik.ApiException: Код ошибки Failed Сообщение Connection failed at step 3, error message was "Current version of library is not supported by Quik"

denis
denis

какая версия квика?

dart
dart Autor

5.14.0.96

dart
dart Autor

Или может каким-то образом надо библиотеку объявлять?

denis
denis

в квике 5.15 переписали длл и из-за этого может быть глюк, надо обновится

dart
dart Autor

Да я бы рад обновиться, но у моего брокера на сервере именно эта версия квика. Может выложите dll-ку для 5.14-ого квика?

denis
denis

можно обновить квик в ручнуюhttp://quik.ru/user/download/quik/5.16/#v5.16

можно подсунуть древнюю дллhttp://quik.ru/depot/Trans2QuikAPI.rar, но думаю что появятся глюки в другом месте

dart
dart Autor

Старая ДЛЛ-ка не пошла - пишет ошибку не может найти точку входа. На сайте квика в разделе ответы на вопросы пишется:

Установил дистрибутив новой версии, а он не соединяется с сервером брокера с ошибкой "Wrong protocol version". В чем причина? Такая диагностика возникает в случае, когда версия рабочего места клиента новее, чем версия сервера. Сервер QUIK поддерживает работу ранее выпущенных версий клиентского места, но более новые версии терминалов могут содержать изменения в протоколе обмена данными и быть несовместимы со <<старым>> сервером. Поэтому рекомендуется устанавливать новую версию клиентского терминала после обновления версии сервера.

denis
denis

мдя... засада откатывать версию СтокШарпа ниже 1,6http://stockmarketdotnet.blogspot.com/2010/01/stock-16.html

либо отваливать от такого брокера :) хотя можно поиграть с демо- версией другого брокера, пока этот обновится... а можно позвонить технарям и сказать "сделал мегаскоростного супербота, а у вас квик старый, придется уходить :("

dart
dart Autor

а что значит в окне сообщений квика следующее: Can't accept client requests. Maximum concurrent connections number is exceeded.

denis
denis

ни разу не видел, но я бы поиск начал с этогоhttp://quik.ru/forum/search/

Mikhail Sukhov
Mikhail Sukhov

Значит, есть где-то робот, который тоже в данный момент подключен к квику. а у него ограничение, одна длл - одно подключение.

Mikhail Sukhov
Mikhail Sukhov

И не говорите. Самое обидное что от перехода не поменялось ровным счетом ничего (ну может стабильность)... Дык может брокер и перешел уже? Сейчас 5.16, а новая длл работает с 5.15. Но совсем новую только не нужно менять... Кстати, а что так брокер тормозит? Нехорошо.

dart
dart Autor

Да, есть но это простой, не использующий АПИ. Путем записи сигналов в файл (квик потом этот файл читает). Это сообщение выскочило когда я собрал и запустил ехе-шник 1.5 версии. Ладно, попробую тот робот временно отключить

dart
dart Autor

О, прогресс!!!! По крайней мере экспорт DDE запустился и другие таблицы начали открываться (портфолио, мои сделки и т.д.) Как экспорт пойдет в понедельник в боевых условиях посмотрим. Сегодня воскресенье.

Тогда следующий вопрос, а как сделать одновременно работающих двух роботов? Один ваш, а другой старый ещё дедовским способом (через чтение/запись в файл).

Mikhail Sukhov
Mikhail Sukhov

Квиковцы говорят что достаточно переименовать длл (что-то типа trans2quik2.dll). Только вот проблема в том, что у S# это делать нельзя, он четко заточен на стандартное имя... Можете поменять в своих исходникам название dll?

Dord
Dord

Добрый день, не стал создавать новую тему, возникли проблемы с подключением ваших примеров (как уже скомпилированных, так и при отладке сорса) к терминалу. Возникает одинаковая ошибка "Код ошибки QuikTerminalNotFound Сообщение Not found QUIK terminal in directory 'C:\Program Files\Quik_open'." Квик версии 5.15.0.69 демосчет у брокера "Открытие". Экзешник квипа лежит в папке, которую я указывал как путь. Счет (на всякий случай, вдруг демосчета не поддерживаются) пишу находящийся в таблице (Торговля->Фьючерсы->Ограничения по клиентским счетам) - "SPBFUT00291" info.wnd в квипе загрузил, хотя думаю что это никак к подключению к терминалу не относится. Так что только на вас надежда )

Mikhail Sukhov
Mikhail Sukhov

Включить внешние транзакции не забыли в Квике?

Dord
Dord

Да именно это и забыл, спасибо все заработало ))

dart
dart Autor

Добрый день, экспорт идёт. Sample работает, с её помощью заявки выставляю, снимаю. SampleCandles тоже рисует свечки. А вот с SampleSMA проблемы. Сначала всё нормально: подключаюсь, запускаю экспорт DDE, нажимаю старт, появляется статус runned. Но при этом в окне графика ничего не рисуется. Затем, через некоторое время (по-моему 5 мин, так как такой таймфрейм), статус оказывается Stopped и выскакивает ошибка: System.ArgumentNullException:Значение не может быть неопределенным. Имя параметра: candle в SampleSMA.Sma.Add(TimeFrameCandle candle) в Sma.cs: строка 47 в SampleSMA.SmaTask.OnProcess() в SmaTask.cs:строка 62 Ошибка где-то в методе GetTimeFrameCandle, но как её исправить? Заранее спасибо Да, на всякий случай, версия Ecng 1.5 (хоть скорей всего не в этом дело)

Mikhail Sukhov
Mikhail Sukhov
  1. Ошибка в примере. Она говорит о том, что нет свечки на определенный интервал. Это нормальная ситуация, которую пример должен обрабатывать... Действительно не было сделок? Вы можете это посмотреть в Квике?
dart
dart Autor

Сделки идут в таблице "Все сделки " по фьючам RTS, LKOH, Si, SBRF, GAZR-3.10 Вывод через DDE сервер из этой таблицы идет.

Mikhail Sukhov
Mikhail Sukhov

Я имел ввиду, действительно ли есть дырка в данных... Смотрите, судя по Вашему логу ошибки, происошла она на этих строчках:

// получаем сформированную свечку var candle = _candleManager.GetTimeFrameCandle(base.Security, base.Interval, _nextTime - base.Interval); _nextTime += base.Interval;

// добавляем новую свечку this.LongSma.Add(candle); this.ShortSma.Add(candle);

Говорит о том, что в какой то момент не было следок для Вашего тайм фрейма вообще. Чтобы это проверить, вставтье код проверки:

var candle = _candleManager.GetTimeFrameCandle(base.Security, base.Interval, _nextTime - base.Interval);

if (candle == null) throw new InvalidOperationException("Для временной отметки {0} по инструменту {1} нет свечки для тайм-фрейма {2}", _nextTime - base.Interval, base.Security.Code, base.Interval);

dart
dart Autor

Спасибо за ответ, добавил в SmaTask две строки, стало так: var candle = _candleManager.GetTimeFrameCandle(base.Security, base.Interval, _nextTime - base.Interval);

if (candle == null) throw new InvalidOperationException("Для временной отметки {0} по инструменту {1} нет свечки для тайм-фрейма {2}"); Так как пишет у оператора InvalidOperationException не может быть 4 параметров и программа не компилируется. После этого, по истечении 5 минут программа вообще вылетает, а в квике в строке сообщений появляется сообщение: DDE server 'wrapper'. Документ 'security'. Таблица 'Инструменты'. Произошла ошибка: Ошибка при передаче таблицы, вывод приостановлен. Переполнена очередь сообщений.

Mikhail Sukhov
Mikhail Sukhov

throw new InvalidOperationException("Для временной отметки {0} по инструменту {1} нет свечки для тайм-фрейма {2}".Put(_nextTime - base.Interval, base.Security.Code, base.Interval));

И, мне кажется, лучше начать с учебника по C#, который я указал в документации.

dart
dart Autor

Уф, разобрался с SampleSMA, всё пошло. Проблема была в прилагаемом wnd файле. Он чуть отличается от того что написано в документации по настройке квик. В таблице Инструменты две колонки "Время последнего изменения" и "Время последней сделки" надо было поменять местами.