Блог им. ccoonnsstt

Transaq Connector vs Delphi(Embarcadero)

Transaq-Connector!

Участников Смарт-лаба более 18000.
А кто-нибудь сможет мне помочь с Транзак-коннектором?

в Delphi обрабатываю ответы коннектора.
Наталкиваюсь на ошибку, которую не могу понять. Каждый раз она в другом месте!

Требуется конкретная и четкая помощь, а не рассуждения зачем, почему и кому как — от людей далеких от программирования.
Думаю, что помочь может только тот, кто занимался программированием коннектора. Но, могу и ошибаться.
В любом случае, готов услышать или прочитать полезную информацию.
За реальную помощь готов заплатить!

Предваряя вопросы:

1. Почему не на Си?
1. Delphi ни чем не хуже.

2. Пиши на С, или С++, или С#
2. Delphi ни чем не хуже, а написание на С не гарантирует отсутствие проблем, к тому же переписать 20000 строк -трудновато....

3. А что в документации?

3. Документация к сожалению не отвечает на все мои вопросы. Форумы и специалисты не разбираются в Delphi и коннекторе!


Для чего все это?
Есть системы, есть подходы!
Есть миллиарды идей!
Есть перспективы,
но не могу склеить свою систему с реальными котировками и счетами!

Кто-то, в этом, 18ти тысячном войске может мне чем-то помочь????

32 комментария
у нас в универе на 1 курсе паскаль был, я его уже забыл пишу на C# в основном
avatar
SHCHUTUSHCHA,
Дорогой Штуша!
Ценю твоё внимание, но 1-й курс, паскаль(который забыл), С#…
наверно, ты не сможешь оказать помощь.?
avatar
ccoonnsstt, выучи по быстрому С#
avatar
SHCHUTUSHCHA,
спасибо за предложение!
у меня уже 2-й месяц параллельный проект на C#
Так что внял твоим предложениям
учу C#
avatar
какая версия Delphi? и по какому принципу работает конектор? под плазу делал на семерке
avatar
Merphi,
В принципе не суть важна версия Delphi.
У меня проблемы с коннектором, я получаю от него ответы, начинаю обрабатывать и тут, в эту же обрабатываемаю область памяти влетают новые данные от коннектора, моя программа обрабатывает старые данные, не догадываясь, что уже есть новые. И в общем я пытаюсь обработать, то что еще актуально, но уже не свежо. Проблема с CallBack функцией от Transaq-Connector. Или я че-то не так понимаю или, что-то еще…
avatar
ccoonnsstt, так с конектором то работаешь как? АРI или DCOM?
avatar
Merphi,
API
transaqconnector.dll
с набором функций с параметрами в формате xml
avatar
Merphi,
// — Функции txmlconnector.dll — //
Function con_SetCallBack; external 'txmlconnector.dll' name 'SetCallback';
Function con_SetCallBackEx; external 'txmlconnector.dll' name 'SetCallbackEx';
Function con_SendCommand; external 'txmlconnector.dll' name 'SendCommand';
Function con_FreeMemory; external 'txmlconnector.dll' name 'FreeMemory';
Function con_Initialize; external 'txmlconnector.dll' name 'Initialize';
Function con_UnInitialize; external 'txmlconnector.dll' name 'UnInitialize';
Function con_SetLogLevel; external 'txmlconnector.dll' name 'SetLogLevel';
// — //

Function Transaq_Function_CallBack(pData: PAnsiChar): Boolean;
Begin
with Transaq_Talk do
begin
fNum := Transaq_FindAnswerZero;
with fAnswer[fNum] do
begin
fBusy := True;
fTime := Now;
fText := Utf8ToAnsi(pData);
fType := Identify_AnswerRoot(fNum);
end;
end;
con_FreeMemory(pData);
End;
avatar
ccoonnsstt, а что за ошибка?
avatar
ну тогда надо смотреть, так не понять. может просто в логике обработки у тебя проблема. если бы DCOM как в плазе то там косяки делфи известны
avatar
Merphi,
честно. просто затрахался
уже 4 месяца не могу понять в чем дело
запускаю — все работает
запускаю второй раз, работает-работает — глюк.
ошибка плавающая, но как я выяснил зависит от получения данных из коннектора.
Я например, обрабатываю строку в 10 символов, а тут в эту же область падают данные длинной 8 символов, а я все обрабатываю 10
и выдается ошибка Range Error…
Но беда в том, что я не могу отличить старые данные от новых.
avatar
ccoonnsstt, короче, что бы не тратить время зря, если уже серия XЕ, то там новые владельцы переписывали библиотеки в плане обработки событий под свои приблуды, типа чтобы спарить обезьяну и старые версии делфей. получилось откровенно криво, может и в этом проблема, и сомневаюсь что ты ее решишь тогда как-то. по себе скажу что вернулся на D7, у меня и получение данных через DCOM. D7 конечно не айс в com-объектами как работает, но решить можно и отладить надежно тоже. так что по твоему куску кода не поймешь, проблема думаю глубже, а это надо усердно ковырять на исходниках
avatar
Merphi,
Честно сказать неожиданно, но не удивительно.
Я начинал D7. Но потом решил пойти честным путем, купил лицензию XE и.т.д.
И не было проблем пока с транзаком(callback) не столкнулся…
avatar
ccoonnsstt, ты знаешь, я начинал в 1996 г еще c 1-ой версии по Win3.1, потом со 2-ой вер были все лицензии, но не сам покупал, а тогда в банке работал. потом отходил от программирования, вернулся а там XE, промучался с полгода и вернулся на D7, потому как это уже не то совершенно. кросс-платформенность конечно круто, но для решения своих задач она мне до одного места
avatar
Merphi,
Мы щаз как писюнами меримся.)))
Я начинал с TurboPascal 4.0
Потом Borland 6.0
Потом Delphi 5.0
Диплом писал на Delphi 6.0
Первый проект по тредингу Delphi 7.0
потом Metatrader 4.0
Сейчас есть рабочая стратегия на MT4 с трансляцией в Transaq
Но, главная тема, своя система.
Реализовано отображение графиков(не стандартных) и их обработка, тоже не стандартная.
дело дошло до общения с брокером и тут бл… ть застрял…
avatar
ccoonnsstt, ну путь в программировании примерно похож, только начал в Borland С++. Что такое MT4 знаю, но я как-то прошел мимо форекса. Задача примерно такая же похоже, но графики отображаю из БД, коннектор чисто только в БД всё кидает, а работает как процесс на сервере в облаке, ну и Plaza, там подход другой. а графика уже из БД формируются. ну не скальпер я
avatar
Merphi,
Уважаемый Мерфи
Спасибо, что откликнулся!
Для меня это уже поддержка, а то, так получается, что я вообще ни с кем ни могу поделится и посоветоваться.
avatar
ccoonnsstt, да ладно, пустое это, проблема как была так и осталась. могу кинуть почту в личку, обращайся, но сам понимаешь что есть вопросы которые не отвечу, т.к. финама с его транзаком не юзал
avatar
Merphi,
закинь в почту личку
если ты спец в дельфях, то у нас может получиться сотрудничество!
У меня есть идеи, которые, на мой взгляд, в корне отличаются от общепринятых.
проблема на текущий момент в общении с брокером.
avatar
ccoonnsstt, alexforts@yandex.ru
avatar
Интересно, то, что из 18тыс. участников смарт-лаба откликнулся только один человек(Merphi). Спасибо ему за это!

Я конечно обратился с слишком специфическим вопросом — TransaqConnector, да еще и в Delphi(Embarcadero).

Но, прикольно получилось. (Очень хорошо, что получилось!)

Наверно, так, каждый, кто обратится за помощью к сообществу смарт-лаб натыкается на 1-2 отзыва. Кроме, конечно, прогнозов на завтра, или на вчера! Это я не с претензиями, а с предположениями!

Всем Удачи!!!
avatar
можно исходники получить? попробую разобраться с ошибкой.
Суворов Вячеслав,
можно
только я подумаю как лучше это сделать, просто
у меня много всего, а все слать и во всем разбираться слишком сложно
avatar
Суворов Вячеслав,
спасибо!
avatar
stdcall?
avatar
Изико,
да
avatar
ccoonnsstt, не я не настаиваю, ) но если callback stdcall то об этом нужно написать. не думаю что у транзаковской библиотеки calling convention — register.
avatar
судя по исходнику callback функции тут только получение данных и запись в массив, соответственно должна быть отдельная функция обработки этих данных в порядке очередности поступления от коннектора, возможно, синхронизированная с запросами, посылаемыми функцией sendcommand. похоже что к одним и тем же данным пытаются получают доступ разные потоки, из коннектора и из вашего кода, тогда тут нужна синхронизация доступа через например критическую секцию TCriticalSection или набивать данные посылаемые в callback фукнцию в очередь, и извлекать для обработки другой процедурой.
Суворов Вячеслав,
так и есть у меня организован стэк ответов, а в другом объекте по таймеру идет обработка этого стэка

про TCriticalSection спасибо.
посмотрю
avatar
Про количество откликнувшихся — просто реальных глубоких спецов мало. Мне, например, купАйла за глаза))))

Вас возьму на заметку — вдруг дорасту до дикого системщика, авось и посотрудничаем))))
avatar
НеГрустин,
Диким не надо становится)))
avatar

теги блога ccoonnsstt

....все тэги



UPDONW
Новый дизайн