Alexander
|
Дата: 14.05.2011
crapulent приветсвую спасибо огромное за удобную библиотеку
возник вопрос: использую квик. регистрирую заявку через trader.registerOrder возможно ли отследить неудачу при посылке транзакции на биржу (например если интернет падал, но квик еще не прислал Disconnected)? OrdersFailed
|
|
Спасибо:
|
|
|
|
|
crapulent
|
Дата: 14.05.2011
пробовал. не работае. кусок кода: Код... 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); дожидаюсь ">", отключаю интернет, жмакаю. ордерзфэйлд не приходит.
|
|
Спасибо:
|
|
|
|
|
crapulent
|
Дата: 14.05.2011
в догонку еще вопрос. Кодusing 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 Цитата: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 не подскажете, с чем может быть связано?
|
|
Спасибо:
|
|
|
|
|
Stanislav121
|
Дата: 16.05.2011
Mikhail Sukhov Stanislav121 Какова может быть максимальная скорость работы робота(выставление заявок) ? От чего это зависит? Если вы задаете подобные вопросы, то скорее всего идете по неправильному пути. (с) жизненный опыт.[smile] Почему?
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 16.05.2011
Stanislav121 Mikhail Sukhov Stanislav121 Какова может быть максимальная скорость работы робота(выставление заявок) ? От чего это зависит? Если вы задаете подобные вопросы, то скорее всего идете по неправильному пути. (с) жизненный опыт.[smile] Почему? Если вы задаете подобные вопросы, значит у вас стратегия зависит от скорости выставления заявок. Квик - это не тот терминал, который бы подобное мог обеспечить. Он конечно может выставить хоть 10000 заявок в минуту (главное чтобы брокер не зарубил), но задержка в получении маркет данных (ситуация в стакане меняется намного чаще, чем это транслирует Квик) и проскальзывание на бирже сведет на нет всю быстроту (или вы будете лепить заявки по невыгодным ценам).
|
|
Спасибо:
|
|
|
|
|
Stanislav121
|
Дата: 16.05.2011
Mikhail Sukhov Stanislav121 Mikhail Sukhov Stanislav121 Какова может быть максимальная скорость работы робота(выставление заявок) ? От чего это зависит? Если вы задаете подобные вопросы, то скорее всего идете по неправильному пути. (с) жизненный опыт.[smile] Почему? Если вы задаете подобные вопросы, значит у вас стратегия зависит от скорости выставления заявок. Квик - это не тот терминал, который бы подобное мог обеспечить. Он конечно может выставить хоть 10000 заявок в минуту (главное чтобы брокер не зарубил), но задержка в получении маркет данных (ситуация в стакане меняется намного чаще, чем это транслирует Квик) и проскальзывание на бирже сведет на нет всю быстроту (или вы будете лепить заявки по невыгодным ценам). Да, стратегия зависит от скорости выставления заявок. Не очень Вас понимаю. Задержка получения данных характерна для quik или для других серверов тоже(TSLab там или TRANSAQ Connector)? Ну и 10k заявок в минуту не нужно.
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 16.05.2011
Stanislav121 Задержка получения данных характерна для quik или для других серверов тоже(TSLab там или TRANSAQ Connector)? Задержка есть везде. У всех она примерно одинаковая. Если скорости Квика не хватает, переходите на прямое подключение.
|
|
Спасибо:
|
|
|
|
|
Alexander
|
Дата: 17.05.2011
crapulent в догонку еще вопрос. Кодusing 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 Цитата: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?
|
|
Спасибо:
|
|
|
|
|
Stanislav121
|
Дата: 17.05.2011
Mikhail Sukhov Stanislav121 Задержка получения данных характерна для quik или для других серверов тоже(TSLab там или TRANSAQ Connector)? Задержка есть везде. У всех она примерно одинаковая. Если скорости Квика не хватает, переходите на прямое подключение. Прямое подключение - это через Plaza 2? А Stock# работает с Plaza 2?
|
|
Спасибо:
|
|
|
|
|
Stanislav121
|
Дата: 17.05.2011
"Потому как на Купели HFT делать можно, но не так эффективно" Что такое Купель?
|
|
Спасибо:
|
|
|
|