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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если все данные были указаны верно и есть активное подключение к торговому терминалу, то должен отобразиться стакан для выбранного инструмента и, если стратегия поддерживает работу с графиком, то график по соответствующему инструменту:
s1_1.jpg 10 KB (1304) s7.jpg 49 KB (1322) s8.jpg 20 KB (1307) s9.jpg 55 KB (1312) s12.jpg 20 KB (1347) s13.jpg 23 KB (1283) s14.jpg 1 KB (1296) s15.jpg 41 KB (1286) s16.jpg 423 KB (1267) s17.jpg 33 KB (1291) s18.jpg 50 KB (996) s19.jpg 8 KB (1290) s10.jpg 29 KB (1255) s11.jpg 67 KB (1335) s1.jpg 548 KB (1302) s20.jpg 516 KB (1015) s21.jpg 56 KB (1307)

Теги:


Спасибо: wkj


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

Фотография
Дата: 26.03.2013
Ответить


Запустил стратегию. Через 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'.
Спасибо:

esper

Фотография
Дата: 26.03.2013
Ответить


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

kahuna

Фотография
Дата: 26.03.2013
Ответить


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

esper

Фотография
Дата: 27.03.2013
Ответить


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\
Спасибо:

kahuna

Фотография
Дата: 27.03.2013
Ответить


esper Перейти
Вы используете стандартную стратегию или свою?

Стандартную.
esper Перейти
Что выводится в лог стратегии?

Ничего необычного не выводится.
Новый сигнал на лонг...
Регистрация заявки...
Новый сигнал на лонг...
Регистрация заявки...

esper Перейти
Что значит "не работает, а генерит сделки"?

Это значит что так как например в условии стратегии
if (prevShort < prevLong && currentShort.GetValue<decimal>() > currentLong.GetValue<decimal>() && 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 моего брокера.
Спасибо:

kahuna

Фотография
Дата: 27.03.2013
Ответить


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
Спасибо:

esper

Фотография
Дата: 28.03.2013
Ответить


kahuna Перейти
Это значит что так как например в условии стратегии
if (prevShort < prevLong && currentShort.GetValue<decimal>() > currentLong.GetValue<decimal>() && 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# на кодеплексе).

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

kahuna

Фотография
Дата: 29.03.2013
Ответить


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
Это реакция на прдложение запустить стандартную стратегию.
Если стандартную стратегию на фьюче запущу получу то что выше, а колоночек таких в таблице "инструменты" у меня нет (само собой в списке для добавления).
Спасибо:

Moadip

Фотография
Дата: 29.03.2013
Ответить


Цитата:
Может Quik неправильный 6.5.2.1

Неплохо было бы изучить инструкцию к QUIK.

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

QUIK 6.5.1.19



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

Спасибо: kahuna

kahuna

Фотография
Дата: 29.03.2013
Ответить


Moadip Перейти
Цитата:
Может Quik неправильный 6.5.2.1

Неплохо было бы изучить инструкцию к QUIK.

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



Точно стоял фильтр параметров. Только я его не ставил видимо от брокера так установлено. Спасибо. Надо учить матчасть.
Спасибо:
<< < 3 4 5 6 7  > >>

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy