EasyLanguage研究所

マネックス証券が提供する株式トレード&分析ツール「トレードステーション」専用のプログラミング言語、EasyLanguageについて。特にオブジェクト指向型EasyLanguage(OOEL)の情報を中心に。

チャート表示されたすべての足情報をExcelファイルに自動書き込み(Workbookクラス使用)

チャートに表示された足情報を
直接Excelファイルに書き込んでくれるEasyLanguageコードのサンプルです。
「インジケーター」として作成し、チャートに挿入することで機能します。

前提条件

  • お使いのパソコンにExcelがインストールされている必要があります。
  • 実行前に以下のようなExcelファイルを作っておいてください。(場所はCドライブにフォルダ「test」を作ってその中に)

f:id:eltraders:20171121163141p:plain

using elsystem;
using elsystem.office.excel;
    
Vars:
    Workbook oBook(NULL),
    intBarNum(0);

Once (LastBarOnChartEx) Begin
    oBook = Workbook.Create();
    oBook.FileName = "C:\test\Output.xlsx";
    oBook.Visible = False;    // Excelの起動を見えないようにする(TrueだとExcelが立ち上がる)
    oBook.SaveOnClose = True; // oBook.Closeした時に自動で上書き保存されるようにする
    oBook.Load = True;        // ここで実際にファイルが読み込まれる
    
    // 最終足から最初の足まで遡って各足の情報を取得
    For intBarNum = 0 to MaxBarsBack+CurrentBar-1 Begin
        oBook.Sheets[1].CellsAsInt   [1, 2+intBarNum] = Date[intBarNum];
        oBook.Sheets[1].CellsAsInt   [2, 2+intBarNum] = Time[intBarNum];
        oBook.Sheets[1].CellsAsDouble[3, 2+intBarNum] = Open[intBarNum];
        oBook.Sheets[1].CellsAsDouble[4, 2+intBarNum] = High[intBarNum];
        oBook.Sheets[1].CellsAsDouble[5, 2+intBarNum] = Low[intBarNum];
        oBook.Sheets[1].CellsAsDouble[6, 2+intBarNum] = Close[intBarNum];
        oBook.Sheets[1].CellsAsDouble[7, 2+intBarNum] = Volume[intBarNum];
    End;
    
    oBook.Close();
End;

注意点

  • チャートの設定(銘柄/足種/期間)を変更すると、Excelファイルも上書きされますのでご注意ください。特に行数が減る場合は、前の情報が残ってしまうことがあります。