ヒストリーセンター
テクニカル分析では、市場の動向を調査して、将来の価格変動を予測します。通常、市場分析にはチャートを利用します。これは、使用されているあらゆる通貨ペア及び周期について、過去の価格データを保有しておくことが、非常に重要であるという理由からです。ヒストリーデータは継続的に作成され、サーバに保存されます。ターミナルは、サーバへの接続時に必要なデータを全てダウンロードします。その後、それらのデータを使ってチャートを描画し、テストを行い、エキスパートを最適化します。MT4ターミナルには、ヒストリーデータを取り扱うための「ヒストリーセンター」という名前の特別に設計されたウィンドウがあります。このウィンドウは「ツール⇒ヒストリーセンター」のメニューコマンドを使用するか、F2キーを押すことで、開くことができます。
MetaTrader4ターミナルがシャットダウンされると、ヒストリーファイルのサイズが設定で事前定義されている値を超えない限り、全てのヒストリーデータが「ヒストリーセンター」に保管されます。もしも保管されるヒストリーデータの量が「ヒストリー内のバーの最大数」フィールドで設定された値を超える場合は、保存時に最も古いバーから削除されます。SSSSSSPP.hstという名前(ここで、SSSSSSは通貨ペア名を、PPは分単位での期間を表します)の、個別のヒストリーファイルが周期ごとに作成され、/HISTORYディレクトリーに保存されます。保管されたデータは、将来、チャートの描画や取引のテストに使用されます。
利用可能なデータは、「ヒストリーセンター」のウィンドウ内で変更できます。そのためには、ウィンドウの左側で、必要な通貨ペアと周期を選択します。すると、対応するデータがダウンロードされ、表形式で表示されます。新しいバーについてのレコードを追加する場合は、同じ名前のボタンを押します。表示された新しいウィンドウで、必要なフィールドに入力して「OK」を押すとヒストリーに新しいバーが追加されます。また、対応するレコードを選んで「編集」ボタンを押すことで、バーを変更することもできます。ヒストリーからバーを削除するには、そのデータを選択して、対応するボタンを押します。
ヒストリーデータのエクスポート/インポート
ヒストリーデータはCSV、PRN、HTM形式のファイルにエクスポートすることができます。それには、「ヒストリーデータ」ウィンドウの左側から、希望する通貨ペアを選択し、「エクスポート」ボタンを押します。次に、利用可能な3種類のファイル形式のうちから1つを選択し、ハードディスク上の保存場所のパスを指定します。また、さらなる活用のために、ヒストリーデータをターミナルにインポートすることもできます。インポートできるファイル形式は、CSV、PRN、HTM、HSTに限られます。さらに、「ヒストリーセンター」ウィンドウの左側から、インポートするデータの通貨ペアと周期を選択した後、「インポート」ボタンをクリックし、以下のインポートパラメータを設定します。
◾Separator : インポートするファイル内のデータ区切り文字です。カンマ、セミコロン、空白、またはタブ文字を区切り文字として使用できます。
◾Skip columns : インポート時に特定の数のカラムをスキップします。インポートするファイルに必要以上のデータ・タイプが含まれている場合に有効です。
◾Skip rows : インポート時に特定の数の行をスキップします。
◾Shift hours : データを特定の時間数だけシフトします。
◾Use selected only : 選択したデータのみをインポートします。データは、CtrlキーとShiftキーを使って行単位で選択します。
◾Volume : 出来高のインポートを有効または無効にします。
インポートが完了したヒストリーデータは、チャートの描画及びエキスパートのテストに使用されます。
ヒストリーファイルのフォーマット(HSTファイル)
ベースヘッダーが最初に来ます。
struct HistoryHeader
{
int version; // version of the base
char copyright[64]; // copyright information
char symbol[12]; // security
int period; // security period
int digits; // the amount of digits after point shown for the symbol
time_t timesign; // timesign of the base creation
time_t last_sync; // last synchronization time
int unused[13]; // for future use
};
次に、バーの配列(1バイトの行端揃え)が続きます。
#pragma pack(push,1)
//—- Standard representation of a quote in the base
struct RateInfo
{
time_t ctm; // current time in seconds
double open;
double low;
double high;
double close;
double vol;
};
#pragma pack(pop)
コメント