← 戻る

Как бороться с кривыми данными от брокера

Народ, а кто и как решает проблему кривых данных от брокера? У меня на двух брокерах крутятся решения на S#. Сегодня оба (не буду показывать пальцем) чудят. У одного в таблице "Все сделки" в 11:30 остановился поток сделок и замерли стаканы. В системных сообщениях было соответствующее уведомление - на счет своевременности не знаю - звоню сразу в тех поддержку. У второго упали сервера и нужно было переподключаться к другому - мигает конверт в трее квика - нужно было кликнуть, прочитать и переподключиться. У обоих брокеров - квик Что делать - следить за уведомлениями квика?

このトピックは参考になりましたか?

トピックを共有

コメント (15)

ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください

Mikhail Sukhov
Mikhail Sukhov

vfreeman: Народ, а кто и как решает проблему кривых данных от брокера?

vfreeman: У обоих брокеров - квик

Причина ясна. Поэтому, ее можно переформулировать в "Как бороться с кривым Квиком".

tmt
tmt

Mikhail Sukhov:

vfreeman: Народ, а кто и как решает проблему кривых данных от брокера?

vfreeman: У обоих брокеров - квик

Причина ясна. Поэтому, ее можно переформулировать в "Как бороться с кривым Квиком". Меня кстати тоже волнует вопрос этот, а в частности как грамотно квик настроить.. Просто таблицы я настраивал, но у меня экспорт криво работал(месяц назад..) приходилось выключать экспорт, потом снова включать(в самом квике. тока тогда начинал работать робот консольный). Но думаю это не проблема! кому нужно, разберется в чем причина!

Garic
Garic

Mikhail Sukhov: Причина ясна. Поэтому, ее можно переформулировать в "Как бороться с кривым Квиком".

Угу. У меня вчера тоже были траблы сначала с сервером брокера (несколько раз реконект). Бот слал смс-ки - "хозяин, мне плохо" Через пару часов закончилось вот так:


Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
Stack:
   at System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource)
   at System.Collections.Generic.Dictionary`2+ValueCollection+Enumerator[[System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
   at System.Linq.Enumerable+<SelectManyIterator>d__14`2[[System.Collections.Generic.KeyValuePair`2[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
   at System.Linq.Buffer`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]..ctor(System.Collections.Generic.IEnumerable`1<System.__Canon>)
   at System.Linq.Enumerable.ToArray[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>)
   at StockSharp.Algo.BaseTrader+#=qtruM7DL_npiEl2WbIrnVyg==.#=qsPudgqWTa$AO0p2eXUahDgOIpsfNdy1MEvAMNXLBxmo=(Ecng.Collections.SynchronizedDictionary`2<StockSharp.BusinessEntities.Security,#=qWqHj$_khap3g0KUFboUGGA==>)
   at Ecng.Collections.CollectionHelper.SyncGet[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.__Canon, System.Func`2<System.__Canon,System.__Canon>)
   at StockSharp.Algo.BaseTrader+#=qtruM7DL_npiEl2WbIrnVyg==.#=qeT3WNUPfJbjDP1lYSNY_jQ==()
   at StockSharp.Algo.BaseTrader.get_Trades()
   at .(System.Object, System.EventArgs)
   at System.EventHandler.Invoke(System.Object, System.EventArgs)
   at System.Windows.Threading.DispatcherTimer.FireTick(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object)
   at System.Threading.ExecutionContext.runTryCode(System.Object)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object)
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   at System.Windows.Threading.Dispatcher.InvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
   at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(System.Object)
   at System.Windows.Application.RunInternal(System.Windows.Window)
   at System.Windows.Application.Run(System.Windows.Window)
   at Garic.App.()

Хорошо что он оказался в шорте :)

Mikhail Sukhov
Mikhail Sukhov

Garic:

Mikhail Sukhov: Причина ясна. Поэтому, ее можно переформулировать в "Как бороться с кривым Квиком".

Угу. У меня вчера тоже были траблы сначала с сервером брокера (несколько раз реконект). Бот слал смс-ки - "хозяин, мне плохо" Через пару часов закончилось вот так:

Это уже наше.😎 Написали бы вчера, был бы фикс. А теперь уже не знаю когда.

vfreeman
vfreeman 著者

Mikhail Sukhov:

vfreeman: Народ, а кто и как решает проблему кривых данных от брокера?

vfreeman: У обоих брокеров - квик

Причина ясна. Поэтому, ее можно переформулировать в "Как бороться с кривым Квиком".

кроме квика ничего не видел - привык к нему, но для S# завел бы другой терминал или чего там еще. а на что можете посоветовать переехать? насколько я понял S# поддерживает другие терминалы и подключение к Plaza и при этом код не потребует сильных изменений, если конечно не использовать экзотических особенностей терминала.

Garic
Garic

vfreeman: кроме квика ничего не видел - привык к нему, но для S# завел бы другой терминал или чего там еще. а на что можете посоветовать переехать? насколько я понял S# поддерживает другие терминалы и подключение к Plaza и при этом код не потребует сильных изменений, если конечно не использовать экзотических особенностей терминала.

Да тут и смартТрейд лежал в четверг - работал только резервный серв. На промах тоже говорят глюки бывают. Сезонное обострение )

Mikhail Sukhov
Mikhail Sukhov

vfreeman: кроме квика ничего не видел - привык к нему, но для S# завел бы другой терминал или чего там еще. а на что можете посоветовать переехать? насколько я понял S# поддерживает другие терминалы и подключение к Plaza и при этом код не потребует сильных изменений, если конечно не использовать экзотических особенностей терминала.

Да кроме Квика теперь уже куча вариантов. Это S# появлялся тогда, когда ничего не было другого. А сейчас - тьма.

Вначале нужно понять, какой доступ требуется, для робота или для человека. Квик - это в первую очередь для человека, Плаза - для робота и только (пока нет терминалов хоть сколько нибудь сравнявшегося с Квиком).

Есть решения посередине - Транзак и Алор. Надо к ним доделать адаптеры. Может наберем инициативную группу? Мне прямо жалко тех, кто еще до сих пор на Квике. Не то это решение.

Mikhail Sukhov
Mikhail Sukhov

Garic: Да тут и смартТрейд лежал в четверг - работал только резервный серв. На промах тоже говорят глюки бывают. Сезонное обострение )

АйТи не показатель.🙄

kot99
kot99

Mikhail Sukhov: Да кроме Квика теперь уже куча вариантов. Это S# появлялся тогда, когда ничего не было другого. А сейчас - тьма.

Вначале нужно понять, какой доступ требуется, для робота или для человека. Квик - это в первую очередь для человека, Плаза - для робота и только (пока нет терминалов хоть сколько нибудь сравнявшегося с Квиком).

Есть решения посередине - Транзак и Алор. Надо к ним доделать адаптеры. Может наберем инициативную группу? Мне прямо жалко тех, кто еще до сих пор на Квике. Не то это решение.

Я вот все хотел узнать - а на какой платформе крутятся роботы у самих разработчиков ? квик меня реально расстраивает, плаза под мои задачи не нужна...а как дело обстоит например со SmartCOM ? Проблемы есть ?

vfreeman
vfreeman 著者

Mikhail Sukhov:

vfreeman: кроме квика ничего не видел - привык к нему, но для S# завел бы другой терминал или чего там еще. а на что можете посоветовать переехать? насколько я понял S# поддерживает другие терминалы и подключение к Plaza и при этом код не потребует сильных изменений, если конечно не использовать экзотических особенностей терминала.

Да кроме Квика теперь уже куча вариантов. Это S# появлялся тогда, когда ничего не было другого. А сейчас - тьма.

Вначале нужно понять, какой доступ требуется, для робота или для человека. Квик - это в первую очередь для человека, Плаза - для робота и только (пока нет терминалов хоть сколько нибудь сравнявшегося с Квиком).

Есть решения посередине - Транзак и Алор. Надо к ним доделать адаптеры. Может наберем инициативную группу? Мне прямо жалко тех, кто еще до сих пор на Квике. Не то это решение.

я выбор сделал - для робота - т.е. готов открыть счет исключительно для S#. хотелось бы нечто промежуточное (в плане кривизны данных и стоимости - я так понимаю доступ к Плазе не бесплатен в отличие от квика - на сайте ртс не нашел тарифов) между квиком и плазой :) если такое бывает.

я готов участвовать - но я не знаю C#

Mikhail Sukhov
Mikhail Sukhov

kot99: Я вот все хотел узнать - а на какой платформе крутятся роботы у самих разработчиков ? квик меня реально расстраивает, плаза под мои задачи не нужна

Плаза не все задачи может решить. Плаза доступ - это обычный инет трейдинг, и пусть не пугает фраза "прямой доступ". С домашнего компа - это никакой не прямой доступ.

У Плазы есть очень большой недостаток - нет поддержки ММВБ (и естественно западных котировок). А это значит городить огород из связок Плаза + еще что-то.

СмартКом за последнее время стал стабильнее. Но то, что он стал еще и платным, говорит о много, в том числе о его туманной перспективе. Конечно S# скрывает детали доступа. Но нужно понимать, что есть еще такое понятие как организация своего труда. Робот то может и в легкую перейдет в случае чего от брокера к брокеру, а вот человек уже нет.

Mikhail Sukhov
Mikhail Sukhov

vfreeman: я выбор сделал - для робота - т.е. готов открыть счет исключительно для S#.

Счет надеюсь в банке? И надеюсь на моё имя?😂

vfreeman: хотелось бы нечто промежуточное (в плане кривизны данных и стоимости - я так понимаю доступ к Плазе не бесплатен в отличие от квика - на сайте ртс не нашел тарифов) между квиком и плазой :) если такое бывает.

я готов участвовать - но я не знаю C#

Тогда лучше начать с его изучения. Под собранием группы я имел ввиду поступить как с ОЕК. Писать новые коннекторы сил уже нет.

kot99
kot99

Mikhail Sukhov:

kot99: Я вот все хотел узнать - а на какой платформе крутятся роботы у самих разработчиков ? квик меня реально расстраивает, плаза под мои задачи не нужна

Плаза не все задачи может решить. Плаза доступ - это обычный инет трейдинг, и пусть не пугает фраза "прямой доступ". С домашнего компа - это никакой не прямой доступ.

У Плазы есть очень большой недостаток - нет поддержки ММВБ (и естественно западных котировок). А это значит городить огород из связок Плаза + еще что-то.

СмартКом за последнее время стал стабильнее. Но то, что он стал еще и платным, говорит о много, в том числе о его туманной перспективе. Конечно S# скрывает детали доступа. Но нужно понимать, что есть еще такое понятие как организация своего труда. Робот то может и в легкую перейдет в случае чего от брокера к брокеру, а вот человек уже нет.

Спасибо за ответ. Ну а Вы то для себя на чём остановились если не секрет ?

Mikhail Sukhov
Mikhail Sukhov

kot99: Спасибо за ответ. Ну а Вы то для себя на чём остановились если не секрет ?

Плаза + Квик

Alexander
Alexander

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