Добрый день! А как вывести по DDE эти данные? [img]file:///D:/Output/Quik/Data.jpg[/img]
TRANS2QUIK_SUBSCRIBE_ORDERS ()
Пользователь
Сообщений: Регистрация: 29.07.2015
26.11.2018 04:01:54
Добрый день! А как сделать, что бы в один и тот же класс добавлять инструменты не сразу через "|" с промежутками? Какой порядок действий при этом?
Повторный вызов TRANS2QUIK_SUBSCRIBE_TRADES с новыми инструментами игнорируется, Повторный вызов TRANS2QUIK_SUBSCRIBE_TRADES с новыми инструментами не добавляет их в подписку сделок
Пользователь
Сообщений: Регистрация: 29.07.2015
01.09.2017 01:49:34
Цитата
написал:
Цитата
Михаил Филимонов написал: Планируется, что у меня в приложении DDE + trans2Quik.dll будут работать несколько роботов, в каждом по три инструмента. Получается, чтобы добавить нового робота, я должен выключть 20 остальных!!!!
Ещё раз - КРУТО!!!!
или написать прокси.
д'артаньяну это не составит труда.
А Портосу?
Повторный вызов TRANS2QUIK_SUBSCRIBE_TRADES с новыми инструментами игнорируется, Повторный вызов TRANS2QUIK_SUBSCRIBE_TRADES с новыми инструментами не добавляет их в подписку сделок
Пользователь
Сообщений: Регистрация: 29.07.2015
31.08.2017 22:36:33
Планируется, что у меня в приложении DDE + trans2Quik.dll будут работать несколько роботов, в каждом по три инструмента. Получается, чтобы добавить нового робота, я должен выключть 20 остальных!!!!
Ещё раз - КРУТО!!!!
Повторный вызов TRANS2QUIK_SUBSCRIBE_TRADES с новыми инструментами игнорируется, Повторный вызов TRANS2QUIK_SUBSCRIBE_TRADES с новыми инструментами не добавляет их в подписку сделок
Пользователь
Сообщений: Регистрация: 29.07.2015
31.08.2017 22:30:37
Круто ARQA!
Такое впечатление, что программируют окончившие только что курсы НОВИЧКИ, а можкт быть и школьники!
function LibLoad(const aPath: string): THandle; begin Result:= LoadLibrary(PWideChar(IncludeTrailingPathDelimiter(aPath) + DllName)); if(Result > 0) then begin @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; @T2QSetConnStatCB := GetProcAddress(Result, PWideChar('TRANS2QUIK_SET_CONNECTION_STATUS_CALLBACK')); if(addr(T2QSetConnStatCB) = nil) then begin Result:= 0; Exit; end; @T2QSetTransReplyCB := GetProcAddress(Result, PWideChar('TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK')); if(addr(T2QSetTransReplyCB) = 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;
//--- CallBacks --------- procedure pfConnStatusCB; var ErrCode: long; ErrStr: PAnsiChar; ErrSize: Dword; begin case nConnectionEvent of TRANS2QUIK_QUIK_CONNECTED: QTrader.QConn:= true; TRANS2QUIK_QUIK_DISCONNECTED: QTrader.QConn:= false; TRANS2QUIK_DLL_CONNECTED: QTrader.DllConn:= true; TRANS2QUIK_DLL_DISCONNECTED: begin QTrader.DllConn:= false; ErrCode:= 0; ErrStr:= nil; ErrSize:= 0; //--- Try to connect ---- T2QConnect(PAnsiChar(RawByteString(QTrader.QuikPath)), ErrCode, ErrStr, ErrSize); QTrader.LastErrMsg:= string(ErrStr); QTrader.LastErrCode:= ErrCode; end; end; end;
procedure pfTransReplyCB; begin //TODO Find Child and call procedure end;
procedure pfOrderStatusCB; begin //TODO Find Child and call procedure end;
procedure pfTradeStatusCB; begin //TODO Find Child and call procedure end;
end.
Delphi XE4 и trans2quik.dll
Пользователь
Сообщений: Регистрация: 29.07.2015
31.08.2017 17:39:03
ВОТ здесь "валится"
//--- load trsns2quik.dll ---- if (QuikPath <> '') then FDllHandle:= LibLoad(QuikPath); if(DllHandle > 0) then begin ErrCode:= 0; ErrSize:= 0; ErrStr:= nil; Res:= TRANS2QUIK_SUCCESS; try res:= T2QConnect(PAnsiChar(RawByteString(QuikPath)), ErrCode, ErrStr, ErrSize); except Application.MessageBox(PWideChar('Не вкючён в терминале ''Динамический импорт транзакций''.'+ #10#13 + 'Или не правильно указан путь к рабочей папке Quik.' + #10#13 + 'Программа будет закрыта.'), PWideChar('ВНИМАНИЕ!'), MB_ICONHAND); FreeLibrary(FDllHandle); MainForm.Timer1.Enabled:= true; Exit; end;
Delphi XE4 и trans2quik.dll
Пользователь
Сообщений: Регистрация: 29.07.2015
31.08.2017 17:36:50
Добрый день, Станислав!
Вы, вероятно, ни название темы не читали, ни сами посты... ПРИЛОЖЕН код, указана функция, в чём непонимание?
Delphi XE4 и trans2quik.dll
Пользователь
Сообщений: Регистрация: 29.07.2015
30.08.2017 18:12:21
Господа разработчики!
Очень странно, что Вы не предусмотрели ситуации, когда не влючён в Терминале импорт тразакций и не правильный путь к пакке Quik! Почему вылетает в эксепшин? Неужели трудно было в ДЛЛ сгенериравать код ошибки????!
Delphi XE4 и trans2quik.dll
Пользователь
Сообщений: Регистрация: 29.07.2015
29.08.2017 23:02:11
нашел ошибку! Доджно быть res:= T2QConnect(PAnsiChar(RawByteString(QuikPath)), ErrCode, ErrStr, ErrSize); Без info.exe
//----------------------- 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;
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
Пользователь
Сообщений: Регистрация: 29.07.2015
11.08.2017 15:50:11
Добрый день!
Возникла необходимость из metetrader 5 отсылать заявки в Quik через trans2quik.dll У кого-нибудь есть опыт подобной работы?
Во страшном сне придумали?
Пользователь
Сообщений: Регистрация: 29.07.2015
06.04.2017 21:25:36
Добрый день!
Обновился в открывашке до версии 7.9.1.1 И при перезагрузке получил НЕЧТО! Мало того, что русским языком и не "пахнет", но ещё и смысл поднимает волосы дыбом! Сообщение: "У 1 инструментов истекает срок обращения. Заменить их новыми? " ДА - НЕТ У меня более 80 роботов работает! Что заменить на что (во множественном числе) будет заменяться? Не поленился, проверил все добавленные в таблицы инструменты, и... ничего не нашел с близким сроком экспирации. ТОЛЬКО ВРЕМЯ ЗРЯ ПОТРАТИЛ! На написание БРЕДА время есть, а добавить в таблицу новое значение, - жду почти ДВА ГОДА!
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
13.01.2017 09:21:43
Вот, что Вы написали 19.11.2015 14:01:31 >>Мы рассмотрели Ваше пожелание. По итогам его анализа сообщаем Вам, что реализация пожелания признана потенциально целесообразной. Наверное как в поговорке: Обещанного ТРИ года ждут....
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
30.12.2016 17:30:20
Извините, конечно, Алексей, но когда программист переделывал ВСЮ Доску опционов, ему трудно было заглянуть в этот лист?
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
02.12.2016 22:41:05
Всю таблицу опционов переделали, а мое пожелание так и не сделали. Из принцмпа что-ли?
Куда делось моё пожелание?
Пользователь
Сообщений: Регистрация: 29.07.2015
25.10.2016 09:37:57
Куда делось моё пожелание об объёмах в доске опционов?
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
17.08.2016 03:57:50
Спасибо, но терпения ещё на 9 месяцев не хватит :)
Новая версия quik, куда делись кнопки масштаба "+" и "-" и где "копировать" окно???
Пользователь
Сообщений: Регистрация: 29.07.2015
17.08.2016 03:56:23
>Но из-за скорости отображения котировок и исполнения ордеров, задумываюсь попробовать метатрейдер 5. Пока присматриваюсь, сравниваю и изучаю.
В МТ-5 свои проблемы :) Если собираетесь торговать руками, то МТ5 быстрее. Работаю с ним 3,5 года только из-за Роботов. В квике просто невозможно отлаживать большие и сложные программы.
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
11.08.2016 06:29:14
Прошло ровно 9 месяцев.....
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
20.05.2016 11:01:56
Скоро сказка сказывается, да не скоро дело делается.....
Вывод таблицы заявок через DDE
Пользователь
Сообщений: Регистрация: 29.07.2015
12.02.2016 20:50:01
Добрый день, разработчики!
Версия Quik 6.17.3.6 реальный счёт в Открывашке.
Если выводить таблицу заявок ФОРТС с настройкой таблицы "Показывать только активные заявки", то при удалении заявки из таблицы заявки, DDE сервер не получает НИКАКОГО сообщения!
Почему?
Quik junior и Quik
Пользователь
Сообщений: Регистрация: 29.07.2015
10.02.2016 17:36:14
Нужно было запускать Junior от имени администратора. Всё заработало...
Quik junior и Quik
Пользователь
Сообщений: Регистрация: 29.07.2015
09.02.2016 04:20:42
Я пишу правду, потому что и в exel тоже не выводятся данные!
Quik junior и Quik
Пользователь
Сообщений: Регистрация: 29.07.2015
08.02.2016 05:40:26
Добрый день!
Почему из Quik 6,17,3,6 данные экспортируются через DDE сервер, а из Quik-junior 7.0.4.10 - нет? (DDE сервер свой)
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
04.02.2016 18:33:16
Спасибо, понятно.
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
03.02.2016 23:34:16
Добрый день!
Одобрено ли моё пожелание или нет? Каковы результаты анализа?
Sergey Gorokhov пишет: Здравствуйте, Список функций есть в руководстве пользователя -Раздел 6. Совместная работа с другими приложениями --Импорт транзакций через API
Вы издеваетесь? Там описано 15 функций из 86 !!!!!!!!!
Уважаемые разработчики! Так где можно прочитать об остальных (71) функциях?
TRANS2QUIK API
Пользователь
Сообщений: Регистрация: 29.07.2015
20.11.2015 19:36:07
Цитата
тот самый пишет: если есть полный "компиляберный" вариант - скинь на quik2dde для остальных (мне - не надо :))).
Ок
TRANS2QUIK API
Пользователь
Сообщений: Регистрация: 29.07.2015
20.11.2015 19:03:18
Цитата
тот самый пишет: нужен просто список или полные прототипы?
Добрый день! Спасибо, я решил проблему.
TRANS2QUIK API
Пользователь
Сообщений: Регистрация: 29.07.2015
20.11.2015 18:35:03
Цитата
Sergey Gorokhov пишет: Здравствуйте, Список функций есть в руководстве пользователя -Раздел 6. Совместная работа с другими приложениями --Импорт транзакций через API
Вы издеваетесь? Там описано 15 функций из 86 !!!!!!!!!
TRANS2QUIK API
Пользователь
Сообщений: Регистрация: 29.07.2015
19.11.2015 19:46:55
Там пример для версии 1.2
TRANS2QUIK API
Пользователь
Сообщений: Регистрация: 29.07.2015
19.11.2015 16:32:59
Добрый день!
Вы не поняли о чём я говорю: Пример: В h файле long TRANS2QUIK_API __stdcall TRANS2QUIK_ORDER_DATE (OrderDescriptor orderDescriptor);
В PAS файле function TRANS2QUIK_ORDER_DATE_TIME(orderDscr: OrderDescriptor; nTimeType: long): long; stdcall; implementation function TRANS2QUIK_TRANS2QUIK_ORDER_DATE; external DllNAme name '_TRANS2QUIK_ORDER_DATE@4';
Мне нужен список имён функций DLL типа _TRANS2QUIK_ORDER_DATE@4
TRANS2QUIK API
Пользователь
Сообщений: Регистрация: 29.07.2015
18.11.2015 23:05:29
Я пишу на Делфи заголовочный файл к TRANS2QUIK.DLL x64_1,3, а где взять список экспортируемых функций?
TRANS2QUIK API
Пользователь
Сообщений: Регистрация: 29.07.2015
18.11.2015 13:58:23
Извините, ступил... :)
Версия терминала и версия сервера
Пользователь
Сообщений: Регистрация: 29.07.2015
18.11.2015 13:56:39
Спасибо! Но уверен, что они будут спрашивать у Вас :)
Максимальная скорость отдачи таблиц по DDE
Пользователь
Сообщений: Регистрация: 29.07.2015
18.11.2015 00:38:37
Спасибо!
Версия терминала и версия сервера
Пользователь
Сообщений: Регистрация: 29.07.2015
18.11.2015 00:37:02
Добрый день, уважаемые разработчики!
У моего брокера текущая версия терминала 6.17.
Вопрос: Если я установлю терминал версии 7.0.1.5 будет ли эта версия терминала совместима с текущей версией серверов брокера?
TRANS2QUIK API
Пользователь
Сообщений: Регистрация: 29.07.2015
16.11.2015 17:35:54
Спасибо! Но по этой ссылке написано, что эта библиотека для версии терминала 6.3 и выше, а мой брокер предоставил мне версию 6.17
TRANS2QUIK API
Пользователь
Сообщений: Регистрация: 29.07.2015
15.11.2015 18:22:57
Уважаемые разработчики!
Два вопроса: 1. Где взять описание API TRANS2QUIK?
2. У Открывашки версия терминала 6,17, где взять TRANS2QUIK.DLL для версии терминала 6.17?
Объёмы предложения и спроса в Доске опционов
Пользователь
Сообщений: Регистрация: 29.07.2015
15.11.2015 13:04:57
Добрый день, уважаемые разработчики!
Сейчас, в таблице "Доска опционов" транслируется только цена спроса и предложения по CALL и PUT Для того, чтобы посмотреть ОБЪЁМ этого спроса и предложения приходится "тащить" стаканы по каждому страйку (4 шт). Выводя данные по DDE мы получаем приличные "тормоза".
Предлагаю в таблицу "Доска опционов" для каждого страйка ввести объём предложения и спроса, тем самым Вы сильно сократите вывод информации, при использовании DDE сервера.
Максимальная скорость отдачи таблиц по DDE
Пользователь
Сообщений: Регистрация: 29.07.2015
14.11.2015 09:43:03
Добрый день!
Почему 2-е доски опционов транслируются в DDE сервер почти мгновенно, а один стакан цен фьючерса с задержками от 0,5 до 1 сек.?
DDE router
Пользователь
Сообщений: Регистрация: 29.07.2015
13.11.2015 20:50:39
Проблему решил сам.
Максимальная скорость отдачи таблиц по DDE
Пользователь
Сообщений: Регистрация: 29.07.2015
12.11.2015 12:25:04
Спасибо
Максимальная скорость отдачи таблиц по DDE
Пользователь
Сообщений: Регистрация: 29.07.2015
12.11.2015 11:21:43
Добрый день! Подскажите, пожалуйста, как настроить максимальную отдачу таблиц в DDE сервер (если таковая настройка имеется)
DDE router
Пользователь
Сообщений: Регистрация: 29.07.2015
11.11.2015 20:22:05
Добрый день!
Кто-нибудь использовал этот Пример на delphi DDE роутера?
У меня не выводятся данные из таблицы
Quik junior и Quik
Пользователь
Сообщений: Регистрация: 29.07.2015
31.08.2015 17:08:48
Я же по русски написал установил в разные папки и не работает не Junior, а основной Quik
Quik junior и Quik
Пользователь
Сообщений: Регистрация: 29.07.2015
31.08.2015 04:47:11
Добрый день! Установил на комп. Quik junior на котором уже стоял рабочий Quik Рабочий Quik перестал запускаться с ошибкой: "Crypto error: Соединение установить не удалось. Возможно, Вы используете ключи, которые не зарегистрированы на сервере"
Терминалы стоят в разных папках. Как восстановить работу основного Quik?
QLUA опционы
Пользователь
Сообщений: Регистрация: 29.07.2015
21.08.2015 21:26:25
Имеется ввиду: Разработчик QUIK? Сертифицированный наставник QUIK?