Pantov
|
Дата: 21.08.2015
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 21.08.2015
[quote=Pantov;33594]
Все заработало, получил, что хотел, спасибо Михаил.
Готов оплатить помощь, скажите куда.[/quote]
Лучше выложите сконвертированное куда-то, чтобы не делать одно и то же всем.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 08.12.2015
|
|
|
|
Спасибо:
|
|
|
|
|
|
vk37
|
Дата: 26.01.2016
|
|
|
|
|
У меня получился несколько иной алгоритм конвертации. Возможно, кому-то окажется полезным:
[SPOILER][code=csharp]if (ol.Flags.HasFlag(OrdLogFlags.Add))
{
// Action 1 - заявка добавлена
msg.OrderState = StockSharpOrderState.Active;
msg.Action = 1;
}
else if (ol.Flags.HasFlag(OrdLogFlags.Fill))
{
// Action 2 - заявка сведена в сделку
msg.OrderState = StockSharpOrderState.Done;
msg.Action = 2;
}
else
{
// Action 0 - заявка удалена
msg.OrderState = StockSharpOrderState.Done;
msg.Action = 0;
}
if (ol.Flags.HasFlag(OrdLogFlags.NonZeroReplAct))
msg.ReplAct = -1;
if (ol.Flags.HasFlag(OrdLogFlags.SessIdChanged))
msg.SessId = -1;
var status = 0;
if (ol.Flags.HasFlag(OrdLogFlags.Canceled))
status |= 0x200000;
if (ol.Flags.HasFlag(OrdLogFlags.CanceledGroup))
status |= 0x400000;
if (ol.Flags.HasFlag(OrdLogFlags.Moved))
status |= 0x100000;
if (ol.Flags.HasFlag(OrdLogFlags.Buy))
msg.Side = Side.Buy;
else if (ol.Flags.HasFlag(OrdLogFlags.Sell))
msg.Side = Side.Sell;
else
throw new ArgumentException("Не задано направление заявки");
if (ol.Flags.HasFlag(OrdLogFlags.Quote))
{
// котировочная
msg.TimeInForce = StockSharpTimeInForce.PutInQueue;
status |= 0x01;
}
if (ol.Flags.HasFlag(OrdLogFlags.Counter))
{
// встречная
msg.TimeInForce = StockSharpTimeInForce.CancelBalance;
status |= 0x02;
}
if (ol.Flags.HasFlag(OrdLogFlags.FillOrKill))
{
// fill-or-kill
msg.TimeInForce = StockSharpTimeInForce.MatchOrCancel;
status |= 0x80000;
}
if (ol.Flags.HasFlag(OrdLogFlags.NonSystem))
status |= 0x04;
if (ol.Flags.HasFlag(OrdLogFlags.EndOfTransaction))
status |= 0x1000;
if (ol.Flags.HasFlag(OrdLogFlags.CrossTrade))
status |= 0x20000000;
msg.Status = status;[/code][/SPOILER]
По 3 дням стакан построить не получилось: предполагаю что запись данных была выполнена с ошибками.
Даты и время ошибок:
13.10.2014 Пн 19:00:55.878
11.06.2015 Чт 18:56:21.672
18.09.2015 Пт 18:51:07.919
|
|
|
|
Спасибо:
|
|
|
|
|
|
sharafievrr
|
Дата: 27.04.2016
После конвертации в из qsh в bin подкладываю данные в директорию где хранятся данные для гидры. Но при попытке получить тики по этому инструменту гидра говорит что данных нет. Что надо сделать чтобы гидра увидела файлы с сконвертированной историей?
|
|
|
|
Спасибо:
|
|
|
|
|
|
Lexuz77
|
Дата: 10.09.2016
[quote=sharafievrr;32674]После конвертации в из qsh в bin подкладываю данные в директорию где хранятся данные для гидры. Но при попытке получить тики по этому инструменту гидра говорит что данных нет. Что надо сделать чтобы гидра увидела файлы с сконвертированной историей?[/quote]
Присоединяюсь к вопросу - ни гидра, ни дизайнер бетка эти данные (bin) не видит :(
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 17.10.2016
Новая версия 1.0.5:
- Многопоточная обработка. Лучше запускать, если инструменты разбиты по разным файлам, как это сделано у Цериха.
- Преобрезование Order log в стаканы. Глубика по-умолчанию 5, правится в настройках в конфиг-файле.
- Фильтр инструментов по маске, перечисление через запятую. Например, SBER,RTS-*,BR будет означать поиск инструментов с названием SBER, вме инструменты, начинающиеся с RTS- и все инструменты, содержащие в названии BR (SBER, BRENT и т.д.).
[url=https://github.com/StockSharp/Qsh2Bin/releases/tag/1.0.5]Скачать[/url]
Напишите пожелание по утилите. Интересен ли вам сервис от Цериха, нужны ли в работе такие данные. Кто знает что стало с аналогичным сервисом от IT Invest?
|
|
|
|
|
|
|
JaguarFX
|
Дата: 30.10.2016
Программа очень и очень нужная для тестирования hft-стратегий на предмет того не являются ли они тестовыми граалыми, у которых чудо-доходность обусловлена исключительно несовершенством тестера (а-ля такого [url=https://charts.mql5.com/10/331/si-splice-m1-oao-brokerskiy-dom-moy-testoviy-graal-v-zhizni-bi.png]Мой hft-грааль[/url]). А так же подобные данные позволяют "исследовать" микроструктуру рынка на предмет реальных возможностей для заработка на фреймах ниже М1.
Основное пожелание - интегрировать в следующую версию S#.Data данный сайт Цериха как доп. источник для скачивания данных с конвертацией "на лету" в формат bin с формированием OL или стаканов по выбору пользователя.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Mikhail Sukhov
|
Дата: 30.10.2016
[quote=Лебедев Сергей;37381]
Основное пожелание - интегрировать в следующую версию S#.Data данный сайт Цериха как доп. источник для скачивания данных с конвертацией "на лету" в формат bin с формированием OL или стаканов по выбору пользователя.[/quote]
Сайт поддерживает неофициально. Вполне вероятно, что у Цериха не хватает ресурсов, и он может быть закрыт в любое время. Тратить ресурсы на такую задачу нам не сильно охота. Да и что там автоматизировать? Закачку c FTP? Это делается любым download manager-ом на 1-2-3.
|
|
|
|
Спасибо:
|
|
|
|
|
|
Константин
|
Дата: 12.02.2018
|
|
|
|
|
Конвертор не работает с файлами типа:
[quote]Название.AuxInfo.qsh[/quote]
Ошибка:
Qsh2Bin 12.02.2018 19:27:26 Error "System.AggregateException: Произошла одна или несколько ошибок. ---> System.ArgumentOutOfRangeException: Время в формате UTC, представленное при применении смещения, должно находиться в диапазоне от 0 до 10 000 лет.
Имя параметра: offset
в System.DateTimeOffset.ValidateDate(DateTime dateTime, TimeSpan offset)
в System.DateTimeOffset..ctor(DateTime dateTime, TimeSpan offset)
в Ecng.Common.TimeHelper.ApplyTimeZone(DateTime dt, TimeZoneInfo zone)
в StockSharp.Qsh2StockSharp.MainWindow.<>c__DisplayClass16_1.b__9(Int32 key, AuxInfo info)
в QScalp.History.Reader.V4.AuxInfoStream.Read(Boolean push)
в QScalp.History.Reader.V4.QshReaderImpl.Read(Boolean push)
в StockSharp.Qsh2StockSharp.MainWindow.ConvertFile(String fileName, IStorageRegistry registry, StorageFormats format, ExchangeBoard board, String securityLike, Dictionary2 orderLog2OrderBookBuilders, Int32 orderBookMaxDepth) в StockSharp.Qsh2StockSharp.MainWindow.<>c__DisplayClass14_0.<ConvertDirectory>b__0(String f) в MoreLinq.MoreEnumerable.ForEach[T](IEnumerable1 source, Action1 action) в StockSharp.Qsh2StockSharp.MainWindow.ConvertDirectory(String path, IStorageRegistry registry, StorageFormats format, ExchangeBoard board, String securityLike, Boolean multithread, Dictionary2 orderLog2OrderBookBuilders, Int32 orderBookMaxDepth)
в StockSharp.Qsh2StockSharp.MainWindow.<>c__DisplayClass13_0.<Convert_OnClick>b__0()
в System.Threading.Tasks.Task.Execute()
--- Конец трассировки внутреннего стека исключений ---
---> (Внутреннее исключение #0) System.ArgumentOutOfRangeException: Время в формате UTC, представленное при применении смещения, должно находиться в диапазоне от 0 до 10 000 лет.
Имя параметра: offset
в System.DateTimeOffset.ValidateDate(DateTime dateTime, TimeSpan offset)
в System.DateTimeOffset..ctor(DateTime dateTime, TimeSpan offset)
в Ecng.Common.TimeHelper.ApplyTimeZone(DateTime dt, TimeZoneInfo zone)
в StockSharp.Qsh2StockSharp.MainWindow.<>c__DisplayClass16_1.b__9(Int32 key, AuxInfo info)
в QScalp.History.Reader.V4.AuxInfoStream.Read(Boolean push)
в QScalp.History.Reader.V4.QshReaderImpl.Read(Boolean push)
в StockSharp.Qsh2StockSharp.MainWindow.ConvertFile(String fileName, IStorageRegistry registry, StorageFormats format, ExchangeBoard board, String securityLike, Dictionary2 orderLog2OrderBookBuilders, Int32 orderBookMaxDepth) в StockSharp.Qsh2StockSharp.MainWindow.<>c__DisplayClass14_0.<ConvertDirectory>b__0(String f) в MoreLinq.MoreEnumerable.ForEach[T](IEnumerable1 source, Action1 action) в StockSharp.Qsh2StockSharp.MainWindow.ConvertDirectory(String path, IStorageRegistry registry, StorageFormats format, ExchangeBoard board, String securityLike, Boolean multithread, Dictionary2 orderLog2OrderBookBuilders, Int32 orderBookMaxDepth)
в StockSharp.Qsh2StockSharp.MainWindow.<>c__DisplayClass13_0.<Convert_OnClick>b__0()
в System.Threading.Tasks.Task.Execute()<---
"
|
|
|
|
Спасибо:
|
|
|
|
|