S#

Загрузка истории для тестирования


Загрузка истории для тестирования
Atom Reply
6/7/2018


Добрый день!

Подскажите пожалуйста, в Уроке 4, CandlesDownloadingUsing приведен код загрузки с Finam
Как сделать загрузку истории из Quik ?



Thanks:




21 Answers
Support

Avatar
Date: 6/7/2018
Reply


Добрый день

Загрузка истории сделана в нашем примере SampleQuik. Загрузка идёт напрямую через коннектор. Для этого необходимо вызвать метод Connector.SubscribeCandles.
Thanks:

po_saa

Avatar
Date: 6/8/2018
Reply



перерыл все примеры
SampleQuick не нашел
Скиньте пожалуйста ссылку на пример
Topic starter
Thanks:

po_saa

Avatar
Date: 6/9/2018
Reply


Ответьте, пожалуйста!

перерыл все примеры
SampleQuick не нашел
Скиньте пожалуйста ссылку на пример
Topic starter
Thanks:

Support

Avatar
Date: 6/9/2018
Reply


po_saa Перейти

перерыл все примеры
SampleQuick не нашел
Скиньте пожалуйста ссылку на пример


Добрый день

Проект называется SampleQuik. Исходные коды лежат здесь https://github.com/Stock...Samples/Quik/SampleQuik или в релиз архиве.

В частности в программе есть код подписки на свечи https://github.com/Stock...ChartWindow.xaml.cs#L59 Все коннекторы запрашивают свечи подобным способом, и не зависит от типа подключения.
Thanks:

po_saa

Avatar
Date: 6/9/2018
Reply


Урок 4 CandlesDownloadUsing

пример SimpleQuik нашел

сделал процедуру

private void GetHistoryCandlesMy()
{
//торговый инструмент
var security = Connection.SelectedSecurity;
//создаем серию свечей
_series = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromSeconds(60));
Connection.SafeConnection.Trader.SubscribeCandles(_series,
DateTime.Now - TimeSpan.FromDays(10),
DateTime.Now - TimeSpan.FromDays(1));
}

но _series не заполняется

посоветуйте пожалуйста.

Нужно получить историю через коннектор Quik и провести на ней тестирование
Topic starter
Thanks:

Support

Avatar
Date: 6/9/2018
Reply


Пожалуйста, попробуйте сначала пример SampleQuik. Выводятся ли необходимые свечи в нём.
Thanks:

po_saa

Avatar
Date: 6/13/2018
Reply


Добрый день!
вот SampleQuik

да. выводятся

как теперь выгрузить историю на диск или в набор свечей?
image430.png 84.3KB (4)
Topic starter
Thanks:

Support

Avatar
Date: 6/13/2018
Reply


Добрый день

На график уже рисуются готовые свечи. Вот код рисования https://github.com/Stock...ChartWindow.xaml.cs#L69

Вы можете сохранить на диск данные через наше хранилище. https://doc.stocksharp.r...0-a7c7-0979dba1ad0a.htm В примере используется хранилище для тиковых сделок. Вы можете заменить на свечное хранилище

Код
var candleStorage = storage.GetCandleStorage(typeof(TimeFrameCandle), security, tf);
Thanks:

po_saa

Avatar
Date: 6/14/2018
Reply


для общего понимания , было бы здОрово, если бы где-то основные процессы были разрисованы в виде алгоритма.
процедура получения свечей
процедура сохранения
процедура прорисовки
процедура вызова стратегий
и т.д.

у вас есть https://doc.stocksharp.ru...leManager_Container.htm
если бы туда ещё прикрутить описание функций (что делают, для чего предназначены)
Topic starter
Thanks:

po_saa

Avatar
Date: 6/15/2018
Reply


при создании окна вылазит ошибка
она из библиотеки и я не понимаю почему
подскажите пожалуйста
image4504.png 252.8KB (6)
Topic starter
Thanks:

po_saa

Avatar
Date: 6/15/2018
Reply


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

Support

Avatar
Date: 6/15/2018
Reply


Добрый день

Ошибка означает что скрипт Квик разорвал подключение. Приведите пожалуйста логи принимающей стороны. Они находятся в директории со скриптом.
Thanks:

po_saa

Avatar
Date: 6/15/2018
Reply


Topic starter
Thanks:

po_saa

Avatar
Date: 6/15/2018
Reply


это при том что SampleQuik с тем же LUA скриптом работает "на ура"
Topic starter
Thanks:

Support

Avatar
Date: 6/15/2018
Reply


Используются ли у вас одинаковые версии S# для ЛУА части и для вашего приложения? Или это разные версии?
Thanks:

po_saa

Avatar
Date: 6/18/2018
Reply


библиотеки компонентов поменял на 4.5 и St# 4.4.8

теперь говорит что не может подключиться

могу дать доступ к своему компу по TeamViewer
image7347.png 62KB (3)
Topic starter
Thanks:

po_saa

Avatar
Date: 6/18/2018
Reply


Заработало, блин!
оказывается в ChartWidow подписка на свечи должна быть ТАКАЯ:

_trader.CandleSeriesProcessing += ProcessNewCandle;
_trader.SubscribeCandles(_candleSeries, from, to);

эти две функции работают в паре

Остаётся главный вопрос:
как выгрузить на диск
и в каком формате, чтобы его потом могла прочитать функция (..... какая функция читает файл для превращения в набор свечей?)
Topic starter
Thanks:

Support

Avatar
Date: 6/19/2018
Reply


Добрый день

Ранее была рекомендация использовать хранилище для маркет данных https://stocksharp.ru/posts/m/44115/
Thanks:

po_saa

Avatar
Date: 6/19/2018
Reply


а пользоваться ею как?
выложите пожалуйста пример или покажите код
Topic starter
Thanks:

po_saa

Avatar
Date: 6/20/2018
Reply


Господа, ответьте пожалуйста!
Topic starter
Thanks:

po_saa

Avatar
Date: 6/21/2018
Reply


подскажите пожалуйста

сделал функцию загрузки тиковых данных истории
как загрузить данные в хранилище Trades

private void GetQuikHistory_Click(object sender, RoutedEventArgs e)
{
//торговый инструмент
var security = Connection.SelectedSecurity;
//создаем серию свечей
_series = new CandleSeries(typeof(TimeFrameCandle), security, TimeSpan.FromSeconds(60));
Connection.SafeConnection.Trader.SubscribeCandles(_series,
DateTime.Now - TimeSpan.FromDays(10),
DateTime.Now - TimeSpan.FromDays(1));

List<Trade> trades = new List<Trade>();

//данные всегда сохраняются в файл. Это внутренний формат S#
//Путь к директории, где будут сохраняться (или считываться) маркет-данные,
//указывается через свойство LocalMarketDataDrivePath у хранилища IStorageRegistryDefaultDrive
using (var drive = new LocalMarketDataDrive())
{
// get AAPL storage
var aaplStorage = drive.GetSecurityDrive(security);

// получить хранилище тиков
var tradeStorage = (IMarketDataStorage<Trade>)aaplStorage.GetTickStorage(new TickCsvSerializer(aaplStorage.SecurityId));

// сохранение тиков на диск
tradeStorage.Save(trades);

// loading ticks
var loadedTrades = tradeStorage.Load(DateTime.Today, DateTime.Today + TimeSpan.FromMinutes(1000));

foreach (var trade in loadedTrades)
{
Console.WriteLine(LocalizedStrings.Str2968Params, trade.Id, trade);
}

Console.ReadLine();

// deleting ticks (and removing file)
tradeStorage.Delete(DateTime.Today, DateTime.Today + TimeSpan.FromMinutes(1000));
}
}
image8135.png 128.9KB (3)
Topic starter
Thanks:


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

loading
clippy