Иван З.
|
Дата: 26.01.2017
|
|
|
|
|
Еще пару слов про стаканы.
- Создаем стратегию. Ставим точку прерывания на кубике Стакан. Стратегия тестируется но ни разу не останавливается в точке прерывания.
Далее открываем панель стаканы, ждем окно с ошибкой описаной выше. Закрываем окно с ошибкой. Закрываем Дизайнер. Открываем Дизайнер заново. Видим что панель стаканы отсутствует. Ставим точку прерывания на кубике Стакан. Запускаю стратегию. И мы останавливаемся в точке прерывания.
Правда при этом в логах ошибка выскакивает.
Название Время Тип Сообщение
DesignerConnector 26.01.2017 15:52:45 +10:00 Info Создан новый портфель SPBFUT00kwq.
DesignerConnector 26.01.2017 15:52:45 +10:00 Info Создан новый портфель 271990.
DesignerConnector 26.01.2017 15:52:45 +10:00 Info Создан новый портфель MB0007409364.
DesignerConnector 26.01.2017 15:52:45 +10:00 Info Создан новый портфель L01-00000F00.
DesignerConnector 26.01.2017 15:52:45 +10:00 Info Создан новый портфель SPBFUT00d74.
DesignerConnector 26.01.2017 15:52:45 +10:00 Info Создан новый портфель MB1000100002.
DesignerConnector 26.01.2017 15:52:45 +10:00 Info Создан новый портфель 11101.
DesignerConnector 26.01.2017 15:52:45 +10:00 Info Создан новый портфель NL0011100043.
EDS_SBER@TQBR_test account 26.01.2017 15:53:24 +10:00 Info Переинициализация.
EDS_SBER@TQBR_test account 26.01.2017 15:53:24 +10:00 Info Новая позиция: .
EDS_SBER@TQBR_test account 27.11.2016 0:00:00 +00:00 Info Стратегия Запущена. [0,-1]. Позиция 0.
HistoryEmulationConnector 01.01.0001 0:00:00 +00:00 Info Connect
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Info Создан новый портфель test account.
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Info Инструмент SBER@TQBR зарегистрирован на получение рыночных данных для Trades.
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Info Инструмент SBER@TQBR зарегистрирован на получение рыночных данных для MarketDepth.
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Info Изменение состояния эмуляции Stopped -> Starting
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Error "System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в StockSharp.Messages.Extensions.GetServerTime(Message message)
в StockSharp.Algo.Testing.HistoryMessageAdapter.SendOutMessage(Message message)
в StockSharp.Algo.Testing.HistoryMessageAdapter.SendOutMessage()
в StockSharp.Algo.Testing.HistoryEmulationConnector.HistoryEmulationMessageChannel.b__9_1()"
HistoryEmulationConnector 27.11.2016 0:00:02 +00:00 Error System.InvalidOperationException: Subscribed
HistoryEmulationConnector 28.11.2016 0:00:02 +00:00 Info Изменение состояния эмуляции Starting -> Started
По всей видимости кубик Стаканы как то завязан на панель Стаканы, раз без панели не точки прерывания на нем не срабатывают.
Раз получилось остановиться в точке прерывания. Проверил Разряженый стакан и Сгруппированный. Ни на том ни на другом токи прерывания не срабатывают. Но с Разряженным стаканом тестирование проходит полностью. А если добавить Сгруппированный то тестирование не идет совсем. Выдает ошибку.

Название Время Тип Сообщение
EDS_SBER@TQBR_test account 26.01.2017 0:00:00 +00:00 Info Переинициализация.
EDS_SBER@TQBR_test account 26.01.2017 0:00:00 +00:00 Info Новая позиция: .
EDS_SBER@TQBR_test account 27.11.2016 0:00:00 +00:00 Info Стратегия Запущена. [0,-1]. Позиция 0.
HistoryEmulationConnector 01.01.0001 0:00:00 +00:00 Info Connect
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Info Создан новый портфель test account.
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Info Инструмент SBER@TQBR зарегистрирован на получение рыночных данных для Trades.
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Info Инструмент SBER@TQBR зарегистрирован на получение рыночных данных для MarketDepth.
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Info Изменение состояния эмуляции Stopped -> Starting
HistoryEmulationConnector 27.11.2016 0:00:00 +00:00 Error "System.NullReferenceException: Ссылка на объект не указывает на экземпляр объекта.
в StockSharp.Messages.Extensions.GetServerTime(Message message)
в StockSharp.Algo.Testing.HistoryMessageAdapter.SendOutMessage(Message message)
в StockSharp.Algo.Testing.HistoryMessageAdapter.SendOutMessage()
в StockSharp.Algo.Testing.HistoryEmulationConnector.HistoryEmulationMessageChannel.b__9_1()"
HistoryEmulationConnector 27.11.2016 0:00:02 +00:00 Error System.InvalidOperationException: Subscribed
HistoryEmulationConnector 28.11.2016 0:00:02 +00:00 Info Изменение состояния эмуляции Starting -> Started
EDS_SBER@TQBR_test account 01.12.2016 10:00:00 +03:00 Error "System.ArgumentNullException: Значение не может быть неопределенным.
Имя параметра: getTypeValue
в StockSharp.Messages.Unit.SafeGetTypeValue(Func2 getTypeValue) в StockSharp.Messages.Unit.op_Explicit(Unit unit) в StockSharp.Algo.TraderHelper.AlignPrice(Unit priceRange, Decimal firstPrice, Decimal price) в StockSharp.Algo.TraderHelper.<>c__DisplayClass34_0.<Group>b__0(Quote q) в System.Linq.Lookup2.Create[TSource](IEnumerable1 source, Func2 keySelector, Func2 elementSelector, IEqualityComparer1 comparer)
в System.Linq.GroupedEnumerable3.GetEnumerator() в System.Linq.Enumerable.WhereSelectEnumerableIterator2.MoveNext()
в System.Linq.Buffer1..ctor(IEnumerable1 source)
в System.Linq.OrderedEnumerable1.<GetEnumerator>d__1.MoveNext() в System.Linq.Buffer1..ctor(IEnumerable1 source) в System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source)
в StockSharp.BusinessEntities.MarketDepth.Update(IEnumerable1 bids, IEnumerable1 asks, Boolean isSorted, DateTimeOffset lastChangeTime)
в StockSharp.Algo.TraderHelper.Group(MarketDepth depth, Unit priceRange)
в StockSharp.Xaml.Diagram.Elements.MarketDepthGroupedDiagramElement.#=qkI3vGOxZ6sSfAIuemsbHTf5_bmpCbtcFgNUEJ7DKOGo=(DiagramSocketValue #=q_tTZl5uJAiBgZ86DBRuMug==)
в StockSharp.Xaml.Diagram.DiagramElement.OnProcess(DiagramSocket socket, DiagramSocketValue value)
в StockSharp.Xaml.Diagram.DiagramElement.Process(DiagramSocketValue value)
в System.Action1.Invoke(T obj) в StockSharp.Xaml.Diagram.DiagramElement.RaiseProcessOutput(DiagramElement sender, DateTimeOffset time, Object value) в StockSharp.Xaml.Diagram.Elements.MarketDepthDiagramElement.#=qa9RgUomSVSsvlHalsWKvtQgRQJGCmyRW_0wq6Mi3WnU=.#=qEzgfklgRZNwwFzQa25yDc_NR6M$WuZXk6X6WdDuy3z0=(MarketDepth #=qAYB6ULAAJfIkIzy2MoDOhA==) в StockSharp.Algo.MarketRule2.ProcessRuleVoid()
в StockSharp.Algo.MarketRuleHelper.ActiveRule(IMarketRuleContainer container, IMarketRule rule, Func1 process) в StockSharp.Algo.Strategies.Strategy.StockSharp.Algo.IMarketRuleContainer.ActivateRule(IMarketRule rule, Func1 process)"
EDS_SBER@TQBR_test account 01.12.2016 10:00:00 +03:00 Info Стратегия останавливается. [0,-1]. Позиция 0.
EDS_SBER@TQBR_test account 01.12.2016 10:00:00 +03:00 Info Ожидание снятия всех активных заявок.
EDS_SBER@TQBR_test account 01.12.2016 10:00:00 +03:00 Info Стратегия остановлена. [0,-1]. Позиция 0.
HistoryEmulationConnector 26.01.2017 0:00:02 +10:00 Info Изменение состояния эмуляции Started -> Stopping
HistoryEmulationConnector 26.01.2017 0:00:02 +10:00 Info Изменение состояния эмуляции Stopping -> Stopped
HistoryEmulationConnector 26.01.2017 0:00:02 +10:00 Info Disconnect
Я так понимаю стаканы еще не особо готовы к использованию?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Иван З.
|
Дата: 03.02.2017
При работе с кодом, если создаю простой кубик не стратегию, необходимо от Strategy наследоваться или есть отдельный класс для этого предназначенный?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Иван З.
|
Дата: 03.02.2017
|
|
|
|
|
S#.Designer 04.02.2017 3:34:11 +10:00 Error System.InvalidOperationException: Тип NewStrategy должен содержать только одно событие с атрибутом DiagramExternalAttribute.
в StockSharp.Xaml.Diagram.Elements.BaseStrategyDiagramElement.#=qSjZT1b83cVpQmfIR5wB0gv9Z9KzPGMxwKLKpaFcYw34=(Strategy #=qBM$o3f_ejYiEI7evPiRVcw==)
в StockSharp.Xaml.Diagram.Elements.BaseStrategyDiagramElement.#=qVuBdjaYzcqWmTeh96bRjaA==(Strategy #=qp0SNL92eWEyRQNkh$zlnLw==, Strategy #=qYTwqK4GveLouZ5C$NISEBA==)
в StockSharp.Xaml.Diagram.DiagramElementParam`1.set_Value(T value)
в StockSharp.Designer.Panels.SourceCodeStrategyDiagramElement.OnCompiled() в C:\StockSharp\StockSharpReleases\AppsSources\StockSharpApps\Designer\Designer\Panels\SourceCodeInfoPanel.xaml.cs:строка 294
в System.Action.Invoke()
в StockSharp.Designer.SourceCodeInfo.b__26_1() в C:\StockSharp\StockSharpReleases\AppsSources\StockSharpApps\Designer\Designer\SourceCodeInfo.cs:строка 83
Это требование сильно ограничивает возможность использования самописных стратегий из кода.
Совсем нет желания в стратегии описывать логику вывода на график. Намного проще наделал событий, потом на график все линиями подвел. Но это ограничение, только одного события, всю прелесть убивает. В стратегии должна быть только стратегия, никакие графики туда засовывать не надо.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 06.02.2017
Иван З.:
При работе с кодом, если создаю простой кубик не стратегию, необходимо от Strategy наследоваться или есть отдельный класс для этого предназначенный?
Специального нет. Можно посмотреть пример-код, кликнув на создание нового C# скрипта.
Подход в Дизайнере такой, что основа - на кубиках. И код внедряется в кубики (а может и за все отвечать) как часть схемы. Это для того, чтобы упростить миграцию стратегий, написанных на S#, где есть только торговая логика. А рисование и прочие вещи отдать все таки кубикам, так как через них проще настраивать графический интерфейс.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 06.02.2017
|
|
|
|
|
Иван З.:
S#.Designer 04.02.2017 3:34:11 +10:00 Error System.InvalidOperationException: Тип NewStrategy должен содержать только одно событие с атрибутом DiagramExternalAttribute.
в StockSharp.Xaml.Diagram.Elements.BaseStrategyDiagramElement.#=qSjZT1b83cVpQmfIR5wB0gv9Z9KzPGMxwKLKpaFcYw34=(Strategy #=qBM$o3f_ejYiEI7evPiRVcw==)
в StockSharp.Xaml.Diagram.Elements.BaseStrategyDiagramElement.#=qVuBdjaYzcqWmTeh96bRjaA==(Strategy #=qp0SNL92eWEyRQNkh$zlnLw==, Strategy #=qYTwqK4GveLouZ5C$NISEBA==)
в StockSharp.Xaml.Diagram.DiagramElementParam`1.set_Value(T value)
в StockSharp.Designer.Panels.SourceCodeStrategyDiagramElement.OnCompiled() в C:\StockSharp\StockSharpReleases\AppsSources\StockSharpApps\Designer\Designer\Panels\SourceCodeInfoPanel.xaml.cs:строка 294
в System.Action.Invoke()
в StockSharp.Designer.SourceCodeInfo.b__26_1() в C:\StockSharp\StockSharpReleases\AppsSources\StockSharpApps\Designer\Designer\SourceCodeInfo.cs:строка 83
Это требование сильно ограничивает возможность использования самописных стратегий из кода.
Это что-то из старого. В текущем реализации нет такого условия. А какая версия установлена?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Иван З.
|
Дата: 07.02.2017
|
|
|
|
|
Mikhail Sukhov:
Иван З.:
S#.Designer 04.02.2017 3:34:11 +10:00 Error System.InvalidOperationException: Тип NewStrategy должен содержать только одно событие с атрибутом DiagramExternalAttribute.
в StockSharp.Xaml.Diagram.Elements.BaseStrategyDiagramElement.#=qSjZT1b83cVpQmfIR5wB0gv9Z9KzPGMxwKLKpaFcYw34=(Strategy #=qBM$o3f_ejYiEI7evPiRVcw==)
в StockSharp.Xaml.Diagram.Elements.BaseStrategyDiagramElement.#=qVuBdjaYzcqWmTeh96bRjaA==(Strategy #=qp0SNL92eWEyRQNkh$zlnLw==, Strategy #=qYTwqK4GveLouZ5C$NISEBA==)
в StockSharp.Xaml.Diagram.DiagramElementParam`1.set_Value(T value)
в StockSharp.Designer.Panels.SourceCodeStrategyDiagramElement.OnCompiled() в C:\StockSharp\StockSharpReleases\AppsSources\StockSharpApps\Designer\Designer\Panels\SourceCodeInfoPanel.xaml.cs:строка 294
в System.Action.Invoke()
в StockSharp.Designer.SourceCodeInfo.b__26_1() в C:\StockSharp\StockSharpReleases\AppsSources\StockSharpApps\Designer\Designer\SourceCodeInfo.cs:строка 83
Это требование сильно ограничивает возможность использования самописных стратегий из кода.
Это что-то из старого. В текущем реализации нет такого условия. А какая версия установлена?
Была последняя версия, но я перепроверил.
- удалил все из папки с программой, удалил все из папки Documents\StockSharp\Designer. Все загрузил с нуля.
- создаю пример-код, кликнув на создание нового C# скрипта.
- добавляю строки
[DiagramExternal]
public event Action<Order> NewMyOrder2;

- в логах
S#.Designer 07.02.2017 11:52:33 +10:00 Error System.InvalidOperationException: Тип NewStrategy должен содержать только одно событие с атрибутом DiagramExternalAttribute.
в StockSharp.Xaml.Diagram.Elements.BaseStrategyDiagramElement.#=qSjZT1b83cVpQmfIR5wB0gv9Z9KzPGMxwKLKpaFcYw34=(Strategy #=qBM$o3f_ejYiEI7evPiRVcw==)
в StockSharp.Xaml.Diagram.Elements.BaseStrategyDiagramElement.#=qVuBdjaYzcqWmTeh96bRjaA==(Strategy #=qp0SNL92eWEyRQNkh$zlnLw==, Strategy #=qYTwqK4GveLouZ5C$NISEBA==)
в StockSharp.Xaml.Diagram.DiagramElementParam`1.set_Value(T value)
в StockSharp.Designer.Panels.SourceCodeStrategyDiagramElement.OnCompiled() в C:\StockSharp\StockSharpReleases\AppsSources\StockSharpApps\Designer\Designer\Panels\SourceCodeInfoPanel.xaml.cs:строка 294
в StockSharp.Designer.SourceCodeInfo.b__26_1() в C:\StockSharp\StockSharpReleases\AppsSources\StockSharpApps\Designer\Designer\SourceCodeInfo.cs:строка 83
- при добавлении кубика

Как я понял есть какое то ограничение на количество выходных параметров кубика. От этого ограничения хотелось бы избавится.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Иван З.
|
Дата: 07.02.2017
не влезают буквы при задании удаленного хранилища.

|
|
|
|
Спасибо:
|
|
|
|
|
|
Иван З.
|
Дата: 09.02.2017
Стратегия стандартная SMA, поставил свечи по объему 5. На графике индикаторы SMA и свечи разбежались в разные стороны.
на тиках та-же ситуация
|
|
|
|
Спасибо:
|
|
|
|
|
|
Иван З.
|
Дата: 09.02.2017
Вкладка Эмуляция, стоит добавить формат хранилища и тип данных. Сейчас не очевидно что используется, напарываюсь постоянно.

|
|
|
|
Спасибо:
|
|
|
|
|
|
Иван З.
|
Дата: 09.02.2017
Вкладка торговля добавить выбор хранилища как на вкладке Эмуляция, сейчас не понять от куда данные истории берутся. Как и в предыдущем добавить формат хранилища и тип данных, таймфрейм, дней истории. Места на вкладке много.
Еще не хватает кнопки обновить как на вкладке Эмуляция.
|
|
|
|
Спасибо:
|
|
|
|
|