S#

Конвертация исторических файлов QScalp в формат StockSharp


Конвертация исторических файлов QScalp в формат StockSharp
Atom
26.09.2013


Привет всем алготрейдерам!

Хочу поделиться своим решение для тестирования скальперских и ХФТ стратегий. Долгое время я использую замечательный привод Морошкина (бесплатную версию Smile ). И недавно решил автоматизировать несколько стратегий на базе StockSharp.

Но для этого нужны исторические данные, в частности стаканы. У StockSharp есть программа Гидра, которая по идее позволяет качать все необходимое, но ее нужно держать постоянно включенной. Для меня это не вариант, так как я постоянно занят, и интернет не всегда стабильный.

Но недавно я узнал, что QScalp сам пишет историю и бесплатно ее выкладывает через брокера IT Invest.

В итоге, я написал конвертор данных QScalp в формат StockSharp!





Просто установите программу и скачайте исторические данные формата QSH для QScalp по одной из ссылок ниже

http://www.itinvest.ru/s...ware/spo/qscalp/history/

ftp://athistory.zerich.com/

Теперь осталось только указать в конвертере путь к скаченным файлам и к папке хранения исторических данных StockSharp, и нажать кнопку “Запустить”!

Вуаля, теперь у вас есть высококачественные исторические данные для тестирования своих стратегий!

PS Торопитесь пока бесплатно ;))

PPS Шутка))


Всем удачной торговли!

Присоединиться и редактировать код можно по https://github.com/stocksharp/Qsh2Bin

скомпилированную программу по https://github.com/StockSharp/Qsh2Bin/releases



Спасибо: Mikhail Sukhov Jeta N-e-o Le_green_hat




49 Ответов
1 2  >
Bond

Фотография
Курсы
Дата: 17.09.2013
Ответить


Исторические данные можно скачать только за один день? А за период времени? И какая глубина этих исторических данных?
Спасибо:

nuan

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


Собственно можно залить уже установленную версию, т.к. у меня при установки вылетает ошибка...
Что-то то там с манифестом.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 17.10.2013
Ответить


nuan Перейти
Что-то то там с манифестом.


Это значит, что не в программе ошибка. Манифест - это ОС.
Спасибо:

nuan

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


Цитата:
СВЕДЕНИЯ О ВЕРСИИ ПЛАТФОРМЫ
Windows : 6.1.7601.65536 (Win32NT)
Common Language Runtime : 4.0.30319.18034
System.Deployment.dll : 4.0.30319.17929 built by: FX45RTMREL
clr.dll : 4.0.30319.18034 built by: FX45RTMGDR
dfdll.dll : 4.0.30319.17929 built by: FX45RTMREL
dfshim.dll : 4.0.31106.0 (Main.031106-0000)

ИСТОЧНИКИ
URL-адрес развертывания : file:///C:/Users/Nuan/Desktop/data/publish/Qsh2Bin.application

УДОСТОВЕРЕНИЯ
Удостоверение развертывания : Qsh2Bin.application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=58b400c5ccdd6861, processorArchitecture=msil

СВОДКА ПРИЛОЖЕНИЯ
* Устанавливаемое приложение.

СВОДКА ОШИБОК
Ниже приводится сводка ошибок, сведения об этих ошибках перечислены далее в журнале.
* В результате активизации C:\Users\Nuan\Desktop\data\publish\Qsh2Bin.application произошла ошибка с исключением. Определены следующие сообщения о сбоях:
+ Исключение чтения манифеста из file:///C:/Users/Nuan/Desktop/data/publish/Application%20Files/Qsh2Bin_1_0_0_0/Qsh2Bin.exe.manifest: возможно, манифест неправильный или файл не может быть открыт.
+ Манифест приложения семантически неправилен.
+ Файл значка, указанный в манифесте приложения, неправильный.

СВОДКА СБОЯ ТРАНЗАКЦИИ СОХРАНЕНИЯ КОМПОНЕНТА
Не определена никакая ошибка транзакции.

ПРЕДУПРЕЖДЕНИЯ
Во время этой операции предупреждения не выводились.

СОСТОЯНИЕ ВЫПОЛНЕНИЯ ОПЕРАЦИИ
* [17.10.2013 22:51:47] : Активация C:\Users\Nuan\Desktop\data\publish\Qsh2Bin.application начата.
* [17.10.2013 22:51:53] : Обработка манифеста развертывания успешно завершена.
* [17.10.2013 22:51:53] : Начата установка приложения.

СВЕДЕНИЯ ОБ ОШИБКЕ
Во время выполнения этой операции обнаружены следующие ошибки.
* [17.10.2013 22:51:53] System.Deployment.Application.InvalidDeploymentException (ManifestParse)
- Исключение чтения манифеста из file:///C:/Users/Nuan/Desktop/data/publish/Application%20Files/Qsh2Bin_1_0_0_0/Qsh2Bin.exe.manifest: возможно, манифест неправильный или файл не может быть открыт.
- Источник: System.Deployment
- Запись изменений стека:
в System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
в System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
в System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, Uri& appSourceUri, String& appManifestPath)
в System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
в System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
в System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
в System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
--- Внутреннее исключение ---
System.Deployment.Application.InvalidDeploymentException (ManifestSemanticValidation)
- Манифест приложения семантически неправилен.
- Источник: System.Deployment
- Запись изменений стека:
в System.Deployment.Application.Manifest.AssemblyManifest.ValidateSemanticsForApplicationRole()
в System.Deployment.Application.Manifest.AssemblyManifest.ValidateSemantics(ManifestType manifestType)
в System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
--- Внутреннее исключение ---
System.Deployment.Application.InvalidDeploymentException (InvalidManifest)
- Файл значка, указанный в манифесте приложения, неправильный.
- Источник: System.Deployment
- Запись изменений стека:
в System.Deployment.Application.Manifest.AssemblyManifest.ValidateSemanticsForApplicationRole()

СВЕДЕНИЯ О ТРАНЗАКЦИИ СОХРАНЕНИЯ КОМПОНЕНТА
Нет доступных сведений о транзакции.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 17.10.2013
Ответить


Типа мне разбираться?Laugh Гуглите.
Спасибо:

nuan

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


дык я и прошу проинсталенную уже )
чтобы и мне не разбираться с установкой )
Спасибо:

longtrades

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


Скажите, пожалуйста, какая версия стокшарпа сможет открыть эти архивные файлы ?

А то у меня вобще какая то проблема с доставанием инфы из базы данных:
Версия 4.1.19.1 пишу трейды в базу :
Код

                        trader.NewTrades += trades => this.GuiAsync(() =>
                        {
                            var secgroup = trades.GroupBy(x => x.Security);
                            foreach (var sec in secgroup)
                            {
                                if (sec.Key.MinStepSize != 0)
                                {
                                    var tradestorage = storage.GetTradeStorage(sec.Key);
                                    tradestorage.AppendOnlyNew = true;
                                    tradestorage.Save(sec);
                                }
                            }

                        });


Потом пробую дастать трейды из той же базы в той же программе :

Код

            var startTime = new DateTime(2013, 11, 18);
            var stopTime = new DateTime(2013, 11, 20);

            // создаем тестовый инструмент, на котором будет производится тестирование
            var security = new Security
            {
                Id = "RIZ3@FORTS", // по идентификатору инструмента будет искаться папка с историческими маркет данными
                Code = "RIZ3",
                Name = "RTS-12.13",
                MinStepSize = 10,
                MinStepPrice = 6.5m,
                MinPrice = 10,
                MaxPrice = 1000000,
                ExchangeBoard = ExchangeBoard.Forts,
            };

            security.LastTrade = new Trade { Price = 143000 };

            // тестовый портфель
            var portfolio = new Portfolio
            {
                Name = "test account",
                BeginValue = 1000000,
            };

            // создаем шлюз для эмуляции
            // инициализируем настройки (инструмент в истории обновляется раз в секунду)
            var Trader = new EmulationTrader(
                new[] { security },
                new[] { portfolio })
            {
                MarketTimeChangedInterval = TimeSpan.FromMilliseconds(10),
                StorageRegistry = storage,

                // использовать стаканы
                UseMarketDepth = true,

                // использовать свечки
               // UseCandlesTimeFrame = emulationInfo.UseCandleTimeFrame,
            };

            // проверка что стаканы соответствуют сделкам. Улучшает реалистичность тестирования.
            Trader.MarketEmulator.Settings.SyncDepthToTrades = true;

            // сведение сделки в эмуляторе если цена коснулась нашей лимитной заявки. 
            // Если выключено - требуется "прохождение цены сквозь уровень"
            // (более "суровый" режим тестирования.)
            Trader.MarketEmulator.Settings.FillOnTouch = false;

            security.Trader = Trader;

            Trader.RegisterMarketDepth(security);

            // соединяемся с трейдером и запускаем экспорт,
            // чтобы инициализировать переданными инструментами и портфелями необходимые свойства EmulationTrader
            Trader.Connect();
            Trader.StartExport();

            Trader.Start(startTime, stopTime);


Но почему то в трейдере нет ни одного трейда , они вобще должны там быть или они будут появлятся в процессе тестирования ?
Спасибо:

longtrades

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


Проверил версию 4.1.14.1, тоже самое Трейдов нет , Может я что-то не так делаю ?

Trader.RegisterTrades(security); тоже не помогает :(
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 20.11.2013
Ответить


longtrades Перейти
Проверил версию 4.1.14.1, тоже самое Трейдов нет , Может я что-то не так делаю ?


А что вы вообще делаете?
Спасибо:

longtrades

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


Постоянно пишу все новые треды в базу , потом хочу тестировать на этой истории .
Спасибо:

risty

Фотография
Программист
Дата: 04.03.2015
Ответить


вставил в исходники текущую версию API с поддержкой четверной версии qsh файлов (http://www.qscalp.ru/download)
http://dropmefiles.com/XqiuN
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 04.03.2015
Ответить


risty Перейти
вставил в исходники текущую версию API с поддержкой четверной версии qsh файлов (http://www.qscalp.ru/download)
http://dropmefiles.com/XqiuN


Залили бы сразу в репозитарий. Потеряется же.
Спасибо:

risty

Фотография
Программист
Дата: 04.03.2015
Ответить


Михаил Сухов Перейти
risty Перейти
вставил в исходники текущую версию API с поддержкой четверной версии qsh файлов (http://www.qscalp.ru/download)
http://dropmefiles.com/XqiuN


Залили бы сразу в репозитарий. Потеряется же.


не умею )
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 04.03.2015
Ответить


Спасибо:

LiCiSin

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


risty Перейти
Михаил Сухов Перейти
risty Перейти
вставил в исходники текущую версию API с поддержкой четверной версии qsh файлов (http://www.qscalp.ru/download)
http://dropmefiles.com/XqiuN


Залили бы сразу в репозитарий. Потеряется же.


не умею )

ну вот уже потерялись-время ханения вышло.... давай исходники -а я залью.



Спасибо:

XMbIPb

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


Сейчас история только клиентам ITinvest доступна или вообще прикрыли лавочку?
Спасибо:

transdex

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


Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 24.04.2015
Ответить


У айти абонентка за быть их клиентом?

Церих тоже скоро лавочку прикроет
Спасибо:

risty

Фотография
Программист
Дата: 27.04.2015
Ответить


http://dropmefiles.com/P5alg - перезалил.
До гитхаба все никак не добраться (
Спасибо:

nikitao

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


А можно перезалить, а то файл уже удален? Спасибо
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 26.05.2015
Ответить


Обновил сырцы. Качается так же с Гита. ОЛ от Цериха конвертирует.
Спасибо: wkj nikitao

M1k3

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


Mikhail Sukhov Перейти
Обновил сырцы. Качается так же с Гита. ОЛ от Цериха конвертирует.

А можно это все запустить без actipro за 650$? А то что-то не получается.
Да и вообще не понятно, аналогов actipro нет для stocksharp в виде telerik или чего-то другого, чтобы не платить так сильно за разработку 1-го приложения, которое может в итоге и не понадобиться? Некоторых отпугивает...
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 08.06.2015
Ответить


M1k3 Перейти
Некоторых отпугивает...


Финансовые рынки - не место для трусов.
Спасибо:

Pantov

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


Подскажите, что за ошибка:
Имя параметра: item
в StockSharp.Algo.OrderLogHelper.GetOrderLogCancelReason(ExecutionMessage item) в f:\develop\StockSharp_436\Algo\OrderLogHelper.cs:строка 128
в StockSharp.Algo.OrderLogMarketDepthBuilder.Update(ExecutionMessage item) в f:\develop\StockSharp_436\Algo\OrderLogMarketDepthBuilder.cs:строка 167
в StockSharp.Algo.Connector.ProcessOrderLogMessage(Security security, ExecutionMessage message) в f:\develop\StockSharp_436\Algo\Connector_ProcessMessage.cs:строка 1047
2015/06/04 19:00:00.126|Error |HistoryEmulationConnector|System.ArgumentException: Строка лога заявок не содержит информацию о причине отмены заявки.
Имя параметра: item

В ОЛ сформированного данной программой.
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 14.06.2015
Ответить


Pantov Перейти
Подскажите, что за ошибка:
Имя параметра: item
в StockSharp.Algo.OrderLogHelper.GetOrderLogCancelReason(ExecutionMessage item) в f:\develop\StockSharp_436\Algo\OrderLogHelper.cs:строка 128


https://github.com/StockSharp/StockSharp
Спасибо:
1 2  >

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

loading
clippy