← 戻る

Техподдержка S#. Логи чата в Телеграм.

Привет Всем!

В этой теме мы будем размещать логи чата активной Техподдержки в Телеграм.

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

Услугу активной Техподдержки можно получить в подарок вместе с Полным или Расширенным курсом обучения либо приобрести отдельно.

Для покупателей курса, даже после истечения вашего срока Техподдержки, логи чата остаются доступны в нашей группе обучения.

По всем вопросам приобретения обучающих курсов либо активной Техподдержки обращайтесь в

Скайп: AlgoTradingRus E-mail: lesson@stocksharp.com

このトピックは参考になりましたか?

トピックを共有

コメント (100)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

William B
William B 著者

Активная техподдержка 26 ноября 2014 года.

Денис (rtDen) , [26.11.14 07:43] Добрый день! QuikLua. Всплыл очень неприятный баг, не пришла одна моя в сделка в событие NewMyTrades. Первый раз такое случилось в прошлую пятницу, воторой раз вчера. Перезапуск робота не помог, опять пришли все сделки кроме одной. Помог перезапуск квика. Сегодня буду попробовать воспроизвести баг с включенными S#-логами (пока есть только мои логи, но думаю они мало информативны в этом вопросе). Кто-нибудь сталкивался с таким? Для текущей архитектуры моего робота это очень неприятный, прямо-таки критичный баг. Хотелось бы разобраться с этим как можно быстрее. quik 6.15.2.9 s# 4.2.35

Денис (rtDen) , [26.11.14 10:38] Прроблема воспроизвелась

Денис (rtDen) , [26.11.14 10:38] собрал логи

Денис (rtDen) , [26.11.14 10:38] готов отправить

Yury Basangov, [26.11.14 10:52] Денис, можете выложить прямо сюда.

Yury Basangov, [26.11.14 10:52] Там же нет секретной информации?

Денис (rtDen) , [26.11.14 10:53] Дополнение, сделки не было не только в NewMyTrades но и в Connector.MyTrades

Денис (rtDen) , [26.11.14 10:53] там есть номера счетов

Денис (rtDen) , [26.11.14 10:53] ну в принципе не думаю, что это сильно секретная информация..

Денис (rtDen) , [26.11.14 10:54] [bug_log.zip] // файл логов не выкладываем.

Mikhail , [26.11.14 14:04] а не пришли все сделки? или какая то конкретная?

Денис (rtDen) , [26.11.14 14:05] какая то-то конкретная

Mikhail , [26.11.14 14:08] log2014_11_26_12_20.txt - какая здесь не пришла?

Денис (rtDen) , [26.11.14 14:11] хм... а я вот не записал номера тех, которые не пришли

Денис (rtDen) , [26.11.14 14:11] просто смотрел, что в роботе их 6, а в квике 8

Mikhail , [26.11.14 14:21] можете сказать какие не пришли?

Mikhail , [26.11.14 14:22] хотя вроде и так видно

Денис (rtDen) , [26.11.14 14:23] нет, не могу, не вижу в логах какие пришли а какие нет

Денис (rtDen) , [26.11.14 14:23] если нужно, могу воспроизвести еще раз

Денис (rtDen) , [26.11.14 14:23] и новые логи прислать

Денис (rtDen) , [26.11.14 14:24] повторю, что не пришло 2 сделки из 8ми, после перезапуска квика появились все

Mikhail , [26.11.14 15:12] без дебага не понять. когда в луа включили дебаг то ошибки уже не было

Денис (rtDen) , [26.11.14 15:14] ясно, я сейчас посовершал сделки, пока воспроизвести баг не получается, буду пробовать еще

Денис (rtDen) , [26.11.14 15:14] дебаг включен

Денис (rtDen) , [26.11.14 15:56] По закону подлости при включеном дебаге баг не воспроизводится... под сотню сделок уже наделал

Денис (rtDen) , [26.11.14 15:56] продолжу завтра

William B
William B 著者

Активная техподдержка 27 ноября 2014 года.

Денис (rtDen) , [27.11.14 14:04] [logs.ZIP]

Денис (rtDen) , [27.11.14 14:04] Михаил, вот лог, одна сделка пришла, вторая - нет

Mikhail , [27.11.14 15:28] спасибо. вроде бы определили проблему

Денис (rtDen) , [27.11.14 15:30] отлично

Денис (rtDen) , [27.11.14 15:30] спасибо за оперативность

Новый релиз S#.API с пофикшенным багом: http://stocksharp.com/posts/m/32185/

William B
William B 著者

Активная техподдержка 29 ноября 2014

Александр Игнатенко, [29.11.14 14:39] почему-то не отрабатывает правило WhenCandlesFinished в стратегии (тестирование на исторических данных). При этом в основной программе график со свечками отрисовывается. Что может быть?

Александр Игнатенко, [29.11.14 14:39] код переопределения события:

Александр Игнатенко, [29.11.14 14:39] protected override void OnStarted() { CancelOrdersWhenStopping = false;

//Подписываемся на правило события окончания cвечей _candleSeries.WhenCandlesFinished() .Do(ProcessCandle) .Apply(this);

this.WhenPnLLess(new Unit(5M, UnitTypes.Percent)). Do(() => { if (IsDebug) return;

if (Position != 0) { Sides direction = Position.GetDirection().GetValueOrDefault().Invert(); var order = this.CreateOrder(direction, Security.BestAsk.Price*(1 + PercentOffsetAtr*(direction == Sides.Sell ? -1 : 1)));

RegisterOrder(order); }

Stop(); }).Once().Apply(this);

//Вызываем базовый метод base.OnStarted(); }

Mikhail , [29.11.14 15:02] А график рисуется из события?

Александр Игнатенко, [29.11.14 15:03] в смысле трейды? не рисует. сейчас зале в лог увидел такую ошибку:

Александр Игнатенко, [29.11.14 15:03] 2014/09/17 11:05:00.000|Error |TCS_RIZ4@FORTS_test account|System.MissingMethodException: Метод не найден: "System.DateTime StockSharp.BusinessEntities.Order.get_LastChangeTime()". в IamRobot4.MyStrategy.TwoCandlesStrategy.ProcessCandle(Candle candle) в StockSharp.Algo.MarketRule2.#=qtVMXOXyFjjKN5pMiWSoWzraQy5hxmszCBudcGYUdYiI=() в StockSharp.Algo.MarketRuleHelper.ActiveRule(IMarketRuleContainer container, IMarketRule rule, Func1 process) в StockSharp.Algo.Strategies.Strategy.#=qHcmZ6fiTw8lVKDdF0lDQXxss5YO0A7DJYs49mRlWApLunAYPmsdDibb9tI88DnrCyVyng150NodiMeZA4AhJGw==(IMarketRule #=q4eWnlgsuN4TIqyzzbx4$2A==, Func`1 #=q89VeOgQGv4uObVtn5kCiTA==)

Александр Игнатенко, [29.11.14 15:04] хочу перезалить API, дальше буду разбираться с LastChangeTime

Александр Игнатенко, [29.11.14 15:05] или может подскажешь как лучше достать время создания (или изменения) ордера

Mikhail , [29.11.14 16:16] Часть сборок одной версии часть другой

Mikhail , [29.11.14 16:17] Обновите референсы все единой версией какой то одной

Александр Игнатенко, [29.11.14 18:54] ок, помогло, спасибо

William B
William B 著者

Активная техподдержка 02 декабря 2014 г.

Александр Игнатенко, [30.11.14 09:50] GetAveragePrice() выдает 0 в правиле order.WhenMatched().Do(o => decimal avgPrice = o.GetAveragePrice()). Это ошибка или нет? тестирую робота на исторических данных

Mikhail , [02.12.14 08:51] нет. сделки приходят позднее

Александр Игнатенко, [02.12.14 15:40] а как можно получить цену активации stoplossstrategy? необходимо для сравнения с текущей ценой и дальнейшим переносом в безубыток

Mikhail , [02.12.14 17:50] цену активации или цену сделок? если последнее, то подписаться на событие NewMyTrades и ждать все сделки.

Mikhail , [02.12.14 17:50] если первое, то там есть свойство такое - ActivationPrice

Александр Игнатенко, [02.12.14 18:16] я имею ввиду цену активации. сегодня утром пробовал его использовать, но оно было равно 0. это из-за того, что не пришли сделки в стратегию?

Александр Игнатенко, [02.12.14 23:55] Подскажите плиз, как исправить следующую ошибку:

Александр Игнатенко, [02.12.14 23:55] 2014/09/24 14:25:00.000| |SLS_RIZ4@FORTS_test account|Стратегия запущена. [0,1]. Позиция 0. 2014/09/24 14:25:00.000| |SLS_RIZ4@FORTS_test account|Защита позиции Buy/117385,00 с объемом 2. Уровень=160, Скользящий=False, Маркет-заявки=False, Котирование=False, Проскальзывание=0 2014/09/24 14:25:00.000| |HistoryEmulationConnector|Инструмент RIZ4@FORTS зарегистрирован на получение рыночных данных для Trades. 2014/09/24 14:25:00.000| |SLS_RIZ4@FORTS_test account|Котирование на Sell объема 2. 2014/09/24 14:25:00.000| |HistoryEmulationConnector|Инструмент RIZ4@FORTS зарегистрирован на получение рыночных данных для MarketDepth. 2014/09/24 23:45:02.000| |Эмулятор |Loading 25.09.2014 0:00:00 Events: 505732 2014/09/25 18:55:58.000| |SLS_RIZ4@FORTS_test account|Защита активирована. Закрытие позиции по 71180. 2014/09/25 18:55:58.000| |SLS_RIZ4@FORTS_test account|Цена текущей NULL и лучшей 71180. 2014/09/25 18:55:58.000| |SLS_RIZ4@FORTS_test account|Лучший бид 117220,00 и лучший аск 117240,00. 2014/09/25 18:55:58.000| |SLS_RIZ4@FORTS_test account|Регистрация новой Limit (0x247FF1F) заявки на Sell с ценой 71180 и объемом 1. 2014/09/25 18:55:58.000| |HistoryEmulationConnector|RegisterOrder: 0/ Продажа Цена=71180 Объем=1 Сост=None Бал=0 2014/09/25 18:55:58.000| |HistoryEmulationConnector|New order: 6/ Продажа Цена=71180 Объем=1 Сост=Pending Бал=1 2014/12/02 23:38:05.976| |#=qhaDw3u2OKwPRZ4GTeEcYhloszQZeybELWSJLOr8_KqA=|Заявка 6 не зарегистрирована. Причина 'Сейчас эта сессия не идет.'. 2014/09/25 18:55:58.000|Error |HistoryEmulationConnector|OrderFailed 6/ Продажа Цена=71180 Объем=1 Сост=Failed Бал=1 System.InvalidOperationException: Сейчас эта сессия не идет. 2014/09/25 18:55:58.000|Error |TCS_RIZ4@FORTS_test account|Заявка 6 (0x247FF1F) не была зарегистрирована по причине 'Сейчас эта сессия не идет.'. 2014/09/25 18:55:58.000|Error |SLS_RIZ4@FORTS_test account|Заявка 6 (0x247FF1F) не была зарегистрирована по причине 'Сейчас эта сессия не идет.'. 2014/09/25 18:55:58.000|Error |SLS_RIZ4@FORTS_test account|Заявка 6 (0x247FF1F) не была зарегистрирована по причине 'Сейчас эта сессия не идет.'. 2014/09/25 18:55:58.000| |SLS_RIZ4@FORTS_test account|Текущее кол-во ошибок 1. Максимальное 100. 2014/09/25 18:55:58.000| |SLS_RIZ4@FORTS_test account|Заявка 6 (0x247FF1F) больше не активна.

William B
William B 著者

Активная техподдержка 03 декабря 2014 г.

Mikhail , [03.12.14 11:28] а где ошибка? не понял вопроса

Александр Игнатенко, [03.12.14 11:35] 2014/09/25 18:55:58.000|Error |TCS_RIZ4@FORTS_test account|Заявка 6 (0x247FF1F) не была зарегистрирована по причине 'Сейчас эта сессия не идет.'

Александр Игнатенко, [03.12.14 11:36] стратегия stoploss не срабатывает, выдает эту ошибку, позиции остаются открытыми (тестирую на исторических данных)

Александр Игнатенко, [03.12.14 16:52] Коллеги, может нужна еще какая-нибудь информация ао ошибке, скажите, я пришлю

Mikhail , [03.12.14 17:00] Так правильно же пишет

Mikhail , [03.12.14 17:00] Сессия то не круглосуточная

Александр Игнатенко, [03.12.14 17:13] Ее можно расширить на несколько дней?

Mikhail , [03.12.14 17:15] Рис работает до 18 45

Mikhail , [03.12.14 17:15] Нет торгов в 18 55

Александр Игнатенко, [03.12.14 17:23] И еще один вопрос. После включения stoplossstrategy в дочерние стратегии, ActivePrice у меня выдает null и isActivated = false. Если это корректно, то можно как-нибудь получить цену активации stoploss стратегии?

Mikhail , [03.12.14 18:04] включение стратегии и активация стопа - это же разные вещи

Mikhail , [03.12.14 18:05] включенная стратегия мониторит когда нужно активировать стоп

Mikhail , [03.12.14 18:05] стоп может быть вообще не активирован

Александр Игнатенко, [03.12.14 18:07] Т.е. во включенной стратегии мы не сможем увидеть уровень стопа, значит пойдем другим путем. Спасибо за ответы

William B
William B 著者

Активная техподдержка 04 декабря 2014 г.

Yury Basangov, [04.12.14 11:39] Всем привет! Небольшое сообщение. По вопросам технической поддержки можно и нужно обращаться к Дмитрий Пименову. Прошу любить и жаловать.

Дмитрий Пименов, [04.12.14 11:44] Привет!

Денис (rtDen) , [04.12.14 15:46] Добрый день!

Дмитрий Пименов, [04.12.14 15:46] добрый!

Денис (rtDen) , [04.12.14 15:46] Столкнулся с одним багом (события обновления стакана в роботе вызываются реже, чем стакан обновляется в квике), но в процессе его фиксации всплыл другой. В свойство инструмента bestBid попадают значения из ask'ов. Вот небольшой код стратегии: http://pastebin.com/AER0tJSm Т.е. просто по изменению стакана в лог пишутся BestBid и BestAsk

Денис (rtDen) , [04.12.14 15:47] Вот пара скриншотов с записанного видео:

Денис (rtDen) , [04.12.14 15:47] [screen1.png]

Денис (rtDen) , [04.12.14 15:47] [screen2.png]

Денис (rtDen) , [04.12.14 15:48] [_report.zip]

Денис (rtDen) , [04.12.14 15:48] В архиве видео, скрины и логи луа и робота

Mikhail , [04.12.14 16:06] А на sample такое же поведение?

Денис (rtDen) , [04.12.14 16:07] не смотрел, попробую чуть попозже

Денис (rtDen) , [04.12.14 18:29] [screen3.png]

Денис (rtDen) , [04.12.14 18:30] похоже что сортировка не в ту сторону идет

Денис (rtDen) , [04.12.14 18:30] но это переодически, то верно то неверно

Денис (rtDen) , [04.12.14 18:33] а хотя не то что периодически, просто в аске и в биде одинаковые заявки

Денис (rtDen) , [04.12.14 18:35] S#:4.2.43

Денис (rtDen) , [04.12.14 18:36] Quik: 6.14.0.12

William B
William B 著者

Активная техподдержка 05-07 декабря 2014 г.

Денис (rtDen) , [05.12.14 16:02] Приветствую всех! Михаил, есть какие-нибудь продвижения по вчерашней проблеме?

Mikhail , [05.12.14 16:15] добрый день. пока в процессе

Денис (rtDen) , [05.12.14 16:22] Добрый. понял

Александр Игнатенко, [06.12.14 09:30] Всем привет. Тестированию стратегию на исторических данных. При выставлении ордера вылетает ошибка "Сейчас эта сессия не идет." Причина - время выставления заявки по-каким-то причинам отличается от времени свечи на 1 час. Из-за время выставления ордера попадает на время перерыва. Что можно сделать, подскажите плиз?

Mikhail , [06.12.14 09:34] Добрый. Данные свои или что выложены в архиве?

Александр Игнатенко, [06.12.14 10:35] Свои

Mikhail , [06.12.14 11:00] можете прислать архив с данными и мини пример воспроизведения ошибки?

Александр Игнатенко, [07.12.14 06:47] После некоторых исправлений, ошибку восстановить не получается. Как только вернется, сразу пришлю

William B
William B 著者

Активная техподдержка 08 - 14 декабря 2014

Александр Игнатенко, [08.12.14 23:40] Тестирование на исторических данных. На графике первая свеча приходит в 10.00, вторая - 11.00. Наверно связано с временными зонами, но как их выровнять?

Mikhail, [09.12.14 13:43] можете все таки прислать архив с данными? на чем тестируете

Александр Игнатенко, [11.12.14 06:08] [ Document : IamRobot4.rar ]

Александр Игнатенко, [11.12.14 06:08] посмотри opentime первой и второй свечи

Сергей Гаврилов, [11.12.14 19:24] Александр, в твоем архиве данные записаны со сдвигом UTC +4 (до перехода на зимнее время?), а должно быть UTC +3.

Александр Игнатенко, [11.12.14 20:49] это я понял, но гидра не позволяет ( или я не знаю об этом) сменить часовой пояс при загрузке данных, и в настройках эмулятора коннектора я тоже не смог найти возможность смены часового пояса. Возможно ли все-таки как-то синхронизировать эмулятор с данными?

Сергей Гаврилов, [11.12.14 20:52] А у тебя какой пояс?

Александр Игнатенко, [11.12.14 20:52] +3

Сергей Гаврилов, [11.12.14 20:53] +3 к Москве или +3 UTC?

Александр Игнатенко, [11.12.14 20:57] к UTC

Сергей Гаврилов, [11.12.14 21:02] А когда ты эти данные качал?

Александр Игнатенко, [11.12.14 21:44] В ноябре. , дату не помню

Александр Игнатенко, [13.12.14 07:42] как SmartComу указать на 64-битную версию? информация в справке устарела

Сергей Гаврилов, [13.12.14 20:40] Установить нужную версию SmartCOM можно при помощи свойства SmartTrader.Version, а нужный Wrapper (SmartCom3Wrapper32 или SmartCom3Wrapper64) будет выбран автоматически в зависимости от разрядности процесса.

Александр Игнатенко, [14.12.14 09:17] что-то не хочет он автоматически выбирать, при этом половина примеров работает, а половина - нет (при установленной 64-й разрядной версии)

Mikhail, [14.12.14 11:36] а какие именно примеры не работают?

Mikhail, [14.12.14 11:36] и в чем заключается их неработоспособность?

Mikhail, [14.12.14 11:37] по истории. а чем она была закачена? гидрой? какой источник был выбран? финам?

Александр Игнатенко, [14.12.14 14:57] SampleSmart подключился, а SmapleSmartCnadles и SmapleSmartSMA - нет.

Александр Игнатенко, [14.12.14 15:38] Не удалось получить фабрику класса COM для компонента с CLSID {99F5EA2E-0636-49BE-8100-8AE309B03331} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).

Александр Игнатенко, [14.12.14 15:38] такую ошибку выдает

Александр Игнатенко, [14.12.14 15:39] по истории. Была закачена Гидрой, источник - финам

Сергей Гаврилов, [14.12.14 15:39] В каком примере?

Александр Игнатенко, [14.12.14 15:44] Ошибку выдает? SmapleSmartCnadles и SmapleSmartSMA, плюс в моем роботе

Сергей Гаврилов, [14.12.14 15:45] По пунктам: 1.Cартком установлен?

Сергей Гаврилов, [14.12.14 15:46] Если да, то какая версия..

Александр Игнатенко, [14.12.14 15:46] в примере SampleSmart , smartcom отрабатывает и если подключаться на прямую через Smartcom (без S#), то тоже отрабатывает

Александр Игнатенко, [14.12.14 15:49] версия SmartCOM 3.0.137

Александр Игнатенко, [14.12.14 15:49] x64

Сергей Гаврилов, [14.12.14 15:49] Я понял, 64?

Александр Игнатенко, [14.12.14 15:50] устанавливал x86, подключается нормально

Сергей Гаврилов, [14.12.14 15:50] Ок.. сейчас проверю..

Сергей Гаврилов, [14.12.14 15:54] Счет демо?

Александр Игнатенко, [14.12.14 15:54] нет, реальеый

Александр Игнатенко, [14.12.14 15:55] на срочный рынок - 2 счета

Александр Игнатенко, [14.12.14 16:06] еще вопрос. smartcom некорректно выдает 5-минутные свечи. В свое время ошибку они признали, но на корректировку забили, прошло уже несколько месяцев. S# сам формирует свечи? Интересует формирование в реальном времени и по истории

Mikhail, [14.12.14 16:10] по истории. была реально проблема именно с источником в финам в гидре и именно со свечками (любой тф). новую версию выложим как можно быстрее, но историю нужно будет заново перекачать.

Александр Игнатенко, [14.12.14 16:11] ок, спасибо, ждем

Александр Игнатенко, [14.12.14 16:16] могли бы еще глянуть пример коннекта к SmartCom'у. Не могу понять что не так

Александр Игнатенко, [14.12.14 16:16] [ Document : StockSharp.TraderConnection.rar ]

Александр Игнатенко, [14.12.14 16:17] как и писал выдает ошибку на версии x64

Сергей Гаврилов, [14.12.14 17:05] А ты галку Prefer 32-bit в свойствах проекта, закладка Build пробовал убирать?

Сергей Гаврилов, [14.12.14 17:41] Проверил эту ситуацию на 64-битной OS.. Нужно убрать убрать галку Prefer 32-bit (русс: Предпочтительно: 32-разрядн.)

Александр Игнатенко, [15.12.14 05:14] да, заработало. спасибо

William B
William B 著者

Активная техподдержка 15 - 21 декабря 2014

Владимир Куриленко, [16.12.14 20:25] Вопрос про обучающие примеры. Они буду адаптироваться с выходом нового API?

Сергей Гаврилов, [16.12.14 20:31] Да.

Владимир Куриленко, [16.12.14 20:31] Там reference еще от 2.10 версии, совсем много несовместимостей

Сергей Гаврилов, [16.12.14 20:35] Работа по этой теме начата.

Денис (rtDen), [17.12.14 10:46] Приветствую всех!

Денис (rtDen), [17.12.14 10:46] Потихоньку просматриваю уроки. Во втором уроке описывются свойства MarketDepth.Latency, Trade.Latency - сейчас их нет, их перенесли куда-то или вообще убрали? И как они действуют (действовали)?

Сергей Гаврилов, [17.12.14 20:24] Latency - время задержки, т.е. разница во времени, когда это событие (сделка, изменение стакана и т.п.) случились на бирже и когда соответствующее событие отобразилось в программе на Вашем компьютере. В последней версии этого свойства нет, но есть свойства LastChangeTime и LocalTime..

Mikhail, [17.12.14 20:51] да, есть сервеное время (если транслирует источник) и локальное время. разница собственно задержка

Денис (rtDen), [18.12.14 08:28] Списабио за ответ, просто из документации неясно было, что LastChangeTime - это время от источника.

Денис (rtDen), [18.12.14 08:28] Следующие воросы: Методы MarketDepth AddAsk, AddBid, Remove, Update - они для чего нужны? Для моделирования большей частью, т.е. для ручного создания стакана и наполнения его данными?

Денис (rtDen), [18.12.14 09:23] Порция вопросов про MarketRule: Для хорошего понимания как это работает и как этим пользоваться, хочу знать внутренний механизм правил.

  1. Как работает And и Or у правил. Ну как Or работает я более менее догадываюсь, а And? Внутри объявляется какая то переменная и при срабатывании первого правила флаг взодится, а при срабатывании второго выполняются действия в Do? А интервал временной между этими событиями любой может быть? Или вообще все иначе работает
  2. Как работает Until в правилах? В какой момент проверяется условие
  3. Как работает Sync в правилах? Весь метод в Do полностью оборачивается в sync?
  4. Когда в стратегии у правила пишем Apply(this) - зачем передается стратегия? Чтобы правило было привязано к стратегии, (включалось/выключалось при вкл/выкл стратегии) или на что-то еще влияет?
  5. В Exclusive используются механизмы синхронизации? Т.е. при одновременном наступлении события, которое вызовет срабатывание обоих правил, гарантированно выполнится только одно из них?

Денис (rtDen), [18.12.14 10:55] 6) IMarketRule.IsActive - оно когда true? в течении выполнения метода в Do?

Сергей Гаврилов, [18.12.14 18:34] Методы MarketDepth AddAsk, AddBid, Remove, Update - они для чего нужны? Для моделирования большей частью, т.е. для ручного создания стакана и наполнения его данными? Да.

  1. Как работает And и Or у правил. Ну как Or работает я более менее догадываюсь, а And? Внутри объявляется какая то переменная и при срабатывании первого правила флаг взодится, а при срабатывании второго выполняются действия в Do? А интервал временной между этими событиями любой может быть? Или вообще все иначе работает

При помощи AND/Or вы можете объединить несколько правил. В первом случае Do сработает, если произошли все события правил, во втором, если любое из событий. Чисто для примера ... Do сработает, если свечка изменилась и ее объем > 100.

_series.WhenCandlesChanged().And(_series.WhenCurrentCandleTotalVolumeMore(100)).Do(() => { //... ;}).Apply(this);

  1. Как работает Until в правилах? В какой момент проверяется условие Событие правила будет вызываться пока не будет выполнено определенное условие. Например, обработка правила на событие NewTrades будет вызываться, пока breakDo не станет true. bool breakDo = false; _securuty.WhenNewTrades() .Do( trades => { // ...... breakDo = true; }) .Until(() => breakDo) .Apply(this);

Сергей Гаврилов, [18.12.14 18:36] 4) Когда в стратегии у правила пишем Apply(this) - зачем передается стратегия? Чтобы правило было привязано к стратегии, (включалось/выключалось при вкл/выкл стратегии) или на что-то еще влияет? Да. Правило добавляется в список Rules стратегии...

Сергей Гаврилов, [18.12.14 19:22] 3) Как работает Sync в правилах? Весь метод в Do полностью оборачивается в sync? Да.

Сергей Гаврилов, [18.12.14 19:50] "Событие правила будет вызываться..." - не событие, а действие в Do()...

Сергей Гаврилов, [18.12.14 20:01] "В какой момент проверяется условие" - перед вызовом Do..

Денис (rtDen), [19.12.14 07:53]

  1. Про And можно уточнить, как этот механизм "физически" работает? "Внутри объявляется какая то переменная и при срабатывании первого правила флаг взодится, а при срабатывании второго выполняются действия в Do? А интервал временной между этими событиями любой может быть?"
  2. Т.е. правило активно, в момент вызова Do проверяется условие, и если оно true то правило отключается? А 5й и 6й пункты? у меня уже следущая порция вопросов назревает )

Сергей Гаврилов, [19.12.14 12:47] 1.Методы AND/OR возвращают объединенное правило. В IMarketRule определено свойство Container, который хранится в своем списке правила, входящие в объединение. При активации любого из составляющих правил контейнер проверяет флаг IsActive всех составляющих правил и в соответствии с логикой AND или OR активирует объединенное правило. Интервал любой..

Сергей Гаврилов, [19.12.14 13:02] 5 вопрос: гарантирует, события идут в одном потоке..

Денис (rtDen), [19.12.14 13:17] понятно. Спасибо за ответы

Сергей Гаврилов, [19.12.14 13:20] " Т.е. правило активно, в момент вызова Do проверяется условие, и если оно true то правило отключается?" - Да.

Yury Basangov, [19.12.14 15:33] Мария сбросьте код примера

Мария Крень, [19.12.14 15:33] что именно?

Yury Basangov, [19.12.14 15:34] Решила перейти на новую версию stocksharp - 4.2.43. И возникла проблема. При запуске примера и моего робота портфели не подгружаются, с инструментами и всем остальным все в порядке. Т.е. когда в примере запускаю окно выставления заявки, то клиентский счет не отображается. Версия Квик самая последняя. На форумах подходящего мне решения не было. Подскажите пожалуйста, с чем это может быть связано?

Мария Крень, [19.12.14 15:34] Весь код? Или только MainWindow.xaml.cs

Yury Basangov, [19.12.14 15:34] Примера в котором портфель не подгружается

Мария Крень, [19.12.14 15:35] Вам в архиве или как?

Yury Basangov, [19.12.14 15:35] Если там секретные вещи можете обращаться напрямую к Сергею Гаврилову.

Мария Крень, [19.12.14 15:35] Вообще-то это пример со стокшарпа

Мария Крень, [19.12.14 15:35] он не работает

Yury Basangov, [19.12.14 15:35] Сорри

Мария Крень, [19.12.14 15:36] А мой код автоматически тоже не работает

Yury Basangov, [19.12.14 15:36] Минуту, сейчас посмотрим

Сергей Гаврилов, [19.12.14 15:52] Мария, добрый день! Какой конкретно пример не работает..

Мария Крень, [19.12.14 15:52] Samplr

Мария Крень, [19.12.14 15:52] Sample

Мария Крень, [19.12.14 15:53] Здравствуйте.

Мария Крень, [19.12.14 15:53] Если подробнее, то Quik->Sample

Сергей Гаврилов, [19.12.14 16:02] Вы подключаетесь через Lua или DDE?

Мария Крень, [19.12.14 16:02] Через Lua ошибку кидает

Мария Крень, [19.12.14 16:02] Через DDE.

Сергей Гаврилов, [19.12.14 16:03] Какой текст ошибки через LUA, скопируйте или скрин сделайте..

Мария Крень, [19.12.14 16:04] секунду

Мария Крень, [19.12.14 16:05] [ Document : Безымянный.png ]

Сергей Гаврилов, [19.12.14 16:09] У вас скорее всего скрипт для Lua не включен..

Мария Крень, [19.12.14 16:10] А как это сделать?

Сергей Гаврилов, [19.12.14 16:10] Секунду...

Сергей Гаврилов, [19.12.14 16:14] В Квике выбираете Таблицы->Lua->Доступные скрипты

Мария Крень, [19.12.14 16:15] Доступных скриптов нет

Сергей Гаврилов, [19.12.14 16:16] Файс скрипта лежит в папке Referenсes

Мария Крень, [19.12.14 16:16] В Quik Junior->References?

Сергей Гаврилов, [19.12.14 16:16] это папка StockSharp

Мария Крень, [19.12.14 16:17] Ясно

Сергей Гаврилов, [19.12.14 16:17] файл StockSharp.Quik.lua

Мария Крень, [19.12.14 16:17] Нашла.

Мария Крень, [19.12.14 16:17] Unknown error. Possible unhandled exception.

Мария Крень, [19.12.14 16:18] При запуске выдает

Сергей Гаврилов, [19.12.14 16:19] версия quik какая у вас?

Мария Крень, [19.12.14 16:20] 6.16.0.42

Сергей Гаврилов, [19.12.14 16:27] Там нет никакой еще кнопки с дополнительным описанием ошибки?

Мария Крень, [19.12.14 16:27] Нету

Сергей Гаврилов, [19.12.14 16:29] Вы в предыдущей версии StockSharp робота через DDE запускали?

Мария Крень, [19.12.14 16:29] Да.

Мария Крень, [19.12.14 16:29] Предыдущая была совсем старая версия. Но все работало.

Сергей Гаврилов, [19.12.14 16:30] А с этой версией квика старый StockSharp работал?

Мария Крень, [19.12.14 16:30] Нет, начиная с 6.8 не работал

Mikhail, [19.12.14 16:34] на форуме подробная инструкция по настройке квик + луа. даже один пользователь записал видео

Mikhail, [19.12.14 16:34] в группе в контакте ссылка

Мария Крень, [19.12.14 16:35] Я видела. Но почему через ДДЕ не работает?

Мария Крень, [19.12.14 16:36] У меня один раз вчера сработали портфели. Но робот выдал ошибку по деривативам при выставлении заявки

Сергей Гаврилов, [19.12.14 16:45] Попробуйте перезагрузить Квик, убрать все таблицы и снова запустить скрипт Lua...

Мария Крень, [19.12.14 16:47] Не помогло

Сергей Гаврилов, [19.12.14 16:47] Та же ошибка?

Мария Крень, [19.12.14 16:48] Сейчас, поставлю настрою Lua, как на форуме написано.

Мария Крень, [19.12.14 16:48] Да, та же.

Mikhail, [19.12.14 16:52] а C++ runtime устанавливали?

Мария Крень, [19.12.14 16:53] Сейчас посмотрю.

Mikhail, [19.12.14 16:53] всмысле?

Мария Крень, [19.12.14 16:53] Я не помню

Mikhail, [19.12.14 16:53] вы по инструкции настраиваете квик?

Mikhail, [19.12.14 16:54] давайте я еще раз скопирую свое сообщение

Mikhail, [19.12.14 16:54] на форуме подробная инструкция по настройке квик + луа. даже один пользователь записал видео

Мария Крень, [19.12.14 16:55] У меня просто раньше стоял.

Мария Крень, [19.12.14 16:56] может быть конечно надо переставить...

Mikhail, [19.12.14 16:56] лучше будет если вы настроите в соотвествии с инструкцией

Мария Крень, [19.12.14 16:59] Да, я так и сделаю.

Мария Крень, [19.12.14 16:59] Но я все же не понимаю, как это влияет на подключение через ДДЕ

Сергей Гаврилов, [19.12.14 17:03] Через Lua удобнее работать, лучше подключаться через него..

Мария Крень, [19.12.14 17:03] ) Я понимаю.

Мария Крень, [19.12.14 17:03] Но вопрос другой был.

Сергей Гаврилов, [19.12.14 17:05] "портфели не подгружаются" ?

Мария Крень, [19.12.14 17:05] Но раньше-то подгружались...

Мария Крень, [19.12.14 17:12] Переставила Квик. Скачала и установила C++ runtime.

Мария Крень, [19.12.14 17:12] [ Photo ]

Мария Крень, [19.12.14 17:14] Все необходимые сборки лежат в папке References

Сергей Гаврилов, [19.12.14 17:21] Вы этот quik c сайта quik брали?

Мария Крень, [19.12.14 17:21] да

Сергей Гаврилов, [19.12.14 17:22] Тогда, небольшой тайм аут.. Я эту версию сейчас проверю..

Мария Крень, [19.12.14 17:23] Ок.

William B
William B 著者

Активная техподдержка 22 декабря - 28 декабря 2014 г.

Mikhail, [19.12.14 18:23] версия рантайма 64 или 32 бита?

Мария Крень, [19.12.14 18:24] 32, как у вас и написано качать

Мария Крень, [19.12.14 18:24] vcredist_x86.exe

Mikhail, [19.12.14 18:25] ок. а в логе луа что-то есть?

Mikhail, [19.12.14 18:25] рядом со скриптом должен создаться файл

Мария Крень, [19.12.14 18:28] [ Document : StockSharp.QuikLua.FatalError.log ]

Mikhail, [19.12.14 18:29] самая распространенная ошибка. в видео показано как сделать анблок на архив

Mikhail, [19.12.14 18:29] топ 1 вопрос последние несколько лет

Мария Крень, [19.12.14 18:30] Ок, у меня не все архивы блокирует. Редкая ошибка

Mikhail, [19.12.14 18:36] Все архивы стокшарп начиная с 2009 года блокируются. Потому что в них лежат dll.

Мария Крень, [19.12.14 18:36] Ок

Mikhail, [19.12.14 18:37] Но это не так важно. Лучше еще раз пройтись по инструкции. Вдруг какие то другие места пропущены.

Мария Крень, [19.12.14 18:48] Скрипт запустился, но с ошибкой.

Мария Крень, [19.12.14 18:48] Но пример работает.

Мария Крень, [19.12.14 18:48] Портфели подгрузились.

Мария Крень, [19.12.14 18:49] P.S. Вывод через dde по прежнему не работает.

Мария Крень, [19.12.14 18:49] Подключение т.е.

Сергей Гаврилов, [19.12.14 19:18] Для Вас принципиально, чтобы DDE тоже работало?

Мария Крень, [19.12.14 19:19] Нет, просто стоит его тогда вообще убрать.

Сергей Гаврилов, [19.12.14 19:21] Старая и новая технологии какое-то время все равно пересекаются.. Сразу убрать нельзя..

Мария Крень, [19.12.14 19:21] Понятно

Мария Крень, [19.12.14 19:33] Такой вопрос. Почему может не подхватытваться LastTrade по инструменту. Инструмент получаю так: Trader.NewSecurities += securities => { foreach (var instr in securities) { if (instr.Code == "LKOH" && instr.Class == "QJSIM") _securitiesWindow.Securities.Add(instr); } };

Мария Крень, [19.12.14 19:33] В квике заявки делала для этого инструмента.

Сергей Гаврилов, [19.12.14 19:35] Это из того же примера?

Мария Крень, [19.12.14 19:36] нет, я писала

Мария Крень, [19.12.14 19:37] код из примера все брал(при галочке подхватывать все инструменты) и ни одного, если убрать галочку

Мария Крень, [19.12.14 19:37] хотя в таблице инструменты инструмент был

Сергей Гаврилов, [19.12.14 19:40] Тогда весь код прикрепите...

Мария Крень, [19.12.14 19:46] Там коннект такой же, как в примере

Мария Крень, [19.12.14 19:46] поменяла только эту строчку

Мария Крень, [19.12.14 19:46] кстати, сейчас в примере посмотрю

Мария Крень, [19.12.14 19:46] в примере тоже не определилось

Мария Крень, [19.12.14 19:49] Заявка выставляется из примера. Но последнюю сделку не отображаеь.

Мария Крень, [19.12.14 19:51] Мои сделки тоже отображает.

Сергей Гаврилов, [19.12.14 20:03] Уточните вопрос. После того как переписали код в Окне SecuritiesWindow перестала отображаться информация по инструменту?

Сергей Гаврилов, [19.12.14 20:28] Из какой версии StockSharp вы используете пример? В последней версии используется контрол SecurityPicker: _securitiesWindow.SecurityPicker.Securities.AddRange(securities);

Мария Крень, [19.12.14 23:55] Беру пример из StockSharp — Sample. Версии 4.2.43.(Ничего не меняя) Запускаю на квике, в таблице инструментов у которого 1 инструмент. Запускаю без галочки показать все инструменты. В итоге никакой инструмент не отображается. Если запускаю с галочкой, то отображаются все инструменты, но без последней цены и времени последней сделки.

Если через, то ДДЕ показывает все как надо.

Мария Крень, [19.12.14 23:56] Естественно мой код с изменениями тоже не будет работать.Я сделала и с SecurityPicker: и без него и разницы не почувствовала.

Мария Крень, [20.12.14 01:23] [ Document : StockSharp.QuikLua.log ]

Сергей Гаврилов, [20.12.14 13:18] "Если запускаю с галочкой, то отображаются все инструменты, но без последней цены и времени последней сделки." - кнопку "Level1.." нажимали?

Мария Крень, [20.12.14 13:21] да, ничего не происходит. Ну и стакан тоже не грузит

Мария Крень, [20.12.14 13:29] [ Document : StockSharp.QuikLua.log ]

Сергей Гаврилов, [20.12.14 14:00] В последнем логе Вы вызывали Level1 для AESL, попробуте тоже самое сделать для SBER

Сергей Гаврилов, [20.12.14 14:01] AESL - не активная акция

Мария Крень, [20.12.14 14:03] да, сработало. Спасибо.

Сергей Гаврилов, [20.12.14 14:03] Ок.

Мария Крень, [20.12.14 16:49] Еще вопрос, как из списка портфелей получить нужный? (раньше это было portfolio[1] например). (Portfolio)_portfoliosWindow.PortfolioGrid.Portfolios.FirstOr(null) — так теперь могу получить первый.

Мария Крень, [20.12.14 16:50] А остальные как? (Portfolio)_portfoliosWindow.PortfolioGrid.Portfolios[1] так ошибка

Мария Крень, [20.12.14 16:51] _portfoliosWindow.Portfolios[1] — так раньше было

Мария Крень, [20.12.14 17:57] А с инструментами все как раньше работает...

Мария Крень, [20.12.14 17:58] _securitiesWindow.SecurityPicker.Securities[0]

Мария Крень, [20.12.14 20:08] Я так поняла, что многие методы из выпажающего списка не реализованы?

Сергей Гаврилов, [20.12.14 20:38] var port = (Portfolio)_portfoliosWindow.PortfolioGrid.Portfolios.FirstOr(null);

Сергей Гаврилов, [20.12.14 20:39] Но нужно добавить using Ecng.Collections;

Сергей Гаврилов, [20.12.14 21:57] Здесь специальный тип коллекции используется, чтобы иерархическую структуру отобразить. Этот тип индексацию (Ilist) не поддерживает. Но можно например вот так сделать интерфейс Ilist yt

Сергей Гаврилов, [20.12.14 21:58] var port = (Portfolio)_portfoliosWindow.PortfolioGrid.Portfolios.TakeEvery(1).FirstOr(null); Только индекс не с 0, а с 1 должен начинаться.. Здесь будет получен 1-й портфель..

Сергей Гаврилов, [20.12.14 21:59] Может быть лучше свою коллекцию с портфелями создать..

Сергей Гаврилов, [20.12.14 22:04] "методы из выпадающего списка не реализованы" - какой список Вы имели ввиду?

Мария Крень, [22.12.14 11:58] Что нужно поменять в скрипте, чтобы запустить робот с рабочего квика?

Мария Крень, [22.12.14 11:58] в скрипте lua

Мария Крень, [22.12.14 11:59] Я меняю Fix Server... это правильно?

Сергей Гаврилов, [22.12.14 12:13] да ничего менять не нужно

Мария Крень, [22.12.14 12:13] Я с нескольких квиков сразу работаю

Мария Крень, [22.12.14 12:13] а один и тот же скрипт, если fix server не поменять не запускается

Мария Крень, [22.12.14 12:15] А подскажите по какой причине может фьючерс заявка не выставляется?

Мария Крень, [22.12.14 12:16] просто обычная по срочной московской ставится и все ок

Мария Крень, [22.12.14 12:16] а фьючерс не хочет

Сергей Гаврилов, [22.12.14 12:17] лог надо посмотреть..

Мария Крень, [22.12.14 12:18] у lua?

Сергей Гаврилов, [22.12.14 12:19] да

Мария Крень, [22.12.14 12:20] [ Document : StockSharp.QuikLua.log ]

Мария Крень, [22.12.14 12:23] так разобралась

Мария Крень, [22.12.14 12:23] с ошибкой

Мария Крень, [22.12.14 12:23] сейчас посмотрю выставит или нет

Сергей Гаврилов, [22.12.14 12:24] И чего было?

Мария Крень, [22.12.14 12:24] дробь цена

Мария Крень, [22.12.14 12:24] тип привела

Сергей Гаврилов, [22.12.14 12:25] а свои логи пишите?

Мария Крень, [22.12.14 12:25] да

Сергей Гаврилов, [22.12.14 12:37] Для округления цены, вот такой метод можно использовать, что Security.ShrinkPrice(Decimal)

Сергей Гаврилов, [22.12.14 14:08] Вам удалось второй Квик подключить?

Мария Крень, [22.12.14 15:53] да, и 3 -й и 4-й

Сергей Гаврилов, [22.12.14 15:54] 😊

Мария Крень, [22.12.14 15:54] Да, хотела задать вопрос про метод округления.

Мария Крень, [22.12.14 15:54] Как он работает?

Сергей Гаврилов, [22.12.14 15:55] Округляет цену до минимального шага цены для инструмента

Мария Крень, [22.12.14 15:55] О, тогда то, что нужно.

Мария Крень, [22.12.14 15:55] Возвращаясь к вопросу о портфелях.

Мария Крень, [22.12.14 15:56] Я сделала альтернативное обращение с combobox через foreach

Мария Крень, [22.12.14 15:57] Но меня печалит то, что как раньше обычное обращение не работает. Почему такая странная конструкция?

Мария Крень, [22.12.14 15:57] почему тип так поменяли, что нельзя просто обращаться к портфелю как к элементу?

Мария Крень, [22.12.14 15:57] [0], [1]

Мария Крень, [22.12.14 15:59] Еще такаое заметила, сегодня, когда коннектилась к разным квикам заценила время подгрузки инструментов. У втб терпимо, а воту элтры и бкс .... пришлось огромную задержку ставить

Сергей Гаврилов, [22.12.14 16:02] Эта коллеция специально для байдинга со иерархической структурой данных в этом контороле

Мария Крень, [22.12.14 16:03] Понятно. Ну если для байдинга, то ок. Вот события стали лучше срабатывать(быстрее), это мне понравилось.

Сергей Гаврилов, [22.12.14 16:03] Это от сервера зависит.

Мария Крень, [22.12.14 20:45] какая библиотека нужна для shrinkprice? Подскажите пожалуйста

Мария Крень, [22.12.14 20:47] нашла

Сергей Гаврилов, [22.12.14 20:51] StockSharp.Algo

Мария Крень, [22.12.14 20:51] )) Да просто после работы плохо думается, метод у цены искала)

Сергей Гаврилов, [22.12.14 20:52] У Вас какая студия стоит?

Мария Крень, [22.12.14 20:52] 12

Сергей Гаврилов, [22.12.14 20:56] В 13 есть поиск в Object Browser. Любой метод можно найти.. Может и в 12 есть

Мария Крень, [22.12.14 20:56] нет

Мария Крень, [22.12.14 20:56] только в 13

Сергей Гаврилов, [22.12.14 20:56] Тогда увы..

Мария Крень, [22.12.14 20:56] собственно это и было улучшением главным с 12 на 13)

Мария Крень, [22.12.14 20:56] да я мб как-нибудь поставлю 13)))

Мария Крень, [22.12.14 20:57] просто недавно 12 поставила, Аркадий и так еле принял это

Мария Крень, [22.12.14 21:00] А как быстро цену подгружать?

Мария Крень, [22.12.14 21:00] А то получается, что он грузит цену, начиная с начала дня

Мария Крень, [22.12.14 21:01] и это оооочень долго

Сергей Гаврилов, [22.12.14 22:34] А на таблицу "Все сделки" фильтр ставите?

Мария Крень, [22.12.14 22:34] какой надо

Сергей Гаврилов, [22.12.14 22:35] На бумагу..

Мария Крень, [22.12.14 22:35] на инструмент савлю

Мария Крень, [22.12.14 22:35] ставлю

Сергей Гаврилов, [22.12.14 22:35] Да наинструмент..

Мария Крень, [22.12.14 22:35] да, конечно

Сергей Гаврилов, [22.12.14 22:36] Технология в Квик на таблицах построена..

Мария Крень, [22.12.14 22:36] просто через дде загрузка в разы быстрее была....

Мария Крень, [22.12.14 22:36] я не понимаю в чем теперь дело

Мария Крень, [22.12.14 22:36] я конечно подумаю, можт плохо что-то написала

Алексей (kvazar) Украинцев, [23.12.14 11:39] Добрый день, все сначала, пример QuikSample подключение к луа http://gyazo.com/c4761b781c19c70170fe59fa836d5638

Денис (rtDen), [23.12.14 11:47] а lua-скрипт запущен в квике?

Алексей (kvazar) Украинцев, [23.12.14 12:51] при запуске выдает Unknown error. Possible unhandled exception.

Алексей (kvazar) Украинцев, [23.12.14 13:16] Спасибо, запустился, пришлось еще раз разблокировать архив

Денис (rtDen), [23.12.14 15:48] 2014/12/23 16:45:19.979|Error |QuikTrader|OrderFailed 60248194/ Покупка Цена=80000 Объем=1 Сост=Failed Бал=1 System.ArgumentNullException: Значение не может быть неопределенным. Имя параметра: key в System.Collections.Generic.Dictionary2.FindEntry(TKey key) в System.Collections.Generic.Dictionary2.TryGetValue(TKey key, TValue& value) в Ecng.Collections.SynchronizedDictionary2.TryGetValue(TKey key, TValue& value) в Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary2 dictionary, TKey key, Func2 handler, Boolean& isNew) в Ecng.Collections.CollectionHelper.SafeAdd[TKey,TValue](IDictionary2 dictionary, TKey key, Func2 handler) в StockSharp.Licensing.LicenseHelper.ValidateLicense(Type connectorType, String portfolioName) в StockSharp.Messages.MessageAdapter1.CheckLicense(Message message) в StockSharp.Messages.MessageAdapter`1.SendInMessage(Message message) в StockSharp.Algo.ManagedMessageAdapter.#=qPHtnlMIpbTeVB2CpzL29n4Nwny4zpLzC2FtWDSulVrt61JKRdzsxnvItjwETv4NrmsrGSUs8wLPQPCWaKivyyQ==(Message #=qdAXBXFzVsT8POaORhG0joA==) в StockSharp.Algo.Connector.OnRegisterOrder(Order order) в StockSharp.Algo.Connector.#=q0hHpS0MjrivRt2yhPg$47A==(Order #=qGkQhVuGH8WKjuMSt4_Ox2w==, Boolean #=qH1OmFM4N603cxLNDQNRYJQ==)

Денис (rtDen), [23.12.14 15:48] что это за ошибка? это как-то связанно с лицензией?

Денис (rtDen), [23.12.14 15:49] возникает при выставлении заявки, только что заявки выставлялись без проблем, код не менялся и тут бац, заявки больше не выстававляются. перезапуск квика и робота не помогает

Денис (rtDen), [23.12.14 15:50] на прошлой неделе тоже такое было, но сразу с тп не стал писать, решил пододать чтоб еще раз повторилось

Сергей Гаврилов, [23.12.14 16:00] А новую лицензию генерить не робовал?

Денис (rtDen), [23.12.14 16:00] пробовалъ

Денис (rtDen), [23.12.14 16:02] потом это "починилось", но почему я не понял - там все в кучу намешано было, я и квик переустановил и версию библиотеки поменял

Денис (rtDen), [23.12.14 16:02] это я про прошлую неделю говорю

Сергей Гаврилов, [23.12.14 16:12] А сегодня пробовал?

Денис (rtDen), [23.12.14 16:13] лицензию перегенерить?

Сергей Гаврилов, [23.12.14 16:13] Да..

Денис (rtDen), [23.12.14 16:13] сейчас попробую

Денис (rtDen), [23.12.14 16:25] щас квик стал зависать и сотнями выдавать такие ошибки:

Денис (rtDen), [23.12.14 16:25] 2014/12/23 17:24:03.420|Error |QuikTrader|System.ArgumentException: Элемент с тем же ключом уже был добавлен. в System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) в System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) в System.Collections.Generic.Dictionary2.Add(TKey key, TValue value) в StockSharp.Fix.FixMessageAdapter.#=qywJCFsVUpxR9XU26iQOIlzD8Zlx9$342jHp_w7gBUK4=.#=qbeJ568$GTE7WrQGaK0MnnXJJ8f_yfxPp9ng0vpAodRM=(SecurityId #=qCLoi1dD8uLn9JRQFfHDHGQ==, DateTimeOffset #=qli6tnyP4sfcjzi__PXnrmg==, IEnumerable`1 #=qQ39fe1KN4VCLrbTv03KduQ==) в StockSharp.Fix.FixMessageAdapter.ProcessMarketDataMessage(String fixMessage) в StockSharp.Fix.FixMessageAdapter.#=qGmTjgpL2UZy$sVuZ06NvQ3ps_4KDOBNyTQuWaSyGJYQ=()

Денис (rtDen), [23.12.14 16:30] т.е. я подключаюсь в квику, сначала проходят данные уже имеющиеся - т.е. мои ордера сегодняшние, затем все сделки из табилцы всех сделок и затем начинают сыпаться эти ошибки ( Элемент с тем же ключом уже был добавлен.)

Денис (rtDen), [23.12.14 16:32] хотя секунду подождите, последняя ошибка - это возможно мой косяк

Денис (rtDen), [23.12.14 16:32] сейчас проверю кое-что

Денис (rtDen), [23.12.14 16:37] на посленюю ошибку пока не обращайте внимания, но первая никуда не делась

Денис (rtDen), [23.12.14 16:38] заявки не выставляются

Денис (rtDen), [23.12.14 16:38] лицензию обновил

Сергей Гаврилов, [23.12.14 16:42] На всякий случай.... Файл лицензии в нужном месте лежит?

Денис (rtDen), [23.12.14 16:46] да

Денис (rtDen), [23.12.14 16:47] в Documents\StockSharp\

Денис (rtDen), [23.12.14 16:47] проверил только что

Денис (rtDen), [23.12.14 16:51] ребут компа не помог

Денис (rtDen), [23.12.14 16:52] сейчас попробую через sample заявку выставить

Денис (rtDen), [23.12.14 16:56] через sample заявки выставляются

Денис (rtDen), [23.12.14 16:56] а через робота нет, но код никак не менялся работал работал и перестал

Mikhail, [23.12.14 16:59] может какой лиц файл лежит в папке с роботом?

Mikhail, [23.12.14 16:59] надо бы посканировать винт на наличие файлов stocksharp_license*.xml

Mikhail, [23.12.14 17:00] ну и да, робот и пример - на одном компе?

Денис (rtDen), [23.12.14 17:00] на одном

Денис (rtDen), [23.12.14 17:00] сейчас запущу поиск файлов лицензии по всему винту

Денис (rtDen), [23.12.14 17:00] в папке с роботом нет

Денис (rtDen), [23.12.14 17:05] 1 файл лицензии на винте

Mikhail, [23.12.14 17:08] ошибка никак не связана с лицензией.

Mikhail, [23.12.14 17:08] скорее всего библиотеки не обновлены

Mikhail, [23.12.14 17:09] в примере обновленные рефы. в роботе нет

Денис (rtDen), [23.12.14 17:17] перекопировал библиотеки на всякий случай, ничего не поменялось

Mikhail, [23.12.14 17:17] библиотеки перекомпилировать невозможно. они уже скомпилированные

Денис (rtDen), [23.12.14 17:17] пере_Копириовал_

Mikhail, [23.12.14 17:17] ошибся

Mikhail, [23.12.14 17:18] а откуда куда было скопировано?

Денис (rtDen), [23.12.14 17:22] из папки d:\StockSharp\4_2_43\

Денис (rtDen), [23.12.14 17:22] теоретически конечно я мог их случайно заменить... но это мало вероятно

Денис (rtDen), [23.12.14 17:22] но ок, я перекачаю библиотеку

Mikhail, [23.12.14 17:24] у вас же была отдельная библиотека. что вам отправлялось. главное чтобы и скрипт луа и клиент работали с одинаковой версией библиотеки

Денис (rtDen), [23.12.14 17:26] да я понимаю, что должны с одной версией работать. Вот в прошлый раз когда такая же ошибка вылезла, я разное пробовал и в итоге решил заново скачать с сайта 4.2.43 и ее поставить и в переустановленный квик и в робота

Денис (rtDen), [23.12.14 17:26] ну и опять же повторяю, что и сегодня все работало а потом перстало

Денис (rtDen), [23.12.14 17:26] и уж точно я между этими 2мя событиями дллки не менял ни в роботе ни в квике

Денис (rtDen), [23.12.14 17:30] хм, удалил все инстурменты из таблицы "Инстурменты" и добавил только нужные

Денис (rtDen), [23.12.14 17:31] и заработало

Денис (rtDen), [23.12.14 17:31] у меня постоянно туда левые инструменты сами добавляются

Денис (rtDen), [23.12.14 17:31] не могу понять почему

Денис (rtDen), [23.12.14 17:38] Михаил, ксати ошибка с неверными данными в стакане стала проявляться и на первом сервере открытия (раньше только на втором проявлялась)

Денис (rtDen), [23.12.14 17:38] завтра переключусь на бксовский счет, посмотрю будет она там появляться или нет

Алексей (kvazar) Украинцев, [23.12.14 17:46] Еще раз добрый вечер, запустил боллинджер стратеджи вот так выглядит график, почему может такое быть? http://gyazo.com/89d271075c53786d8622bf5f3e181869

Mikhail, [23.12.14 17:50] это уже к Сергею вопрос

Сергей Гаврилов, [23.12.14 17:50] Данные с демки QUIK?

Алексей (kvazar) Украинцев, [23.12.14 17:50] Нет, реал

Алексей (kvazar) Украинцев, [23.12.14 17:52] Код не трогал

Сергей Гаврилов, [23.12.14 17:53] Ок.. сейчас проверим..

Алексей (kvazar) Украинцев, [23.12.14 17:54] Это из примеров BollingerBandsRobot

Сергей Гаврилов, [23.12.14 17:54] Я понял..

Алексей (kvazar) Украинцев, [23.12.14 17:54] :)

Алексей (kvazar) Украинцев, [23.12.14 18:22] со временем какие-то нововедения? utc на графике 14-20... так еще между москвой и самарой 1 час разницу, что можно почитать н аэту тему?

Сергей Гаврилов, [23.12.14 18:29] Минуту..

Сергей Гаврилов, [23.12.14 18:30] На реале строит график по UTS?

Алексей (kvazar) Украинцев, [23.12.14 18:33] а где смотреть? просто вижу ось Х

Сергей Гаврилов, [23.12.14 18:33] По времени

Алексей (kvazar) Украинцев, [23.12.14 18:34] видимо, да если моска это utc+3. то самара utc +4, все правильно

Сергей Гаврилов, [23.12.14 18:37] Посмотри еще, какой у тебя диапазон метод timeFrame.GetCandleBounds(_series.Security) возвращает..

Алексей (kvazar) Украинцев, [23.12.14 18:41] если все праивльно посмотрел он возвращает местное самарское время

Алексей (kvazar) Украинцев, [23.12.14 18:42] http://gyazo.com/1f53cdf7540e80cbfa1aa14180f50422

Алексей (kvazar) Украинцев, [23.12.14 18:48] проблема понятна, не понятно, что делать, прикручивать 4 часа к времени utc? как бороться?

Сергей Гаврилов, [23.12.14 18:57] А терминал QUIK?

Алексей (kvazar) Украинцев, [23.12.14 18:58] Да

Сергей Гаврилов, [23.12.14 19:05] var TimeZone = _candleSeries.Security.Board.Exchange.TimeZoneInfo;

Сергей Гаврилов, [23.12.14 19:06] Можешь еще посмотреть какую тайм-зону вернет эта строка

Сергей Гаврилов, [23.12.14 19:07] В метод private void Draw(Candle candle) куда-нибудь ее вставь

Алексей (kvazar) Украинцев, [23.12.14 19:22] GMT +04 russian standart time

Алексей (kvazar) Украинцев, [23.12.14 19:23] DisplayName = "(GMT+04:00) Moscow, St. Petersburg, Volgograd"

Сергей Гаврилов, [23.12.14 19:23] Т.е. все временные диапазоны неправильно считаются..

Алексей (kvazar) Украинцев, [23.12.14 19:24] все 3....да

Сергей Гаврилов, [23.12.14 19:25] Надо подождать, что Михаил ответит...

Сергей Гаврилов, [23.12.14 19:26] А самом Квике время московское или местное идет?

Алексей (kvazar) Украинцев, [23.12.14 19:26] московское

Алексей (kvazar) Украинцев, [23.12.14 19:31] именно сейчас график отображается нормально. очень странно... http://gyazo.com/4f28e8b131483cdd9ce650e56c5426c5

Алексей (kvazar) Украинцев, [23.12.14 19:33] поговорил с умным человеком, встаивл строку кода, которая ни на что не влияет, график начал отображаться правильно) но это явно не решение проблемы

Сергей Гаврилов, [23.12.14 19:44] Пока ждем, что разработчики скажут...

Алексей (kvazar) Украинцев, [23.12.14 19:45] понятно, спасибо!

Алексей (kvazar) Украинцев, [23.12.14 19:55] Пока ест другой вопрос, скачал LciViewer2 не могу выбрать 2014 год http://gyazo.com/f1dff85beba79370b416242942788e37

Владимир (vow001) Русаков, [23.12.14 21:12] Подскажите, почему не срабатывает событие ProcessCandle при получении свечей, в Квике обработку внешних транзакций включил, вывод через DDE, как в примере Урок 4

Сергей Гаврилов, [23.12.14 21:18] в окно «все сделки» инструмент доббавили?

Владимир (vow001) Русаков, [23.12.14 21:27] в окне Все сделки нажимаю прав.кнопкой Редактировать таблицу, в панели Выбранные классы нажал Выделить все, все равно не получает свечи, или как-то по-другому нужно добавить?

Сергей Гаврилов, [23.12.14 21:28] В Quik сделки в это м окне идут?

Сергей Гаврилов, [23.12.14 21:32] To Alexey Ukraintsev: "Пока ест другой вопрос, скачал LciViewer2 не могу выбрать 2014 год" - видели на форуме об такой же ошибке писали: http://stocksharp.com/forum/303/LChI-Viewer/.. не могу сказать пофиксили ее в этой версии..

Владимир (vow001) Русаков, [23.12.14 21:37] В Квике сделки идут в окно Заявки, во Все сделки не идут

Сергей Гаврилов, [23.12.14 21:46] Вам нужно настроить это окно "Выбрать класс", а затем в фильтре выбрать нужные инструменты..

Владимир (vow001) Русаков, [23.12.14 22:28] Как я понял в таблице Все сделки показываются вообще сделки, которые совершаются на рынке и на основании этих данных строятся свечи? У меня на демо-счете БКС Все сделки не показываются, есть еще какие-н способы получения свечей?

Сергей Гаврилов, [23.12.14 22:30] Как не показываются? У Вас в демо только ФОРТС?

Владимир (vow001) Русаков, [23.12.14 22:32] нет, там все и акции, и фьючерсы

Сергей Гаврилов, [23.12.14 22:39]

  1. Войдите в редактирование таблицы все сделки, 2. Отметьте пункт Фьючерсы Forts, 3. Отметьте галку "Фильтр ценных бумаг". 4. В диалоге фильтра выберите нужные инструменты..

Владимир (vow001) Русаков, [23.12.14 22:40] Да, все так и сделал, все равно ничего не показывает

Сергей Гаврилов, [23.12.14 22:46]

  1. В текущую таблицу вы бумаги добавили? Если добавили, то покажите мне скрины таблицы 1. "Редактирование таблицы всех сделок", 2. диалог "Фьючерсы FORTS: фильтр ценных бумаг"

Владимир (vow001) Русаков, [23.12.14 22:51] [ Document : 23122014.png ]

Владимир (vow001) Русаков, [23.12.14 22:52] Т.е. в таблице Мои сделки и Заявки все показывается, а где Все сделки пусто

Сергей Гаврилов, [23.12.14 22:53] Ясно... она называется "Таблица всех сделок"

Сергей Гаврилов, [23.12.14 22:54] а не "Все сделки"... QUIK народ попутать 😊

Владимир (vow001) Русаков, [23.12.14 23:03] Да, нашел Таблицу всех сделок, но там тоже пусто, может быть из-за того, что уже 22.00.

Сергей Гаврилов, [23.12.14 23:10] У них демо до 22 работает?

Сергей Гаврилов, [23.12.14 23:13] Вы руками все таблицы настраивали?

Владимир (vow001) Русаков, [23.12.14 23:23] да, видимо, сессия уже закончилась, таблицы настраивал руками

Сергей Гаврилов, [23.12.14 23:26] Если руками, то закройте все окна и сделайте Настройки - Загрузить настройки из файла... Настройки лежат в .....\Samples\Quik\DDE\info.wnd

Сергей Гаврилов, [23.12.14 23:27] Сделки до 22 все равно должны загрузиться..

Сергей Гаврилов, [24.12.14 13:57] Для Aleksey Ukraintsev: Вы используете старую библиотеку S#, которая выложена с примерами. Нужно обновиться до 4.2.43

Сергей Гаврилов, [24.12.14 14:01] Фильтр для последней свечи лучше получать вот так: var time = timeFrame.GetCandleBounds(Connector.GetMarketTime(Security)).Min - timeFrame;

Алексей (kvazar) Украинцев, [24.12.14 18:29] Сергей, спасибо, пробую, поменял сслыки. Теперь еще несколько ошибок получил. Где можно смотреть актуальную документацию? Т.е. есть алгоритм моих действий по поиску изменений в библиотеках? Например, var price = direction == Sides.Buy ? Security.GetMarketDepth().BestAsk.Price : Security.GetMarketDepth().BestBid.Price; уже не работает.

Сергей Гаврилов, [24.12.14 18:31] NullException вылетает?

Алексей (kvazar) Украинцев, [24.12.14 18:32] т.е. Security.GetMarketDepth().BestAsk.Price превратился в Security.GetMarketPrice()

Алексей (kvazar) Украинцев, [24.12.14 18:32] Нет, просто не запускается, выдает ошибки

Сергей Гаврилов, [24.12.14 18:33] минуту, час посмотрю..

Алексей (kvazar) Украинцев, [24.12.14 18:35] библиотеки меняются, это понятно, я сам готов рыться в документтации, просто если бы при обновлениях был небольшой релиз того, чего меняется было б проще немного. Но это скорее Михаилу пожелание

Алексей (kvazar) Украинцев, [24.12.14 18:37] http://gyazo.com/41e72ec45298d28312d01b0508b66932

Сергей Гаврилов, [24.12.14 19:04]

  1. Класс Security имеет свои свойства BestAsk/BestBid 2. Чтобы использовать GetCandleBounds нужен референс на StockSharp.Algo.Candles

Сергей Гаврилов, [24.12.14 19:04] У Вас какая студия стоит?

Сергей Гаврилов, [24.12.14 19:17] В GetCandleBounds ошибка связана с типами аргументов. Поставьте точку после GetCandleBounds и посмотрите какие теперь у метода есть перегрузки.

Алексей (kvazar) Украинцев, [24.12.14 21:43] У меня 2013 студия проф, спасибо, буду разбираться

Алексей (kvazar) Украинцев, [25.12.14 16:01] Добрый день! вот это не могу понять, помогите: Предупреждение 4 "StockSharp.Xaml.Charting.ChartIndicatorElement.Indicator" является устаревшим: "This property is no logner uses." C:\Users\ДНС\Documents\Алготрейдинг\Архив s# обучение\StockSharp_Edu\05_lesson (Algotrading)\BollingerBandsRobot\MainWindow.xaml.cs 204 21 BollingerBandsRobot

Сергей Гаврилов, [25.12.14 17:40] В это пример придется внести немало изменений. Во-первых, нужно определить переменные: private BollingerBands _bollingerIndicator; private RateOfChange _rocIndicator; private ExponentialMovingAverage _maIndicator; private ExponentialMovingAverage _ma1Indicator;

Сергей Гаврилов, [25.12.14 17:44] Тогда стратегия инизиализируем так, //создаем экземпляр стратегии var bs = new BollingerBandsStrategy(_bollingerIndicator, _rocIndicator,_maIndicator,_ma1Indicator,_series,TakeprofitParam,StoplossParam) ;

Сергей Гаврилов, [25.12.14 17:45] Потом придется внести изменения в метод Draw(Candle candle)..

Сергей Гаврилов, [25.12.14 17:47] В ближайшее время планируется выложить новые версии пример. Решайте или сами дальше будете разбираться или подождите новую версию...

Алексей (kvazar) Украинцев, [25.12.14 18:16] Спасибо, попробую сам, но новые примеры необходимы. Разбираться в библиотеках не так уж легко.

Алексей (kvazar) Украинцев, [25.12.14 18:18] Сужу по себе, я разработчик БД. ДЛя меня не так сложен новый язык c#, как разобраться в иерархиях и применимости по ситуации библиотек и классов.

Алексей (kvazar) Украинцев, [28.12.14 23:52] Сергей, про ближайшее время по обновлению примеров все же спрошу- ориентир? И еще вопросы: есть ли особенности по работе с неколькимии таймфреймами одновременно по одному инструменту? таких примеров не нашел. как работать с индикатором на часовике - для построения он должен брать информацию прошлых дней, как его строить онлайн?

Алексей (kvazar) Украинцев, [29.12.14 00:30] Михаил, есть надежда на обновляемую актуальную документацию в ближайшем будущем? Спрашиваю без подколки. s# это больше для себя или больше коммерческий проект?

Mikhail, [29.12.14 01:04] Основная задача на 2015 год.

Mikhail, [29.12.14 01:04] Но документация для первого старта актуальна более чем на 80 процентов.

Алексей (kvazar) Украинцев, [29.12.14 01:07] Это очень хорошо, без актуальной документации нелегко, тогда проект оживет ну или заживет новой жизнью.

Алексей (kvazar) Украинцев, [29.12.14 01:20] И побольше актуальных примеров, обновлений видео, т.е. народ должен чуствовать движение - жизнь, например, как у Чечета. Это желательно на периодической основе делать. Например, взять и записать вебинар - ответы на вопросы, или просто робота заделать, но не простого, а посложнее. Объяснить структуру библиотек - особенно стратегий, как работают и т.д. Сам по себе сужу - в разработке 1,5 года один проект БД, немаленький, каждый день что-то меняется -гонка. Месяц назад взял паузу - остановился зафиксить достигнутое в мозгах и дать народу высказаться, чтобы воплотить в жизнь все пожелания пользователей. Я к тому, что может лучше шлифануть на каком-то этапе. чтобы потом двигаться снова вперед. Ну это, впрочем, просто мысли.

William B
William B 著者

Активная техподдержка 29 декабря 2014 - 08 января 2015 г.

Владимир (vow001) Русаков, [29.12.14 11:04] Добрый день, возвращаясь к вопросу получения свечей через DDE с Quik через ProcessCandle, выяснил, что свечи получаются только по акциям, по фьючерсам событие не срабатывает и свечи не приходят. С чеи это может быть связано? (таблицу Все сделки (Таблица всех сделок) настроил, там значения по фьючерсам показываются)

Сергей Гаврилов, [29.12.14 13:29] В инструменты (текущая таблица) фьючерс добавлен?

Владимир (vow001) Русаков, [29.12.14 13:34] Да, добавлен (и в таблицу Инструменты, и в Текущая таблица)

Сергей Гаврилов, [29.12.14 13:35] ваш код выложите..

Владимир (vow001) Русаков, [29.12.14 13:48] такой же, как в Видео-уроке 3. Часть 1. Стратегии.

Владимир (vow001) Русаков, [29.12.14 13:49] [ Document : 29122014.txt ]

Сергей Гаврилов, [29.12.14 13:56] Вы уверены, что именно через DDE подключаетесь?

Владимир (vow001) Русаков, [29.12.14 14:00] Да, все как в уроках описано, я последовательно делаю

Сергей Гаврилов, [29.12.14 14:24] Чтобы подключиться через DDE вот такой код должен быть.. ConnectionInterFace.SafeConnection = new SafeConnection(new QuikTrader(QuikTerminal.GetDefaultPath()) );

Сергей Гаврилов, [29.12.14 14:25] Посмотрите в терминале у Вас скрипт Lua включен?

Сергей Гаврилов, [29.12.14 14:32] Владимир, еще вопрос... Вы референсы на 4.2.43 поменяли?

Владимир (vow001) Русаков, [29.12.14 14:48] Да, я использую ссылки версии 4.1. Но сейчас вроде бы по RiZ5 свечи стали появляться. Спасибо, дальше пока сам буду разбираться.

Сергей Гаврилов, [29.12.14 14:53] Для Aleksey Ukraintsev: Для работы с разными таймфремами нужно создать для каждого таймфрейма свою CandleSeries.. Каждая серия запускается отдельно при помощи метода CandleManager.Start. Обработать серии можно или в отдельных событиях Series.ProcessCandle или в candlemanager.Processing.

Сергей Гаврилов, [29.12.14 14:56] _series = new CandleSeries(typeof(TimeFrameCandle), _lkoh, TimeSpan.FromMinutes(1)); _series5 = new CandleSeries(typeof(TimeFrameCandle), _lkoh, TimeSpan.FromMinutes(5));

_series.ProcessCandle += candle => { Console.WriteLine("минутка"); };

_series5.ProcessCandle += candle => { Console.WriteLine("пятиминутка"); };

_candlemanager.Processing += (series, candle) => { if ((TimeSpan)candle.Arg == TimeSpan.FromMinutes(1)) { Console.WriteLine("минутка"); } if ((TimeSpan)candle.Arg == TimeSpan.FromMinutes(5)) { Console.WriteLine("пятиминутка"); } };

_candlemanager.Start(_series); _candlemanager.Start(_series5);

Алексей (kvazar) Украинцев, [29.12.14 21:47] Сергей, спасибо попробую

Сергей Гаврилов, [31.12.14 13:46] С Новым Годом! 🌲

Денис (rtDen), [05.01.15 09:56] С наступившим всех!

Алексей (kvazar) Украинцев, [06.01.15 22:25] С Наступающим Рождеством!

Сергей Гаврилов, [06.01.15 22:25] 🌲

Александр Спирин, [08.01.15 18:17] Здравствуйте! Можете подсказать урок/пример, в котором показано, как вести журнал стратегии? - хочется увидеть реестр заявок, сделок и позиций. Заранее спасибо.

Александр Спирин, [08.01.15 18:20] Или хотя бы S#-классы, которые могут быть полезны...

Сергей Гаврилов, [08.01.15 18:27] В уроке №5 "BollindgerBandsRobot" показано логгирование стратегии в специальном окне private readonly LogManager _logManager; //окно для мониторинга торговой системы private readonly MonitorWindow _monitor = new MonitorWindow();

Александр Спирин, [08.01.15 18:28] Сергей, да, я видел окно, но как мне получить журнал в файл? - типа eXcel'я...

Сергей Гаврилов, [08.01.15 18:28] В уроке №8 "Testing" показано как использовать специальное окно для отображения заявко и сделок..

Александр Спирин, [08.01.15 18:29] И смое интересное - как мне собрать сделки в позицию? - PnL можно подсчитать лишь в рамках позиции, отдельные сделки не помогут...

Сергей Гаврилов, [08.01.15 18:29] понятно, тогда чуть попозже я Вам примерный код напишу, там нужно просто слушателя на файловый вывод поменять..

Александр Спирин, [08.01.15 18:29] да, спасибо, - жду.

Александр Спирин, [08.01.15 19:49] Чергей

Александр Спирин, [08.01.15 19:50] Сергей, а позвольте общий вопрос: мне прислали план обучения (https://vk.com/pages?oid=-66650972&p=План обучения ( https://vk.com/pages?oid=-66650972&p=%D0%9F%D0%BB%D0%B0%D0%BD%20%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D1%8F )) - я его прошёл. Мой\вопрос: что дальше?

Сергей Гаврилов, [08.01.15 19:51] В смысле что дальше?

Сергей Гаврилов, [08.01.15 19:51] Робота пока не сможете написать?

Александр Спирин, [08.01.15 19:53] Это обучение - это всё, что S# хотел мне рассказать о том, как им пользоваться? Например, я не нашёл ни одного видео про S#.Studio, ни слова не услышал про то, что такое S#.Shell и как им пользоваться...

Сергей Гаврилов, [08.01.15 19:59] Там же около 40 различных видео лежит..

Сергей Гаврилов, [08.01.15 20:01] Shell - это оболочка из которой Вы можете запустить и протестировать готовые стратегии..

Сергей Гаврилов, [08.01.15 20:01] Про S#.Studio ничего не могу сказать, не знаю...

Валерий Песчинский, [08.01.15 20:02] Вопрос по поводу документации: подскажите, когда появится нормальная, своевременно обновляемая документация по стокшарпу?

Сергей Гаврилов, [08.01.15 20:06] Репост ответа Михаила на этот вопрос "Основная задача на 2015 год. 12:05:42 AM Но документация для первого старта актуальна более чем на 80 процентов."

Валерий Песчинский, [08.01.15 20:12] Это понятно, что задача на 2015 год. Вопрос в том, когда эта задача выполнится? К примеру по смарткому, 100% документации неактуально (имею ввиду раздел коннекторы--Смартком). Мне просто непонятен вот какой момент, я заплатил деньги за актуальное обучение, техподдержку. По факту - видео старые, часть методов неактуально. При просмотре видео и повторяя сказанное в нем в коде, приходится еще искать по форуму изменения. Документация не обновляется. Когда обновится, срок суппорта истечет..

Сергей Гаврилов, [08.01.15 20:16] Примеры с изменениями под 4.2.43 и описанием отличий от видео будет выложены совсем скоро 1-2 дня

Сергей Гаврилов, [08.01.15 20:20] По поводу видео я с Вами не согласен. Практически все видео актуальные, за исключением небольших изменений в библиотеке.. Но библиотека обновляется каждый месяц, невозможно каждый месяц снимать новое видео..

Валерий Песчинский, [08.01.15 20:22] 1 видео в месяц - вполне посильная задача, я считаю. Но да ладно.

Денис (rtDen), [08.01.15 20:22] А видео вообще снимать не надо. Обучающие материалы написанные текстом намного удобнее видео

Валерий Песчинский, [08.01.15 20:23] Ну да, или текст

Сергей Гаврилов, [08.01.15 20:24] Насчет текста Вы наверно правы..

Александр Спирин, [08.01.15 20:36] Поддерживаю идею с текстом - это и использовать проще, и сделать быстрее.

Александр Спирин, [08.01.15 20:37] Однока про S#.Shell - кроме самого проекта какое-то описание/видео имеется?

Сергей Гаврилов, [08.01.15 20:37] Для Alexander Spirin. ///

/// Создаем и запускаем стратегию /// private void InitStrategy() {

//создаем экземпляр стратегии var bs = new BollingerBandsStrategy(_bollingerIndicator, _rocIndicator,_maIndicator,_ma1Indicator,_series,TakeprofitParam,StoplossParam) ;

//добавляем источник информации трейдера _logManager.Sources.Add(bs);

// Создаем новый "слушатель" для записи в файл var fl = new FileLogListener("{0}{1:00}{2:00}.txt".Put(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day));

// Если нужно, чтобы в файл писались сообщения только от этой стратегиии, настраиваем фильтр fl.Filters.Add(msg => msg.Source == bs);

// добавляем слушатель в список "слушателей" _logManager.Listeners.Add(fl);

Connection.SafeConnection.Trader.RegisterMarketDepth(bs.Security);

//подписываем ся на собятия появления новых сделок и заявок по данной стратегии bs.NewMyTrades += DrawTrades; bs.OrderRegistered += DrawOrders;

//запускаем стратегию bs.Start(); }

Александр Спирин, [08.01.15 20:39] Сергей, спасибо за пример кода.

Сергей Гаврилов, [08.01.15 20:39] Я вставил пример как настроить слушателей, метод InitStrategy из проекта BollingerBandsRobot

Александр Спирин, [08.01.15 20:40] Да я понял ))

Сергей Гаврилов, [08.01.15 20:43] Коллеги. Я изучал за последние годы много всяких API и технологий.. И для себя вывел, что самый лучший способ - это начать делать свой маленький проект и по ходу дела разбираться с ньюансами... А пытаться сначала изучить все, а потом начать делать..... На это годы уйдут..

Александр Спирин, [08.01.15 21:10] Сергей, мне для стратегии нужны уровни - поддержки и сопротивления, в смысле пики и впадины. Есть в S# какие-то классы, которые могут мне помочь определить уровни? Я нашёл лишь Highest и Lowest, но что они делают я понял слабо (? определяют максимальное значение из предоставленных ?)

Александр Спирин, [08.01.15 21:43] Прошу предоставить мне доступ к репозиториям StockSharp - пользователь spirin.alexander@gmail.com. Заранее спасибо.

William B
William B 著者

Активная техподдержка 09 января 2015 - 10 января 2015 г.

Сергей Гаврилов, [09.01.15 01:38] // Насколько я знаю, простых путей тут нет:

// Возвращает максимальную цену 20 последних свечей var highest = _series.GetCandles(20).Max(c => c.HighPrice);

// Возвращает свечу с максимальной ценой из 20 последних свечей var highestcandle = _series.GetCandles(20).Aggregate((prev, next) => next.HighPrice > prev.HighPrice ? next : prev);

// Возвращает индекс свечи с максимальной ценой из 20 последних свечей var highestindex = _series.GetCandles(20).ToList().IndexOf(highestcandle);

Сергей Гаврилов, [09.01.15 01:42] Можете на базе этих примеров, написать для себя методы расширения для CandleSeries, тогда код будет проще..

Александр Спирин, [09.01.15 12:48] Да, спасибо за примеры. Я в примерах нашёл вполне для меня подходящий привод для Смарткома, поэтому могу перейти к стратегии. И сразу возникает вопрос об оптимизации: что в S# есть в помощь оптимизатору? Выглядит так, что S#.Studio, но она выглядит такой развесистой...

Александр Спирин, [09.01.15 13:00] Сергей, и ещё вопрос: я размер позиции определяю в зависимости от дневных потерь (речь идёт о торговде внутри дня), и мне необходим класс, реализующий управление рисками - есть в S# класс, реализующий что-то подобное, на что я мог бы опереться?

Сергей Гаврилов, [09.01.15 13:09] Оптимизация - оптимизация параметров стратегии?

Александр Спирин, [09.01.15 13:11] Да, оптимизация параметров стратегии.

Сергей Гаврилов, [09.01.15 13:14] думаю, что нет.. Здесь принцип тестирования другой..

Сергей Гаврилов, [09.01.15 13:15] зато более реальный

Александр Спирин, [09.01.15 13:15] А можете кратко рассказать о приниципе? - это оччень интересно!

Сергей Гаврилов, [09.01.15 13:22] тут дело в другом, в тестерах, где есть оптимизация, данные представляют как вектор, точки входа как вектор, а затем с этими векторами оперируют...За счет этого достигается высокая скорость, но теряется реальность..

Сергей Гаврилов, [09.01.15 13:27] В s# вы тестите фактически на тиках, т.е. реальность выше, но скорость ниже..

Сергей Гаврилов, [09.01.15 13:29] понятно объяснил или нет?

Александр Спирин, [09.01.15 13:30] Да, с приниципами тестирвоания - понятно. А с управлением рисками посоветуете что-нибудь?

Сергей Гаврилов, [09.01.15 13:34] а в управлении рисками Вам нужно, чтобы параметры специфические расчитывались, отимальное ф и т.п.?

Александр Спирин, [09.01.15 13:42] Говоря о сути, мне хочется максимально вписаться в методологию S# - поменьше выписывать своего, побольше использовать готового. Говоря о деталях - есть размер потерь, допустимый для одного торгового дня, и есть потери, уже сделанные в этот день к настоящему моменту: требуется рассчитать размер позиции, исходя из цены открытия, целевой цены и риска в этой позиции. Но, повторюсь, вопрос не в том, как это вычислить, а в том, есть ли в S# любой готовый класс, выполняющий управление рисками: после получения сигнала на открытия позиции, но до регистрации заявки, необходимо обращение к классу управления рисками, который вычислит размер позиции.

Сергей Гаврилов, [09.01.15 13:50] есть набор рисковых правил, которые зажигают событие при определенном условии риска, типа pnl меньше определенного значения, или размер позы больше определеного значения

Александр Спирин, [09.01.15 13:51] т.е. методологически управление рсиками реализуется не классом, а набором правил?

Сергей Гаврилов, [09.01.15 13:51] классов, которые бы реализовывали определенную методику управления риском - нет..

Сергей Гаврилов, [09.01.15 13:52] методик

Александр Спирин, [09.01.15 13:53] Спасибо, с управлением рисками - понятно.

Александр Спирин, [09.01.15 13:55] Сергей, ещё вопрос: у меня стратегия входит в позицию стоп-заявкой, и такие стоп-зафвки расставляются по многим инструментам: ежели по одному инструменту позиция открывается, то по всем другим стоп-заявки снимаются. Вопрос: есть ли какой пример, реализующий (любую) работу сразу с несколькими инструментами?

Сергей Гаврилов, [09.01.15 14:06] Таких примеров точно нет, сразу как это сделать ответить не могу, нужно подумать

Александр Спирин, [09.01.15 14:08] Я был бы признателен за совет в части архитектуры - здесь, конечно, требуется понимание S# большее, чем есть у меня.

Сергей Гаврилов, [09.01.15 14:09] кстати о рисках, в стратегии есть рискменеджер и риск правила в него добавляютя

Сергей Гаврилов, [09.01.15 14:10] позиции сразу по нескольким инструментам могут быть открыты?

Александр Спирин, [09.01.15 14:10] в данном случае - нет (интересно, конечно, но не сейчас)

Александр Спирин, [09.01.15 14:14] " в стратегии есть рискменеджер..." - в классе Strategy я виду PositionManager и SlippageManager, других не вижу.

Сергей Гаврилов, [09.01.15 14:14] т.е. если поза по одному из инструментов открылась, то мы удалили стоп заявки и больше за этими инструментами не следим, когда позу закрыли, начинаем все сначала...

Сергей Гаврилов, [09.01.15 14:16] stocksharp.algo.rick

Сергей Гаврилов, [09.01.15 14:16] risk

Александр Спирин, [09.01.15 14:20] [ Photo ]

Александр Спирин, [09.01.15 14:20] Его нет в документации...

Александр Спирин, [09.01.15 14:21] А пример к нему есть какой-нибудь?

Александр Спирин, [09.01.15 14:22] "т.е. если поза по одному из инструментов открылась, то мы удалили стоп заявки и больше за этими инструментами не следим, когда позу закрыли, начинаем все сначала..." - да, именно так. Но в отсутствии позиции надо наблюдать за несколькими инструментами.

Сергей Гаврилов, [09.01.15 14:23] у вас версия s# какая?

Сергей Гаврилов, [09.01.15 14:32] но все равно, riskrules больше направлены на выполнение действий: закрыть позу, остановить стратегию, а не на управление размером позы

Александр Спирин, [09.01.15 14:33] что касается документации, то на снимке - страница с сайта... а вообще-то 4.2.42

Сергей Гаврилов, [09.01.15 19:24] Используйте offline документацию из загрузки 4.2.43 - она более актуальна

Мария Крень, [10.01.15 16:21] Добрый вечер! Такой вопрос у меня возник. После запуска робота я выбираю инструмент. Регистрирую его ... trader.RegisterSecurity(security); trader.RegisterTrades(security);

Последняя сделка видна и все отлично.

Потом я хочу использовать другой инструмент. Я делаю trader.UnRegisterSecurity(security); trader.UnRegisterTrades(security);

А потом регистрирую следующий элемент, но lasttrade для него пустой. Подскажите, пожалуйста, что я делаю не так?

Мария Крень, [10.01.15 16:22] инструмент*

Мария Крень, [10.01.15 16:22] В таблице, в квике сделки есть по обоим инстументам.

Сергей Гаврилов, [10.01.15 16:23] С Новым Годом!

Мария Крень, [10.01.15 16:23] Спасибо, и Вас!

Сергей Гаврилов, [10.01.15 16:26] А сделки в событии NewTrades идут?

Мария Крень, [10.01.15 16:27] после какого события? После перерегистрации?

Сергей Гаврилов, [10.01.15 16:27] да

Мария Крень, [10.01.15 16:33] Сейчас проверю)

Сергей Гаврилов, [10.01.15 16:57] Возможно это баг.. Я такой ситуацией сталкивался, когда после UnRegisterTrades невозможно снова перезапустить тот же инструмент. Я в этом случае просто отписывался от события.. Но с другим инструментов это не прокатит..

Мария Крень, [10.01.15 16:58] Я что-то не понимаю как NewTrades посмотреть... просто точку останова на события поставить или как?

Сергей Гаврилов, [10.01.15 16:59] конечно..

Сергей Гаврилов, [10.01.15 16:59] На обработчик..

Мария Крень, [10.01.15 17:00] Дада, просто у меня до туда не доходит

Мария Крень, [10.01.15 17:01] Он сразу с ошибкой падает, что trader null

Мария Крень, [10.01.15 17:04] Так что не понятно что делать

Сергей Гаврилов, [10.01.15 17:04] А без UnregisterSecurity ошибки, как я понял нет?

Мария Крень, [10.01.15 17:05] Есть

Мария Крень, [10.01.15 17:06] Все равно lasttrade не появляются

Сергей Гаврилов, [10.01.15 17:09] код можно посмотреть?

Мария Крень, [10.01.15 17:11] Да, сейчас

Мария Крень, [10.01.15 17:14] var trader = MainWindow.Instance.Trader; foreach (var security in MainWindow.Instance.Trader.RegisteredSecurities) { trader.UnRegisterSecurity(security); trader.UnRegisterTrades(security); } foreach (var instr in MainWindow.Instance._securitiesWindow.SecurityPicker.Securities) { if (TexBoxSec.SelectedItem == instr.Code) GlobalCore.Core.CurSec = instr; } trader.RegisterSecurity(GlobalCore.Core.CurSec); trader.RegisterTrades(GlobalCore.Core.CurSec);

foreach ( var pf in MainWindow.Instance._portfoliosWindow.PortfolioGrid.Portfolios) TexBoxPf.Items.Add(pf);

Сергей Гаврилов, [10.01.15 17:19] Это из примера код или Ваш?

Мария Крень, [10.01.15 17:19] мой, но он не особо отличается

Сергей Гаврилов, [10.01.15 17:20] А какой пример?

Мария Крень, [10.01.15 17:20] Кстати

Мария Крень, [10.01.15 17:20] В примере все тоже странно работает

Мария Крень, [10.01.15 17:21] Когда я жму кнопку level 1 он начинает отображать информаци по инструменту, а потом отключаю левел 1 и выбираю другой инструмент и не срабатывает

Сергей Гаврилов, [10.01.15 17:21] Это какой пример?

Мария Крень, [10.01.15 17:21] Sample

Сергей Гаврилов, [10.01.15 17:26] Сейчас посмотрю, но как я говорил, с Unregister - это скорее всего баг..

Мария Крень, [10.01.15 17:26] окай

William B
William B 著者

Активная техподдержка 11 января 2015 - 14 января 2015 г.

Сергей Гаврилов, [11.01.15 07:46] Unregister(ы) вообще не останавливают поступление данных.. Послал эту ошибку в BagTracker..

Mikhail, [11.01.15 09:28] Ишью закрыта. Это ошибка или ложная проблема?

Сергей Гаврилов, [11.01.15 11:56] Ошибка. Нечаянно дубликат сделал, а как удалить не нашел.

Александр Спирин, [13.01.15 12:45] Здравствуйте! Помогите написать свой индикатор - не получается. Наследуюсь от класса LengthIndicator (ибо будет возвращаться одно числовое значение), поэтому метод OnProcess приобретает следующее описание: protected override IIndicatorValue OnProcess(IIndicatorValue input). Теперь хочу вернуть число типа decimal (return -1;) - и получаю ошибку компилятора - он не может преобразовать. Как мне это преодолеть?

Сергей Гаврилов, [13.01.15 14:35] Попробуйте так: return new DecimalIndicatorValue(Decimal value);

Сергей Гаврилов, [13.01.15 14:42] Т.е. тип, который вы возвращаете, должен реализовывать интерфейс IIndicatorValue..

Александр Спирин, [13.01.15 17:21] Сергей, спасибо - помогло.

Александр Спирин, [13.01.15 17:25] Ещё одно затруднение у меня: взял проект SampleSmartSMA, скопировал его в другую директорию, и стал дописывать под свои нужды - он компилироваться перестал: в методе private void MakeMarketOrder(Sides direction, decimal volume) { var price = direction == Sides.Buy ? Security.GetMarketDepth().BestAsk.Price : Security.GetMarketDepth().BestBid.Price; var order = this.CreateOrder(direction, price, volume); RegisterOrder(order); } метод GetMarketDepth() - не распознаётся компилятором, а текст ошибки такой: Error 1 'StockSharp.BusinessEntities.Security' does not contain a definition for 'GetMarketDepth' and no extension method 'GetMarketDepth' accepting a first argument of type 'StockSharp.BusinessEntities.Security' could be found (are you missing a using directive or an assembly reference?) C:\Users\Александр\Documents\Visual Studio 2012\Projects\My\SampleSmartSMA\SuhovBandsStrategy.cs 266 50 SampleSmartSMA

Александр Спирин, [13.01.15 17:26] Сколько я не проверял, состав библиотек в Reference проекта не изменился...

Александр Спирин, [13.01.15 17:26] Что бы это могло значить?

Сергей Гаврилов, [13.01.15 17:27] Насчет шаблона для Вашей стратегии... В репозитарии stosksharp.visualstudio.com я делаю проект с примером шаблона BasketMarketRulesTemplate. Он пока еще не работает, но сам принцип можете посмотреть..

Сергей Гаврилов, [13.01.15 17:28] У класса Security есть свойства BestAsk/BestBid ими пользуйтесь

Александр Спирин, [13.01.15 17:28] Спасибо - я обязательно посмотрю. Только доуступа к репозитарию у меня нет (( - я и писал сюда, и писал письмо на lesson@ - не помогает. Можете мне предоставить доступ? - spirin.alexander@gmail.com

Сергей Гаврилов, [13.01.15 17:28] метод GetMarketDepth теперь к классу Connector прикручен..

Сергей Гаврилов, [13.01.15 17:30] Доступами не я занимаюсь это или Михаил или Юрий..

Александр Спирин, [13.01.15 17:36] Я напишу ещё раз.

Александр Спирин, [13.01.15 17:36] Сергей, снова что-то непонятное - компилтор не может найти файл с иконкой (тескт ошибки такой: Error 1 Error generating Win32 resource: Error reading icon 'c:\Users\Александр\Documents\Visual Studio 2012\references\stocksharp.ico' — The system cannot find the path specified. C:\Users\Александр\Documents\Visual Studio 2012\Projects\My\SampleSmartSMA\obj\Debug\SampleSmartSMA.exe SampleSmartSMA

Александр Спирин, [13.01.15 17:37] действительно, её и нет по этому пути - я вовсе удалил иконку из проекта, а ошибка остаётся...

Сергей Гаврилов, [13.01.15 17:37] Там проблема в другом мелкосовт денег за репозитарий хочет..

Александр Спирин, [13.01.15 17:37] Эо вполне в его стиле, но жить-то как?

Yury Basangov, [13.01.15 17:39] Поэтому мы и перешли на выгрузку примеров.

Yury Basangov, [13.01.15 17:40] В принципе можем дать доступ, но готовы ли вы за это платить? По сути вопрос то в этом, для нас нет ничего невозможного.

Александр Спирин, [13.01.15 17:41] Это новая для меня постановка вопроса. А какова альтернатива?

Yury Basangov, [13.01.15 17:42] Альтернатива это примеры в группе ВК. В целом они идентичны тому что есть в репозитарии

Александр Спирин, [13.01.15 17:44] [ Photo ]

Александр Спирин, [13.01.15 17:44] "Мы сами неместные..." - ссылку можете дать? Я не могу найти примеры

Сергей Гаврилов, [13.01.15 17:46] Александр, репозитарий - это вообще-то инструмент для совместной разработки.. Он Вам в принципе не нужен.

Сергей Гаврилов, [13.01.15 17:49] Если Вы хотите для себя использовать систему контроля версий TFS, то можете просто зарегить свой аккаунт и свой проект.. Это будет бесплатно..

Сергей Гаврилов, [13.01.15 17:49] А этот пример, когда доделаю, выложу или здесь или в VK..

Александр Спирин, [13.01.15 17:52] Да я не против, просто во многих местах на сайте написано ( и в видео-презентации на youtube) сказано, что доcтуп к исходникам даётся через репозитарий, и для получения доступа... - так я и начал делать. Раз по-другому - договорились, буду делать по-другому. Только объясните, как именно - не могу я найти в группе ВК примеры... И поясните, как я могу увидеть исходные коды самого S# - это имеет значение.

Сергей Гаврилов, [13.01.15 17:53] В VK ищите раздел Документы..

Сергей Гаврилов, [13.01.15 17:54] Доступа к исходным кодам самого S# нет...

Александр Спирин, [13.01.15 17:55] ок, хотя бы с этим понятно.

Александр Спирин, [13.01.15 17:56] Есть! - нашёл Документы... - там большой архив - его качать?

Сергей Гаврилов, [13.01.15 17:57] В принципе когда со стратегиями будете на "ты", Вам нужно будет Shell изучить (он с исходниками)... и в него свои стратегии вставлять..

Сергей Гаврилов, [13.01.15 17:58] То что с OL - это архив ордер-логов..

Сергей Гаврилов, [13.01.15 17:59] Обновленные примеры в StockSharp.Edu.4.2.43.7z

Александр Спирин, [13.01.15 17:59] да, я понял, что Shell предназначен для этого, только мне его даже скомпилировать не удаётся - пока: доберусь позже.

Сергей Гаврилов, [13.01.15 17:59] Вот именно пока не заморачивайтесь..

Александр Спирин, [13.01.15 18:00] так а что мне делать с этим ico-файлом, которого компилятор найти не может, хотя его и в проекте-то нет?

Сергей Гаврилов, [13.01.15 18:02] Вы в поиске в "Пуск" попробуйте это файл найти

Сергей Гаврилов, [13.01.15 18:03] и вставьте туда, куда он просит..

Александр Спирин, [13.01.15 18:04] Да что его искать - он известно где, в папке References, рядом с библиотеками лежит... Вот только в проекте мне не удаётся изменить путь к нему: финальная попытка - я просто удалил его из проекта - и получил ошибку при компиляции. Ч то ещё можно попробовать?

Александр Спирин, [13.01.15 18:04] Спасибо, с архивом получилось.

Сергей Гаврилов, [13.01.15 18:06] Это пример, который с поставкой S# идет?

Александр Спирин, [13.01.15 18:09] Да - это пример для Смарткома - SampleSmartSMA

Сергей Гаврилов, [13.01.15 18:19]

  1. В свойствах проекта проверьте путь к этой иконке

Сергей Гаврилов, [13.01.15 18:20] На закладке Application

Сергей Гаврилов, [13.01.15 18:21] 2. Потом проверьте свойства иконки в самом проекте

Сергей Гаврилов, [13.01.15 18:22] Должно быть так Build Action = Resource

Сергей Гаврилов, [13.01.15 18:23] И путь также в свойствах иконки проверьте..

Владимир (vow001) Русаков, [13.01.15 22:27] Добрый вечер, подскажите, пожалуйста, можно ли как-нибудь при создании заявок в Квик указывать проскальзывание?

Сергей Гаврилов, [13.01.15 23:27] Нет...

Сергей Гаврилов, [13.01.15 23:30] Вы же сами можете указать в лимитке цену лучшей котировки +- смещение цены..

Владимир (vow001) Русаков, [13.01.15 23:31] А, ясно. Спасибо

Денис (rtDen), [14.01.15 09:27] Добрый день!

Денис (rtDen), [14.01.15 09:27] Как сделать в стратегии чтоб какое-нибудь правило вызывалось постоянно (аналог таймера)?

Денис (rtDen), [14.01.15 09:28] По моему в уроках что-то такое было, но не могу вспомнить сейчас

Денис (rtDen), [14.01.15 11:40] не понимаю как until работает

Денис (rtDen), [14.01.15 11:40] есть код:

Денис (rtDen), [14.01.15 11:40] в стратегии

Денис (rtDen), [14.01.15 11:40] protected override void OnStarted() { this.AddInfoLog("Старт пресчета позиции"); this.WhenStarted() .Do(() => this.AddInfoLog("ttt")) .Until(() => false) .Apply(this); base.OnStarted(); }

Денис (rtDen), [14.01.15 11:40] почему в лог "ttt" выводится один раз только?

Сергей Гаврилов, [14.01.15 11:49] так стратегия только один раз стартует

Денис (rtDen), [14.01.15 11:50] да, я уже догадался - until это доп условие для выключение правила, а не зацикливание обработчика в do

Денис (rtDen), [14.01.15 11:50] а что по поводу первого вопроса

Денис (rtDen), [14.01.15 11:51] про "таймер"

Сергей Гаврилов, [14.01.15 11:51] Так просто таймер сделать и надо..

Сергей Гаврилов, [14.01.15 11:51] Или цикл...

Сергей Гаврилов, [14.01.15 11:51] Другого способа нет..

Денис (rtDen), [14.01.15 11:53] ок, почему то думал, что в примерах был какой-то механизм для этого

Денис (rtDen), [14.01.15 11:53] сделаю циклом

Сергей Гаврилов, [14.01.15 11:54] циклом можно, но цикл будет жрать много ресурсов..

Денис (rtDen), [14.01.15 11:54] ну я же слип вставлю

Денис (rtDen), [14.01.15 11:54] обработчик же в отдельном потоке вызывается?

Сергей Гаврилов, [14.01.15 11:55] это зависит от того в каком потоке событие зажгли..

Сергей Гаврилов, [14.01.15 11:56] А события правила?

Денис (rtDen), [14.01.15 11:56] хм..ясно

Денис (rtDen), [14.01.15 11:57] не понял вопрос..

Денис (rtDen), [14.01.15 11:57] хочу сделать стратегию для пересчета моей позиции

Сергей Гаврилов, [14.01.15 11:57] какой обработчик?

Денис (rtDen), [14.01.15 11:58] сейчас думаю в на событие правила стратегии started в обработчике запустить бесконечный цикл с обсчетом

Денис (rtDen), [14.01.15 11:58] и слипом в конце цикла

Сергей Гаврилов, [14.01.15 11:59] А зачем этот цикл, когда есть правило на изменение позиции..

Денис (rtDen), [14.01.15 11:59] позиция не меняется

Сергей Гаврилов, [14.01.15 12:00] а чего пересчитывать, если не поменялась?

Денис (rtDen), [14.01.15 12:00] это опционная позиция, меняется цена БА, волатильность на бирже

Денис (rtDen), [14.01.15 12:01] а это вывод в терминал, суммарных греков и еще разных показателей

Денис (rtDen), [14.01.15 12:01] сейчас работает просто в отдельном потоке, вот решил оформить код в виде стратегии

Сергей Гаврилов, [14.01.15 12:04] Просто цикл не есть good practice

Денис (rtDen), [14.01.15 12:05] а какой вариант?

Сергей Гаврилов, [14.01.15 12:06] поза все равно меняется от каких-то условий, вот по этим событиям и вызывай пересчет..

Денис (rtDen), [14.01.15 12:06] поза не меняется

Денис (rtDen), [14.01.15 12:06] а условия которые меняется напозу - наоборот происходят постоянно, цена фьюча непрерывно ходит

Денис (rtDen), [14.01.15 12:07] мне наоборот не надо так часто персчитывать

Денис (rtDen), [14.01.15 12:07] достаточно раз в пару секунд

Денис (rtDen), [14.01.15 12:07] не вижу, чем тут плох цикл

Сергей Гаврилов, [14.01.15 12:07] тогда таймер - это лучше цикла..

Денис (rtDen), [14.01.15 12:07] =) дак таймер это тот же цикл

Yury Basangov, [14.01.15 12:08] привяжи к событию изменение цены фьюча больше чем на х% от последнего значения и тогда вызывай пересчет.

Yury Basangov, [14.01.15 12:08] зачем каждый чих то персчитывать

Сергей Гаврилов, [14.01.15 12:08] В нем не надо ставить цикл, он сам вызовется в фоновом потоке..

Денис (rtDen), [14.01.15 12:09] меняется не только цена фьюча, меняются цены всех опционов, и их волатильности

Сергей Гаврилов, [14.01.15 12:11] Sleep работу потока останавливает..., а таймер, который из theading в фоновом потоке работает и никаких циклов и доп потоков городить не надо..

Сергей Гаврилов, [14.01.15 12:12] он ресурсов меньше съест..

Денис (rtDen), [14.01.15 12:13] собственно у меня и был вопрос - обработчик события в отдельном потоке вызывается всегда или нет

Сергей Гаврилов, [14.01.15 12:14] события правила?

Денис (rtDen), [14.01.15 12:14] да

Денис (rtDen), [14.01.15 12:14] ну если он вывзывается из того же потока, где зарейзили событие, то лучше естестественно запустить обсчет в отдельном потоке

Денис (rtDen), [14.01.15 12:14] а на счет того - заюзать таймер или руками создать фоновый поток и в нем цикл запустить - это практически одно и то же

Сергей Гаврилов, [14.01.15 12:15] в отдельном, но в этом же потоке и другие события приходят..

Денис (rtDen), [14.01.15 12:15] таймер работат точно также, выполняет действие и вызывает слип в своем потоке

Денис (rtDen), [14.01.15 12:16] разница в том, что таймер запускается в потоке из пула, а не создает новый, но при единичном экземпляре - это не важно совершенно

Сергей Гаврилов, [14.01.15 12:16] таймер на более низком уровне арботает, он все равно будет эффективнее..

Денис (rtDen), [14.01.15 12:24] ок, пусть будет таймер )

Сергей Гаврилов, [14.01.15 12:25] И код будет проще..

Сергей Гаврилов, [14.01.15 12:37] Кстати, в зацикленных потоках, наверно лучше не sleep, а WhiteOne пользовать..

Денис (rtDen), [14.01.15 12:39] а разблокировать поток откуда?

Сергей Гаврилов, [14.01.15 12:39] С аргументом

Денис (rtDen), [14.01.15 12:39] а.. да, там же время можно передать

Денис (rtDen), [14.01.15 12:42] может лучше... как-то не задумывался об этом

Денис (rtDen), [14.01.15 12:44] надо будет почитать на досуге, про низкоуровеные различия таймеров, слипов, вэйтов и т.д.

Денис (rtDen), [14.01.15 12:45] надеюсь дойдут руки когда-нибудь до этого

Александр Спирин, [14.01.15 21:02] помогите pls нарисовать ленту Боллинджера на графике:

  • рисуется вызовами var bollValue = candle.State == CandleStates.Finished ? new ChartIndicatorValue(_strategy.BollBands, _strategy.BollBands.Process(candle)) : null; _chart.Draw(candle.OpenTime, new Dictionary<IChartElement, object> { { _candlesElem, candle }, { _bollingerElem, bollValue }, { _suppLevelsElem, suppValue }, { _restLevelsElem, restValue }, });
  • создаётся так: _bollingerElem = new ChartIndicatorElement { Title = "Bollinger Bands", //Indicator = new RateOfChange Color = Colors.ForestGreen }; _area.Elements.Add(_bollingerElem);
  • падает с икслючением "не поддерживается": System.NotSupportedException was unhandled by user code

Что с этим делать?

Сергей Гаврилов, [14.01.15 21:03] Скачай новые примеры из VK, там по другому рисуется..

Александр Спирин, [14.01.15 21:04] ок, спасибо - сейчас посмотрю...

Александр Спирин, [14.01.15 21:11] угу, всё понял - спасибо!

William B
William B 著者

Активная техподдержка 15 января 2015 - 20 января 2015 г.

Сергей Гаврилов, [15.01.15 12:15] 2:55:01 PM Sergey Dvortsov

Александр Спирин, [15.01.15 12:17] Приветствую! Не получается в методе MainAlgorithm стратегии определить, последняя пришла свечка из серии или нет - вызовы не компилируются:

Александр Спирин, [15.01.15 12:17] var timeFrame = (TimeSpan)_series.Arg; - это нормально,

Александр Спирин, [15.01.15 12:18] а следующий - var time = timeFrame.GetCandleBounds(_series.Security).Min - timeFrame; - получаю ошибки компилятора: Error 2 Argument 2: cannot convert from 'StockSharp.BusinessEntities.Security' to 'System.DateTime' C:\Users\Александр\Documents\Visual Studio 2012\Projects\My\SampleSmartSMA\SuhovBandsStrategy.cs 95 50 SampleSmartSMA

и

Error 1 'System.TimeSpan' does not contain a definition for 'GetCandleBounds' and the best extension method overload 'StockSharp.Algo.Candles.CandleHelper.GetCandleBounds(System.TimeSpan, System.DateTime)' has some invalid arguments C:\Users\Александр\Documents\Visual Studio 2012\Projects\My\SampleSmartSMA\SuhovBandsStrategy.cs 95 24 SampleSmartSMA

Что я делаю не так?

Сергей Гаврилов, [15.01.15 12:20] для работы с разными таймфремами нужно создать для каждого таймфрейма свою CandleSeries.. Каждая серия запускается отдельно при помощи метода CandleManager.Start. Обработать серии можно или в отдельных событиях Series.ProcessCandle или в candlemanager.Processing. 2:57:44 PM _series = new CandleSeries(typeof(TimeFrameCandle), _lkoh, TimeSpan.FromMinutes(1)); _series5 = new CandleSeries(typeof(TimeFrameCandle), _lkoh, TimeSpan.FromMinutes(5));

_series.ProcessCandle += candle => { Console.WriteLine("минутка"); };

_series5.ProcessCandle += candle => { Console.WriteLine("пятиминутка"); };

_candlemanager.Processing += (series, candle) => { if ((TimeSpan)candle.Arg == TimeSpan.FromMinutes(1)) { Console.WriteLine("минутка"); } if ((TimeSpan)candle.Arg == TimeSpan.FromMinutes(5)) { Console.WriteLine("пятиминутка"); } };

_candlemanager.Start(_series); _candlemanager.Start(_series5);

Александр Спирин, [15.01.15 12:22] понял, попробую.

Сергей Гаврилов, [15.01.15 12:35] Метод TimeFrame.GetCandleBounds(Security) больше не используется, нужно использовать одну из новых перегрузок // TimeFrame.GetCandleBounds(DateTime), TimeFrame.GetCandleBounds(DateTime, ExchangeBoard), TimeFrame.GetCandleBounds(DateTime, WorkingTime)

Сергей Гаврилов, [15.01.15 12:36] var candleBounds = timeFrame.GetCandleBounds(Trader.GetMarketTime(_candleSeries.Security));

Александр Спирин, [15.01.15 12:37] Компилятор не понимает, что такое Trader - я в методе стратегии нахожусь...

Сергей Гаврилов, [15.01.15 12:38] Это пример..

Александр Спирин, [15.01.15 12:38] а по-другому я DateTime могу получить?

Сергей Гаврилов, [15.01.15 12:38] текущую дату вставь и все

Александр Спирин, [15.01.15 12:42] так работает, но что будет, если у меня на рабочей станции время разойдётся с торговой площадкой?

Сергей Гаврилов, [15.01.15 12:43] тогда из коннектора время получай, как я показал

Сергей Гаврилов, [15.01.15 12:44] var time = timeFrame.GetCandleBounds(Connector.GetMarketTime(Security)).Min - timeFrame; //находим время предпоследней свечк

Александр Спирин, [15.01.15 12:45] спасибо, так работает.

Александр Спирин, [15.01.15 12:54] Сергей, а как реализовать скользящий стоп-лосс? Из уроков я вынес, что для этого нужно использовать дочернюю стратегию stoploss, но где-то говорилось, что при изменении уровня цены её надо останавливать и перезапускать с новой ценой - вот это как делается?

Александр Спирин, [15.01.15 12:54] Моежт в примерах это есть?

Сергей Гаврилов, [15.01.15 12:55] Нет в примерах нет..

Сергей Гаврилов, [15.01.15 12:59] Если коротко, то в родительской стратегии создаете правило на повление новых сделок.. В этом правиле при появлении новых условий удаляете StopLoss из дочерних стратегий и добавляете новую с новй ценой..

Александр Спирин, [15.01.15 13:02] Почти понятно, но как удалить StopLoss из дочерних стратегий (её ещё и остановить надо, наверное?)

Сергей Гаврилов, [15.01.15 13:03] да. сначала остановить надо..

Сергей Гаврилов, [15.01.15 13:04] Стратегию удалить или заявку?

Александр Спирин, [15.01.15 13:06] Ммм... какую заявку? - StopLoss же стоп-заявок не ставит, не правда ли? Вы написали: "...удаляете StopLoss из дочерних стратегий..." - да, так как её удалить? и как её остановить перед удалением?

Сергей Гаврилов, [15.01.15 13:07] ChaildStrategies.Remove(Strategy)

Александр Спирин, [15.01.15 13:07] А остановить как?

Сергей Гаврилов, [15.01.15 13:21] Strategy.Stop

Сергей Гаврилов, [15.01.15 13:23] Это на всякий случай, скорее всего стратегия автоматически останавливается при удалении..

Сергей Гаврилов, [15.01.15 13:24] Посмотрите пример про арбитражную стратегию... Там показано как добавляют/удаляют дочерние стратегии..

Александр Спирин, [15.01.15 16:18] Я не нашёл в примере остановку для стратегии через Stop() - там такой вызов:ChildStrategies.Any(f => f is FastOrderStrategy && ((FastOrderStrategy) f).StrategySignal == FastStrategySignals.Exit);

  • он останавливает дочернюю стратегию?

Сергей Гаврилов, [15.01.15 16:19] Там показано, как их добавлять и удалять..

Александр Спирин, [15.01.15 16:20] Я смотрю на файл ArbitrageStrategy.cs из 6-го примера - это то, о чём Вы говорите?

Сергей Гаврилов, [15.01.15 16:22] но из этой или другой похожей конструкции Вы можете вернуть стратегию и вызвать метод Stop

Александр Спирин, [15.01.15 16:27] что-то такое? var sls = (StopLossStrategy)ChildStrategies.FirstOrDefault(s => s is StopLossStrategy); if( sls != null ) sls.Stop();

Сергей Гаврилов, [15.01.15 16:28] Или так или прямо в этой конструкции стоп

Александр Спирин, [15.01.15 16:33] А как Stop вызвать из эой конструкции? - код ChildStrategies.FirstOrDefault(s => s is StopLossStrategy && s.Stop()); не пропускает компилятор (не могу, говорит, оператор && применить к bool и void)

Сергей Гаврилов, [15.01.15 16:36] Там еще одну лямбду надо вставить..

Сергей Гаврилов, [15.01.15 16:49] ChildStrategies.FirstOrDefault(f => f is FastOrderStrategy).Stop();

Сергей Гаврилов, [15.01.15 16:49] С лямбдой я погорячился..

Александр Спирин, [15.01.15 16:50] Спасибо.

Сергей Гаврилов, [15.01.15 16:50] Но

Сергей Гаврилов, [15.01.15 16:52] Но, возможно, что это лишняя операция.. Скорее всего она сама останавливается, когда мы ее удаляем..

Сергей Гаврилов, [15.01.15 17:00] Вот такое правило для для дочерней стратегии сделай Strategy.WhenStopped() и посмотри возникает это событие после удаления без явной остановки или нет..

Александр Спирин, [15.01.15 17:02] А из какого поля правильно брать объём - Volume или LeftVolume (для StoppLoss-стратегии)?

Сергей Гаврилов, [15.01.15 17:06] Чего то я такого свойсва не нашел..

Сергей Гаврилов, [15.01.15 17:08] Вообще-то LeftVolume - это неисполненный остаток объема

Александр Спирин, [15.01.15 17:10] Мне Visual Studio подсказал... Дело в том, что по-уму-то надо дождаться остановки, и только когда она остановится спрашивать, какой объём остался - такой и защищать.

Владимир (vow001) Русаков, [16.01.15 13:53] Добрый день, подскажите пжл, какие существуют состояния у создаваемых в Квике заявок (по-моему, активна, исполнена и ещё какие-то) и с помощью какого события можно отслеживать изменения статуса заявки?

Сергей Гаврилов, [16.01.15 14:08] Там несколько событий OrdersRegisterFailed, NewOrders, OrdersChanged , и др..

Сергей Гаврилов, [16.01.15 14:09] OrdersCancelFailed

Сергей Гаврилов, [16.01.15 14:09] Со стопами - отдельные события..

Сергей Гаврилов, [16.01.15 14:10] Это события класса Connector

Владимир (vow001) Русаков, [16.01.15 14:11] Ясно, А как понять, что заявка исполнена? WhenRegistred?

Сергей Гаврилов, [16.01.15 14:11] А тебе событие для правила нужно..

Сергей Гаврилов, [16.01.15 14:13] Order.WhenMatched, Order.WhenPartiallyMatched

Сергей Гаврилов, [16.01.15 14:15] Плюс событие для сделки - Order.WhenNewTrades

Владимир (vow001) Русаков, [16.01.15 14:17] Спасибо, сейчас тогда в документации найду описание этих событий

Мария Крень, [17.01.15 20:59] Здравствуйте, подскажите есть ли переменная описывающая минимально и максимально возможную цену в Квике для инструмента?

Мария Крень, [17.01.15 21:00] это же тоже самое чтои верхний лимит и нижний?

Мария Крень, [17.01.15 21:04] Почему он по умолчанию ноль?

Сергей Гаврилов, [18.01.15 00:58] Если Вы под максимальной/минимальной ценой подразумеваете границы изменения цены внутри торговой сессии, то да, это и есть верхний/нижний лимит

Сергей Гаврилов, [18.01.15 01:02] Вот так попробуйте baseTrader.RegisterSecurity(Security); // Пробуем "научить" Квик-Трейдер правильно выставлять маркет-ордера при работе с фьючерсами //baseTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MaxPrice); //baseTrader.SecuritiesTable.Columns.Add(DdeSecurityColumns.MinPrice);

Александр Спирин, [18.01.15 12:35] Приветствую! Не получается свой индикатор на графике нарисовать - помогите pls: создаю графический элемент так: _suppLevelsElem1 = new ChartIndicatorElement { Title = "Support Level 1", Color = Colors.Red, StrokeThickness = 1 }; _area.Elements.Add(_suppLevelsElem1);

Добавляю на график так: var sv1 = _strategy.SuppLevels.GetFirstLevel(candle.HighPrice); var suppValue1 = (sv1 != -1) ? new ChartIndicatorValue(_strategy.SuppLevels, sv1) : null;

var dict = new Dictionary<IChartElement, object> { {_candlesElem, candle}, {_upBandElem, upBandValue}, {_lowBandElem, lowBandValue}, { _suppLevelsElem1, suppValue1 }, }; _chart.Draw(candle.OpenTime, dict);

И получается, что рисуется он у меня с отставанием (уровень возникает после большой красной свечи с длинными тенями в 18:45). Что я делаю не так?

Александр Спирин, [18.01.15 12:37] [ Photo ]

Александр Спирин, [18.01.15 12:38] А на графике получается вот что:

Александр Спирин, [18.01.15 12:38] Метод GetFirstLevel() фактически возвращает -1, пока уровень не возник.

Сергей Гаврилов, [18.01.15 16:14] Для начала нужно, просто вывести время и значения идикатора в лог или в окно Output и посмотреть корректно он расчитывается или нет

Александр Спирин, [18.01.15 21:33] Напечатал: вижу, что первое значение получено в 15-го 10:05, а на графике оно отражено в 14-го, в 21:45 01/14/2015 21:00:00 +03:00: supp. level = -1 01/14/2015 21:05:00 +03:00: supp. level = -1 01/14/2015 21:10:00 +03:00: supp. level = -1 01/14/2015 21:15:00 +03:00: supp. level = -1 01/14/2015 21:20:00 +03:00: supp. level = -1 01/14/2015 21:25:00 +03:00: supp. level = -1 01/14/2015 21:30:00 +03:00: supp. level = -1 01/14/2015 21:35:00 +03:00: supp. level = -1 01/14/2015 21:40:00 +03:00: supp. level = -1 01/14/2015 21:45:00 +03:00: supp. level = -1 01/14/2015 21:50:00 +03:00: supp. level = -1 01/14/2015 21:55:00 +03:00: supp. level = -1 01/15/2015 10:00:00 +03:00: supp. level = -1 01/15/2015 10:05:00 +03:00: supp. level = 73140 01/15/2015 10:10:00 +03:00: supp. level = 73140 01/15/2015 10:15:00 +03:00: supp. level = 73140 01/15/2015 10:20:00 +03:00: supp. level = 73140 01/15/2015 10:25:00 +03:00: supp. level = 73140

Александр Спирин, [18.01.15 21:34] [ Photo ]

Сергей Гаврилов, [18.01.15 21:43] Индикатор секретный?

Александр Спирин, [18.01.15 21:43] да нет...весь код показать?

Сергей Гаврилов, [18.01.15 21:44] В атачменте скиньте..

Александр Спирин, [18.01.15 21:45] [ Document : class.cs ]

Сергей Гаврилов, [18.01.15 21:47] Сами данные откуда берете?

Александр Спирин, [18.01.15 21:50] Это переделанный пример SampleSmartSma - мне кажется, что Вы быстрее поймёте, заглянув в код примера, чем слушать моё бормотание...

Сергей Гаврилов, [18.01.15 21:51] ок

Александр Спирин, [18.01.15 21:51] private void ProcessCandle(Candle candle) { if (candle.State == CandleStates.Finished) { _strategy.Atr.Process(candle); _strategy.SuppLevels.Process(candle); _strategy.RestLevels.Process(candle); }

_strategy.BollBands.Process(new DecimalIndicatorValue(candle.ClosePrice) { IsFinal = candle.State == CandleStates.Finished }); var upBandValue = new ChartIndicatorValue(_strategy.BollBands, _strategy.BollBands.UpBand.GetCurrentValue()); var lowBandValue = new ChartIndicatorValue(_strategy.BollBands, _strategy.BollBands.LowBand.GetCurrentValue());

var sv1 = _strategy.SuppLevels.GetFirstLevel(candle.HighPrice); var suppValue1 = (sv1 != -1) ? new ChartIndicatorValue(_strategy.SuppLevels, sv1) : null; Debug.Print("{0}: supp. level = {1}", candle.OpenTime, sv1); //var suppValue1 = new ChartIndicatorValue(_strategy.BollBands, _strategy.BollBands.LowBand.GetCurrentValue()-100);

var dict = new Dictionary<IChartElement, object> { {_candlesElem, candle}, {_upBandElem, upBandValue}, {_lowBandElem, lowBandValue}, { _suppLevelsElem1, suppValue1 }, //{ _suppLevelsElem2, new ChartIndicatorValue(_strategy.SuppLevels, _strategy.SuppLevels.GetFirstLevel(candle.HighPrice)) }, //{ _restLevelsElem1, new ChartIndicatorValue(_strategy.RestLevels, candle.ClosePrice+100) }, //{ _restLevelsElem2, new ChartIndicatorValue(_strategy.RestLevels, candle.ClosePrice+100) }, }; _chart.Draw(candle.OpenTime, dict); }

Сергей Гаврилов, [19.01.15 14:32] Смотрите, Метод GetFirstLevel() возвращает -1, но не факт ChartIndicatorValue в этот момент Null, ведь на графике у вас в этот момент рисуется линия индикатора, а ее не должно быть вообще

Сергей Гаврилов, [19.01.15 15:32] Алексей, можете весь проект скинуть?

Александр Спирин, [19.01.15 17:53] [ Document : SampleSmartSMA.zip ]

Александр Спирин, [19.01.15 17:54] Так и мне непонятно всё, как индикатор рисуется... Я просто делал как в примере, не особо вдаваясь в детали, но теперь придётся )

Александр Спирин, [19.01.15 18:54] Сергей, а можете пояснить (чуть отвлекаясь в сторону) что минимально нужно сделать, чтобы у нструмента появился Open Interest? - когда на старте я получаю инструменты, он равен 0, а мне хочется отобрать из всех инструментов те, у которых он достаточно велик. Достаточно будет подписаться на получение котировок? - мне чем меньше усилий, чем лучше. Спасибо.

Сергей Гаврилов, [19.01.15 18:58] Если честно, я никогда OI не использовал... Но, думаю, что достаточно только подписаться на инструмент.. Дело в том, что в нативном Смарткоме никаких

Сергей Гаврилов, [19.01.15 18:59] никаких специальных функция для получения OI нет, и если он его транслирует OI должен появиться в свойствах инструмента..

Алексей (AlexGP) Плотников, [19.01.15 19:09] У меня почему-то: storageRegistry.GetTradeStorage(Security).Load(Nullable, Nullable) возвращает данные на сутки раннее, при этом: – storageRegistry.GetTradeStorage(Security).Load(DateTime date) и – (IEnumerable) storageRegistry.GetTradeStorage(Security).Load(DateTime date) работают корректно. Что я не так делаю?

Александр Спирин, [19.01.15 19:16] а подписаться на инструмент - это Security.WhenChanged?

Сергей Гаврилов, [19.01.15 19:19] Вы учли то момент, что Гидра грузит данные с лагом в прошлое?

Сергей Гаврилов, [19.01.15 19:20] на инструмент вы подписываетесь при помощи Connector.RegisterSecurity(Security)

Алексей (AlexGP) Плотников, [19.01.15 19:32] Я вообще не использую IConnector, нет такого кода т.к. чистый эксперимент со StorageRegistry. Если бы дело было в «..Гидра грузит данные с лагом в прошлое…» то и

  • storageRegistry.GetTradeStorage(Security).Load(DateTime date),
  • (IEnumerable) storageRegistry.GetTradeStorage(Security).Load(DateTime date), отрабатывали бы соответствующее. В общем вопрос на повестке…

Сергей Гаврилов, [19.01.15 19:33] Про коннектор это не вам..\

Алексей (AlexGP) Плотников, [19.01.15 19:33] да, уже понял... ))

Сергей Гаврилов, [19.01.15 19:35] Я просто имел ввиду, что если Вы грузите совсем последние данные, то текущая дата может не прийти, т.к. ее нет в Гидре, если так грузится любой диапазон, то это нужно вроверять..

Сергей Гаврилов, [19.01.15 19:40] To Alex P: у Вас какая версия Гидры?

Алексей (AlexGP) Плотников, [19.01.15 19:51] Очень даже не совсем последние, а вполне себе исторические, т.к. коннектора к реальному шлюзу нет за неимением шлюза как такового (пока разбираюсь с библиотекой). Версия Гидры 4.2.50.0. Но дело-то не в Гидре. Имеем разную реакцию методов класса и методов расширения на одинаковые данные. Если нужно проверить, то: «надо, так надо…» Может я что-то не так делаю (как и спросил в первом сообщении), либо глюк…

Сергей Гаврилов, [19.01.15 19:53] Конечно, так быть не должно. проверим..

Алексей (AlexGP) Плотников, [19.01.15 20:00] Ок

Александр Спирин, [19.01.15 23:35] "на инструмент вы подписываетесь при помощи Connector.RegisterSecurity(Security)" - а в ответ должно событие Connector.SecuritiesChanged срабатывать?

Сергей Гаврилов, [19.01.15 23:37] Да.

Сергей Гаврилов

Лог техподдержки за 28.02.2016 https://vk.com/wall-66650972_32

Сергей Гаврилов

Лог техподдержки за 29.02.2016 https://vk.com/wall-66650972_33

Сергей Гаврилов

Лог техподдержки за 2.03.2016 https://vk.com/wall-66650972_34

Сергей Гаврилов

Лог техподдержки за 3.03.2016 https://vk.com/wall-66650972_35

Сергей Гаврилов

Лог техподдержки за 4.03.2016 https://vk.com/wall-66650972_36

Maniac
Maniac

Обычным пользователем это недоступно? "Вы не можете просматривать стену этого сообщества."

Сергей Гаврилов

Лог техподдержки за 6.03.2016 https://vk.com/wall-66650972_38

Сергей Гаврилов

Лог техподдержки за 9.03.2016 https://vk.com/wall-66650972_39

Сергей Гаврилов

Лог техподдержки за 10.03.2016 https://vk.com/wall-66650972_40

Сергей Гаврилов

Лог техподдержки за 11.03.2016 https://vk.com/wall-66650972_41

Сергей Гаврилов

Лог техподдержки за 12.03.2016 https://vk.com/wall-66650972_42

Сергей Гаврилов

Лог техподдержки за 13.03.2016 https://vk.com/wall-66650972_43

Сергей Гаврилов

Лог техподдержки за 14.03.2016 https://vk.com/wall-66650972_44

Сергей Гаврилов

Лог техподдержки за 15.03.2016 https://vk.com/wall-66650972_45

Сергей Гаврилов

Лог техподдержки за 16.03.2016 https://vk.com/wall-66650972_46

Сергей Гаврилов

Лог техподдержки за 17.03.2016 https://vk.com/wall-66650972_47

Сергей Гаврилов

Лог техподдержки за 18.03.2016 https://vk.com/wall-66650972_48

Сергей Гаврилов

Лог техподдержки за 26.03.2016 https://vk.com/wall-66650972_49

Сергей Гаврилов

Лог техподдержки за 28.03.2016 https://vk.com/wall-66650972_50

Сергей Гаврилов

Лог техподдержки за 30.03.2016 https://vk.com/wall-66650972_51

Сергей Гаврилов

Лог техподдержки за 31.03.2016 https://vk.com/wall-66650972_52

Сергей Гаврилов

Лог техподдержки за 02.04.2016 https://vk.com/wall-66650972_53

Сергей Гаврилов

Лог техподдержки за 03.04.2016 https://vk.com/wall-66650972_54

Сергей Гаврилов

Лог техподдержки за 04.04.2016 https://vk.com/wall-66650972_55

Сергей Гаврилов

Лог техподдержки за 05.04.2016 https://vk.com/wall-66650972_56

Сергей Гаврилов

Лог техподдержки за 06.04.2016 https://vk.com/wall-66650972_57

Slepoy
Slepoy

Сергей Гаврилов: Лог техподдержки за 06.04.2016 https://vk.com/wall-66650972_57 Юрий Басангов: Привет Всем!В этой теме мы будем размещать логи чата активной Техподдержки в Телеграм. А почему прекратили размещать логи чата? Да и топик вроде называется соответственно "Техподдержка S#. Логи чата в Телеграм" Я это к тому веду, что "ссылки на логи чата" не соответствуют тематике топика. Меня, да и многих других халявщиков, по этим ссылкам не пускают ))). Мы в печали ))). Нафига нам ваши ссылки? Мы хотим непосредственно логи. Мы не претендуем на вашу платную активную техподдрежку, которая "предназначена для тех, кто хочет быстро решить возникший вопрос или найти ошибку в собственном роботе. Наши специалисты разберут ситуацию и помогут найти оптимальное решение.". Нам нужна бесплатная пассивная техподдержка в виде логов чата. Мы там сами разберёмся и без ваших специалистов ))). Мы сами умеем хорошо читать и мыслить. От имени всех халявщиков прошу: верните как было.

William B
William B 著者

Slepoy:

Сергей Гаврилов: Лог техподдержки за 06.04.2016 https://vk.com/wall-66650972_57 Юрий Басангов: Привет Всем!В этой теме мы будем размещать логи чата активной Техподдержки в Телеграм. А почему прекратили размещать логи чата? Да и топик вроде называется соответственно "Техподдержка S#. Логи чата в Телеграм" Я это к тому веду, что "ссылки на логи чата" не соответствуют тематике топика. Меня, да и многих других халявщиков, по этим ссылкам не пускают ))). Мы в печали ))). Нафига нам ваши ссылки? Мы хотим непосредственно логи. Мы не претендуем на вашу платную активную техподдрежку, которая "предназначена для тех, кто хочет быстро решить возникший вопрос или найти ошибку в собственном роботе. Наши специалисты разберут ситуацию и помогут найти оптимальное решение.". Нам нужна бесплатная пассивная техподдержка в виде логов чата. Мы там сами разберёмся и без ваших специалистов ))). Мы сами умеем хорошо читать и мыслить. От имени всех халявщиков прошу: верните как было.

Халявщиков мы любим. И специально для халявщиков есть наш форум и наш чат, где технические вопросы теперь разрешены. Команда S# там конечно присутствовать будет, но вот отвечать на технику не обязуется. Помните об этом.

А насчет раскрытия логов поддержки обещаюсь подумать. Иногда там люди коды публикуют, другие вещи обсуждают касательно личных торговых алгоритмов.

Slepoy
Slepoy

Юрий Басангов: И специально для халявщиков есть наш форум и наш чат, где технические вопросы теперь разрешены. Команда S# там конечно присутствовать будет, но вот отвечать на технику не обязуется. Помните об этом.А насчет раскрытия логов поддержки обещаюсь подумать. Иногда там люди коды публикуют, другие вещи обсуждают касательно личных торговых алгоритмов. Был я сегодня тама. Около часа только пытался разобраться, что вообще такое Телеграм, там всё на энглише. Но в итоге, как назло оказалось, что для меня сей чат - бесполезен. Это же обычная флудильня/курилка и чего там делать - мне непонятно? Он создан просто пообщаться для тех у кого много свободного времени. Форум гораздо лучше, тут всё сгруппированно по темам и проблемам. Тут на форуме удобный поиск, я только им и пользуюсь для решения проблем. Но чтобы поиск работал в будущем, нужно постоянно обновлять базу решений проблем. И как раз логи активной техподдержки эту базу и обновляли. Вот возник у меня вопрос в 3 часа ночи, я его в поиск вбил, и через секунду он мне выдаёт 5-10 подобных комментов/топиков с готовыми решениями. Удобно. А если я в 3 часа ночи зайду в чат, то кроме меня в нём никого не будет ))).

Иван З.
Иван З.

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

Mikhail Sukhov
Mikhail Sukhov

Иван З.: Да не в халяве дело, в ВК искать невозможно. На форуме поиск хорош. Логи из телеграмма можно отредактировать, чтоб секреты не выдавать, а в ВК с секретами логи? пойду почитаю, может чего интересного найду...😀 😀

Вопросы в чате саппорта можно условно сгруппировать на две категории:

  1. Настройка АПИ (Квик, нужный метод и т.д.). Эти вопросы практически у всех уникальны. Например, http://stocksharp.com/forum/4630/Nie-zapuskaietsia-lua-skript/ Данная ошибка - это своеобразное сообщение "Программа выполнила недопустимую операцию и будет закрыта". Причин - море. Просто масса. Зависят от настроек компьютера. Как и с другими вещами.

  2. Вопросы по видео урокам. С отсылками на тайминг, разбор конкрентого участка видео.

  3. Платные коннекторы. Схоже с пунктом 1.

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

Сергей Гаврилов

Лог техподдержки за 07.04.2016 https://vk.com/wall-66650972_58

Сергей Гаврилов

Лог техподдержки за 08.04.2016 https://vk.com/wall-66650972_59

Сергей Гаврилов

Лог техподдержки за 09.04.2016 https://vk.com/wall-66650972_60

Сергей Гаврилов

Лог техподдержки за 10.04.2016 https://vk.com/wall-66650972_61

Сергей Гаврилов

Лог техподдержки за 11.04.2016 https://vk.com/wall-66650972_62

Сергей Гаврилов

Лог техподдержки за 12.04.2016 https://vk.com/wall-66650972_63

Сергей Гаврилов

Лог техподдержки за 13.04.2016 https://vk.com/wall-66650972_64

Сергей Гаврилов

Лог техподдержки за 15.04.2016 https://vk.com/wall-66650972_65

Сергей Гаврилов

Лог техподдержки за 16.04.2016 https://vk.com/wall-66650972_66

Сергей Гаврилов

Лог техподдержки за 18.04.2016 https://vk.com/wall-66650972_67

Сергей Гаврилов

Лог техподдержки за 19.04.2016 https://vk.com/wall-66650972_68

Сергей Гаврилов

Лог техподдержки за 20.04.2016 https://vk.com/wall-66650972_69

Сергей Гаврилов

Лог техподдержки за 21.04.2016 https://vk.com/wall-66650972_70

Сергей Гаврилов

Лог техподдержки за 22.04.2016 https://vk.com/wall-66650972_73

Сергей Гаврилов

Лог техподдержки за 23.04.2016 https://vk.com/wall-66650972_74

Сергей Гаврилов

Лог техподдержки за 26.04.2016 https://vk.com/wall-66650972_75

Сергей Гаврилов

Лог техподдержки за 27.04.2016 https://vk.com/wall-66650972_76

Сергей Гаврилов

Лог техподдержки за 28.04.2016 https://vk.com/wall-66650972_77

Сергей Гаврилов

Лог техподдержки за 29.04.2016 https://vk.com/wall-66650972_78

Сергей Гаврилов

Лог техподдержки за 30.04.2016 https://vk.com/wall-66650972_79

Сергей Гаврилов

Лог техподдержки за 04.05.2016 https://vk.com/wall-66650972_80

Сергей Гаврилов

Лог техподдержки за 05.05.2016 https://vk.com/wall-66650972_81

Сергей Гаврилов

Лог техподдержки за 06.05.2016 https://vk.com/wall-66650972_82

Сергей Гаврилов

Лог техподдержки за 13.05.2016 https://vk.com/wall-66650972_83

Сергей Гаврилов

Лог техподдержки за 14.05.2016 https://vk.com/wall-66650972_84

Сергей Гаврилов

Лог техподдержки за 15.05.2016 https://vk.com/wall-66650972_85

Сергей Гаврилов

Лог техподдержки за 16.05.2016 https://vk.com/wall-66650972_87

Сергей Гаврилов

Лог техподдержки за 17.05.2016 https://vk.com/wall-66650972_88

Сергей Гаврилов

Лог техподдержки за 18.05.2016 https://vk.com/wall-66650972_88

Сергей Гаврилов

Лог техподдержки за 20.05.2016 https://vk.com/wall-66650972_89

Сергей Гаврилов

Лог техподдержки за 1.06.2016 https://vk.com/wall-66650972_90

Сергей Гаврилов

Лог техподдержки за 2.06.2016 https://vk.com/wall-66650972_91

Сергей Гаврилов

Лог техподдержки за 3.06.2016 https://vk.com/wall-66650972_93

Сергей Гаврилов

Лог техподдержки за 7.06.2016 https://vk.com/wall-66650972_94

Сергей Гаврилов

Лог техподдержки за 14.06.2016 https://vk.com/wall-66650972_95

Сергей Гаврилов

Лог техподдержки за 15.06.2016 https://vk.com/wall-66650972_96

Сергей Гаврилов

Лог техподдержки за 16.06.2016 https://vk.com/wall-66650972_97

Сергей Гаврилов

Лог техподдержки за 17.06.2016 https://vk.com/wall-66650972_98

Сергей Гаврилов

Лог техподдержки за 19.06.2016 https://vk.com/wall-66650972_99

Сергей Гаврилов

Лог техподдержки за 20.06.2016 https://vk.com/wall-66650972_99

Сергей Гаврилов

Лог техподдержки за 22.06.2016 https://vk.com/wall-66650972_100

Сергей Гаврилов

Лог техподдержки за 23.06.2016 https://vk.com/wall-66650972_101

Сергей Гаврилов

Лог техподдержки за 24.06.2016 https://vk.com/wall-66650972_102

Сергей Гаврилов

Лог техподдержки за 27.06.2016 https://vk.com/wall-66650972_103

Сергей Гаврилов

Лог техподдержки за 28.06.2016 https://vk.com/wall-66650972_104

Сергей Гаврилов

Лог техподдержки за 29.06.2016 https://vk.com/wall-66650972_105

Сергей Гаврилов

Лог техподдержки за 30.06.2016 https://vk.com/wall-66650972_106

Сергей Гаврилов

Лог техподдержки за 1.07.2016 https://vk.com/wall-66650972_107

Сергей Гаврилов

Лог техподдержки за 3.07.2016 https://vk.com/wall-66650972_108

Сергей Гаврилов

Лог техподдержки за 4.07.2016 https://vk.com/wall-66650972_109

Сергей Гаврилов

Лог техподдержки за 5.07.2016 https://vk.com/wall-66650972_110

Сергей Гаврилов

Лог техподдержки за 6.07.2016 https://vk.com/wall-66650972_111

Сергей Гаврилов

Лог техподдержки за 7.07.2016 https://vk.com/wall-66650972_112

Сергей Гаврилов

Лог техподдержки за 8.07.2016 https://vk.com/wall-66650972_113

さらにコメントを読み込む