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


Краткая инструкция по S# Studio
Atom
3/14/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)

Tags:


Thanks: wkj


< 1 2 3 4  > >>
esper

Avatar
Date: 3/19/2013
Reply


Vladimir Go to
Инструмент RIM3 - RTS 6.13
в альфе по нему точно стакан есть!


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

Терминал Альфа-Директ у вас верно настроен?
Thanks:

Vladimir

Avatar
Date: 3/19/2013
Reply


Да, настроен верно, много раз перепроверял
Thanks:

kahuna

Avatar
Date: 3/19/2013
Reply


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

Moadip

Avatar
Date: 3/19/2013
Reply


Quote:
А как второй инструмент в стратегию добавить?

Добавить св-во в код стратегии. Например SecondSecurity.


Thanks: kahuna chudokos dice

kahuna

Avatar
Date: 3/20/2013
Reply


Оставил работать на ночь. Пока Quik отсоединился от сервера Studio закидала окошками с сообщением о потеряном соединении. Устал кнопку Ок топтать. [blink] Как от них избавиться, пусть в лог пишет если хочет или парочку сообщений даст и успокоится.[biggrin]
Thanks:

esper

Avatar
Date: 3/21/2013
Reply


Vladimir Go to
Да, настроен верно, много раз перепроверял

Ранее с альфой работали? При использовании примеров такая же проблема? Я Альфа-Директ не использую, поэтому в его настройке пока помочь не могу, если не получится настроить, то как появится время посмотрю в чем может быть проблема.
Thanks:

esper

Avatar
Date: 3/21/2013
Reply


kahuna Go to
Оставил работать на ночь. Пока Quik отсоединился от сервера Studio закидала окошками с сообщением о потеряном соединении. Устал кнопку Ок топтать. [blink] Как от них избавиться, пусть в лог пишет если хочет или парочку сообщений даст и успокоится.[biggrin]

Хорошо, учтем в ближайших версиях.
Thanks:

kahuna

Avatar
Date: 3/21/2013
Reply


С Quik в режиме эмуляции на инструменте RIM3 стакан показывает,
графики рисует, выставляет заявки,
но не совершает сделки на стратегии "Скользящие".

Запустил для пробы ту же стратегию без эмуляции.
При попытке выставить Buy стратегия сообщила:
OrderFailed:59380905/0 Покупка Цена=2147483647 Объем=1 Сост=Failed Бал=1
StockSharp.Quik.Api.Exception: Код ошибки Failed Сообщение Ошибка создания заявки.
[FORTS][39] "Цена не кратна минимальному шагу цены".
Thanks:

kahuna

Avatar
Date: 3/25/2013
Reply


kahuna Go to
С Quik в режиме эмуляции на инструменте RIM3 стакан показывает,
графики рисует, выставляет заявки,
но не совершает сделки на стратегии "Скользящие".

Запустил для пробы ту же стратегию без эмуляции.
При попытке выставить Buy стратегия сообщила:
OrderFailed:59380905/0 Покупка Цена=2147483647 Объем=1 Сост=Failed Бал=1
StockSharp.Quik.Api.Exception: Код ошибки Failed Сообщение Ошибка создания заявки.
[FORTS][39] "Цена не кратна минимальному шагу цены".


Ради чайников типа меня, придется самому себе ответить на 2 вопрос.
Выставление заявки на FORTS по рынку можно например сделать например так:
Code

OrderDirections _direction=new OrderDirections(); //добавлено к базовому коду
				
				if (prevShort < prevLong && currentShort.GetValue<decimal>() > currentLong.GetValue<decimal>() && Position <= 0)
				{
					this.AddInfoLog("Новый сигнал на лонг.");
					_direction=OrderDirections.Buy; //добавлено к базовому коду
					//убрано order = this.BuyAtMarket(Position == 0 ? Volume : Position.Abs() * 2);
				//добавлено к базовому коду
				    decimal _price = _direction == OrderDirections.Buy ?
                    this.Security.BestAsk.Price + this.Security.MinStepSize * 10 : this.Security.BestBid.Price - this.Security.MinStepSize *10;
                    order = this.CreateOrder(_direction, _price, Position == 0 ? Volume : Position.Abs() * 2);
				//end добавлено к базовому коду 
				}
				else if (prevShort > prevLong && currentShort.GetValue<decimal>() < currentLong.GetValue<decimal>() && Position >= 0)
				{
					this.AddInfoLog("Новый сигнал на шорт.");
					_direction=OrderDirections.Sell; //добавлено к базовому коду
					//убрано из базового кода order = this.SellAtMarket(Position == 0 ? Volume : Position.Abs() * 2);
				//добавлено к базовому коду
				    decimal _price = _direction == OrderDirections.Buy ?
                    this.Security.BestAsk.Price + this.Security.MinStepSize * 10 : this.Security.BestBid.Price - this.Security.MinStepSize *10;
                    order = this.CreateOrder(_direction, _price, Position == 0 ? Volume : Position.Abs() * 2);
				//end добавлено к базовому коду 
				}

				if (order != null)
					RegisterOrder(order);

Заменив соответсвующий фрагмент в методе private void Process(Candle candle){...}

А что с первым вопросом делать не понятно.

Код исправлен.
Thanks:

UsilaDobry

Avatar
Date: 3/25/2013
Reply


Добрый день!
Настроил подключение к Quik. При подключении сообщает "Ошибка в соединении. Отказано в доступе". Лицензия действительна до 22.04.2013. О каком доступе речь?
Настроил подключение к Альфе, почему то запускается мастер установки Альфа-Директ на мой компьютер, он у меня уже стоит и работает.
Thanks:
< 1 2 3 4  > >>

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

loading
clippy