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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если все данные были указаны верно и есть активное подключение к торговому терминалу, то должен отобразиться стакан для выбранного инструмента и, если стратегия поддерживает работу с графиком, то график по соответствующему инструменту:
s20.jpg
s1_1.jpg 10,3KB (46) s7.jpg 49,7KB (48) s8.jpg 20,2KB (48) s9.jpg 55,1KB (48) s12.jpg 20,4KB (48) s13.jpg 23,8KB (49) s14.jpg 1,8KB (48) s15.jpg 41,2KB (48) s16.jpg 423,8KB (47) s17.jpg 33,8KB (47) s18.jpg 50,9KB (47) s19.jpg 8,4KB (47) s10.jpg 29,3KB (48) s11.jpg 67,8KB (48) s1.jpg 548,9KB (46) s20.jpg 516,8KB (47) s21.jpg 56,8KB (48)

Теги:


Спасибо: wkj




103 Ответов
1 2 3  > >>
esper

Фотография
Программист
Дата: 14.03.2013
Ответить


Для открытия опционного деска в S# Studio при использовании подключения к Plaza2 необходимо:
  1. В настройках подключения добавить экспорт данных для потока Волатильности
    v1.jpg

  2. Выделить интересуемый инструмент в окне Инструменты (например, RIH3)
    v2.jpg

  3. Для выбранного инструмента открыть доску опционов с помощью соответствующей кнопки на панели инструментов
    v3.jpg

  4. После чего откроется дополнительная вкладка с доской опционов в центральной области главного окна
    v4.jpg

v1.jpg 192,4KB (44) v2.jpg 25,2KB (42) v3.jpg 4,7KB (42) v4.jpg 546,7KB (42)
Автор топика
Спасибо:

akoz

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


Здорово, молодцы.
Но как я понял, оптимизации в студии совсем нет?
Спасибо:

esper

Фотография
Программист
Дата: 15.03.2013
Ответить


akoz Перейти
Но как я понял, оптимизации в студии совсем нет?

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

Vladimir

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


Подключаю к Альфа-Директ:
AlfaTrader OnConnect
-не добавляет реальный портфель для торговли, доступен только портфель - FORTS test.
-стакан не транслируется
-график не отображается ("Стратегия не предоставляет интерактивный режим")

и главный вопрос - через S#.Studio - можно торговать на реальном счете?
Спасибо:

esper

Фотография
Программист
Дата: 19.03.2013
Ответить


Vladimir Перейти
-стакан не транслируется

Стакан должен транслироваться после запуска стратегии.
Vladimir Перейти
-график не отображается ("Стратегия не предоставляет интерактивный режим")

Какую стратегию вы используете? Если это скользящие средние, то в ней работа с графиком ведется из кода, скоро добавим другую стратегию, в которой можно будет управлять графиком, добавлять индикаторы и т.д.
Vladimir Перейти
и главный вопрос - через S#.Studio - можно торговать на реальном счете?

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

По портфелю баг подтверждаю, в ближайшее время будет обновление с фиксом.
Автор топика
Спасибо:

Vladimir

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


- Стакан должен транслироваться после запуска стратегии.
Да, Нажимаю запуск стратегии, но стакан не транслируется.
Да, использую стратегию скользящие средние, из примера в программе. (На учебном видео тоже ее использовали, но там все отображалось).

-работа с графиком ведется из кода
Подскажите что нужно в код дописать, чтобы график отображался?

Подскажите где найти (загрузить) простые тестовые стратегии, чтобы попробовать работу программы?
Спасибо:

esper

Фотография
Программист
Дата: 19.03.2013
Ответить


Vladimir Перейти
- Стакан должен транслироваться после запуска стратегии.
Да, Нажимаю запуск стратегии, но стакан не транслируется.
Да, использую стратегию скользящие средние, из примера в программе. (На учебном видео тоже ее использовали, но там все отображалось).

Какой инструмент используется? По нему в альфе точно стакан есть? Что выводится в логах?

Vladimir Перейти
-работа с графиком ведется из кода
Подскажите что нужно в код дописать, чтобы график отображался?

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

Vladimir Перейти
Подскажите где найти (загрузить) простые тестовые стратегии, чтобы попробовать работу программы?

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

kahuna

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


Коннект к Quik есть. Портфелей не видно.
Если без Studio в API коннектиться портфели нармально поступают.
Не ту кнопку нажал наверное.BigGrin
Что сделать чтобы портфели появились?
Спасибо:

Vladimir

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


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

В лоогах много чего
например в ветке S#.Stidio
S#.Studio | 19.03.2013 22:59:10.824 | Ошибка | System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в Abt.Controls.SciChart.RubberBandXyZoomModifier.caa1e079ee4b2473870761cdb1deb6b6d(Point c2fd6eaa47e6648ca5e229e24eb3dd951, Point c75e39920eb915b8663d277cc1de0e9f5)
в Abt.Controls.SciChart.RubberBandXyZoomModifier.OnModifierMouseUp(ModifierMouseArgs e)
в Abt.Controls.SciChart.ModifierGroup.c9fd5ab524d787e8439d8933aeb87fdc5(IChartModifier c6b1effd112e5355cd5f051dd91cd4f67, ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778)
в (Object , IChartModifier , ModifierMouseArgs )
в A.cc520773788910821ba0d6331e9485563.c6dea473323fdce89c6d7460d087afc9c(Object c2e4dcf306e5d5e570ccc0d688db6e42c, IChartModifier c2e4dcf306e5d5e570ccc0d688db6e42c, ModifierMouseArgs c2e4dcf306e5d5e570ccc0d688db6e42c)
в Abt.Controls.SciChart.ModifierGroup.c9e8960a6a8527c20ac9e46e162c72b22(Action`2 c4bd4ab823835cf92d221476b6fb65a17, ModifierMouseArgs c4c23d80d4d060e409c3479ef17d6c65e)
в Abt.Controls.SciChart.ModifierGroup.OnModifierMouseUp(ModifierMouseArgs e)
в Abt.Controls.SciChart.Utility.Mouse.MouseManager.cad56cb88fe961ec17710025afdf79607(ModifierMouseArgs cbb39038dde40bfc3fdcfa70f4bbf8778, IReceiveMouseEvents c18509698be3f9366c690e7d2b107b62c, Boolean c3791a1b71c1577bde30b55c12b2a5583)
в Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c05440e857244a1c94c553c8d10b1499b.cdc6dd0b1b34439c6e93339dd3929be9f(IReceiveMouseEvents c133657388cc0f6f6615e21e129ac4b3a)
в A.c3631c672e3fc9e342ac08ff1a63d428e.cacf72b657252e3e73860afb89d70cb9f[c13c28af86f0b14202b9c7ef43b1bd11a](IEnumerable`1 c40a30a1bb6416cd164565919fdef15a9, Action`1 c885aac61bc9832561b7ff07903c88d5e)
в Abt.Controls.SciChart.Utility.Mouse.MouseManager.cf88844ca415efe316ebbc6460c4d5477.c3e034dbe6fa1da0fdb7d6c9ee0f4960b(Object cae49ecc8585f35e8dd5ce624f7fb7ab5, MouseButtonEventArgs c4c23d80d4d060e409c3479ef17d6c65e)
в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
в System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
в System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
в System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
в System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
в System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
в System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
в System.Windows.Input.InputManager.ProcessStagingArea()
в System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
в System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
в System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
в System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

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

esper

Фотография
Программист
Дата: 19.03.2013
Ответить


kahuna Перейти
Коннект к Quik есть. Портфелей не видно.
Если без Studio в API коннектится портфели нармально поступают.
Не ту кнопку нажал наверное.BigGrin
Что сделать чтобы портфели появились?


В текущей версии перезапустить студию, как писал выше - скоро будет фикс.
Автор топика
Спасибо:

esper

Фотография
Программист
Дата: 19.03.2013
Ответить


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


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

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

Vladimir

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


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

kahuna

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


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

Moadip

Фотография
Автор статей Программист
Дата: 19.03.2013
Ответить


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

Добавить св-во в код стратегии. Например SecondSecurity.
[IMG]http://i51.fastpic.ru/thumb/2013/0319/18/baecf64715bac93f0b2c701dfd795218.jpeg[/IMG]

[IMG]http://i52.fastpic.ru/thumb/2013/0319/00/66a6b82b0fdff9390989f1058e1d9600.jpeg[/IMG]
Спасибо: kahuna chudokos dice

kahuna

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


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

esper

Фотография
Программист
Дата: 21.03.2013
Ответить


Vladimir Перейти
Да, настроен верно, много раз перепроверял

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

esper

Фотография
Программист
Дата: 21.03.2013
Ответить


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

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

kahuna

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


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

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

kahuna

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


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

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


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

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){...}

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

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

UsilaDobry

Фотография
Курсы
Дата: 25.03.2013
Ответить


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

kahuna

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


При работе стратегии скользящие средние на реале студия не видит Position соотвественно бесконечно на каждой новой свечке выставляет заявки удвоенного объема. Так и разорится можно учитывая что на эмуляторе не функционирует. Может можно выдавать какую-нибудь расширенную диагностику по подключению к Quik терминалу, а то основная головная боль по работе с библиотекой или со Studio представляется именно в этом.
Народ хочет разобраться что к чему.BigGrin
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.03.2013
Ответить


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


Лицензию нужно получить. Предварительно активировав ее в личном кабинете через СМС код. Лицензия бесплатная, но она есть.
Спасибо: UsilaDobry

kahuna

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


kahuna Перейти
При работе стратегии скользящие средние на реале студия не видит Position соотвественно бесконечно на каждой новой свечке выставляет заявки удвоенного объема. Так и разорится можно учитывая что на эмуляторе не функционирует. Может можно выдавать какую-нибудь расширенную диагностику по подключению к Quik терминалу, а то основная головная боль по работе с библиотекой или со Studio представляется именно в этом.
Народ хочет разобраться что к чему.BigGrin


Пардон проблема с Position снята. Стал на собственные грабли наступать. В коде приведенном в предыдущем посте ошибочка. Сейчас поправлю. Вопрос по расширенной диагностике коннектора Quik все-же остается.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.03.2013
Ответить


kahuna Перейти
Пардон проблема с Position снята. Стал на собственные грабли наступать. В коде приведенном в предыдущем посте ошибочка. Сейчас поправлю. Вопрос по расширенной диагностике коннектора Quik все-же остается.


Диагностика чего именно в коннекторе?
Спасибо:

kahuna

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


Mikhail Sukhov Перейти
kahuna Перейти
Пардон проблема с Position снята. Стал на собственные грабли наступать. В коде приведенном в предыдущем посте ошибочка. Сейчас поправлю. Вопрос по расширенной диагностике коннектора Quik все-же остается.


Диагностика чего именно в коннекторе?


Ну например куда-нибудь лог скинуть в стиле
таблица Quik такая-то;
Колонка номер такая-то;
послано то;
получено это.
Спасибо:
1 2 3  > >>

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

loading
clippy