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

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


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

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

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

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

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





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

http://www.itinvest.ru/s...are/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


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()

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

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 пишу трейды в базу :
Code

                        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

            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