Михаил Филимонов (Автор тем)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Таблица "Клиентский портфель"
 
Добрый день!

Если оставить квик на ночь с включенным выводом по DDE, то на утро таблица "Клиентский портфель" - пустая
Классический арбитраж на * счете
 
Добрый день, Разработчики!

Почему в КВИК на Едином Брокерском Счете (Открытие) или Единая Денежная Позиция (Финам), при торговле
фьючерс против спота, учитывается только вариационная маржа фьючерсов, а цена акций не учитывается?

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

Почему это не так? .  
Запуск экспорта по DDE из своего приложения
 
Добрый день!

Возможно?
Мин.возм.цен. и Макс.возм.цен.
 
Господа разработчики!
Поправьте, пожалуйста названия этих колонок в таблице "Текущие торги"
А то, в процессе работы эти колонки называются то Мин.возм.цен. и Макс.возм.цен.,
то Мин. возм. цена и Макс. возм. цена
Cкорректированное значение НРП1
 
Добрый день!

Транзакции посылаются через trans2uik.dll
Каким образом могла возникнуть эта ошибка (достаточно средств для покупки 40 лотов Россети (FEES))?
Как расчитывается "Скорректированное значение НРП1" ?
Пропускная способность trans2quik.dll
 
Уважаемые разработчики!

Сколько транзакций в секунду поддерживает trans2quik.dll ?
Экспорт по DDE таблицы Купить/продать
 
Добрый день, разработчики.

Почему, при экспорте таблицы  по DDE "Купить/продать" только с 4 колонками, а именно
1=Инструмент
2=Код инструмента
3=D long
4=D short
Передается огромное количество строк, ведь ничего не меняется в течении сессии?
Вывод "строчит" даже ночью. Зачем?

Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
Add risk : 26.07.2023 2:32:07
LUA и PIPE
 
Добрый день!
Есть ли в LUA стандартная поддержка именных каналов:(Pipe)?
Если да, то можно пример?
Прерывание экспорта по DDE
 
Добрый день!
Экспортирую таблицу "Текущие торги" с фьючерсами по DDE
При запуске, все экспортируется нормально, но иногда, через несколько минут или часов,
пропадает экспорт по одному или нескольким фьючерсам.
Версия Квик 9,7,1,10
Это только у меня такое поведение Квик:?
Пользователям trans2quik.dll на заметку!
 
В файле trans2quik_api.h

dwTransID объявлен как DWORD  ( TRANS2QUIK_TRANSACTION_REPLY_CALLBACK и  TRANS2QUIK_ORDER_STATUS_CALLBACK)

На самом деле там LONG (положительные значения)

Пишу, так как все-равно исправлять не будут...
Название столбца таблицы
 
Добрый день.
Я использую два экземпляра с одинаковыми версиями Квик.
В одинаковых таблицах имеются одинаковые столбцы, но их названия отличаются.
Н-р В одной таблице столбец называется "Макс. возм. цен.", а в другом экземпляре Квик
этот же столбец называется "Макс.возм.цена".

Возможно ли редактировать названия столбцов в таблицах?
Если да, то как это сделать?
В каком файле дистрибутива Квик находятся названия столбцов таблицы?
Лимитированная заявка на Срочной секции
 
Господа разработчики!
Пожалуйста, дайте пояснения по следующей ситуации.
Подается лимитированная заяка через Trans2quik с целью купить инструмент по указанной цене или снять заявку, если цена "ушла".
Параметры заявки

outStr:= 'ACCOUNT=' + FutAccaunt + '; TYPE=L; TRANS_ID=' + id +
          '; CLASSCODE=' + ExpData.FutData.ClassCode + '; SECCODE=' +
          ExpData.FutData.SecCode + '; ACTION=NEW_ORDER; OPERATION=' + s +
          '; EXECUTION_CONDITION=KILL_BALANCE' + '; PRICE=' + FloatToStr(price) +
          '; QUANTITY=' + FloatToStr(Qnty) + ';';

TYPE=L - лимитированная заявка, должна исполнится по цене, указанной в заявке
EXECUTION_CONDITION=KILL_BALANCE'  - если этой цены (или лучшей) нет, то заявка должна сняться.
Посылаю заявку на покупку с ценой 4927, а она исполняется по разным ценам, причем, не по тем, что указана в заявке.
Что я не так делаю?
Фондовая секция и trans2quik
 
Господа разработчики!
Возможна ли ситуация, когда я получаю TRANS2QUIK_ORDER_STATUS_CALLBACK, что сделка была совершена, но
на самом деле в терминале этой сделки нет?
Сообщение об ошибке в trans2quik
 
Добрый день!

На отмену отложенного ордера  в lpcstrTransactionReplyMessage пришло следующее сообщение:
09.11.2022 17:08:26.901 --> Error: ЂыЂ[

ЂыЂ] - переведите, пожалуйста
D long? D short таблицы ""Купить/Продать"
 
Добрый день!

Возможно ли рассчитать D Long и D Short (таблица "Купить/Продать"),
имея только таблицы "Текущие торги" и "Клиентский портфель"?
Пользовательская таблица
 
Привет!
Можно ли в Квик создать свою таблицу?
Удаление отложенного ордера через trans2quik
 
Добрый день!

Команды отсылаю в асинхронном режиме.
Что может считаться, что ордер удален, приход сообщения в pfTransReplyCB или ещё что-то должно быть?
QUIK-Junior и Фондовая секция
 
Уважаемые разработчики!
Есть пара вопросов
1. Почему не пранслируется Макс.возм.цена и Мин.возм.цена на акциях?
2. Почему котировки акций VTВR не кратны шагу цены?  
Не исполняется ордер на валютной секции
 
Добрый день!
Отправляю ордер через trans2qiuk.dll в Квик-джуниор (демо Арка) ордер исполняется, а на боевом Квике (Открытие) нет.
Кто-нибудь сталкивался с подобной ситуацией на валютной секции?
Недостаточно лицензий!
 
Добрый день!

Что может означать такое сообщение?
Ключ сервера или пользователя не найден
 
По какой причине может появляться это сообщение?
9.3.1.11
 
Добрый день!
W10 Home 64
Через 3-4 дня работы Квик зависает
Открытие, реал
Как бороться?
Обновился до 9.2.3.15 и получил TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND
 
Как бороться?

Везде есть проверки па путь и название DLL
До обновления самого терминала все прекрасно работало!
Котировки с более точным временем
 
Добрый день!
Есть ли в КВИК таблица с ASK, BID и LAST со временем точнее секунды?
getMoneyEx
 
Добрый день!
Функция getMoneyEx() возвращает таблицу "Позиции по деньгам"
В справке нет названия колонки "Доступно"
Как она называется (см. картинку)?
Эвента на изменение таблицы "Клиентский портфель"
 
Добрый день!

Как-нибудь можно реализовать такое?
PostMessage из LUA
 
Добрый день!

У кого-нибудь есть наработки по этому вопросу?
Инструмент Si-12.20-3.21
 
Добрый день!
Кто-нибудь знает почему покупая/продавая инструмент Si-12.20-3.21
в позициях появляются обычные фьючерсы Si-12.20 и Si-3.21?
Это же разные инструменты и стаканы у них разные.
Можно получить развернутый ответ?
Как различать котировки из двух стаканов, при выводе через DDE?
 
Собственно вопрос
Время исполнения ордеров на ФОРТС и Фондовой секциях
 
Добрый день!

Скажите, уважаемые разработчики, почему время исполнения ордеров на ФОРТС в разы меньше, чем на Фондовой секции?
Ордер SRH9 отправлен: 15.02.19 20:30:12
Ордер SRH9 исполнился: 15.02.19 20:30:12 (62 мс)
Ордер SBER отправлен: 15.02.19 20:30:12
Ордер SBER исполнился: 15.02.19 20:30:13 (562 мс)

Ордер SRH9 отправлен: 15.02.19 20:30:13
Ордер SRH9 исполнился: 15.02.19 20:30:13 (250 мс)
Ордер SBER отправлен: 15.02.19 20:30:13
Ордер SBER исполнился: 15.02.19 20:30:14 (561 мс)

Ордер SRH9 отправлен: 15.02.19 20:30:14
Ордер SRH9 исполнился: 15.02.19 20:30:14 (125 мс)
Ордер SBER отправлен: 15.02.19 20:30:14
Ордер SBER исполнился: 15.02.19 20:30:15 (749 мс)

Ордер SRH9 отправлен: 15.02.19 20:30:16
Ордер SRH9 исполнился: 15.02.19 20:30:16 (124 мс)
Ордер SBER отправлен: 15.02.19 20:30:16
Ордер SBER исполнился: 15.02.19 20:30:17 (999 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:23
Ордер SRH9 исполнился: 15.02.19 20:31:23 (125 мс)
Ордер SBER отправлен: 15.02.19 20:31:23
Ордер SBER исполнился: 15.02.19 20:31:24 (1560 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:27
Ордер SRH9 исполнился: 15.02.19 20:31:27 (109 мс)
Ордер SBER отправлен: 15.02.19 20:31:27
Ордер SBER исполнился: 15.02.19 20:31:28 (1014 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:29
Ордер SRH9 исполнился: 15.02.19 20:31:29 (187 мс)
Ордер SBER отправлен: 15.02.19 20:31:29
Ордер SBER исполнился: 15.02.19 20:31:30 (1202 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:31
Ордер SRH9 исполнился: 15.02.19 20:31:31 (202 мс)
Ордер SBER отправлен: 15.02.19 20:31:31
Ордер SBER исполнился: 15.02.19 20:31:32 (796 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:32
Ордер SRH9 исполнился: 15.02.19 20:31:33 (109 мс)
Ордер SBER отправлен: 15.02.19 20:31:33
Ордер SBER исполнился: 15.02.19 20:31:34 (1435 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:36
Ордер SRH9 исполнился: 15.02.19 20:31:36 (203 мс)
Ордер SBER отправлен: 15.02.19 20:31:36
Ордер SBER исполнился: 15.02.19 20:31:37 (437 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:41
Ордер SRH9 исполнился: 15.02.19 20:31:41 (125 мс)
Ордер SBER отправлен: 15.02.19 20:31:41
Ордер SBER исполнился: 15.02.19 20:31:42 (873 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:42
Ордер SRH9 исполнился: 15.02.19 20:31:42 (109 мс)
Ордер SBER отправлен: 15.02.19 20:31:42
Ордер SBER исполнился: 15.02.19 20:31:43 (687 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:51
Ордер SRH9 исполнился: 15.02.19 20:31:51 (140 мс)
Ордер SBER отправлен: 15.02.19 20:31:51
Ордер SBER исполнился: 15.02.19 20:31:51 (312 мс)

Ордер SRH9 отправлен: 15.02.19 20:31:56
Ордер SRH9 исполнился: 15.02.19 20:31:56 (109 мс)
Ордер SBER отправлен: 15.02.19 20:31:56
Ордер SBER исполнился: 15.02.19 20:31:57 (1186 мс)
Исправление ошибок в trans2quik.dll
 
Уважаемые разработчики!

Понятно, что точный срок обновления trans2quik.dll невозможно огласить, но
хотелось бы знать ВАШИ планы по срокам выхода обновления.
QUIK Junior
 
Уважаемые разработчики!

"Почините" котировки в фондовой секции.
Например:
Шаг цены акции Роснефти - 0,05, а у Вас в стакане огромное кол-во котировок
не кратных шагу цены.
Сценарий при TRANS2QUIK_DLL_DISCONNECTED
 
Добрый день!
Использую DDE + trans2quik.dll
Все нормально работает, но возник вопрос.
Установив коллбэк TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK,  
возможно получить в TRANS2QUIK_CONNECTION_STATUS_CALLBACK
следующие значения
TRANS2QUIK_DLL_DISCONNECTED
TRANS2QUIK_DLL_CONNECTED
TRANS2QUIK_QUIK_DISCONNECTED
TRANS2QUIK_QUIK_CONNECTED

А какие действия нужно предпринимать, получив эти сообщения?
Н-р:
TRANS2QUIK_DLL_DISCONNECTED - теряются ли коллбэки и другие настройки?
И т.д...
Какие сценарии возможны?
DDE и trans2quik.dll
 
Добрый день!

А не у кого небыло такой ситуации:

Если данные просто выводятся из трёх таблиц (Фьючерсы, Акции и состояние счёта) по DDE, то всё ноормально (проверял 3 суток),
НО, если отдаются торговые ассинхронные приказы через trans2quik.dll, то иногда, DDE приёмник "падает" "invalid pointer operation"
TRANS2QUIK_TRANSACTION_REPLY_CLASS_CODE
 
Привет!
Кто-нибудь пользовался этой функцией (trans2quik.dll)
TRANS2QUIK_TRANSACTION_REPLY_CLASS_CODE ,
intptr_t
 
Привет!

Как в Delphi объявить intptr_t ???  
Вывод по DDE таблицы [Состояние счёта]
 
Добавить в таблицу [Состояние счёта] возможность добавление закреплённыж внизу значений (Н-р "свободно")
Экспорт по DDE таблицы [Состояние счёта]
 
Добрый день!
А как вывести по DDE эти данные?
[img]file:///D:/Output/Quik/Data.jpg[/img]
TRANS2QUIK_SUBSCRIBE_ORDERS ()
 
Добрый день!
А как сделать, что бы в один и тот же класс добавлять инструменты не сразу через "|" с промежутками?
Какой порядок действий при этом?
Delphi XE4 и trans2quik.dll
 
Добрый день!

Загружаю trans2quik.dll динамически
unit tr2quik;

interface

uses
 WinApi.Windows, System.Sysutils;

const
 DllName = 'TRANS2QUIK.DLL';
//-------------- Constants --------------------------
 TRANS2QUIK_SUCCESS                   = 0;
 TRANS2QUIK_FAILED                    = 1;
 TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND   = 2;
 TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED = 3;
 TRANS2QUIK_ALREADY_CONNECTED_TO_QUIK = 4;
 TRANS2QUIK_WRONG_SYNTAX              = 5;
 TRANS2QUIK_QUIK_NOT_CONNECTED        = 6;
 TRANS2QUIK_DLL_NOT_CONNECTED         = 7;
 TRANS2QUIK_QUIK_CONNECTED            = 8;
 TRANS2QUIK_QUIK_DISCONNECTED         = 9;
 TRANS2QUIK_DLL_CONNECTED             = 10;
 TRANS2QUIK_DLL_DISCONNECTED          = 11;
 TRANS2QUIK_MEMORY_ALLOCATION_ERROR   = 12;
 TRANS2QUIK_WRONG_CONNECTION_HANDLE   = 13;
 TRANS2QUIK_WRONG_INPUT_PARAMS        = 14;

 ORDER_QUIKDATE          = 0;
 ORDER_QUIKTIME          = 1;
 ORDER_MICROSEC          = 2;
 ORDER_WITHDRAW_QUIKDATE = 3;
 ORDER_WITHDRAW_QUIKTIME = 4;
 ORDER_WITHDRAW_MICROSEC = 5;

 TRADE_QUIKDATE = 0;
 TRADE_QUIKTIME = 1;
 TRADE_MICROSEC = 2;

//-------- Load library function -------
 function LibLoad(const aPath: string): THandle;

 //------------------------- Types ------------------------------
type
 intptr_t = NativeInt;
 Quantity = int64;
 EntityNumber = uint64;
 PEntityNumber = ^EntityNumber;
 OrderDescr = intptr_t;
 TradeDescr = intptr_t;
 TransReplyDescr = intptr_t;

//----------------------- CallBack procedures ------------------
 TRANS2QUIK_CONNECTION_STATUS_CALLBACK = procedure(nConnectionEvent: long;
                                     var nExtendedErrorCode: long;
                                       var lpcstrInfoMessage: LPCSTR); stdcall;

 TRANS2QUIK_TRANSACTION_REPLY_CALLBACK = procedure(var nTransactionResult: long;
                                     var nTransactionExtendedErrorCode: long;
                                     var nTransactionReplyCode: long;
                                     var dwTransId: DWord;
                                       nOrderNum: EntityNumber;
                                     var lpcstrTransactionReplyMessage: LPCSTR;
                                     var transReplyDescriptor: TransReplyDescr); stdcall;

 TRANS2QUIK_ORDER_STATUS_CALLBACK = procedure( nMode: long;
                                   dwTransID: DWORD;
                                 dNumber: EntityNumber;
                                 ClassCode: LPCSTR;
                                 SecCode: LPCSTR;
                                 dPrice: double;
                                 nBalance: Quantity;
                                 dValue: double;
                                 nIsSell: long;
                                 nStatus: long;
                                 orderDescriptor: OrderDescr); stdcall;

 TRANS2QUIK_TRADE_STATUS_CALLBACK = procedure( nMode: long;
                                 dNumber: EntityNumber;
                                 dOrderNumber: EntityNumber;
                                 ClassCode: LPCSTR;
                                 SecCode: LPCSTR;
                                 dPrice: double;
                                 nQty: Quantity;
                                 dValue: double;
                                 nIsSell: long;
                                 tradeDescriptor: TradeDescr); stdcall;
//------------ Functions -------------------
 TRANS2QUIK_SEND_SYNC_TRANSACTION = function(lpstTransactionString: LPSTR;
                                             var pnReplyCode: long;
                                              pdwTransId: PDWORD;
                                              var pnOrderNum:EntityNumber;
                                              lpstrResultMessage: LPSTR;
                                              dwResultMessageSize: DWORD;
                                              var pnExtendedErrorCode: long;
                                              lpstErrorMessage: LPSTR;
                                              dwErrorMessageSize: DWORD): long; stdcall;
 TRANS2QUIK_SEND_ASYNC_TRANSACTION = function(lpstTransactionString: LPSTR;
                                              var pnExtendedErrorCode: long;
                                              var lpstErrorMessage: LPSTR;
                                              var dwErrorMessageSize: DWORD): long; stdcall;
 TRANS2QUIK_CONNECT = function(lpstConnectionParamsString: LPSTR;
                               var pnExtendedErrorCode: long;
                               var lpstrErrorMessage: LPSTR;
                               var dwErrorMessageSize: DWORD): long; stdcall;
 TRANS2QUIK_DISCONNECT = function(var pnExtendedErrorCode: long;
                                  lpstrErrorMessage: LPSTR;
                                  dwErrorMessageSize: DWORD): long; stdcall;
 TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK = function(pfConnectionStatusCallback: TRANS2QUIK_CONNECTION_STATUS_CALLBACK;
                                                      var pnExtendedErrorCode: long;
                                                      lpstrErrorMessage: LPSTR;
                                                      dwErrorMessageSize: DWORD): long; stdcall;
 TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK = function(pfTransactionReplyCallback: TRANS2QUIK_TRANSACTION_REPLY_CALLBACK;
                                                       var pnExtendedErrorCode: long;
                                                       lpstrErrorMessage: LPSTR;
                                                       dwErrorMessageSize: DWORD): long; stdcall;
 TRANS2QUIK_IS_QUIK_CONNECTED = function(var pnExtendedErrorCode: long;
                                         lpstrErrorMessage: LPSTR;
                                         dwErrorMessageSize: Dword): long; stdcall;
 TRANS2QUIK_IS_DLL_CONNECTED = function(var pnExtendedErrorCode: long;
                                        lpstrErrorMessage: LPSTR;
                                        dwErrorMessageSize: DWORD): long; stdcall;
 TRANS2QUIK_SUBSCRIBE_ORDERS = function(ClassCode: LPSTR;
                                        Seccodes: LPSTR): long; stdcall;
 TRANS2QUIK_UNSUBSCRIBE_ORDERS = function(): long; stdcall;
 TRANS2QUIK_START_ORDERS = function(pfnOrderStatusCallback: TRANS2QUIK_ORDER_STATUS_CALLBACK): long; stdcall;
 TRANS2QUIK_ORDER_QTY = function(orderDescriptor: OrderDescr): Quantity; stdcall;
 TRANS2QUIK_ORDER_DATE = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_TIME = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_ACTIVATION_TIME = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_WITHDRAW_TIME = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_EXPIRY = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_ACCRUED_INT = function(orderDescriptor: OrderDescr): Double; stdcall;
 TRANS2QUIK_ORDER_YIELD = function(orderDescriptor: OrderDescr): double; stdcall;
 TRANS2QUIK_ORDER_UID = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_VISIBLE_QTY = function(orderDescriptor: OrderDescr): Quantity; stdcall;
 TRANS2QUIK_ORDER_PERIOD = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_FILETIME = function(orderDescriptor: OrderDescr): FILETIME; stdcall;
 TRANS2QUIK_ORDER_DATE_TIME = function(orderDescriptor: OrderDescr; nTimeType: long): long; stdcall;
 TRANS2QUIK_ORDER_WITHDRAW_FILETIME = function(orderDescriptor: OrderDescr): FILETIME; stdcall;
 TRANS2QUIK_ORDER_VALUE_ENTRY_TYPE = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_EXTENDED_FLAGS = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_MIN_QTY = function(orderDescriptor: OrderDescr): Quantity; stdcall;
 TRANS2QUIK_ORDER_EXEC_TYPE = function(orderDescriptor: OrderDescr): long; stdcall;
 TRANS2QUIK_ORDER_AWG_PRICE = function(orderDescriptor: OrderDescr): double; stdcall;
 TRANS2QUIK_ORDER_USERID = function(orderDescriptor: OrderDescr): LPTSTR; stdcall;
 TRANS2QUIK_ORDER_ACCOUNT = function(orderDescriptor: OrderDescr): LPTSTR; stdcall;
 TRANS2QUIK_ORDER_BROKERREF = function(orderDescriptor: OrderDescr): LPTSTR; stdcall;
 TRANS2QUIK_ORDER_CLIENT_CODE = function(orderDescriptor: OrderDescr): LPTSTR; stdcall;
 TRANS2QUIK_ORDER_FIRMID = function(orderDescriptor: OrderDescr): LPTSTR; stdcall;
 TRANS2QUIK_ORDER_REJECT_REASON = function(orderDescriptor: OrderDescr): LPTSTR; stdcall;
 TRANS2QUIK_SUBSCRIBE_TRADES = function(ClassCode: LPSTR; Seccodes: LPSTR): long; stdcall;
 TRANS2QUIK_UNSUBSCRIBE_TRADES = function(): long;  stdcall;
 TRANS2QUIK_START_TRADES = function(pfnTradeStatusCallback: TRANS2QUIK_TRADE_STATUS_CALLBACK): long; stdcall;
 TRANS2QUIK_TRADE_DATE = function(tradeDescriptor: TradeDescr): long; stdcall;
 TRANS2QUIK_TRADE_SETTLE_DATE = function(tradeDescriptor: TradeDescr): long; stdcall;
 TRANS2QUIK_TRADE_TIME = function(tradeDescriptor: TradeDescr): long; stdcall;
 TRANS2QUIK_TRADE_IS_MARGINAL = function(tradeDescriptor: TradeDescr): long; stdcall;
 TRANS2QUIK_TRADE_ACCRUED_INT = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_YIELD = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_TS_COMMISSION = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_CLEARING_CENTER_COMMISSION = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_EXCHANGE_COMMISSION = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_TRADING_SYSTEM_COMMISSION = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_PRICE2 = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_REPO_RATE = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_REPO_VALUE = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_REPO2_VALUE = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_ACCRUED_INT2 = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_REPO_TERM = function(tradeDescriptor: TradeDescr): long; stdcall;
 TRANS2QUIK_TRADE_START_DISCOUNT = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_LOWER_DISCOUNT = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_UPPER_DISCOUNT = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_BLOCK_SECURITIES = function(tradeDescriptor: TradeDescr): long; stdcall;
 TRANS2QUIK_TRADE_PERIOD = function(tradeDescriptor: TradeDescr): long; stdcall;
 TRANS2QUIK_TRADE_KIND = function(tradeDescriptor: TradeDescr): long; stdcall;
 TRANS2QUIK_TRADE_FILETIME = function(tradeDescriptor: TradeDescr): FILETIME; stdcall;
 TRANS2QUIK_TRADE_DATE_TIME = function(tradeDescriptor: TradeDescr; nTimeType: long): long; stdcall;
 TRANS2QUIK_TRADE_BROKER_COMMISSION = function(tradeDescriptor: TradeDescr): double; stdcall;
 TRANS2QUIK_TRADE_TRANSID = function(tradeDescriptor: TradeDescr): long; stdcall;
 TRANS2QUIK_TRADE_CURRENCY = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_SETTLE_CURRENCY = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_SETTLE_CODE = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_ACCOUNT = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_BROKERREF = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_CLIENT_CODE = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_USERID = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_FIRMID = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_PARTNER_FIRMID = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_EXCHANGE_CODE = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRADE_STATION_ID = function(tradeDescriptor: TradeDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_CLASS_CODE = function(tradeDescriptor: TransReplyDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_SEC_CODE = function(tradeDescriptor: TransReplyDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_PRICE = function(tradeDescriptor: TransReplyDescr): double; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_QUANTITY = function(tradeDescriptor: TransReplyDescr): Quantity; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_BALANCE = function(tradeDescriptor: TransReplyDescr): Quantity; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_FIRMID = function(tradeDescriptor: TransReplyDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_ACCOUNT = function(tradeDescriptor: TransReplyDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_CLIENT_CODE = function(tradeDescriptor: TransReplyDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_BROKERREF = function(tradeDescriptor: TransReplyDescr): LPTSTR; stdcall;
 TRANS2QUIK_TRANSACTION_REPLY_EXCHANGE_CODE = function(tradeDescriptor: TransReplyDescr): LPTSTR; stdcall;

var
 T2QConnStatCallBack: TRANS2QUIK_CONNECTION_STATUS_CALLBACK;
 T2QTransReplyCallBack:  TRANS2QUIK_TRANSACTION_REPLY_CALLBACK;
 T2QOrderStatCallBack: TRANS2QUIK_ORDER_STATUS_CALLBACK;
 T2QTradeStatCallBack: TRANS2QUIK_TRADE_STATUS_CALLBACK;
 T2QSendSyncTrans: TRANS2QUIK_SEND_SYNC_TRANSACTION;
 T2QSendASyncTrans: TRANS2QUIK_SEND_ASYNC_TRANSACTION;
 T2QConnect: TRANS2QUIK_CONNECT;
 T2QDisconnect: TRANS2QUIK_DISCONNECT;
 T2QSetConnStatCallBAck: TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK;
 T2QSetTransReplyCallBAck: TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK;
 T2QIsQuikConnected: TRANS2QUIK_IS_QUIK_CONNECTED;
 T2QIsDllConnected: TRANS2QUIK_IS_DLL_CONNECTED;
 T2QSubscribeOrders: TRANS2QUIK_SUBSCRIBE_ORDERS;
 T2QUnSubscribeOrders: TRANS2QUIK_UNSUBSCRIBE_ORDERS;
 T2QStartOrders: TRANS2QUIK_START_ORDERS;
 T2QOrderQty: TRANS2QUIK_ORDER_QTY;
 T2QOrderDate: TRANS2QUIK_ORDER_DATE;
 T2QOrderTime: TRANS2QUIK_ORDER_TIME;
 T2QOrderActiveTime: TRANS2QUIK_ORDER_ACTIVATION_TIME;
 T2QOrderWithdrawTime: TRANS2QUIK_ORDER_WITHDRAW_TIME;
 T2QOrderExpiry: TRANS2QUIK_ORDER_EXPIRY;
 T2QOrderAccruedInt: TRANS2QUIK_ORDER_ACCRUED_INT;
 T2QOrderYield: TRANS2QUIK_ORDER_YIELD;
 T2QOrderUid: TRANS2QUIK_ORDER_UID;
 T2QOrderVisibleQty: TRANS2QUIK_ORDER_VISIBLE_QTY;
 T2QOrderPeriod: TRANS2QUIK_ORDER_PERIOD;
 T2QOrderFileTime: TRANS2QUIK_ORDER_FILETIME;
 T2QOrderDateTime: TRANS2QUIK_ORDER_DATE_TIME;
 T2QOrderWithdrawFileTime: TRANS2QUIK_ORDER_WITHDRAW_FILETIME;
 T2QOrderValueEntryType: TRANS2QUIK_ORDER_VALUE_ENTRY_TYPE;
 T2QOrderExtdFlags: TRANS2QUIK_ORDER_EXTENDED_FLAGS;
 T2QOrderMinQty: TRANS2QUIK_ORDER_MIN_QTY;
 T2QOrderExecType: TRANS2QUIK_ORDER_EXEC_TYPE;
 T2QOrderAwgPrice: TRANS2QUIK_ORDER_AWG_PRICE;
 T2QOrderUserId: TRANS2QUIK_ORDER_USERID;
 T2QOrderAccaunt: TRANS2QUIK_ORDER_ACCOUNT;
 T2QOrderBrokerRef: TRANS2QUIK_ORDER_BROKERREF;
 T2QOrderClientCode: TRANS2QUIK_ORDER_CLIENT_CODE;
 T2QOrderFirmId: TRANS2QUIK_ORDER_FIRMID;
 T2QOrderRejectReason: TRANS2QUIK_ORDER_REJECT_REASON;
 T2QSubscribeTrades: TRANS2QUIK_SUBSCRIBE_TRADES;
 T2QUnSubscribeTrades: TRANS2QUIK_UNSUBSCRIBE_TRADES;
 T2QStartTrades: TRANS2QUIK_START_TRADES;
 T2QTradeDate: TRANS2QUIK_TRADE_DATE;
 T2QTradeSettleDate: TRANS2QUIK_TRADE_SETTLE_DATE;
 T2QTradeTime: TRANS2QUIK_TRADE_TIME;
 T2QTradeIsMarginal: TRANS2QUIK_TRADE_IS_MARGINAL;
 T2QTradeAccruedInt: TRANS2QUIK_TRADE_ACCRUED_INT;
 T2QTradeYield: TRANS2QUIK_TRADE_YIELD;
 T2QTradeTSCommission: TRANS2QUIK_TRADE_TS_COMMISSION;
 T2QTradeClCenterCommission: TRANS2QUIK_TRADE_CLEARING_CENTER_COMMISSION;
 T2QTradeExcCommission: TRANS2QUIK_TRADE_EXCHANGE_COMMISSION;
 T2QTradeTrSysCommission: TRANS2QUIK_TRADE_TRADING_SYSTEM_COMMISSION;
 T2QTradePrice2: TRANS2QUIK_TRADE_PRICE2;
 T2QTradeRepoRate: TRANS2QUIK_TRADE_REPO_RATE;
 T2QTradeRepoValue: TRANS2QUIK_TRADE_REPO_VALUE;
 T2QTradeRepo2Value: TRANS2QUIK_TRADE_REPO2_VALUE;
 T2QTradeAccruedInt2: TRANS2QUIK_TRADE_ACCRUED_INT2;
 T2QTradeRepoTerm: TRANS2QUIK_TRADE_REPO_TERM;
 T2QTradeStDiscount: TRANS2QUIK_TRADE_START_DISCOUNT;
 T2QTradeLwDiscount: TRANS2QUIK_TRADE_LOWER_DISCOUNT;
 T2QTradeUpDiscount: TRANS2QUIK_TRADE_UPPER_DISCOUNT;
 T2QTradeBlSecur: TRANS2QUIK_TRADE_BLOCK_SECURITIES;
 T2QTradePeriod: TRANS2QUIK_TRADE_PERIOD;
 T2QTradeKind: TRANS2QUIK_TRADE_KIND;
 T2QTradeFileName: TRANS2QUIK_TRADE_FILETIME;
 T2QTradeDateTime: TRANS2QUIK_TRADE_DATE_TIME;
 T2QTradeBrCommission: TRANS2QUIK_TRADE_BROKER_COMMISSION;
 T2QTradeTransId: TRANS2QUIK_TRADE_TRANSID;
 T2QTradeCurrensy: TRANS2QUIK_TRADE_CURRENCY;
 T2QTradeSettlCurr: TRANS2QUIK_TRADE_SETTLE_CURRENCY;
 T2QTradeSettlCode: TRANS2QUIK_TRADE_SETTLE_CODE;
 T2QTradeAccount: TRANS2QUIK_TRADE_ACCOUNT;
 T2QTradeBrRef: TRANS2QUIK_TRADE_BROKERREF;
 T2QTradeClCode: TRANS2QUIK_TRADE_CLIENT_CODE;
 T2QTradeUserId: TRANS2QUIK_TRADE_USERID;
 T2QTradeFirmId: TRANS2QUIK_TRADE_FIRMID;
 T2QTradePartFirmId: TRANS2QUIK_TRADE_PARTNER_FIRMID;
 T2QTradeExcCode: TRANS2QUIK_TRADE_EXCHANGE_CODE;
 T2QTradeStationId: TRANS2QUIK_TRADE_STATION_ID;
 T2QTransReplyClassCode: TRANS2QUIK_TRANSACTION_REPLY_CLASS_CODE;
 T2QTransReplySecCode: TRANS2QUIK_TRANSACTION_REPLY_SEC_CODE;
 T2QTransReplyPrice: TRANS2QUIK_TRANSACTION_REPLY_PRICE;
 T2QTransReplyQty: TRANS2QUIK_TRANSACTION_REPLY_QUANTITY;
 T2QTransReplyBal: TRANS2QUIK_TRANSACTION_REPLY_BALANCE;
 T2QTransReplyFirmId: TRANS2QUIK_TRANSACTION_REPLY_FIRMID;
 T2QTransReplyAccount: TRANS2QUIK_TRANSACTION_REPLY_ACCOUNT;
 T2QTransReplyClCode: TRANS2QUIK_TRANSACTION_REPLY_CLIENT_CODE;
 T2QTransReplyBrRef: TRANS2QUIK_TRANSACTION_REPLY_BROKERREF;
 T2QTransReplyExcCode: TRANS2QUIK_TRANSACTION_REPLY_EXCHANGE_CODE;

implementation


function LibLoad(const aPath: string): THandle;
begin
 Result:= LoadLibrary(PWideChar(IncludeTrailingPathDelimiter(aPath) + DllName));
 @T2QSendSyncTrans := GetProcAddress(Result, PWideChar('TRANS2QUIK_SEND_SYNC_TRANSACTION'));
 if(addr(T2QSendSyncTrans) = nil) then
 begin
    Result:= 0;
    Exit;
 end;
 @T2QSendASyncTrans := GetProcAddress(Result, PWideChar('TRANS2QUIK_SEND_ASYNC_TRANSACTION'));
 if(addr(T2QSendASyncTrans) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QConnect:= GetProcAddress(Result, PWideChar('TRANS2QUIK_CONNECT'));
 if(addr(T2QConnect) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QDisconnect := GetProcAddress(Result, PWideChar('TRANS2QUIK_DISCONNECT'));
 if(addr(T2QDisconnect) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QSetConnStatCallBAck := GetProcAddress(Result, PWideChar('TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK'));
 if(addr(T2QSetConnStatCallBAck) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QSetTransReplyCallBAck := GetProcAddress(Result, PWideChar('TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK'));
 if(addr(T2QSetTransReplyCallBAck) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QIsQuikConnected := GetProcAddress(Result, PWideChar('TRANS2QUIK_IS_QUIK_CONNECTED'));
 if(addr(T2QIsQuikConnected) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QIsDllConnected := GetProcAddress(Result, PWideChar('TRANS2QUIK_IS_DLL_CONNECTED'));
 if(addr(T2QIsDllConnected) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QSubscribeOrders := GetProcAddress(Result, PWideChar('TRANS2QUIK_SUBSCRIBE_ORDERS'));
 if(addr(T2QSubscribeOrders) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QUnSubscribeOrders := GetProcAddress(Result, PWideChar('TRANS2QUIK_UNSUBSCRIBE_ORDERS'));
 if(addr(T2QUnSubscribeOrders) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QStartOrders := GetProcAddress(Result, PWideChar('TRANS2QUIK_START_ORDERS'));
 if(addr(T2QStartOrders) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderQty := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_QTY'));
 if(addr(T2QOrderQty) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderDate := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_DATE'));
 if(addr(T2QOrderDate) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderTime := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_TIME'));
 if(addr(T2QOrderTime) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderActiveTime := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_ACTIVATION_TIME'));
 if(addr(T2QOrderActiveTime) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderWithdrawTime := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_WITHDRAW_TIME'));
 if(addr(T2QOrderWithdrawTime) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderExpiry := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_EXPIRY'));
 if(addr(T2QOrderExpiry) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderAccruedInt := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_ACCRUED_INT'));
 if(addr(T2QOrderAccruedInt) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderYield := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_YIELD'));
 if(addr(T2QOrderYield) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderUid := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_UID'));
 if(addr(T2QOrderUid) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderVisibleQty := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_VISIBLE_QTY'));
 if(addr(T2QOrderVisibleQty) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderPeriod := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_PERIOD'));
 if(addr(T2QOrderPeriod) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderFileTime := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_FILETIME'));
 if(addr(T2QOrderFileTime) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderDateTime := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_DATE_TIME'));
 if(addr(T2QOrderDateTime) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderWithdrawFileTime := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_WITHDRAW_FILETIME'));
 if(addr(T2QOrderWithdrawFileTime) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderValueEntryType := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_VALUE_ENTRY_TYPE'));
 if(addr(T2QOrderValueEntryType) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderExtdFlags := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_EXTENDED_FLAGS'));
 if(addr(T2QOrderExtdFlags) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderMinQty := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_MIN_QTY'));
 if(addr(T2QOrderMinQty) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderExecType := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_EXEC_TYPE'));
 if(addr(T2QOrderExecType) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderAwgPrice := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_AWG_PRICE'));
 if(addr(T2QOrderAwgPrice) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderUserId := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_USERID'));
 if(addr(T2QOrderUserId) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderAccaunt := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_ACCOUNT'));
 if(addr(T2QOrderAccaunt) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderBrokerRef := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_BROKERREF'));
 if(addr(T2QOrderBrokerRef) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderClientCode := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_CLIENT_CODE'));
 if(addr(T2QOrderClientCode) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderFirmId := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_FIRMID'));
 if(addr(T2QOrderFirmId) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QOrderRejectReason := GetProcAddress(Result, PWideChar('TRANS2QUIK_ORDER_REJECT_REASON'));
 if(addr(T2QOrderRejectReason) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QSubscribeTrades := GetProcAddress(Result, PWideChar('TRANS2QUIK_SUBSCRIBE_TRADES'));
 if(addr(T2QSubscribeTrades) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QUnSubscribeTrades := GetProcAddress(Result, PWideChar('TRANS2QUIK_UNSUBSCRIBE_TRADES'));
 if(addr(T2QUnSubscribeTrades) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QStartTrades := GetProcAddress(Result, PWideChar('TRANS2QUIK_START_TRADES'));
 if(addr(T2QStartTrades) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeDate := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_DATE'));
 if(addr(T2QTradeDate) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeSettleDate := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_SETTLE_DATE'));
 if(addr(T2QTradeSettleDate) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeTime := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_TIME'));
 if(addr(T2QTradeTime) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeIsMarginal := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_IS_MARGINAL'));
 if(addr(T2QTradeIsMarginal) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeAccruedInt := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_ACCRUED_INT'));
 if(addr(T2QTradeAccruedInt) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeYield := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_YIELD'));
 if(addr(T2QTradeYield) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeTSCommission := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_TS_COMMISSION'));
 if(addr(T2QTradeTSCommission) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeClCenterCommission := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_TS_COMMISSION'));
 if(addr(T2QTradeClCenterCommission) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeExcCommission := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_EXCHANGE_COMMISSION'));
 if(addr(T2QTradeExcCommission) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeTrSysCommission := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_TRADING_SYSTEM_COMMISSION'));
 if(addr(T2QTradeTrSysCommission) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradePrice2 := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_PRICE2'));
 if(addr(T2QTradePrice2) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeRepoRate := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_REPO_RATE'));
 if(addr(T2QTradeRepoRate) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeRepoValue := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_REPO_VALUE'));
 if(addr(T2QTradeRepoValue) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeRepo2Value := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_REPO2_VALUE'));
 if(addr(T2QTradeRepo2Value) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeAccruedInt2 := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_ACCRUED_INT2'));
 if(addr(T2QTradeAccruedInt2) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeRepoTerm := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_REPO_TERM'));
 if(addr(T2QTradeRepoTerm) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeStDiscount := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_START_DISCOUNT'));
 if(addr(T2QTradeStDiscount) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeLwDiscount := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_LOWER_DISCOUNT'));
 if(addr(T2QTradeLwDiscount) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeUpDiscount := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_UPPER_DISCOUNT'));
 if(addr(T2QTradeUpDiscount) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeBlSecur := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_UPPER_DISCOUNT'));
 if(addr(T2QTradeBlSecur) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradePeriod := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_PERIOD'));
 if(addr(T2QTradePeriod) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeKind := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_KIND'));
 if(addr(T2QTradeKind) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeFileName := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_FILETIME'));
 if(addr(T2QTradeFileName) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeDateTime := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_DATE_TIME'));
 if(addr(T2QTradeDateTime) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeBrCommission := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_BROKER_COMMISSION'));
 if(addr(T2QTradeBrCommission) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeTransId := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_TRANSID'));
 if(addr(T2QTradeTransId) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeCurrensy := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_CURRENCY'));
 if(addr(T2QTradeCurrensy) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeSettlCurr := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_SETTLE_CURRENCY'));
 if(addr(T2QTradeSettlCurr) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeSettlCode := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_SETTLE_CODE'));
 if(addr(T2QTradeSettlCode) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeAccount := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_ACCOUNT'));
 if(addr(T2QTradeAccount) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeBrRef := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_BROKERREF'));
 if(addr(T2QTradeBrRef) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeClCode := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_CLIENT_CODE'));
 if(addr(T2QTradeClCode) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeUserId := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_USERID'));
 if(addr(T2QTradeUserId) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeFirmId := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_FIRMID'));
 if(addr(T2QTradeFirmId) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradePartFirmId := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_PARTNER_FIRMID'));
 if(addr(T2QTradePartFirmId) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeExcCode := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_EXCHANGE_CODE'));
 if(addr(T2QTradeExcCode) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTradeStationId := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRADE_STATION_ID'));
 if(addr(T2QTradeStationId) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplyClassCode := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_CLASS_CODE'));
 if(addr(T2QTransReplyClassCode) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplySecCode := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_SEC_CODE'));
 if(addr(T2QTransReplySecCode) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplyPrice := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_PRICE'));
 if(addr(T2QTransReplyPrice) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplyQty := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_QUANTITY'));
 if(addr(T2QTransReplyQty) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplyBal := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_BALANCE'));
 if(addr(T2QTransReplyBal) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplyFirmId := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_FIRMID'));
 if(addr(T2QTransReplyFirmId) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplyAccount := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_ACCOUNT'));
 if(addr(T2QTransReplyAccount) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplyClCode := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_CLIENT_CODE'));
 if(addr(T2QTransReplyClCode) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplyBrRef := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_BROKERREF'));
 if(addr(T2QTransReplyBrRef) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
 @T2QTransReplyExcCode := GetProcAddress(Result, PWideChar('TRANS2QUIK_TRANSACTION_REPLY_EXCHANGE_CODE'));
 if(addr(T2QTransReplyExcCode) = nil) then
 begin
   Result:= 0;
   Exit;
 end;
end;

end.

Всё нормально, хендл получен адреса функций тоже ОК,
но, при вызове функции
//--- load trsns2quik.dll ----
 if (QuikPath <> '') then
   FDllHandle:= LibLoad(QuikPath);
 if(DllHandle > 0) then
 begin
   if(addr(T2QConnect) <> nil) then
     res:= T2QConnect(PAnsiChar(RawByteString(QuikPath + '\info.exe')), ErrCode, ErrStr, ErrSize);
 end;

Получаю ACCESS VIOLATION

Почему?
MT5 и trans2quik.dll
 
Добрый день!

Возникла необходимость из metetrader 5 отсылать заявки в Quik через  trans2quik.dll
У кого-нибудь есть опыт подобной работы?
Во страшном сне придумали?
 
Добрый день!

Обновился в открывашке до версии 7.9.1.1
И при перезагрузке получил НЕЧТО!
Мало того, что русским языком и не "пахнет", но
ещё и смысл поднимает волосы дыбом!
Сообщение:
"У 1 инструментов истекает срок обращения. Заменить их новыми? "
                 ДА - НЕТ
У меня более 80 роботов работает!
Что заменить на что (во множественном числе) будет заменяться?
Не поленился, проверил все добавленные в таблицы инструменты, и...
ничего не нашел с близким сроком экспирации.
ТОЛЬКО ВРЕМЯ ЗРЯ ПОТРАТИЛ!
На написание БРЕДА время есть, а добавить в таблицу
новое значение, - жду почти ДВА ГОДА!
Куда делось моё пожелание?
 
Куда делось моё пожелание об объёмах в доске опционов?
Вывод таблицы заявок через DDE
 
Добрый день, разработчики!

Версия Quik 6.17.3.6 реальный счёт в Открывашке.

Если выводить таблицу заявок ФОРТС с настройкой таблицы "Показывать только активные заявки",
то при удалении заявки из таблицы заявки, DDE сервер не получает НИКАКОГО сообщения!

Почему?  
Quik junior и Quik
 
Добрый день!

Почему из Quik 6,17,3,6 данные экспортируются через DDE сервер, а из Quik-junior 7.0.4.10 - нет?
(DDE сервер свой)
Версия терминала и версия сервера
 
Добрый день, уважаемые разработчики!

У моего брокера текущая версия терминала 6.17.

Вопрос:
Если я установлю терминал версии 7.0.1.5
будет ли эта версия терминала совместима с текущей
версией серверов брокера?
TRANS2QUIK API
 
Уважаемые разработчики!

Два вопроса:
1. Где взять описание API TRANS2QUIK?

2. У Открывашки версия терминала 6,17,
где взять TRANS2QUIK.DLL для версии терминала 6.17?
Объёмы предложения и спроса в Доске опционов
 
Добрый день, уважаемые разработчики!

Сейчас, в таблице "Доска опционов" транслируется только цена спроса и предложения по CALL и PUT
Для того, чтобы посмотреть ОБЪЁМ этого спроса и предложения приходится "тащить" стаканы по каждому страйку (4 шт).
Выводя данные по DDE мы получаем приличные "тормоза".

Предлагаю в таблицу "Доска опционов" для каждого страйка ввести объём предложения и спроса,
тем самым Вы сильно сократите вывод информации, при использовании DDE сервера.  
Максимальная скорость отдачи таблиц по DDE
 
Добрый день!
Подскажите, пожалуйста,
как настроить максимальную отдачу таблиц в DDE сервер (если таковая настройка имеется)
DDE router
 
Добрый день!

Кто-нибудь использовал этот Пример на delphi DDE роутера?
http://blog.quantquant.com/blog/softcoding/316.html#cut
У меня не выводятся данные из таблицы
Страницы: 1 2 След.
Наверх