Краткая инструкция по 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


<< < 4 5 6 7 8  > >>
kahuna

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


esper Перейти

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


Спасибо за подсказку moadip. После снятия галки с фильтра параметров все заработало. Не подозревал что такое в разделе Связь Quik-а есть.
Спасибо:

kahuna

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


Почему то после выходных стратегия перестала функционировать пишет что то про Гидру.
Возможно как то связанно с тем что удалил подключеие к Quik и создал новое с добавлением двух
дополнительных колонок по таблице инструменты "минимальная цена" "максимальная цена".
Как бы понять как с этой ошибкой бороться:
Код

17:56:22.618|       |MSS_RIM3@RTS_SPBFUT00775|Стратегия запущена. [0,-1]. Позиция при старте 0.
17:56:23.066|Error  |MSS_RIM3@RTS_SPBFUT00775|System.ServiceModel.ActionNotSupportedException: The message with Action 'http://stocksharp.com/hydraserver/IRemoteStorage/Login' cannot be processed at the receiver, due to a ContractFilter mismatch at the EndpointDispatcher. This may be because of either a contract mismatch (mismatched Actions between sender and receiver) or a binding/security mismatch between the sender and the receiver.  Check that sender and receiver have the same contract and the same binding (including security requirements, e.g. Message, Transport, None).

Server stack trace: 
   в System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(Message reply, MessageFault fault, String action, MessageVersion version, FaultConverter faultConverter)
   в System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
   в System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   в System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]: 
   в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   в StockSharp.Algo.History.Hydra.IRemoteStorage.Login(String login, String password)
   в StockSharp.Algo.History.Hydra.RemoteStorageClient.#=q94$Zdf026Tv_BoyB6fVRN1sQU_2qjA71DaZ4Wb3Lep0=.#=qO33oSMmtStpq9tRXxRABqQ==(IRemoteStorage #=q2J1m1jcWt_MrLpam4$u9yw==)
   в Ecng.Net.ChannelHelper.Invoke[TChannel,TResult](ChannelFactory`1 factory, Func`2 handler)
   в StockSharp.Algo.History.Hydra.RemoteStorageClient.#=q94$Zdf026Tv_BoyB6fVRN1sQU_2qjA71DaZ4Wb3Lep0=.#=qkcq6ZYdZXuRyOpi$IDDPLg==()
   в System.Lazy`1.CreateValue()

Exception rethrown at [1]: 
   в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   в StockSharp.Algo.History.Hydra.IRemoteStorage.Login(String login, String password)
   в StockSharp.Algo.History.Hydra.RemoteStorageClient.#=q94$Zdf026Tv_BoyB6fVRN1sQU_2qjA71DaZ4Wb3Lep0=.#=qO33oSMmtStpq9tRXxRABqQ==(IRemoteStorage #=q2J1m1jcWt_MrLpam4$u9yw==)
   в Ecng.Net.ChannelHelper.Invoke[TChannel,TResult](ChannelFactory`1 factory, Func`2 handler)
   в StockSharp.Algo.History.Hydra.RemoteStorageClient.#=q94$Zdf026Tv_BoyB6fVRN1sQU_2qjA71DaZ4Wb3Lep0=.#=qkcq6ZYdZXuRyOpi$IDDPLg==()
   в System.Lazy`1.CreateValue()
   в System.Lazy`1.LazyInitValue()
   в System.Lazy`1.get_Value()
   в StockSharp.Algo.History.Hydra.RemoteStorageClient.#=qU9o7wK1zk5gv_ShJ210rhg==.#=qCU4ViocBxqDzcjj1iKVCNfBHFKsHRukCUohSKHhqPFmcQkf_hBl1StbFbITlar9yuVUngmdi1nzZcJ9r0dMnvQ==()
   в StockSharp.Algo.Storages.RemoteMarketDataDrive.#=qenJ2ZvfalJOuYi4O8gyn_g==.#=qpB$jCcUJakZVKcUsNQDtqhwxJH98chXPeKJiR4BBUIyX9CsqW8iEZ70LYalF$x3ZIwNiyS1rOgb1ahTHvQsyGw==()
   в #=qqHUHJSfdV9tDbJhVEsUebZp2hfgRweaw7ULt7Yf3uvSqy04AOlTUU3zZqtc_euu0.#=qSO1bd4cwOcSTgdYjpnOIjdg9k6msMdu8y_rLTJMs62lmI4hy5uEgF_OLF_P8dpt_JyFbzoPsheoPwbE9VP8V2g==()
   в StockSharp.Algo.Storages.StorageHelper.#=q1GdONKm7vwp_hEfaGZy_lw==[TData](IMarketDataStorage`1 #=qecG8M36E1Imqk8DDDMiBkA==, Nullable`1 #=qqV_D9SuyEYHI_x8lLSULgg==, Nullable`1 #=q0ocbGRkmtAY6GiD8o8G6mw==)
   в StockSharp.Algo.Storages.StorageHelper.#=qWqwPoHVoCHh9ffdS0eaXYg==[TValue](IMarketDataStorage`1 #=q$os$1RJjZ8PjIe3KDiWK6w==)
   в StockSharp.Algo.Candles.Compression.StorageCandleBuilderSource`1.GetSupportedRanges(CandleSeries series)
   в StockSharp.Algo.Candles.Compression.CandleBuilder`1.#=q7lXzwnTOrGXsnUgwNrnivuVL17Nr8UOQqSoGUO_nYUI=.#=qKps0o1SoMH5_ecLwzKHqUJJK2P7djlg6FHM3pe9KI0U=(ICandleBuilderSource #=qzRkxywCVlmB6xNwA6dyUxA==)
   в System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
   в System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   в System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext()
   в System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   в System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   в Ecng.ComponentModel.RangeHelper.JoinRanges[T](IEnumerable`1 ranges)
   в StockSharp.Algo.Candles.Compression.CandleBuilder`1.GetSupportedRanges(CandleSeries series)
   в StockSharp.Algo.Candles.Compression.TimeFrameCandleBuilder.GetSupportedRanges(CandleSeries series)
   в #=q1lG3cgmAyiZBA8Np6w7te7opi4qh47kdoxcr0C7M3Z8Y76hYt3PkPncw90kBpO4SZztV3VPYvr26wdfmxiPE2Q==..ctor(CandleSeries #=qwhoOxODy2K03RDuiNNRjpg==, DateTime #=qsoS0RO6OZQ8eCEnHSFvhig==, DateTime #=q8CIqNV_xd6flQ_uKXHoXzg==, IEnumerable`1 #=qpiY$IdI7dmRlMG2ee2qE2g==, Action`1 #=qL2nfNgnAeHrJYgP550iXvA==, Action #=qEhvZS6hhhbUuPEG1MZwqiQ==)
   в StockSharp.Algo.Candles.CandleManager.Start(CandleSeries series, DateTime from, DateTime to)
   в StockSharp.Studio.AlgoService.StrategyCandleManager.Start(CandleSeries series, DateTime from, DateTime to)
   в StockSharp.Algo.Candles.CandleHelper.Start(ICandleManager manager, CandleSeries series)
   в StockSharp.Studio.Strategies.MySmaStrategy.OnStarted()
   в StockSharp.Algo.Strategies.Strategy.#=q_6EgjMqoaHwnLsp1UrOzyKYEPAyyE_o9XSY7hzvMp78=(ProcessStates #=qelaEY6d4DBiE1bfxA5TsFQ==)
17:56:23.067|       |MSS_RIM3@RTS_SPBFUT00775|Стратегия останавливается. [0,-1]. Позиция при старте 0.
17:56:23.069|       |MSS_RIM3@RTS_SPBFUT00775|Ожидание снятия всех активных заявок.
17:56:23.075|       |MSS_RIM3@RTS_SPBFUT00775|Стратегия остановлена. [0,-1]. Позиция при старте 0.

Спасибо:

Vladimir

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


на Windows 7 (64) - установлены все последние обновления, при запуске #Studio - пишет что нужен NETFramework 4.0
Спасибо:

Moadip

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


Vladimir Перейти
на Windows 7 (64) - установлены все последние обновления, при запуске #Studio - пишет что нужен NETFramework 4.0


Обновления это не .NET Framework 4.
Раз просит, скачайте и поставьте - .NET Framework 4.

Спасибо:

Mikhail Sukhov

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


kahuna Перейти
Почему то после выходных стратегия перестала функционировать пишет что то про Гидру.


Обновите Студию. Поменялся контракт клиент-серверного взаимодействия.
Спасибо: kahuna

Vladimir

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


имел в виду установлен NETFramework 4.5
На другом компьютере установил NETFramework 4.0, как просит #Studio, теперь у меня каждый автоматическое обновление Windows предлагает установить NETFramework новый
Спасибо:

VassilSanych

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


4.5 - это 4.0 с плюшками. Если у вас есть 4.5, значит есть и 4.0.
Спасибо:

esper

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


Vladimir Перейти
имел в виду установлен NETFramework 4.5
На другом компьютере установил NETFramework 4.0, как просит #Studio, теперь у меня каждый автоматическое обновление Windows предлагает установить NETFramework новый

А какой .Net Framework 4.5 установлен Full или ClientProfile?
Спасибо:

Терпила

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


VassilSanych Перейти
4.5 - это 4.0 с плюшками. Если у вас есть 4.5, значит есть и 4.0.

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

Если бы всё было так просто, то можно было бы устанавливать 4.5, т.е. плющки, на Виндовс ХР с .NET 4.0
Но нельзя в принципе, т.к. 4.0 из поколения 4.5 пользуется тем, что на чистых машинах 4.0 в принципе нет

PS
Неужели Вы тот самый загадочный Василь Саныч - член той самой изумительной прокреативной четвёрки Стокшарповцев?
Спасибо:

esper

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


Терпила Перейти
Другими словам, если на машине установлен 4.5, то Вам не суждено на такой машине воспроизвести проблемы тех, у кого только 4.0, т.к. плюшки в 4.5 к несколько другму 4.0

Если бы всё было так просто, то можно было бы устанавливать 4.5, т.е. плющки, на Виндовс ХР с .NET 4.0
Но нельзя в принципе, т.к. 4.0 из поколения 4.5 пользуется тем, что на чистых машинах 4.0 в принципе нет

Не совсем понял, что вы хотели сказать, но S#.Studio собрана под 4.0 и не требует 4.5
Спасибо:
<< < 4 5 6 7 8  > >>

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

loading
clippy