WindowScreenShot関数|チャートのキャプチャを取得

2024年10月1日

執筆者

佐川直弘(株式会社トリロジー取締役)

MetaTrader4(MT4)では、チャートウィンドウのキャプチャ画像(スクリーンショット)を取得することで、現在のチャートの状態を画像として保存することができます。この記事では、チャートのキャプチャを取得する方法について、初心者向けにわかりやすく解説します。

WindowScreenShot関数|チャートのキャプチャを取得する方法

チャートウィンドウのキャプチャ画像を取得するには、`WindowScreenShot`関数を使用します。この関数を使うことで、指定した条件でチャートウィンドウのスクリーンショットを取得し、保存することができます。

以下は、`WindowScreenShot`関数の基本的な仕様です。

WindowScreenShot関数の仕様
bool WindowScreenShot(
    string filename,    // 保存するファイル名
    int size_x,         // 画像の幅(ピクセル)
    int size_y,         // 画像の高さ(ピクセル)
    int start_bar=-1,   // キャプチャするバーの数(1~)。0以下は表示されている全てのバーが対象。
    int chart_scale=-1, // 倍率(0~5:値が大きいほど倍率が大きい)。負数は現在の表示倍率が適用される。
    int chart_mode=-1   // 足の表示モード。CHART_BAR (0)、CHART_CANDLE (1)、CHART_LINE (2)
);

この関数は、チャートウィンドウのキャプチャ画像を取得します。キャプチャに成功した場合は `true` を、失敗した場合は `false` を返します。エラーの詳細情報は `GetLastError` 関数を使用して取得できます。キャプチャ画像ファイルは `experts/files` フォルダに格納されます。

以下は、`WindowScreenShot`関数を使ってチャートのキャプチャを取得するサンプルコードです。

キャプチャ取得の例
bool isTesting = IsTesting();
int tradesCounter = TradesTotal();
if(isTesting && ExtTradesCount < tradesCounter) {
    //—- キャプチャを取得して保存
    if(!WindowScreenShot(“shots/tester" + ExtShotsCount + “.gif", 640, 480)) {
        int lastError = GetLastError();
    } else {
        ExtShotsCount++;
    }
    ExtTradesCount = tradesCounter;}

このサンプルコードでは、`WindowScreenShot`関数を使って、チャートのスクリーンショットを取得し、指定されたファイル名で保存しています。

チャートのキャプチャを取得する機能は、以下のような場合に役立ちます。

よく使われるケース
– 現在のチャートの状態を記録して保存したいとき
– テストや検証のためにチャートの画像を保存したいとき
– トレードの履歴を視覚的に記録したいとき

これらのケースで、`WindowScreenShot`関数を使うことで、効率的にチャートのキャプチャを取得することができます。

まとめ

MetaTrader4の`WindowScreenShot`関数を使えば、チャートのキャプチャ画像を簡単に取得して保存できます。これにより、トレーダーはチャートの状態を視覚的に記録しやすくなり、取引の精度を向上させることができます。初心者の方も、この記事を参考にぜひチャートのキャプチャ取得に挑戦してみてください。

MQL4

Posted by 佐川直弘