チャートのキャプチャ画像作成

MetaTrader 4
GogoJungle
2019/08/02 21:54
58

チャートの画像をキャプチャするスクリプトです。
エントリー時の状況など、チャートのキャプチャを撮って記録したい場合にご利用いただけます。

使い方
チャートへドラッグ&ドロップすることで撮影されます。
作成されたファイルはデータフォルダ内の[MQL4]→[Files]へ保存されます。

ソースコード

#property copyright "Copyright 2016, gogojungle"
#property link      "http://labo.fx-on.com"
#property version   "1.00"
#property strict

void OnStart(){
   takePicture();
}

bool takePicture(string file_name=NULL){
   int width = 0;
   int height = 0;
   int subwindow_height = 0;
   int sub_count = 1;
   
   //デフォルトファイル名 通貨ペア名_時刻.png
   if(file_name == NULL){
      file_name  = Symbol() + "_";
      file_name += IntegerToString(Year());
      if(Month() < 10) file_name += "0";
      file_name += IntegerToString(Month());
      if(Day() < 10) file_name += "0";
      file_name += IntegerToString(Day());
      if(Hour() < 10) file_name += "0";
      file_name += IntegerToString(Hour());
      if(Minute() < 10) file_name += "0";
      file_name += IntegerToString(Minute());
      if(Seconds() < 10) file_name += "0";
      file_name += IntegerToString(Seconds());
      file_name += ".png";
   }
   
   //サブウィンドウの合計高さを取得
   while(true){
      if(ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS, sub_count) > 0){
         subwindow_height += (int)ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS, sub_count);
      }
      else break;
      sub_count++;
   }
   
   //画像の横幅と高さを設定
   width = (int)ChartGetInteger(0, CHART_WIDTH_IN_PIXELS, 0) + 45;
   height = (int)ChartGetInteger(0, CHART_HEIGHT_IN_PIXELS, 0) + subwindow_height + 20;
   
   ChartRedraw();
   if(ChartScreenShot(0, file_name, width, height, ALIGN_CENTER) == false){
      Print(__FUNCTION__ + " ErrorCode:" + IntegerToString(GetLastError()));
      return(false);
   }
   
   PlaySound("news.wav");
   return(true);
}

スクリプトにすることで、ナビゲーターからファイル名を右クリックすることで、キーボードショートカットに登録できます。
煩わしい操作不要で簡単にキャプチャすることが可能です。

コメント

GogoJungle
2019/08/02 21:54

ChartCapture.zip

ChartCapture.zip

関連項目

検索結果がありません。