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

 
Grigori.S.B #:
Мужики, я преклоняюсь перед вашим упорством, трудолюбием, профессионализмом, целеустремленностью.
Не завидую тем нубам, которые гадают "что надежнее форекс или биржа" если они попадутся у вас на пути.
Именно такие как вы и достойны победы на финансовых рынках. Снимаю шляпу!

Спасибо!

 

Маленький прикол от тестового полигона (а может быть и нет...)


 
prostotrader #:

Маленький прикол от тестового полигона (а может быть и нет...)


Копировать -> вставить - мать ошибок! 

 

Стаканы пошли...


Осталось совсем не много

Научиться правильно заполнять буфер для отправки ордеров и детально обрабатывать ответные сообщения

 
prostotrader #:

Стаканы пошли...


Осталось совсем не много

Научиться правильно заполнять буфер для отправки ордеров и детально обрабатывать ответные сообщения

А все-таки, там получается каждый нужный инструмент обрабатывать в своем потоке "параллельно"?
 
Dmitriy Skub #:
А все-таки, там получается каждый нужный инструмент обрабатывать в своем потоке "параллельно"?

Я же уже писал как делаю

Есть общее хранилище, в которое "складываются" все пришедшие данные.

Если Вы открыли какой-либо инструмент (это отдельный поток для каждого инструмента), то

этот инструмент регистрирует в хранилище свою эвенту. И когда приходит инфа по этому инструменту, эвента сигналит инструменту, что пришли его данные.

Инструмент забирает из хранилища данные.

  TCGStorage = class
    FMutex: TCGMutex;          // Mitex
    FMarData: TMarketData;     // Market data
    FTickEvents: TDictionary<Integer, TSimpleEvent>;
    FTradeEvents: TDictionary<Integer, TSimpleEvent>;
    Fisin_id: integer;         //
    FEvent: TSimpleEvent;
    private
      //
    protected
      //
    public
      constructor Create();
      destructor Destroy(); override;
      procedure SetTblsDesc(const idx: integer; var StrData: TStreamData;
                            const Scheme: pcg_scheme_desc_t);
      procedure LNClearTables(const idx: integer);
      procedure ClearDeleted(const idx: integer; const ClDel: pcg_data_cleardeleted_t);
      procedure UpdStrMsg(const msg: pcg_msg_streamdata_t; const strData: TStreamData);
      function BuildHeaders(): boolean;
      function GetData(var Data: TMarketData): boolean;
      function GetHeaders(var FHdr: THeaders; var OHdr: THeaders;
                          var SHdr: TSHeaders): boolean; // '1' - futures; '2' - options
      function GetTable(const StrIdx: integer; const TblIdx: integer; var Table: TTable): boolean;
      function RegTickEvent(const Key: integer; const Event: TSimpleEvent): boolean;
      function RegTradeEvent(const Key: integer; const Event: TSimpleEvent): boolean;

  end;

GetData - функция, которая отдает инструменту все данные

и GetTable - отдает конкретную таблицу

Поэтому каждый инструмент (поток) работает со своим снепшотом данных и никак не связан с другими инструментами
 И само хранилище никак не связано с инструментами, просто сигналит, через эвенты, что пришли нужные данные (OnTick, OnTrade).

Каждый эксперт - это тоже ждущий поток, работающий по эвентам

В хранилище есть Mutex, который не позволяет экспертам получить одновременный доступ к данным
 

Терзаюсь сомнениями.

Стоит ли выводить график последних цен по инструменту?


 
prostotrader #:

Терзаюсь сомнениями.

Стоит ли выводить график последних цен по инструменту?


Для Вашей стратегии, думаю совсем нет необходимости. Ведь Вы и на МТ5 не смотрели на них…

 
Alexey Viktorov #:

Для Вашей стратегии, думаю совсем нет необходимости. Ведь Вы и на МТ5 не смотрели на них…

Вот поэтому и сомневаюсь, что нужны.

А стратегии могут быть различные, во всяком случае для ФОРТС у меня не одна ТС.

Лично я не собираюсь пользоваться индикаторами.

Идея написания этой проге родилась не сейчас, не потому что Открывашки превратилась в Закрывашку,

а давно. Так как в этой отрасли есть только громоздкие терминалы, которые сильно тормозят алготорговлю.

Для быстрой и качественной торговли вообще не нужен терминал, нужен визуализатор установленных ордеров и позиций. 

 
prostotrader #:

Маленький прикол от тестового полигона (а может быть и нет...)


Кстати, несколько лет просили MQ сделать это

 

Расписание сессий

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