← Zurück

Stock# 3.1

Скорее всего бета, но кто знает.🙂

Новые фишки:

  1. Опционы (БШ, хеджер, систетика, котирование).
  2. Перевод с double на decimal.
  3. Поменял названия классов из пространства Testing.
  4. Кретики-нолики.
  5. SmartCOM от 29.03.2011.

Баги:

  1. http://stocksharp.com/forum/1466/Niekorriektnyi-vyvod-stakanov-v-Gidrie/
  2. http://stocksharp.com/posts/m/7104/
  3. http://stocksharp.com/forum/1469/-3-0-19--Niepravil-no-schitaietsia-Position-v-PositionManager/
  4. http://stocksharp.com/forum/1485/Probliema-s-GuarantyCancelOrder/

Для перехода на новую Гидру нужно прогнать скрипт trading_diff.sql.

Kommentare (38)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

vvt
vvt

Изменения в 3.1, которые пока коснулись меня:

  1. SecurityBasket переименован в BasketSecurity, с этим разобрался
  2. пропало свойство IsForts у стратегий. Что вместо него теперь?
Mikhail Sukhov
Mikhail Sukhov Autor

vvt: Изменения в 3.1, которые пока коснулись меня:

  1. SecurityBasket переименован в BasketSecurity, с этим разобрался
  2. пропало свойство IsForts у стратегий. Что вместо него теперь?
  1. Как именно его использовали?
vvt
vvt

Использовал так:

									When(_order.NewTrades()).
										Protect(_order,
													 t =>
													 new TakeProfitStrategy(t, new Unit(150)) { IsForts = true, IsParallel = true, IsMarket = true },
													 t =>
													 new StopLossStrategy(t, new Unit(_stopPrice)) { IsForts = true, IsParallel = true, IsMarket = true, IsTrailing = true })

Mikhail Sukhov
Mikhail Sukhov Autor

Для ФОРТС инструментов теперь автоматически используется move. Я так понимаю в вашем случае делать ничего не нужно.

Mikhail Sukhov
Mikhail Sukhov Autor

Обновил до 3.1.1

Ускорил бэк тестинг.

Баги

Mikhail Sukhov
Mikhail Sukhov Autor

Обновил до 3.1.2

Фичи.

  1. BaseTrader.SecurityIdGenerator.
  2. BaseTrader.SecurityClassInfo.
  3. DDE настройки чуть изменились (кто открывает стакан не программно).
  4. Security.LastTrade не изменяется таблицой Все Сделки, если в таблице инструментов присутствует хотя бы одна из колонок, отвечающая за информацию о последней сделки (цена, объем, время) http://stocksharp.com/posts/m/7304/

Баги

  1. http://stocksharp.com/posts/m/7229/
Alexander
Alexander

Mikhail Sukhov: Обновил до 3.1.2 [*]DDE настройки чуть изменились (кто открывает стакан не программно).

Можно чуть подробнее? Не нашёл в документации видимых изменений, у меня стакан имеет заголовок RIM1-SPBFUT Судя по документации - то что надо, но Verifier выдаёт "Таблица стакан. Окно 'RIM1-SPBFUT' содержит неправильный заголовок для окна стакана."

И кстати, Verifier не даёт копировать из таблицы сообщений, вылетает Exception:

System.InvalidCastException: Не удалось привести тип объекта "SettingsError" к типу "Ecng.Trading.Quik.DdeSettingsResult". в Ecng.Trading.Quik.Verifier.MainWindow.CopyExecuted(Object sender, ExecutedRoutedEventArgs e) в E:\StockSharpReleases\StockSharp_3.1.2\Sources\Verifier\MainWindow.xaml.cs:строка 130 в System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e) ....

Mikhail Sukhov
Mikhail Sukhov Autor

Alexander:

Mikhail Sukhov: Обновил до 3.1.2 [*]DDE настройки чуть изменились (кто открывает стакан не программно).

Можно чуть подробнее? Не нашёл в документации видимых изменений, у меня стакан имеет заголовок RIM1-SPBFUT Судя по документации - то что надо, но Verifier выдаёт "Таблица стакан. Окно 'RIM1-SPBFUT' содержит неправильный заголовок для окна стакана."

Закрой окно стакана. Теперь оно должно быть с заголовком, как Id у инструмента - RIM1@SPBFUT. Забыл я про заголовок. Думал только название книги ДДЕ измениться... Значит изменение коснулось всех.

И кстати, Verifier не даёт копировать из таблицы сообщений, вылетает Exception:

System.InvalidCastException: Не удалось привести тип объекта "SettingsError" к типу "Ecng.Trading.Quik.DdeSettingsResult". в Ecng.Trading.Quik.Verifier.MainWindow.CopyExecuted(Object sender, ExecutedRoutedEventArgs e) в E:\StockSharpReleases\StockSharp_3.1.2\Sources\Verifier\MainWindow.xaml.cs:строка 130 в System.Windows.Input.CommandBinding.OnExecuted(Object sender, ExecutedRoutedEventArgs e) ....

Починил.

vvt
vvt

Закрой окно стакана. Теперь оно должно быть с заголовком, как Id у инструмента - RIM1@SPBFUT. Забыл я про заголовок. Думал только название книги ДДЕ измениться... Значит изменение коснулось всех.

Мне помогло изменение заголовка окна и имени листа на RIM1@RTS

Mikhail Sukhov
Mikhail Sukhov Autor

Обновил до 3.1.3

Баги

  1. Исправил документацию (битые ссылки).
  2. http://stocksharp.com/posts/m/7499/ (ошибка при копировании)
  3. http://stocksharp.com/posts/m/7172/ (восстановление листа в Excel)
  4. Фикс примеров тестирования на истории.
Mikhail Sukhov
Mikhail Sukhov Autor

Обновил до 3.1.4

Фичи

  1. Гидра. Экспорт тиков с РТС с точностью до миллисекунд.

Баги

  1. Гидра. Фикс с отрицательными номерами сделок у Финама.
  2. Убрал лишние вызовы событий PortfoliosChanged и SecuritiesChanged.
  3. Исправил trading.sql.
Garic
Garic

Что-то не работает. 3.1.3 - всё ок.

Mikhail Sukhov: Обновил до 3.1.4

Фичи

  1. Гидра. Экспорт тиков с РТС с точностью до миллисекунд.

RTS 18:51:27.0781250 System.FormatException: Строка не распознана как действительное значение DateTime.
   в System.DateTimeParse.ParseExact(String s, String format, DateTimeFormatInfo dtfi, DateTimeStyles style)
   в System.DateTime.ParseExact(String s, String format, IFormatProvider provider)
   в Ecng.Trading.Algo.History.Rts.RtsHistorySource.#=q_XKeIXVGWSxQ0THO4PDX_w==(String #=qndyEtJTw_oNXxRwouWTzvQ==, Dictionary`2 #=qKbx6g4obg5_cR_Z4k27$LQ==)
   в Ecng.Trading.Algo.History.Rts.RtsHistorySource.GetTrades(DateTime time)
   в Ecng.Trading.Hydra.Rts.RtsTradeSource.Load(Security security) в E:\!StockSharp\3.1.4\Sources\Hydra\Plugins\Rts\RtsTradeSource.cs:строка 168
   в Ecng.Trading.Hydra.Worker.<Download>b__10(IMarketDataSource source) в E:\!StockSharp\3.1.4\Sources\Hydra\Hydra\Worker.cs:строка 117

pyhta4og
pyhta4og
  1. какая дата на которую скачивались данные?
  2. Будет ли ошибка если в системных настройках поставить разделитель даты "/" (в XP это Control Panel-Regional Language Options-Customize вкладка Date поставить Date separator=/)?
Mikhail Sukhov
Mikhail Sukhov Autor

Обновил до 3.1.5

Фичи

  1. TraderHelper.GetTPlusNDate.
  2. ActionRule.Name.

Баги

  1. http://stocksharp.com/posts/m/7647/
Alexander
Alexander

Mikhail Sukhov: Обновил до 3.1.7

Фичи

  1. Ускорение запуска и остановки ДДЕ экспорта.

Хочу дополнить, что также ускорить помогает отключение анимации окон при свёртывании и развёртывании. И просьба отписаться в старой теме как - помог или нет данный фикс.

Mikhail Sukhov
Mikhail Sukhov Autor
dart
dart

Alexander:

Mikhail Sukhov: Обновил до 3.1.7

Фичи

  1. Ускорение запуска и остановки ДДЕ экспорта.

Хочу дополнить, что также ускорить помогает отключение анимации окон при свёртывании и развёртывании. И просьба отписаться в старой теме как - помог или нет данный фикс. Версия 3.1.8. Визуально разницы не заметил. Может и есть небольшая, не знаю. На ХР намного быстрее

Alexander
Alexander

dart:

Alexander:

Mikhail Sukhov: Обновил до 3.1.7

Фичи

  1. Ускорение запуска и остановки ДДЕ экспорта.

Хочу дополнить, что также ускорить помогает отключение анимации окон при свёртывании и развёртывании. И просьба отписаться в старой теме как - помог или нет данный фикс. Версия 3.1.8. Визуально разницы не заметил. Может и есть небольшая, не знаю. На ХР намного быстрее

У меня заметно быстрее стало - запуск, остановка и перезапуск DDE. Нажатие кнопок происходит быстрее.

Ещё есть над чем работать - отображение окон и их закрытие. Посмотрю на это ещё.

Garic
Garic

Михаил, а фильтрацию внесистемных сделок с РТС не делали ещё?

Mikhail Sukhov
Mikhail Sukhov Autor

Garic: Михаил, а фильтрацию внесистемных сделок с РТС не делали ещё?

Еще в 3.1.2 поправили.

Garic
Garic

Супер, спасибо!

Garic
Garic
  1. Дата произвольная - двигал её с 2009 года вперёд - думал из-за неё.
  2. В Win7 там нет настройки разделителя или оно как-то по другому делается.
MVFedosov
MVFedosov

Скачал 3.1.15, смотрю пример OptionCalculator, в нём есть небольшая неточность в настройках окон:

В QUIK загрузил окна из настроек info_options.wnd При расчёте греков и волатильности в текстовом поле IV показываются нули. По коду - IV рассчитывается по цене последней сделки по выбранному опциону. Чтобы в поле IV показывалось расчётное значение, нужно найти окно Все сделки, далее правой кнопкой - Редактировать таблицу, далее в окне Выбранные классы поставить галочку напротив FORTS OPTIONS и всё будет работать.

Mikhail Sukhov
Mikhail Sukhov Autor

MVFedosov: Скачал 3.1.15, смотрю пример OptionCalculator, в нём есть небольшая неточность в настройках окон:

В QUIK загрузил окна из настроек info_options.wnd При расчёте греков и волатильности в текстовом поле IV показываются нули. По коду - IV рассчитывается по цене последней сделки по выбранному опциону. Чтобы в поле IV показывалось расчётное значение, нужно найти окно Все сделки, далее правой кнопкой - Редактировать таблицу, далее в окне Выбранные классы поставить галочку напротив FORTS OPTIONS и всё будет работать.

Какая же это неточность в примере. Это просто фильтр не правильно настроен к Квике.

MVFedosov
MVFedosov

Тогда сорри, думал, что все фильтры сохраняются и задаются в файле настроек окон info_options.wnd

MVFedosov
MVFedosov

IV по цене последней сделки по какой формуле считается? Даже не то, что по какой формуле, а с точностью до какого знака? Используется итеративный метод подбора волатильности для заданной цены? Если да, то сколько итераций проводится?

Mikhail Sukhov
Mikhail Sukhov Autor

MVFedosov: IV по цене последней сделки по какой формуле считается? Даже не то, что по какой формуле, а с точностью до какого знака? Используется итеративный метод подбора волатильности для заданной цены? Если да, то сколько итераций проводится?

Не знаю, до какой точности. До какой получиться.🙂 Да, подбор. Сколько итераций тоже не знаю - сколько получиться.

dart
dart

Перехожу на 3 версию и обнаружил что метод gettrades теперь только по свечке работает. Я использую gettrades от одного момента времени до другого. Большая просьба вернуть старую модификацию. Заранее спасибо.

Mikhail Sukhov
Mikhail Sukhov Autor

dart: Перехожу на 3 версию и обнаружил что метод gettrades теперь только по свечке работает.

Я не понял о чем идет речь. Можете детальнее сказать?

dart
dart

Mikhail Sukhov:

dart: Перехожу на 3 версию и обнаружил что метод gettrades теперь только по свечке работает.

Я не понял о чем идет речь. Можете детальнее сказать? Спасибо за отклик. Если раньше было так: public IEnumerable<Trade> GetTrades( Security security, DateTime from, DateTime to)

То сейчас в новой версии так: public IEnumerable<Trade> GetTrades( Candle candle)

Mikhail Sukhov
Mikhail Sukhov Autor

dart: Если раньше было так: public IEnumerable GetTrades( Security security, DateTime from, DateTime to)

То и сейчас так же, только теперь метод в TraderHelper.

dart
dart

Mikhail Sukhov: То и сейчас так же, только теперь метод в TraderHelper. Сорри, в TraderHelper не нашёл. Нашел только в RTSHistorySource, TraderCandleSource, CandleManager, FinamHistorySource, MarketDataTrader и в ICandleSource. Может не так искал?

Mikhail Sukhov
Mikhail Sukhov Autor

dart:

Mikhail Sukhov: То и сейчас так же, только теперь метод в TraderHelper. Сорри, в TraderHelper не нашёл. Нашел только в RTSHistorySource, TraderCandleSource, CandleManager, FinamHistorySource, MarketDataTrader и в ICandleSource. Может не так искал?

Метод называется Filter.

dart
dart

Mikhail Sukhov: Метод называется Filter. Получается, сейчас это действие надо производить в три этапа (слишком ресурсоемко):

  • получение всех сделок,
  • фильтрация по бумаге,
  • фильтрация по времени. Можно сделать это всё за один раз - одновременную фильтрацию по бумаге и по времени?
Mikhail Sukhov
Mikhail Sukhov Autor

dart:

Mikhail Sukhov: Метод называется Filter. Получается, сейчас это действие надо производить в три этапа (слишком ресурсоемко):

  • получение всех сделок,
  • фильтрация по бумаге,
  • фильтрация по времени. Можно сделать это всё за один раз - одновременную фильтрацию по бумаге и по времени?

Вы уже замеряли? Пробовали? По моим расчетам там все за один раз должно отрабатывать.

dart
dart

Mikhail Sukhov: Вы уже замеряли? Пробовали? По моим расчетам там все за один раз должно отрабатывать. Там как минимум два действия - сначала фильтрую по бумаге base.Security, оставшиеся тики фильтрую второй раз уже по времени. То есть в коде две строки вместо одной. Сначала я пропустил фильтрацию по бумаге - сделал только по времени, там значения получились самые разные, так как допускались все бумаги. Потом добавил вторую строку - фильтр по бумаге и нормально стало.