a.dobryn
|
Дата: 25.01.2011
в классе Trade есть член ExtensionInfo типа IDictionary<TKey, TValue>. А как узнать, какие ключи там есть? Конкретно мне нужно узнать, по какому лимиту была выставлена сделка
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 25.01.2011
D_Alex в классе Trade есть член ExtensionInfo типа IDictionary<TKey, TValue>. А как узнать, какие ключи там есть? Конкретно мне нужно узнать, по какому лимиту была выставлена сделка Значение в ExtensionInfo так просто не попадают. Необходимо заранее настраивать ДДЕ метаданные через QuikTrader.TradesTable. Здесь это рассказывается как сделать. И обращаться в последствии нужно так: Кодvar someValue = someTrade.ExtensionInfo[DdeTradeColumns.SomeColumn];
|
|
|
|
|
Mikhail Sukhov
|
Дата: 25.01.2011
Valdis я что то не пойму , почему событие Trader.PositionsChanged вызывается и при выставлении заявок и при исполнении их и даже просто, когда ни чего с позициями/заявками не происходит ?
События вызываются всегда, когда Квик через ДДЕ посылает обновление таблицы с позициями. А происходит это не только тогда, когда происходит сделка. В этой таблице есть и поля, которые изменяются постоянно.
|
|
Спасибо:
|
|
|
|
|
gs
|
Дата: 25.01.2011
У меня вопрос к знатокам C# и Trans2Quik.
У меня автомат работает с квиком через файловый ввод заявок и работают три разных Квика. Я решил попробовать использовать Trans2Quik. Правильно ли я понимаю, что при этом мне нужно писать разные классы-врапперы Trans2Quik для каждой TRans2Quik.dll ? Ну, например, что то вроде такого:
public interface ITrans2Quik { // члены интерфейса }
// TRANS2QUIK_1.DLL public class Trans2Quik_1 : ITrans2Quik { private readonly string _pathToQuik; [DllImport("TRANS2QUIK_1.DLL", EntryPoint = "_TRANS2QUIK_CONNECT@16", CallingConvention = CallingConvention.StdCall)] public static extern long connect(string lpcstrConnectionParamsString, ref long pnExtendedErrorCode, byte[] lpstrErrorMessage, UInt32 dwErrorMessageSize); // и т.д. }
// TRANS2QUIK_2.DLL public class Trans2Quik_2 : ITrans2Quik { private readonly string _pathToQuik;
[DllImport("TRANS2QUIK_2.DLL", EntryPoint = "_TRANS2QUIK_CONNECT@16", CallingConvention = CallingConvention.StdCall)] public static extern long connect(string lpcstrConnectionParamsString, ref long pnExtendedErrorCode, byte[] lpstrErrorMessage, UInt32 dwErrorMessageSize); // и т.д. }
Таким образом, в данной реализации для добавления нового Квика, работающего со своей TRans2Quik.dll мне нужно создавать и новый класс Trans2Quik_N. Дело в том, что 1-ый параметр DllImport это const string.
Вопрос: Нельзя ли как то на С# динамически создавать тип Trans2Quik, но с разными значениями поля где храниться значение "TRANS2QUIK.DLL" ?
Или подскажите идею реализации добавления нового враппера при помощи создания нового экземпляра без создания нового класса.
|
|
Спасибо:
|
|
|
|
|
Mikhail Sukhov
|
Дата: 26.01.2011
|
|
Спасибо:
|
|
|
|
|
a.dobryn
|
Дата: 26.01.2011
Mikhail Sukhov D_Alex в классе Trade есть член ExtensionInfo типа IDictionary<TKey, TValue>. А как узнать, какие ключи там есть? Конкретно мне нужно узнать, по какому лимиту была выставлена сделка Значение в ExtensionInfo так просто не попадают. Необходимо заранее настраивать ДДЕ метаданные через QuikTrader.TradesTable. Здесь это рассказывается как сделать. И обращаться в последствии нужно так: Кодvar someValue = someTrade.ExtensionInfo[DdeTradeColumns.SomeColumn]; понятно, спасибо =) еще вопрос: мне нужно заменять заявку после того, как она частично исполнена. У меня есть сейчас событие NewMyTrades, но там есть данные типа Trade, а для замены заявки нужно получить тип Order. Можно ли как-то найти по сделке заявку?
|
|
Спасибо:
|
|
|
|
|
Serg
|
Дата: 26.01.2011
В Trade есть данные о сделке и об ордере.
|
|
|
|
|
a.dobryn
|
Дата: 26.01.2011
|
|
Спасибо:
|
|
|
|
|
a.dobryn
|
Дата: 27.01.2011
как использовать trader.GuarantyCancelOrder(registeredOrder)? написано, что trader должен быть типа TraderHelper, откуда его взять?
|
|
Спасибо:
|
|
|
|
|
a.dobryn
|
Дата: 10.02.2011
еще вопрос - как определить, что заявка была именно исполнена, а не снята? State будет Done, а что еще посмотреть? При снятии заявки Balance в Order обнуляется или остается?
upd: все, глупый вопрос, есть метод IsMatched() upd2: а у меня нет такого метода для order
|
|
Спасибо:
|
|
|
|