FXT形式の履歴ファイル

テスターは、その作動において、生成された継続バーのある*.FXTファイルを使用します。生成された継続性の各記録は1つのバー内のいずれかの時点を現します。バーのモデリング時には、テスターはこのファイルから他のバーを取り出して、現在バーを更新するか、生成が始まったばかりの場合には別のバーを追加します。

標準バーモデル化の適用を拒否することができますが、テスト/最適化には独自のデータファイルを使用します。それを行うには、「再計算」を無効にして、希望するFXTファイルを/TESTER/HISTORYフォルダに入れる必要があります。ファイル名は「[通貨ペア名][周期(分単位)]_[モデル化のタイプ(0:レートの更新ごと、1:コントロールポイント、2:オープン価格)].FXT」(間にスペース文字はありません)でなければなりません。たとえば、「EURUSD」が通貨ペアの場合は 「EURUSD1440_1.FXT」 とすることができ、「1440」 はD1の周期(1440分、24 時間)、「1」はコントロールポイントによるモデル化を意味します。

形式の簡単な説明を以下に示します。ヘッダーで始まります。

  //+------------------------------------------------------------------+  //|                                                                  |  //+------------------------------------------------------------------+  struct TestHistoryHeader    {     int               version;            // 403     char              copyright[64];      // copyright     char              symbol[12];     int               period;     int               model;              // for what modeling type was the ticks sequence generated     int               bars;               // amount of bars in history     time_t            fromdate;           // ticks generated from this date     time_t            todate;             // ticks generating stopped at this date     double            modelquality;       // modeling quality     //---- general parameters     char              currency[12];       // currency base     int               spread;     int               digits;     double            point;     int               lot_min;            // minimum lot size     int               lot_max;            // maximum lot size     int               lot_step;     int               stops_level;        // stops level value     int               gtc_pendings;       // instruction to close pending orders at the end of day     //---- profit calculation parameters     double            contract_size;      // contract size     double            tick_value;         // value of one tick     double            tick_size;          // size of one tick     int               profit_mode;        // profit calculation mode        { PROFIT_CALC_FOREX, PROFIT_CALC_CFD, PROFIT_CALC_FUTURES }     //---- swap calculation     int               swap_enable;        // enable swap     int               swap_type;          // type of swap                   { SWAP_BY_POINTS, SWAP_BY_DOLLARS, SWAP_BY_INTEREST }     double            swap_long;     double            swap_short;         // swap overnight value     int               swap_rollover3days; // three-days swap rollover     //---- margin calculation     int               leverage;           // leverage     int               free_margin_mode;   // free margin calculation mode   { MARGIN_DONT_USE, MARGIN_USE_ALL, MARGIN_USE_PROFIT, MARGIN_USE_LOSS }     int               margin_mode;        // margin calculation mode        { MARGIN_CALC_FOREX,MARGIN_CALC_CFD,MARGIN_CALC_FUTURES,MARGIN_CALC_CFDINDEX };     int               margin_stopout;     // margin stopout level     int               margin_stopout_mode;// stop out check mode            { MARGIN_TYPE_PERCENT, MARGIN_TYPE_CURRENCY }     double            margin_initial;     // margin requirements     double            margin_maintenance; // margin maintenance requirements     double            margin_hedged;      // margin requirements for hedged positions     double            margin_divider;     // margin divider     char              margin_currency[12];// margin currency     //---- commission calculation     double            comm_base;          // basic commission     int               comm_type;          // basic commission type          { COMM_TYPE_MONEY, COMM_TYPE_PIPS, COMM_TYPE_PERCENT }     int               comm_lots;          // commission per lot or per deal { COMMISSION_PER_LOT, COMMISSION_PER_DEAL }     //---- for internal use     int               from_bar;           // fromdate bar number     int               to_bar;             // todate bar number     int               start_period[6];    // number of bar at which the smaller period modeling started     int               set_from;           // begin date from tester settings     int               set_to;             // end date from tester settings     //----     int               reserved[62];    };  

次に、モデル化されたバーの配列が続きます。

  #pragma pack(push,1)  struct TestHistory    {     time_t            otm;                // bar time     double            open;               // OHLCV values     double            low;     double            high;     double            close;     double            volume;     time_t            ctm;                // the current time within a bar     int               flag;               // flag to launch an expert (0 - bar will be modified, but the expert will not be launched)    };  #pragma pack(pop)  

FXT形式のヒストリーファイル