株価の時系列データ(OHLCV)を取得!PriceSeriesProviderクラスのサンプルコード

指定した銘柄の株価データを過去に遡って取得できるプロバイダークラスです。チャートに表示されている銘柄/足種/期間と異なるデータも取得可能です。

概要

銘柄/足種/期間を指定することで株価データ(始値/高値/安値/終値/出来高)を取得できます。

設定プロパティはチャートで銘柄設定する際の項目と対応しているので、マウスでチャートを設定する時をイメージしながらコードを書いていくと分かりやすいです。

EasyLanguageサンプルコード

インジケーターを新規作成して以下のコードを貼り付け、チャートに設定ください。「印刷ログ」に次のような株価データが過去から順に表示されます。

銘柄コード 1321(日経225連動型上場投資信託)
足種 日足
期間 本日から過去1年間
using elsystem;
using tsdata.common;
using tsdata.marketdata;

Vars:
    PriceSeriesProvider PSP( NULL );

Method void CreatePSP()
Begin
    PSP = PriceSeriesProvider.Create();
    
    // [A-1] 銘柄設定
    PSP.Symbol = "1321";
    //PSP.Symbol = Symbol; //<--- こちらにすると「本インジケーターを設定したチャートの銘柄」になります。
    
    // [A-2] 足種を「日足」に設定
    PSP.Interval.ChartType = DataChartType.Bars;
    PSP.Interval.IntervalType = DataIntervalType.Daily;
    PSP.Interval.IntervalSpan = 1;
     
    // [A-3] 期間を「本日から過去1年間」に設定
    PSP.Range.LastDate = Datetime.Today;
    PSP.Range.Type = DataRangeType.Years;
    PSP.Range.Years = 1;
    
    // その他設定
    PSP.StateChanged += PSP_StateChanged;
    PSP.Realtime = True;
    
    PSP.Load = true; // ここでデータ取得が開始される
end;

method void PSP_StateChanged( elsystem.Object sender, tsdata.common.StateChangedEventArgs args ) 
vars:
    int intNum,
    string strOutput;
    
begin
    // データ取得が完了したかどうかチェック
    If args.OldState <> DataState.loaded and
       args.NewState = DataState.loaded then Begin
        
        // ヘッダ行を追加
        strOutput = ELString.Format(
            "-- [{0}] {1}件 -------------------------------------------------------------" + NewLine,
            PSP.Symbol,
            PSP.Count
        );
        
        // 足ごとの日付/価格/出来高を1行で追加
        For intNum= PSP.Count - 1 downto 0 Begin
            strOutput += ELString.Format(
                "{0} {1} {2} {3} {4} {5}" + NewLine,
                PSP.Time[intNum].Format( "%Y/%m/%d" ),
                PSP.Open[intNum],
                PSP.High[intNum],
                PSP.Low[intNum],
                PSP.Close[intNum],
                PSP.Volume[intNum]
            );
        End;
        
        // 「印刷ログ」に出力
        ClearPrintLog;
        print( strOutput );
    End;
end;

Once Begin
    CreatePSP();
End;

{ ** Copyright © Trade Tech All Rights Reserved ** }

表示例

本クラスの使いどころ

チャートと異なる銘柄や足種を指定できるので、同銘柄の別足種データを参照したい時や、別銘柄との比較を行ないたい時に便利です。

また、トレーディングアプリを自作する場合にも、チャート情報が必要な時に利用します。

多くの場面で必要になる機会の多いクラスです。

クラス一覧ページに戻る