закачка стаканов с архива Order Log РТС
Atom Ответить
05.07.2012


Подскажите пожалуйста, есть ли в StockSharp и/или Гидре классы/инструменты чтобы закачать стаканы из РТСовских архивов Order Logs http://ftp.rts.ru/pub/info/historical_data/
т.е. Order Log должен преобразовываться в стаканы и сохраниться в базу.

Теги:


Спасибо:




11 Ответов
Mikhail Sukhov

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


dave2 Перейти
Подскажите пожалуйста, есть ли в StockSharp и/или Гидре классы/инструменты чтобы закачать стаканы из РТСовских архивов Order Logs https://ftp.rts.ru/pub/info/historical_data/
т.е. Order Log должен преобразовываться в стаканы и сохраниться в базу.


Там всего за 1 месяц. Нормальные пацаны давно сами ОЛ пишут. Через Гидру это возможно.
Спасибо:

dave2

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


Я знаю что там за месяц. Остальное купить можно.

Что значит сами пишут ОЛ ?
Подключившись к торгам в онлайне сохраняете стаканы через Гидру ?
Автор топика
Спасибо:

risty

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


Мужчины, подскажите, где можно взять стаканы в формате S# по ликвидным фьючерсам Фортс?
Спасибо:

Rash

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


Mikhail Sukhov Перейти
dave2 Перейти
Подскажите пожалуйста, есть ли в StockSharp и/или Гидре классы/инструменты чтобы закачать стаканы из РТСовских архивов Order Logs https://ftp.rts.ru/pub/info/historical_data/
т.е. Order Log должен преобразовываться в стаканы и сохраниться в базу.


Там всего за 1 месяц. Нормальные пацаны давно сами ОЛ пишут. Через Гидру это возможно.


И все таки, как закачать FOL в Гидру? Если можно, поподробней про механизм, алгоритм закачки.
Спасибо:

Garry

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


Добрый день! Пытаюсь собрать стаканы из Ордер Лога архивных данных РТС http://ftp.rts.ru/pub/info/historical_data/. Парсю тексктовый файл, создаю коллекцию OrderLogItem, в моем случае List<OrderLogItem>, далее планировал использовать OrderLogHelper.ToMarketDepths. Но он понимает только коллекции Ecng.Collections.IEnumerableEx<OrderLogItem>, простой List для этого не подходит. Как можно работать с IEnumerableEx ? Как добавить туда элемент или конвертировать из List? Есть какой то класс реализующий IEnumerableEx?
Спасибо:

Garic

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


Фиг знает :) Пользуйтесь OrderLogMarketDepthBuilder - именно он содержит логику.
Спасибо:

Alexander

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


Garry Перейти
Добрый день! Пытаюсь собрать стаканы из Ордер Лога архивных данных РТС https://ftp.rts.ru/pub/info/historical_data/. Парсю тексктовый файл, создаю коллекцию OrderLogItem, в моем случае List<OrderLogItem>, далее планировал использовать OrderLogHelper.ToMarketDepths. Но он понимает только коллекции Ecng.Collections.IEnumerableEx<OrderLogItem>, простой List для этого не подходит. Как можно работать с IEnumerableEx ? Как добавить туда элемент или конвертировать из List? Есть какой то класс реализующий IEnumerableEx?



Код
public static IEnumerableEx<T> ToEx<T>(this IEnumerable<T> values)
Спасибо:

Garry

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


Garic Перейти
Фиг знает :) Пользуйтесь OrderLogMarketDepthBuilder - именно он содержит логику.


Пытаюсь использовать этот класс, но столкнулся с проблемой.Как в OrderLogItem можно указать причину отмены заявки? А то OrderLogMarketDepthBuilder.Update при записи OrderLogItem об отмене заявки выдает эксепшн:

Строчка содержит неверную информацию о причине отмены заявки.
Parameter name: item
Actual value was 3.

Судя по всему она должна быть в OrderLogItem.Order.Messages, но указать его не получается т.к. оно read only.

at StockSharp.Algo.OrderLogHelper.GetCancelReason(OrderLogItem item)
at StockSharp.Algo.OrderLogMarketDepthBuilder.Update(OrderLogItem item)
at OrderLogConverter.Form1.button1_Click(Object sender, EventArgs e) in F:\Projects\OrderLogConverter\OrderLogConverter\Form1.cs:line 145
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at OrderLogConverter.Program.Main() in F:\Projects\OrderLogConverter\OrderLogConverter\Program.cs:line 18
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Спасибо:

Garic

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


Должно быть заполнено поле Order.Status битовой маской как в плазе.

order.Status = new OrderStatus?((OrderStatus)Status);
Спасибо:

Garic

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


Код

Order order = new Order
            {
                Security = security,
                Id = OrderId,
                TransactionId = ReplId,
                Volume = Amount,
                Balance = AmountRest,
                Direction = Direction,
                Time = Time,
                Price = OrderPrice.RemoveTrailingZeros(),
                State = OrderStates.Active
            };
            Trade trade;

            if (DealId != 0)
            {
                trade = new Trade
                {
                    Security = security,
                    Id = DealId,
                    Time = Time,
                    Volume = Amount,
                    Price = DealPrice.RemoveTrailingZeros()
                };
            }
            else
            {
                trade = null;
                order.State = Action == 1 ? OrderStates.Active : OrderStates.Done;
            }

            if (Status.HasBits(0x01))
            {
                order.ExecutionCondition = OrderExecutionConditions.PutInQueue;
            }
            else if (Status.HasBits(0x02))
            {
                order.ExecutionCondition = OrderExecutionConditions.CancelBalance;
            }
            if (Status.HasBits(0x04))
            {
                order.IsSystem = false;
            }
            order.Status = new OrderStatus?((OrderStatus)Status);
Спасибо: Garry

Mikhail Sukhov

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


Garic Перейти
Должно быть заполнено поле Order.Status битовой маской как в плазе.

order.Status = new OrderStatus?((OrderStatus)Status);


Да на ФТП туфта лежит, а не данные. Полей там нет необходимых. Я уже писал об этом на РТС.
Спасибо:


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

loading
clippy