Нужна помощь профессионального программиста - страница 20

 

Чтобы правильно переоткрывать лисенеры,  ввел свои переменные (структуры)

//--- Listener external data ---
  TExtData = packed record
    sName: string;                     // stream name
    Pos: integer;                      // stream position
  end;
//--- Listener Params ---
  TListenerParams = packed record
    StrName: string;
    StartMode: string;
    Mode: string;
    LifeNum: uint32_t;
    LNFlags: uint32_t;
    RevTblName: string;
    ReplState: PAnsiChar;              // for save tream state
    Revision: int64_t;
    cgMsgOpen: boolean;
    cgMsgClose: integer;
    cgMsgRplOnline: boolean;
  end;
 
prostotrader #:

Добавлено

Кстати, насчет Вашей идеи сделать нечто подобное МТ5.

Не тратьте зря время, одному очень сложно и долго писать подобный терминал,

наша задача ведь зарабатывать деньги... :)

Так я уже написал несколько лет назад и терминал и сервер. Все работает как часы - задержки исполнения микросекунды, т.е. вся задержка во внешней среде.

Задача - коннектор сделать и подключить и новые функции добавить, которые упорно не хотят делать в мт5. Как то - состояние рынка и т.п.

Вы же сами пытаетесь делать нечто подобное, только с меньшим функционалом. Без этого никак.
 
Dmitriy Skub #:
же сами пытаетесь делать неч

Так я и пишу мини-терминал, но исключительно для роботов, без индикаторов, графиков и пр.

На какой стадии у Вас написание коннектора?

 
prostotrader #:

Так я и пишу мини-терминал, но исключительно для роботов, без индикаторов, графиков и пр.

На какой стадии у Вас написание коннектора?

Так и у меня не мега-терминал. Только то, что мне надо.

На стадии изучения документации.

 
Dmitriy Skub #:

Так и у меня не мега-терминал. Только то, что мне надо.

На стадии изучения документации.

Ок

 
prostotrader #:

Так я и пишу мини-терминал, но исключительно для роботов, без индикаторов, графиков и пр.


Мини-терминал на основе MDI приложения, где каждое дочерние окно - робот, логика роботы которого

загружается из DLL. Терминал - один, - роботов много, на любой вкус.

Да и продавать можно, включить в исходную поставку 3-5 стандартных робота,

а остальное можно писать на заказ.

Такой терминал будет востребован, кто платит за Плаза 2, тот зарабатывает.
 
prostotrader #:

Мини-терминал на основе MDI приложения, где каждое дочерние окно - робот, логика роботы которого

загружается из DLL. Терминал - один, - роботов много, на любой вкус.

Да и продавать можно, включить в исходную поставку 3-5 стандартных робота,

а остальное можно писать на заказ.

Такой терминал будет востребован, кто платит за Плаза 2, тот зарабатывает.
Да не только такой, а и с графиками тиковыми и не только цены, но и остального прочего. Там много интересного есть.

Хотите универсальное подключение ДЛЛ сделать, без пере компиляции терминала?

 
Dmitriy Skub #:

Хотите универсальное подключение ДЛЛ сделать, без пере компиляции терминала?

Да, именно так.

DLL - робот плагин

Не знаю, будут ли грузиться DLL написанные на С#, но С, С++ и Делфи, будут. 

т.е все нативные.

 

Нельзя открывать одновременно более 20 потоков

3.3.9. Ограничение количества одновременно открытых потоков репликации от одного
соединения Plaza2
В системе существует ограничение на количество одновременных подписок на один поток Plaza2 (Cgate) от одного шлюзового
логина - не более 20. При превышении этого ограничения, каждая последующая попытка подписаться на поток будет завершаться
с кодом ошибки ERROR:TOO MANY CONNECTIONS, отражающаяся в журнале работы Cgate.

Не понятно это включает паблишер и лисенер для отправки и получения ответов торговых приказов?

 

"Складирую" данные

Сами данные объявлены как Variant

При получении чисел типа DOUBLE нужно использовать функцию cg_bcd_get

varDouble: begin
    h_res:= cg_bcd_get(@buff^[fild.offset], inVal, inSize);
     if(h_res = CG_ERR_OK) then
      Streams[strData.Pos].Tables[i].Value[RCnt, j]:= inVal.ToDouble /(Power(10.0, inSize));
 end;

Мне осталось разобраться с данными типа "f" (ни где не написано какой тип данных)

с датой и с массивом.

Причина обращения: