気配値などを取得!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で取得できるのは意外と便利だったりします。

クラス一覧ページに戻る

「株式投資 x IT」の
オンラインコミュニティに参加しませんか?

2019年5月頃から、トレステやEasyLanguageを中心とした株式投資に役立つ最新ツールやITスキルに関する情報が手に入るオンラインコミュニティを運営しています。

トレステやEasyLanguageの豊富な小ネタやサンプルコードが手に入り
チャットツール(Slack)でいつでもトレステやEasyLanguageの質問ができ
毎月開催している勉強会の収録動画がすべて視聴できて
トレステ以外にも株式投資に役立つ最新のツールやITスキルを学べる

オンライン動画講座
時系列分析用サンプルプログラム
OOELサンプルプログラム
Slackでいつでも質問可能

このように、「コンテンツ見放題」「チャット交流」という構成で、僕がが運営しているコミュニティになります。

最近トレステやEasyLanguageを始めたという方から、経験豊富な投資家・プログラマーの方まで、様々な人が集う場となっております。興味のある方はぜひ、ご参加ください。

トレードテック・オンラインの詳細を見る