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

Конвертация исторических файлов QScalp в формат StockSharp
Atom
9/26/2013
AntonySS


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

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

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

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

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

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

http://www.itinvest.ru/software/spo/qscalp/history/

ftp://athistory.zerich.com/

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

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

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

PPS Шутка))

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

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

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



1 2 3  > >>
Bond

Avatar
Date: 9/17/2013
Reply


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

Thanks:

nuan

Avatar
Date: 10/17/2013
Reply


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

Thanks:

Mikhail Sukhov

Avatar
Date: 10/17/2013
Reply


nuan: Что-то то там с манифестом.

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

Thanks:

nuan

Avatar
Date: 10/17/2013
Reply


СВЕДЕНИЯ О ВЕРСИИ ПЛАТФОРМЫ 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()

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

Thanks:

Mikhail Sukhov

Avatar
Date: 10/17/2013
Reply


Типа мне разбираться?[laugh] Гуглите.

Thanks:

nuan

Avatar
Date: 10/17/2013
Reply


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

Thanks:

longtrades

Avatar
Date: 11/21/2013
Reply


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

А то у меня вобще какая то проблема с доставанием инфы из базы данных: Версия 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);

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

Thanks:

longtrades

Avatar
Date: 11/21/2013
Reply


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

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

Thanks:

Mikhail Sukhov

Avatar
Date: 11/21/2013
Reply


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

А что вы вообще делаете?

Thanks:

longtrades

Avatar
Date: 11/21/2013
Reply


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

Thanks:
1 2 3  > >>

Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy