Alexander
|
Date: 5/14/2011
crapulent приветсвую спасибо огромное за удобную библиотеку
возник вопрос: использую квик. регистрирую заявку через trader.registerOrder возможно ли отследить неудачу при посылке транзакции на биржу (например если интернет падал, но квик еще не прислал Disconnected)? OrdersFailed
|
|
Thanks:
|
|
|
|
|
crapulent
|
Date: 5/14/2011
пробовал. не работае. кусок кода: Code... trader.OrdersFailed += fails => { foreach (var fail in fails) { Console.WriteLine("E: " + fail.Error); } }; Security sec = trader.Securities.First(s => s.Code == "LKOH"); trader.IsAsyncMode = true; Order order = new Order() { Security = sec, Volume = 1, Direction = OrderDirections.Buy, Price = price, Portfolio = port, };
Console.Write(">"); Console.ReadKey(); trader.RegisterOrder(order); дожидаюсь ">", отключаю интернет, жмакаю. ордерзфэйлд не приходит.
|
|
Thanks:
|
|
|
|
|
crapulent
|
Date: 5/14/2011
в догонку еще вопрос. Codeusing System; using System.Collections.Generic; using System.Linq; using System.Text;
using Ecng.Trading.Quik; using System.IO;
namespace MultiQuikTest { class Program { static void Main(string[] args) { try { foreach (var t in QuikTerminal.Terminals) { File.AppendAllText("output", t.DirectoryName + "\r\n"); } } catch (Exception ex) { File.AppendAllText("output", ex.ToString()); } Console.ReadKey(); } } } если запущено больше одного квика получаю эксепшн, если 1, то все ок. windows 7 Quote:System.InvalidCastException: Заданное приведение является недопустимым. в System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) в System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode) в System.Management.ManagementScope.InitializeGuts(Object o) в System.Management.ManagementScope.Initialize() в System.Management.ManagementObjectSearcher.Initialize() в System.Management.ManagementObjectSearcher.Get() в Ecng.Interop.WinApi.GetOwner(Process process) в Ecng.Trading.Quik.QuikTerminal.#=qMfrcg9BqoX_SrZ_PniRSkM_HjG66XqOI62YKPEESM$8=.#=q2Ey9GcWR9id72injkpK63zAr0R9wXuqBWricx3tkazE=(Process #=qkq4$1ICccTWVLKEFpo7ccw==, Process #=qzKCUSHcFINff4MoQJ2AUZA==) в Ecng.Collections.CollectionHelper.Comparer`1.Compare(T x, T y) в System.Linq.EnumerableSorter`2.CompareKeys(Int32 index1, Int32 index2) в System.Linq.EnumerableSorter`1.QuickSort(Int32[] map, Int32 left, Int32 right) в System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count) в System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext() в System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() в System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() в System.Linq.Buffer`1..ctor(IEnumerable`1 source) в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) в Ecng.Trading.Quik.QuikTerminal.get_Terminals() в MultiQuikTest.Program.Main(String[] args) в D:\root\workspace\rts\csharpsolutions\revision_3_2011_05_10\MultiQuikTest\MultiQuikTest\Program.cs:строка 17 не подскажете, с чем может быть связано?
|
|
Thanks:
|
|
|
|
|
Stanislav121
|
Date: 5/16/2011
Mikhail Sukhov Stanislav121 Какова может быть максимальная скорость работы робота(выставление заявок) ? От чего это зависит? Если вы задаете подобные вопросы, то скорее всего идете по неправильному пути. (с) жизненный опыт.[smile] Почему?
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 5/16/2011
Stanislav121 Mikhail Sukhov Stanislav121 Какова может быть максимальная скорость работы робота(выставление заявок) ? От чего это зависит? Если вы задаете подобные вопросы, то скорее всего идете по неправильному пути. (с) жизненный опыт.[smile] Почему? Если вы задаете подобные вопросы, значит у вас стратегия зависит от скорости выставления заявок. Квик - это не тот терминал, который бы подобное мог обеспечить. Он конечно может выставить хоть 10000 заявок в минуту (главное чтобы брокер не зарубил), но задержка в получении маркет данных (ситуация в стакане меняется намного чаще, чем это транслирует Квик) и проскальзывание на бирже сведет на нет всю быстроту (или вы будете лепить заявки по невыгодным ценам).
|
|
Thanks:
|
|
|
|
|
Stanislav121
|
Date: 5/16/2011
Mikhail Sukhov Stanislav121 Mikhail Sukhov Stanislav121 Какова может быть максимальная скорость работы робота(выставление заявок) ? От чего это зависит? Если вы задаете подобные вопросы, то скорее всего идете по неправильному пути. (с) жизненный опыт.[smile] Почему? Если вы задаете подобные вопросы, значит у вас стратегия зависит от скорости выставления заявок. Квик - это не тот терминал, который бы подобное мог обеспечить. Он конечно может выставить хоть 10000 заявок в минуту (главное чтобы брокер не зарубил), но задержка в получении маркет данных (ситуация в стакане меняется намного чаще, чем это транслирует Квик) и проскальзывание на бирже сведет на нет всю быстроту (или вы будете лепить заявки по невыгодным ценам). Да, стратегия зависит от скорости выставления заявок. Не очень Вас понимаю. Задержка получения данных характерна для quik или для других серверов тоже(TSLab там или TRANSAQ Connector)? Ну и 10k заявок в минуту не нужно.
|
|
Thanks:
|
|
|
|
|
Mikhail Sukhov
|
Date: 5/16/2011
Stanislav121 Задержка получения данных характерна для quik или для других серверов тоже(TSLab там или TRANSAQ Connector)? Задержка есть везде. У всех она примерно одинаковая. Если скорости Квика не хватает, переходите на прямое подключение.
|
|
Thanks:
|
|
|
|
|
Alexander
|
Date: 5/17/2011
crapulent в догонку еще вопрос. Codeusing System; using System.Collections.Generic; using System.Linq; using System.Text;
using Ecng.Trading.Quik; using System.IO;
namespace MultiQuikTest { class Program { static void Main(string[] args) { try { foreach (var t in QuikTerminal.Terminals) { File.AppendAllText("output", t.DirectoryName + "\r\n"); } } catch (Exception ex) { File.AppendAllText("output", ex.ToString()); } Console.ReadKey(); } } } если запущено больше одного квика получаю эксепшн, если 1, то все ок. windows 7 Quote:System.InvalidCastException: Заданное приведение является недопустимым. в System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) в System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode) в System.Management.ManagementScope.InitializeGuts(Object o) в System.Management.ManagementScope.Initialize() в System.Management.ManagementObjectSearcher.Initialize() в System.Management.ManagementObjectSearcher.Get() в Ecng.Interop.WinApi.GetOwner(Process process) в Ecng.Trading.Quik.QuikTerminal.#=qMfrcg9BqoX_SrZ_PniRSkM_HjG66XqOI62YKPEESM$8=.#=q2Ey9GcWR9id72injkpK63zAr0R9wXuqBWricx3tkazE=(Process #=qkq4$1ICccTWVLKEFpo7ccw==, Process #=qzKCUSHcFINff4MoQJ2AUZA==) в Ecng.Collections.CollectionHelper.Comparer`1.Compare(T x, T y) в System.Linq.EnumerableSorter`2.CompareKeys(Int32 index1, Int32 index2) в System.Linq.EnumerableSorter`1.QuickSort(Int32[] map, Int32 left, Int32 right) в System.Linq.EnumerableSorter`1.Sort(TElement[] elements, Int32 count) в System.Linq.OrderedEnumerable`1.<GetEnumerator>d__0.MoveNext() в System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() в System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext() в System.Linq.Buffer`1..ctor(IEnumerable`1 source) в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source) в Ecng.Trading.Quik.QuikTerminal.get_Terminals() в MultiQuikTest.Program.Main(String[] args) в D:\root\workspace\rts\csharpsolutions\revision_3_2011_05_10\MultiQuikTest\MultiQuikTest\Program.cs:строка 17 не подскажете, с чем может быть связано? Потестировал у себя - всё работает, с несколькими квиками в том числе. Все квики запускаются с локального диска, не с сетевого \ flash? Какие права установлены для текущего пользователя? Версия Windows и версия установленного .Net Framework?
|
|
Thanks:
|
|
|
|
|
Stanislav121
|
Date: 5/17/2011
Mikhail Sukhov Stanislav121 Задержка получения данных характерна для quik или для других серверов тоже(TSLab там или TRANSAQ Connector)? Задержка есть везде. У всех она примерно одинаковая. Если скорости Квика не хватает, переходите на прямое подключение. Прямое подключение - это через Plaza 2? А Stock# работает с Plaza 2?
|
|
Thanks:
|
|
|
|
|
Stanislav121
|
Date: 5/17/2011
"Потому как на Купели HFT делать можно, но не так эффективно" Что такое Купель?
|
|
Thanks:
|
|
|
|