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

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


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

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

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

Но недавно я узнал, что QScalp сам пишет историю и бесплатно ее выкладывает через брокера [url=http://www.itinvest.ru/software/spo/qscalp/history/]IT Invest[/url].

В итоге, я [url=https://github.com/StockSharp/Qsh2Bin/releases]написал конвертор[/url] данных QScalp в формат StockSharp!

[center][img]102640[/img][/center]

[center][img]103814[/img][/center]

Просто установите программу и скачайте исторические данные формата 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

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


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

Спасибо:

nuan

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


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

Спасибо:

Mikhail Sukhov

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


[quote=nuan;27799]Что-то то там с манифестом.[/quote]

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

Спасибо:

nuan

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


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

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

[/quote]

Спасибо:

Mikhail Sukhov

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


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

Спасибо:

nuan

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


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

Спасибо:

longtrades

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


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

А то у меня вобще какая то проблема с доставанием инфы из базы данных: Версия 4.1.19.1 пишу трейды в базу : [code=csharp] 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); } }

                    });

[/code]

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

[code=csharp] 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);

[/code]

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

Спасибо:

longtrades

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


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

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

Спасибо:

Mikhail Sukhov

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


[quote=longtrades;28343]Проверил версию 4.1.14.1, тоже самое Трейдов нет , Может я что-то не так делаю ? [/quote]

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

Спасибо:

longtrades

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


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

Спасибо:
1 2 3  > >>

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

loading
clippy