21 просмотр.....неужели никто этим не занимался?
а вообще если сравнивать скорости получения котировок ....и скорость отправки заявок ...коннектор шустрее смарткома или нет ?
это интерфейс доступа к котировкам по средствам сом технологии....А разработчиков транзак коннектора здесь не бывает ?
Система TRANSAQ поддерживает три технологии подключения внешних систем:TRANSAQ Connector"Универсальный программный интерфейс для подключения к системе внешних приложений любого назначения: Собственные информационные / торговые терминалы и торговые «приводы» Программы для алгоритмического трейдинга (торговые роботы, генераторы сигналов) Учетные системы, реализующие любые портфельные методикиВ основе сервиса – реализованная по технологии XML загружаемая библиотека функций TXmlConnector.dll, предназначенная для организации взаимодействия пользовательских приложений с сервером TRANSAQ от имени и с правами доступа зарегистрированного торгового клиента.Модуль обеспечивает реализацию торговых терминалов на уровне клиента Брокера. "-http://www.transaq.ru Просто я по своей наивности думал, что когда что либо создается ..то это тестируется....) Ну и я конечно же думал что здесь есть специалист работающий со своим продуктом...! С глубоким уважением ко всем разработчикам по !
Коллеги! Ищу минимальный проект по тестам функций коннектора на с++ builder! Не могу разобраться с xml структурами...Огромная просьба ... ПОМОГИТЕ!!!
#include <windows.h>#include <iostream>#include <fstream>#define TACCESS_API __declspec(dllimport)typedef bool (WINAPI *tcallback)(BYTE* pData);typedef BYTE* (WINAPI *typeSendCommand)(BYTE* pData);typedef bool (WINAPI *typeFreeMemory)(BYTE* pData);typedef bool (WINAPI *typeSetCallback)(tcallback pCallback);std::ofstream xmlfile;typeFreeMemory FreeMemory;bool CALLBACK acceptor(BYTE *pData){ xmlfile<<pData<<std::endl; FreeMemory(pData); return true;}int main(int argc, char* argv[]) { setlocale(LC_CTYPE, ""); std::cout<<"Statring!"<<std::endl; xmlfile.open("test.xml"); xmlfile<<"<?xml version='1.0' encoding='UTF-8'?>"; xmlfile<<"<root>"; HMODULE hm = LoadLibrary("Debug\\txmlconnector.dll"); if (hm) { typeSetCallback SetCallback = reinterpret_cast<typeSetCallback>(GetProcAddress(hm, "SetCallback")); FreeMemory = reinterpret_cast<typeFreeMemory>(GetProcAddress(hm, "FreeMemory")); SetCallback(acceptor); typeSendCommand SendCommand = reinterpret_cast<typeSendCommand>(GetProcAddress(hm,"SendCommand")); if (!SendCommand) { printf("\"SendCommand\" not found (0x%X)\n", GetLastError()); return -1; } else { BYTE* ss = SendCommand(reinterpret_cast<BYTE*>( "<command id='connect'>" "<login>KOKS</login><password>koks</password>" "<host>192.168.15.15</host><port>3901</port>" "<logsdir>.\\LOGS\\</logsdir><loglevel>0</loglevel></command>")); std::cout<<reinterpret_cast<const char*>(ss); FreeMemory(ss); Sleep(10000); ss = SendCommand(reinterpret_cast<BYTE*>("<command id='subscribe'>" "<alltrades><secid>304</secid></alltrades>" //идентификаторы взял просто для примера "<quotations><secid>304</secid></quotations>" //в реально кода надо ориентировать на то, "<quotes><secid>304</secid></quotes>" //что присылвает сервер "</command>")); std::cout<<reinterpret_cast<const char*>(ss); FreeMemory(ss); Sleep(1000); ss = SendCommand(reinterpret_cast<BYTE*>( "<command id='disconnect'/>")); std::cout<<reinterpret_cast<char*>(ss); FreeMemory(ss); } try { FreeLibrary(hm); } catch (...) { std::cout<<"Fail in FreeLibrary"; } } int err = GetLastError(); xmlfile<<"</root>"; std::cout<<"\nEnded...\n"; char c; std::cin>>c; return 0;}