Краткая инструкция по S# Studio

Краткая инструкция по S# Studio
Atom
3/14/2013
esper


В главном окне S#.Studio можно выделить множество рабочих областей, которые предназначены для отображения информации по стратегиям, инструментам, портфелям, свойствам выбранного объекта, и т.д. Главное окно представлено на рисунке:

Можно выделить следующие основные элементы интерфейса:

  1. Главное меню
  2. Панель инструментов
  3. Основная рабочая область для отображения стратегий
  4. Список стратегий для торговли на реальных счетах и для тестирования
  5. Список используемых инструментов
  6. Список портфелей
  7. Окно свойств
  8. Окно для отображения логов.

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

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

В окне Логи можно видеть ход подключения и любые ошибки, которые будут возникать при подключении, получении данных, работе стратегий или тестировании стратегий на истории.

После подключения к торговой системе в окне Портфели будут показаны все доступные позиции сгруппированные по портфелю, если для каких-то портфелей нет открытых позиций, то будет показан только заголовок с названием портфеля.

В окне инструменты по-умолчанию не показываются все полученные от торговой системы инструменты, т.к. инструментов может быть много. Для отображения необходимых инструментов надо выбрать добавить инструмент из хранилища:

В открывшемся окне будут показаны все доступные инструменты, необходимо выделить инструменты, которые будут использоваться в работе и добавить в список выбранных инструментов с помощью стрелочек, после подтверждения изменений эти инструменты будут добавлены в окно Инструменты главного окна:

Для площадок, которые не предоставляют список всех инструментов, можно воспользоваться поиском нужного инструмента по заданным критериям, для этого необходимо выбрать пункт Найти инструмент и в открывшемся окне указать параметры поиска инструментов:

После выбора используемых инструментов можно переходить к созданию стратегий. Все стратегии в S#.Studio представлены в виде дерева:

Корневой элемент задает тип стратегии, а его подэлементы конкретные экземпляры стратегий. Т.о. имея одну стратегию на скользящих средних мы можем запустить множество ее экземпляров с разными параметрами:

Для добавления нового типа стратегий используется кнопка , при этом откроется окно добавления стартегии:

При добавлении стратегии можно:

  1. Создать стратегию из кода, выбрав один из готовых шаблонов
  2. Указать путь к готовой сборке со стратегией и выбрать один из типов стратегий в этой сборке После добавления нового типа стратегии из кода откроется вкладка с редактором кода для этой стратегии:

Окно редактора кода состоит из двух частей: редактора кода и специального элемента для вывода ошибок компиляции стратегии. Компиляция стратегии выполняется с помощью соответствующей кнопки в панели инструментов над редактором кода. Если в коде стратегии были допущены какие-либо ошибки, то они будут показаны в окне Список ошибок, если компиляция прошла без ошибок, на панели инструментов будет выведена надпись "Компиляция выполнена!".

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

После того как были указаны все необходимые параметры стратегии ее можно запустить с помощью соответствующей кнопки на панели инструментов окна стратегий

Если все данные были указаны верно и есть активное подключение к торговому терминалу, то должен отобразиться стакан для выбранного инструмента и, если стратегия поддерживает работу с графиком, то график по соответствующему инструменту:

s1_1.jpg 10 KB (2029) s7.jpg 49 KB (2052) s8.jpg 20 KB (2069) s9.jpg 55 KB (2062) s12.jpg 20 KB (2189) s13.jpg 23 KB (2035) s14.jpg 1 KB (2102) s15.jpg 41 KB (2002) s16.jpg 423 KB (1946) s17.jpg 33 KB (2022) s18.jpg 50 KB (1712) s19.jpg 8 KB (1973) s10.jpg 29 KB (2009) s11.jpg 67 KB (2090) s1.jpg 548 KB (2080) s20.jpg 516 KB (1713) s21.jpg 56 KB (2042)

Tags:


Thanks: wkj


<< < 3 4 5 6 7  > >>
UsilaDobry

Avatar
Date: 3/26/2013
Reply


Запустил стратегию. Через 5 минут всё зависло.

17:59:58.761| |SS_RIM3@RTS_FORTS_test|Стратегия запущена. [0,-1]. Позиция при старте 0. 18:04:04.058| |SS_RIM3@RTS_FORTS_test|Новый сигнал на шорт. 18:04:04.081| |SS_RIM3@RTS_FORTS_test|Регистрация новой Limit (0x201C39D) заявки на Sell с ценой 1 и объемом 1. 18:04:04.134|Error |SS_RIM3@RTS_FORTS_test|System.InvalidOperationException: Шлюз для портфеля FORTS_test не найден. 18:04:04.134| |SS_RIM3@RTS_FORTS_test|Стратегия останавливается. [0,-1]. Позиция при старте 0. 18:04:04.134| |SS_RIM3@RTS_FORTS_test|Ожидание снятия всех активных заявок.

При этом в лог файле QuikTrader и StudioTrader опять посыпалась ошибка

18:09:13.732|Error |QuikTrader|System.InvalidOperationException: Данные для таблицы 'инструменты' экспортировались в меньшем формате. Не было найдено значение для колонки 'Краткое название бумаги'. Количество колонок равно '6', индекс колонки '12'.

Thanks:

esper

Avatar
Date: 3/26/2013
Reply


Портфель FORTS_test предназначен для тестирования на истории, для торговли на реале надо выбрать портфель, который есть в терминале.

Thanks:

kahuna

Avatar
Date: 3/26/2013
Reply


А что надо сделать чтобы в стратегии Position показывала позицию. this.PositionManager.Position показывает все верно, а this.Position показывает 0. Соответсвенно стратегия простая скользящая не работает, а генерит сделки. Так как считает что позиция 0. Если заменить Position на this.PositionManager.Position то работает. Quik настраивал и вручную и с info.wnd от API. Результат одинаковый. Очень бы логирование коннектора помогло бы, полагаю. Не приставал бы с дурацкими вопросами.[bored]

Thanks:

esper

Avatar
Date: 3/27/2013
Reply


kahuna: А что надо сделать чтобы в стратегии Position показывала позицию. this.PositionManager.Position показывает все верно, а this.Position показывает 0. Соответсвенно стратегия простая скользящая не работает, а генерит сделки. Так как считает что позиция 0. Если заменить Position на this.PositionManager.Position то работает. Quik настраивал и вручную и с info.wnd от API. Результат одинаковый. Strategy.Position всегда меняется при изменении Strategy.PositionManager.Position. Вы используете стандартную стратегию или свою? Что выводится в лог стратегии? Что значит "не работает, а генерит сделки"? kahuna: Очень бы логирование коннектора помогло бы, полагаю. Не приставал бы с дурацкими вопросами.[bored] Так Студия пишет логи как для коннектора, так и для всех стратегий, все должно быть в директории c:\Users\user\Documents\StockSharp\Studio\Logs\

Thanks:

kahuna

Avatar
Date: 3/27/2013
Reply


esper: Вы используете стандартную стратегию или свою? Стандартную. esper: Что выводится в лог стратегии? Ничего необычного не выводится. Новый сигнал на лонг... Регистрация заявки... Новый сигнал на лонг... Регистрация заявки...

esper: Что значит "не работает, а генерит сделки"? Это значит что так как например в условии стратегии if (prevShort < prevLong && currentShort.GetValue() > currentLong.GetValue() && Position <= 0) используется Position<=0 и после выставления первой сделки реальная позиция не равна 0 а в стратегии Position всегда оказывается = 0 то стратегия на каждую свечу выставляет новые сделки того же направления. До тех пор пока скользящие средние не пересекутся в обратном порядке. Если же вместо Position написать this.PositionManager.Position то стратегия работает как должна. esper: Так Студия пишет логи как для коннектора, так и для всех стратегий, все должно быть в директории c:\Users\user\Documents\StockSharp\Studio\Logs\Я имею в виду расширенное логирование обмена с Quik. Например в виде заказанного по конкретной таблице Quik подробного получения данных в виде таблица=XXX, колонка=KKK, Значение(получено/отправлено)=ZZZ. Лично мне бы очень помогло. Так как что API не работает, что Studio. Предполагаю что особенность настройки Quik моего брокера.

Thanks:

kahuna

Avatar
Date: 3/27/2013
Reply


esper: Так Студия пишет логи как для коннектора, так и для всех стратегий, все должно быть в директории c:\Users\user\Documents\StockSharp\Studio\Logs> kahuna: Я имею в виду расширенное логирование обмена с Quik. Например в виде заказанного по конкретной таблице Quik подробного получения данных в виде таблица=XXX, колонка=KKK, Значение(получено/отправлено)=ZZZ. Лично мне бы очень помогло. Так как что API не работает, что Studio. Предполагаю что особенность настройки Quik моего брокера. В общем не надо оказалось это логирование творить, есть готовая утилита DDESpy.EXE в принципе все показывает что надо. Если кому еще для отладки интересно есть например здесь http://www.codeauthority.com/ddespy.zip

Thanks:

esper

Avatar
Date: 3/28/2013
Reply


kahuna: Это значит что так как например в условии стратегии if (prevShort < prevLong && currentShort.GetValue() > currentLong.GetValue() && Position <= 0) используется Position<=0 и после выставления первой сделки реальная позиция не равна 0 а в стратегии Position всегда оказывается = 0 то стратегия на каждую свечу выставляет новые сделки того же направления. До тех пор пока скользящие средние не пересекутся в обратном порядке. Если же вместо Position написать this.PositionManager.Position то стратегия работает как должна. Проверил сейчас стратегию скользящих на сбере на тестовом квике, все настройки по-умолчанию: 08:46:21.631| |SS_SBER@QJSIM_57575|Стратегия запущена. [0,-1]. Позиция при старте 0. 09:15:04.775| |SS_SBER@QJSIM_57575|Новый сигнал на лонг. 09:15:07.391| |SS_SBER@QJSIM_57575|Регистрация новой Market (0x1CE9EDA) заявки на Buy с ценой 0 и объемом 1. 09:15:08.106| |SS_SBER@QJSIM_57575|Новая позиция: 57575-SBER@QJSIM=1. 09:15:08.109| |SS_SBER@QJSIM_57575|Заявка 42102758 больше не активна. 09:15:08.116| |SS_SBER@QJSIM_57575|Новая Buy сделка 1298571019 по цене 96,28 на 1 заявки 42102758. 09:20:02.052| |SS_SBER@QJSIM_57575|Новый сигнал на шорт. 09:20:02.052| |SS_SBER@QJSIM_57575|Регистрация новой Market (0x17ACC5C) заявки на Sell с ценой 0 и объемом 2. 09:20:02.938| |SS_SBER@QJSIM_57575|Новая позиция: 57575-SBER@QJSIM=-1. 09:20:02.938| |SS_SBER@QJSIM_57575|Заявка 42102759 больше не активна. 09:20:02.938| |SS_SBER@QJSIM_57575|Новая Sell сделка 1298572214 по цене 96,19 на 2 заявки 42102759. После исполнения заявки позиция меняется сразу. Вообще Position никак не может отличаться от PositionManager.Position, т.к. он как раз и возвращает это значение (можно посмотреть в исходниках S# на кодеплексе).

Чтобы разобраться в проблеме приводите лог работы стратегии и ее параметры.

Thanks:

kahuna

Avatar
Date: 3/29/2013
Reply


esper:

kahuna: Запустил для пробы ту же стратегию без эмуляции. При попытке выставить Buy стратегия сообщила: OrderFailed:59380905/0 Покупка Цена=2147483647 Объем=1 Сост=Failed Бал=1 StockSharp.Quik.Api.Exception: Код ошибки Failed Сообщение Ошибка создания заявки. [FORTS][39] "Цена не кратна минимальному шагу цены". Чтобы подобной ошибки не возникало, необходимо в таблицу Инструменты в Quik-е добавить Минимально возможная цена и Максимально возможная цена. Далее в Studio, в настройках подключения Quik, есть выпадающий список с доп. столбцами, в нем так же необходимо выбрать эти два столбца, в том порядке, в котором они были добавлены в Quik. Да вроде как нет там таких столбцов. И "короткие названия" галочку ставил, не увидел. Может не про таблицу "Инструменты" речь или с ней что-то еще надо слделать чтобы увидеть? Может Quik неправильный 6.5.2.1 Это реакция на прдложение запустить стандартную стратегию. Если стандартную стратегию на фьюче запущу получу то что выше, а колоночек таких в таблице "инструменты" у меня нет (само собой в списке для добавления).

Thanks:

Moadip

Avatar
Date: 3/29/2013
Reply


Может Quik неправильный 6.5.2.1 Неплохо было бы изучить инструкцию к QUIK.

Да вроде как нет там таких столбцов. И "короткие названия" галочку ставил, не увидел. Может не про таблицу "Инструменты" речь или с ней что-то еще надо слделать чтобы увидеть? QUIK 6.5.1.19

Если нет каких то столбцов, надо проверить не стоит ли фильтр. Или если стоит, то выбраны нужные столбцы в Связь -> Списки -> Фильтр параметров.

Thanks: kahuna

kahuna

Avatar
Date: 3/29/2013
Reply


Может Quik неправильный 6.5.2.1 Неплохо было бы изучить инструкцию к QUIK.

Если нет каких то столбцов, надо проверить не стоит ли фильтр. Или если стоит, то выбраны нужные столбцы в Связь -> Списки -> Фильтр параметров.

Точно стоял фильтр параметров. Только я его не ставил видимо от брокера так установлено. Спасибо. Надо учить матчасть.

Thanks:
<< < 3 4 5 6 7  > >>

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy