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

 
prostotrader #:

Плаза 2 позволяет получать данные по Срочному рынку, ASTS по Фондовому

а c матом пополам в настройках, но зато по FIX получить их нельзя иначе?

 

Дмитрий!

А в каком потоке идут котировки для опционов?

Что-то FORTS_COMMON_REPL common - для фьючерсов срабатывает,

а для опционов нет :(  

В спектре, что-то шевелится

 
prostotrader #:

Дмитрий!

А в каком потоке идут котировки для опционов?

Что-то FORTS_COMMON_REPL common - для фьючерсов срабатывает,

а для опционов нет :(  

В спектре, что-то шевелится

А версия какая? Там с версии 7.18 поменялись как раз эти потоки.

Какие опционы? Там большинство неликвиды и по ним котировки часами могут не меняться.

Увидел. Так и не приходят?
 
Dmitriy Skub #:

А версия какая? Там с версии 7.18 поменялись как раз эти потоки.

Какие опционы? Там большинство неликвиды и по ним котировки часами могут не меняться.

Увидел. Так и не приходят?

Нет, а в Спектре шевелятся

Хотя у меня эвента и на стаканы и на common

if(((TableName = 'FORTS_AGGR5_REPLorders_aggr') or
      (TableName = 'FORTS_AGGR20_REPLorders_aggr') or
      (TableName = 'FORTS_AGGR50_REPLorders_aggr') or
      (TableName = 'FORTS_COMMON_REPLcommon')) and (isin_id > -1)) then
  begin
    if(FTickEvents.TryGetValue(isin_id, TickEvent) = true) then     // Tick event
      TickEvent.SetEvent;
  end;

Добавлено

Кстати, очень удобно работать с базой, особенно для визуализации

Указал базе DBGrid и она автоматом обновляет DBGid(s) 


 

Заработало клон-соединение в советнике, для работы с базой данных !

procedure TExpert.Execute;
var
  Res: Dword;
begin
  while (Terminated = false) do
  begin
    Res:= WaitForMultipleObjects(4, @FEvents, false, INFINITE);
    case Res of
      WAIT_OBJECT_0: ;             // Trade
      WAIT_OBJECT_0 + 1: begin     // Tick
        FMemoStr:= 'Check clone connectuon...!';
        Synchronize(UpdMemo);
        FMemoStr:= DBConn.ExecSQLScalar('select name from FORTS_REFDATA_REPLfut_sess_contents short_isin where isin_id = ' + intToStr(isin_id));
        Synchronize(UpdMemo);
      end;
      WAIT_OBJECT_0 + 2: {};     //Error
      WAIT_OBJECT_0 + 3: exit;     //Exit from cycle
      WAIT_FAILED: {};             // Events error
    end;
  end;
end;


Выборка идет параллельно с наполнением базы в разных потоках
 
prostotrader #:

Заработало клон-соединение в советнике, для работы с базой данных !


Выборка идет параллельно с наполнением базы в разных потоках
То есть, с одного соединения идет поток котиров в БД, а второе соединение для торговых приказов?
 
Dmitriy Skub #:
То есть, с одного соединения идет поток котиров в БД, а второе соединение для торговых приказов?

Не совсем так.

Подводит путаница в слове "Соединение"

В API CGate я сделал 2 соединения, как Вы и поняли

Первое "качает данные", второе отправляет транзакции.

А есть еще соединение которое наполняет Базу данных,

когда создаются эксперты, то каждому передается КЛОН соединения базы данных,

Child.FExpert.FDBConn:= CGCntr.Storage.DBase.CloneConnection;

И Основное соединение базы данных и клон-соединения работают в разных

потоках с одной базой.

 

Вот 105 инструментов-роботов (105 тредов) работают с 1 базой, которую наполняет еще 1 тред

плюс еще 2 треда CGate

Всего 108 тредов

При этом вот сколько ресурсов ПК потребляется (P2CGTrader)


 
А что с котировками по опционам?
 
prostotrader #:

Вот 105 инструментов-роботов (105 тредов) работают с 1 базой, которую наполняет еще 1 тред

плюс еще 2 треда CGate

Всего 108 тредов

При этом вот сколько ресурсов ПК потребляется (P2CGTrader)

А на кой Вам эти окна? У меня они будут в списке все сидеть.

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