トレードステーション(EasyLanguage)をしていて、ファンダメンタル投資をしたいと思うことはありませんか?
自動で財務データを持ってきて、PERなどをその時点の株価で計算できれば、投資の機会を逃しにくくなります。
毎日、仕事終わりや通勤の時間にPERなどの計算をするのは疲れませんか?
そういった方のために、EasyLanguageでは、自動で計算してくれるプログラムがあります。
その方法を初心者でもわかりやすく紹介しています。

目次
財務データを取得する関数(FundamentalQuotesProvider)
早速ですが、財務データを取得する関数は、FundamentalQuoteProviderです。
この関数の使い方を、「EasyLanguage オブジェクトホームスタディコース例題14」「EasyLanguage オブジェクトホームスタディコース例題14」に沿って解説したいと思います。
STEP1 新規インジケータの作成

まずは、「EasyLanguage開発環境」を開いて、インジケータを新規作成しましょう。
STEP2 プログラムの作成
FundamentalQuotesProviderを使うための準備その1

プログラムを書いていきましょう。
まず下準備として、「FundamentalQuotesProvider」を使える状態にする必要があります。
画像のように、
①ツールボックスを開く
②「FundamentalQuotesProvider」をダブルクリックする
③下の方に「FundamentalQuotesProvider」が表示されていることを確認
これで、「FundamentalQuotesProvider」を使う準備ができました。
FundamentalQuotesProviderを使うための準備その2

次に、プロパティを設定しましょう。
「FundamentalQuotesProvider」はとても長い名前で、いちいちプログラム上に打っていたら大変なので、プロパティの「Name」のところを書き換えます。
名前を書き変えると、プログラム上で表現する名前を変更できます。
ここでは、マニュアル通り「FQP」とします。
また、「Symbol」と「Fields」は以下の表のように書きます。
Symbol | symbol |
Fields | “CE_SALES,CE_OP,CE_RP” |
「symbol」とすることで、チャートやレーダースクリーンに表示されている銘柄を参照します。
ここに、銘柄コードをいれると、その指定した銘柄の財務データを取得します。
「Fields」には、取得したい財務データを書きます。必ず、ダブルクオーテーション(“”)で囲ってください。
それぞれの意味は以下です。
CE_SALES | 予想売上高 |
CE_OP | 予想営業利益 |
CE_RP | 予想経常利益 |
イベントハンドラの設定

プログラムの内容はマニュアルをコピーしてください。上の画像に載っているプログラムもマニュアルと同じです。
プログラムが書けたら、「プロパティ」で、稲妻マークをクリックして、「Updated」に「FQP_Updated」を参照させてください。
これで、F3キーを押して、検証すれば、プログラム完成です。
プログラムの解説
プログラムの中身の解説をしていきたいと思います。
1〜4行目
1〜4行目は、イベントハンドラとしても追加したメソッドです。
財務データが更新される度に、このメソッドが実行されます。
3行目で、PlotValueというメソッドを実行するようになっています。
5〜15行目
5〜15行目は、財務データをプロットするためのメソッドです。
FQP.Count > 0は、Fieldsで指定した財務データがあるかどうかを判断します。
例えば、書き間違いや、そもそも書き忘れてた、などで認識できない財務データ名になっていたら、このif文の中は実行されません。
if FQP.HasQuoteData(0) thenは、「指定した財務データがあった場合」then以降の内容が実行されます。
ここの(0)は、Fieldsで指定した財務データの一番はじめに書いてあるものです。
つまり、ここでは、”CE_SALES,CE_OP,CE_RP”の内、0がCE_SALESに対応しています。
あとは同じように、1がCE_OP、2がCE_RPに対応しています。
Plot1(FQP.Quote(0).DoubleValue(0),”CE_SALES”)では、取得した財務データをプロットします。
FQP.Quote(0)までで、財務データを取得します。ここの(0)は先ほどと同様に、Fieldsに指定した内容です。
つまり、(0)でCE_SALES(予想売上高)が取得されます。
さらに、FQP.Quote(0).DoubleValue(0)とすることで、取得するデータはdouble(簡単に言うと、小数点以下含む数字)による数字であることを示します。
また、DoubleValue(0)の(0)は、先ほどのQuote(0)の(0)と異なり、いつのときの財務データを取得するかを示します。
0であれば、最新のデータを、(1)とすれば、1期前のデータを取得します。
Quote(0)の(0) | Fieldsに指定した財務データ |
DoubleValue(n)のn | n期前のデータを取得 |
STEP3 プログラムをレーダースクリーンに表示する

複数の銘柄を1度に見たいので、レーダースクリーンに表示してみます。
上の画像のように、「挿入」→「インジケータ」→作成したインジケータを追加→「OK」として、レーダースクリーンに表示してみてください。

予想売上高・予想営業利益・予想経常利益が表示されたと思います。
値が0となっているのは、未発表だったり、データがなかったりするものです。
実際に正しい値が入っているか、確認してみましょう。
以下の画像は、三菱重工の四季報です(マネックス証券から取ってきてます)。

2019年8月時点で確認したので、2020年3月が次の予想データとなっています。
レーダースクリーンに表示された値と確かに一致します。
Fieldsに使える財務データ

マニュアルを見ると、上の画像のように、「EasyLanguageオブジェクトリファレンスのヘルプを見てください。」となっています。
こう思って、ヘルプを見てみると、以下の画像にたどり着くと思います。

実は、上の方で使えるFields一覧のリンクを貼りましたが、アプリからいけるトレードステーションのヘルプではありません。
再度、以下にリンクを貼りますが、おそらく、トレードステーションのヘルプは、海外版を日本語訳しただけで、日本版のトレードステーションには対応していないのではないかと思います。

上記リンク先の「フィールド名」で、CEからはじまるものと、CRからはじまるものが多いことがわかります。
「CE」ではじまるものが「予想」で、「CR」からはじまるものが「実績」を表しています。
したがって、CE_SALESは予想売上高でCR_SALESは実績売上高を示します。
まとめ
EasyLanguageにて、財務データを取得する方法(FundamentalQuotesProviderの使い方)について紹介しました。
これを利用することで、PERの計算などが簡単にでき、すぐに情報を得られるメリットがあり、ファンダメンタル投資をシステムトレードですることが可能です。
FundamentalQuotesProviderを使ったシステムトレードができるようになれば幸いです。
EasyLanguageについて学びたい方は、以下の入門本もおすすめです。
ファンダメンタル投資を学びたい方は、以下の本がおすすめです。
