気配値などを取得!QuotesProviderクラスのサンプルコード

指定した銘柄に関する、直近の取引値や気配値などを取得できるプロバイダークラスです。PriceSeriesProviderでは取得できないリアルタイム情報が取得可能です。

概要

他のプロバイダー系クラスと同様、先に銘柄コードなどを設定した上でデータ取得します。QuotesProviderでは、事前に取得したい情報を「フィールド名」の中から選んで設定しておく必要がある点に注意です。

EasyLanguageサンプルコード

インジケーターを新規作成して以下のコードを貼り付け、チャートに設定ください。「印刷ログ」にチャート設定している銘柄に関する気配値などの情報が表示されます。(RealtimeプロパティをTrueに設定しているので、情報が更新されるたびに印刷ログ内の内容も変わります)

using elsystem;
using tsdata.common;
using tsdata.marketdata;

Vars:
    QuotesProvider QTP( NULL );
  
Method void CreateQTP()
Begin
    QTP = QuotesProvider.Create();
    
    QTP.Symbol = Symbol;
    
    QTP.Fields += "Description";
    QTP.Fields += "Last";
    QTP.Fields += "TradeDate";
    QTP.Fields += "TradeTime";
    QTP.Fields += "TradeVolume";
    QTP.Fields += "BidDate";
    QTP.Fields += "BidTime";
    QTP.Fields += "Bid";
    QTP.Fields += "BidSize";
    QTP.Fields += "AskDate";
    QTP.Fields += "AskTime";
    QTP.Fields += "Ask";
    QTP.Fields += "AskSize";
    QTP.Fields += "PreviousClose";
    QTP.Fields += "DailyOpen";
    QTP.Fields += "DailyHigh";
    QTP.Fields += "DailyLow";
    QTP.Fields += "DailyClose";
    QTP.Fields += "High52Week";
    QTP.Fields += "Low52Week";
    QTP.Fields += "MinMove";
    QTP.Fields += "VWAP";
    
    QTP.Updated += QTP_Updated;
    
    QTP.Realtime = True;
    QTP.Load = True; // ここでデータ取得が開始される
end;
  
method void QTP_Updated( elsystem.Object sender, tsdata.marketdata.QuoteUpdatedEventArgs args ) 
vars:
    string strOutput;
  
begin
    // データ取得が完了したかどうかチェック
    If QTP.State = DataState.loaded then Begin
        
        // ヘッダ行を追加
        strOutput = ELString.Format(
            "-- [{0}] -------------------------------------------------------------" + NewLine,
            QTP.Symbol
        );
        
       strOutput += ELString.Format(
            "銘柄名[Description]{0}" + NewLine +
            "------------------" + NewLine +
            "直近取引日付[TradeDate]{1}" + NewLine +
            "直近取引時刻[TradeTime]{2}" + NewLine +
            "直近取引価格[Last]{3}" + NewLine +
            "直近取引出来高[TradeSize]{4}" + NewLine +
            "------------------" + NewLine +
            "売気配取引日付[AskDate]{5}" + NewLine +
            "売気配取引時刻[AskTime]{6}" + NewLine +
            "売気配取引価格[Ask]{7}" + NewLine +
            "売気配取引出来高[AskSize]{8}" + NewLine +
            "------------------" + NewLine +
            "売気配取引日付[BidDate]{9}" + NewLine +
            "売気配取引時刻[BidTime]{10}" + NewLine +
            "売気配取引価格[Bid]{11}" + NewLine +
            "売気配取引出来高[BidSize]{12}" + NewLine +
            "------------------" + NewLine +
            "前日終値[PreviousClose]{13}" + NewLine +
            "本日始値[DailyOpen]{14}" + NewLine +
            "本日高値[DailyOpen]{15}" + NewLine +
            "本日安値[DailyOpen]{16}" + NewLine +
            "本日終値[DailyOpen]{17}" + NewLine +
            "------------------" + NewLine +
            "直近52週最高値[High52Week]{18}" + NewLine +
            "直近52週最安値[Low52Week]{19}" + NewLine +
            "------------------" + NewLine +
            "価格の最小変動[MinMove]{20}" + NewLine +
            "VWAP[VWAP]{21}",
            QTP.Quote["Description"].StringValue,
            QTP.Quote["TradeDate"].DateValue.Format( "%Y/%m/%d" ),
            QTP.Quote["TradeTime"].DateValue.Format( "%H:%M:%S" ),
            QTP.Quote["Last"].DoubleValue,
            QTP.Quote["TradeVolume"].IntegerValue,
            QTP.Quote["AskDate"].DateValue.Format( "%Y/%m/%d" ),
            QTP.Quote["AskTime"].DateValue.Format( "%H:%M:%S" ),
            QTP.Quote["Ask"].DoubleValue,
            QTP.Quote["AskSize"].IntegerValue,
            QTP.Quote["BidDate"].DateValue.Format( "%Y/%m/%d" ),
            QTP.Quote["BidTime"].DateValue.Format( "%H:%M:%S" ),
            QTP.Quote["Bid"].DoubleValue,
            QTP.Quote["BidSize"].IntegerValue,
            QTP.Quote["PreviousClose"].DoubleValue,
            QTP.Quote["DailyOpen"].DoubleValue,
            QTP.Quote["DailyHigh"].DoubleValue,
            QTP.Quote["DailyLow"].DoubleValue,
            QTP.Quote["DailyClose"].DoubleValue,
            QTP.Quote["High52Week"].DoubleValue,
            QTP.Quote["Low52Week"].DoubleValue,
            QTP.Quote["MinMove"].DoubleValue,
            QTP.Quote["VWAP"].DoubleValue
        );
         
        // 「印刷ログ」に出力
        ClearPrintLog;
        print( strOutput );
    End;
end;

Once Begin
    CreateQTP();
End;

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

表示例

本クラスの使いどころ

気配値情報を取得できるので、チャートやレーダースクリーンで気配値を扱いたい時に利用できます。

また、レーダースクリーンでは過去データを取得するのがチャートに比べてやや難しいため、「前日終値」「当日の足情報」「直近52週高値安値」「VWAP」といった情報をQuotesProviderで取得できるのは意外と便利だったりします。

クラス一覧ページに戻る