株価分析にエクセルを活用していますか?

エクセルを使った株価分析を実践している方の多くは、次の手順で分析を進めていると思います。

 

  1. 証券会社のHPや、トレードツールから株価データーをダウンロード
  2. エクセルに取り込んで、データーを整形(区切り位置やデータ形式の調整)
  3. 株価分析

 

やりたいのは3番目の株価分析です。

1番目2番目の手順が面倒で、分析まで手を出せていない方も多いのでは?

 

「9割の個人投資家が損をしている」のが株式投資の世界です。

※関連記事はこちら ついに事実判明! 株式投資をしている何割の人が損をしているか? [株式投資で勝つ確率]

 

厳しい株式投資の世界で生き残るためには、他の投資家の1歩先を進む必要があるでしょう。

 

マネックス証券のトレードツール「トレードステーション(トレステ)」なら、エクセルに直接データーを書き込んだり、エクセルで計算した結果をトレードステーションに戻すことも出来ます。

 

「トレードステーション(トレステ)」と、「エクセル」を完全連携させて株価分析を効率化させましょう。

 

この記事で紹介する内容は、「手順が複雑だなぁ」と感じる方も多いと思います。

たしかに複雑かも知れません。

ただし、1度設定してしまえば繰り返し作業が自動化されますので、次回からは大幅に株価分析までの時間が短縮されます。

 

とくに株価分析に充てる時間が少ない、個人投資家のあなたにオススメします。

 

なお、サイト管理者とマネックス証券との間にスポンサー契約等の利害関係はありません。

1人のユーザーとして、「個人投資家の方々に広く知ってもらいたい」この思いで、記事を作成・公開しています。

 

スポンサーリンク

 

トレードステーションとは

マネックス証券が提供する、高機能トレーディングツールです。

アメリカの証券会社「TradeStation社」トレーディングツールの日本株版となります。

画像の出所:マネックス証券HP https://info.monex.co.jp/tradestation/about/

TradeStation社は、アメリカで最も権威のある金融メディアの一つである「バロンズ」紙において、2011年から8年連続で最高評価を獲得しています(オンライン証券会社アクティブトレーダー部門)。
またアクティブトレーダーへの調査においても、最も優れた株式取引ツールと評価されています。

出所:マネックス証券HP https://info.monex.co.jp/tradestation/about/

 

 

トレードステーションとエクセルのデーター連携

 

トレードステーションとエクセルのデーター連携はどのように行うか?

それは、トレードステーションの「Easy Languageオブジェクト」という機能を使います。

 

プログラムコードを書く必要があるので、ハードルが高い印象を持っている方も多いでしょう。

 

「えっ!プログラム?」「ムリムリ!」

 

このように思う方が大半かも知れません。

でも、思い出してください。

株式投資の世界では「9割の個人投資家が損をしている」のです。

あなたは大半のなかに埋もれる事を望みますか?

 

1割の勝者に成るために、少しの間お付き合いください。

 

 

Easy Languageオブジェクト

 

「Easy Languageオブジェクト」を使いこなすには、プログラミングの知識が必要になります。

あなたの目的は「良い投資を行う」ことで、「良いプログラマー」になる事ではありませんよね。

このページの記事では、プログラミングの知識が無くても、わかるように手順を解説してゆきます。

 

しっかり「Easy Languageオブジェクト」について勉強をしたい方は、マネックス証券のホームページからガイドブックがダウンロード出来ますので、参照してください。

Easy Languageオブジェクトガイドブックは こちら。 https://info.monex.co.jp/tradestation-support/manual.html#01

 

※このページの記事では、Easy LanguageオブジェクトガイドブックP78~P83ページまでの内容を参考にしています。

 

 

エクセルの準備

 

データーを書き込むエクセルを先に準備しておきます。

 

Cドライブの直下に「TSlink」フォルダを作り

C:¥TSlink

 

エクセルを次の名前を付けて保存します。

linkBook1.xlsx

 

※保存フォルダや、ファイル名は任意に変更可能ですが、始めての方は同じ条件で作成してください。

 

 

Trade station開発環境の起動

 

トレードステーションを起動したら、画面左端の「トレーディングアプリ」タブをクリックし、「Easy Languageプログラム開発」アイコンをクリックします。

 

Trade station開発環境のエディターが起動したら、「ファイル」-「新規作成」ー「インジケーター」と進みます。

 

任意のファイル名を付けましょう。

私は「20140526Excel連携」としました。

本当は作成時が2019年05月26日なので、20190526とするべきでしたが、タイプミスで20140526になってしまいました。

動作には影響がないのでこのまま進めます。

 

Trade station開発環境のエディター左上の、「ツールボックスタブ」にマウスポインターを移動します。

すると「ツールボックスパネル」が現れますので、エクセルコンポーネントをダブルクリックしてください。

 

エディターの下部にエクセルコンポーネントが表示されます。

 

  1. Trade station開発環境のエディター右上の、「プロパティタブ」にマウスポインターを移動します。
  2. すると「プロパティパネル」が現れますので、エクセルコンポーネントをクリックしてください。
  3. 事前に準備したエクセルの保存フォルダと、ファイル名を入力します。 (  を忘れずに)
  4. エクセルコンポーネントのプロパティ名を「WkBk」に変更してください。

 

ここまでで、事前準備は完了です。

 

プログラムコードお試し

 

いよいよ、プログラムコードを書いてゆきましょう。

まずは動作を確認する為に、お試しのプログラムです。

 

Trade station開発環境のエディターに、下のプログラムコードを書き込みます。

ご自分の手で直接入力する事をオススメしますが、下のコードをコピーアンドペーストしてもOKです。

 

プログラムコード ここから====

WkBk[“Sheet1”].Cells[1,1] = “aaa” ;
WkBk[“Sheet1”].Cells[2,2] = “bbb” ;
WkBk[“Sheet1”].Cells[3,3] = “ccc” ;

プログラムコード ここまで====

 

コピーアンドペーストで貼り付ける場合、 ” が全角で張り付く場合がありますので、その際は手で修正してください。

 

入力が終わったら、エディターのチエックボタンを押して、プログラムに間違いが無いか確認します。

エディター左下のアウトプットウインドウに「0エラー、0警告」と表示されていればOKです。

別のエラーメッセージが出ていれば、どこかに間違えがありますので、修正してください。

 

プログラムコードの意味

 

プログラムコードの意味を解説します。

 

WkBk[“Sheet1”].Cells[1,1] = “aaa” ;

 

◇WkBk

先の手順でエクセルコンポーネントのプロパティ名を「WkBk」に変更したのを覚えていますか?

このプロパティ名を指定しています。

 

◇[“Sheet1”]

エクセルのシート名を指定しています。

ここでは、標準のシート名 Sheet1 を指定しています。

 

◇Cells[1,1]

セルの場所を指定しています。

Cells[1,1]は1列目、1行目の意味です。

 

Cells[2,2]になると2列目、2行目の意味に変わります。

 

◇Cells[1,1] = “aaa” ;

Cells[1,1] 1列目、1行目 に 文字列 aaa を入力するという意味です。

最後の  は プログラムの終わりを意味しています。

 

プログラムコードを適応

 

お試しで作成した、プログラムコードを動かしてみましょう。

トレードステーションのチャートを表示させてください。

チャート上で右クリック。

分析テクニックを挿入を選びます。

 

今回作成したプログラム「20140526Excel連携」を選んでOKボタンを押します。

 

設定ウインドウが開きますが、変更せずにそのままOKボタンを押します。

 

すると間もなく、エクセルが起動します。

プログラムコードと比較してみましょう。

WkBk[“Sheet1”].Cells[1,1] = “aaa” ;
WkBk[“Sheet1”].Cells[2,2] = “bbb” ;
WkBk[“Sheet1”].Cells[3,3] = “ccc” ;

 

エクセルのシート名”Sheet1″のセルCells[1,1](1列、1行)に “aaa”が入力されています。
エクセルのシート名”Sheet1″のセルCells[2,2](2列、2行)に “bbb”が入力されています。
エクセルのシート名”Sheet1″のセルCells[3,3](3列、3行)に “ccc”が入力されています。

 

ココで注意。

先の手順でエクセルコンポーネントのプロパティ名を「WkBk」に変更しましたね。

 

プログラムコード先頭の「WkBk」でエクセルコンポーネントのプロパティ名を指定しています。

WkBk[“Sheet1”].Cells[1,1] = “aaa” ;

上の図③で指定した場所にあるエクセルファイルが起動しています。

事前に準備しておいた、「linkBook1.xlsx」ですね。

 

ひょっとすると、エクセルが自動的に立ち上がらなかった方もいるかも知れません。

エクセルコンポーネントのプロパティ設定が違っている可能性があります。

 

エクセルコンポーネントのプロパティ設定

 

少しわかりにくい、エクセルコンポーネントのプロパティ設定について、解説します。

今回設定したプロパティウインドウはこちらです。

 

◇FileName

コンピューター上の Excel スプレッドシートのパスおよびファイル名。

 

◇Shared

真の場合、複数の Workbook オブジェクト全体で 1 つの Excel スプレッドシートを共有します。共有されない場合は偽です。

 

◇Visible

真の場合は接続時にスプレッドシートを表示し、偽の場合は表示せずにスプレッドシートをアップデートします。

 

◇Load

真の場合、スプレッドシートへの接続を読み込んで開きます。

 

◇SaveOnClose

真の場合、接続を閉じたときにスプレッドシートに加えた変更を保存します。

 

◇Name

エクセルコンポーネントのプロパティ名

 

※各プロパティの解説文はTrade station開発環境のヘルプから抜粋しました。

 

スポンサーリンク

 

株価の取得

 

それでは、株価を取得してみましょう。

今まで使用していた、プログラムを発展させます。

 

ファイル名を変えて保存します。

「ファイル」ー「名前を付けて保存」を選びます。

 

任意のファイル名を付けましょう。

私は「20190602Excel連携」としました。

 

Trade station開発環境のエディターに、下のプログラムコードを書き込みます。

入力が終わったら、エディターのチエックボタンを押して、プログラムに間違いが無いか確認してください。

エディター左下のアウトプットウインドウに「0エラー、0警告」と表示されていればOKです。

別のエラーメッセージが出ていれば、どこかに間違えがありますので、修正してください。

 

ご自分の手で直接入力する事をオススメしますが、下のコードをコピーアンドペーストしてもOKです。

プログラムコード ここから====

Vars:
WBTab(“Sheet1”),Cnt(11);

WkBk[WBTab].Cells[1,Cnt] = date;
WkBk[WBTab].Cells[2,Cnt] = time;
WkBk[WBTab].Cells[3,Cnt] = open;
WkBk[WBTab].Cells[4,Cnt] = close;

Cnt = Cnt + 1

プログラムコード ここまで====

 

コピーアンドペーストで貼り付ける場合、  が全角で張り付く場合がありますので、その際は手で修正してください。

 

プログラムコードの意味

 

プログラムコードの意味を解説します。

 

◇Vars:

変数を宣言します。 変数は  の後に記載します。

 

◇WBTab(“Sheet1”),Cnt(11);

変数名 WBTab 、 初期値 Sheet1

変数名 Cnt 、 初期値 11(数字の11)

 

◇WkBk[WBTab].Cells[1,Cnt] = date;

変数:WBTabには、初期値の ”Sheet1“ が入っています。

変数:Cntには、最初に初期値の11(数字の11)が入っていますが、ローソク足毎に Cnt に1増えた数値が入ります。

これによって、ローソク足毎に1行下のセルに数値が入ることになります。

予約語 date : ローソク足の日付を取得します。

 

◇WkBk[WBTab].Cells[2,Cnt] = time;

予約語 time : ローソク足の時間を取得します。

 

◇WkBk[WBTab].Cells[3,Cnt] = open;

予約語 open : ローソク足の始値を取得します。

 

◇WkBk[WBTab].Cells[4,Cnt] = close;

予約語 close : ローソク足の終値を取得します。

 

◇Cnt = Cnt + 1

プログラムコードはチャートのローソク足毎に計算されます。

計算順順序はローソク足の古い順です。(過去から始まって、一番新しい足まで計算して終わり)

ローソク足毎に計算が終わったら、Cntを1つ増やします。

 

チャートに適応して株価を取得

チャートに適応して株価を取得します。

 

トレードステーションのチャートを表示させてください。

チャート上で右クリック。

分析テクニックを挿入を選びます。

 

作成したプログラム「20190602Excel連携」を選んで適応します。

 

エクセルが立ち上がり株価データーがエクセルシートに登録されました。

適応したチャートが、日経平均株価の30分足だったので、30分ごとの株価が登録されています。

 

A列のDateのデータを見てください。

A列11行の値は「1190507」になっています。

「1190507」は2019年05月07日を表しています。

これは、Easy Language独特の日付表記で、「1190507」先頭の数字1が西暦2000を表しています。

 

Date は、日付が 2000 年 1 月 7 日の場合、1000107 を返します。

Date は、日付が 1999 年 4 月 12 日の場合、990412 を返します。

出所:Easy Languageヘルプ

 

 

 

エクセルシートの情報をトレードステーションに取得

 

これまでとは逆に、エクセルシートの情報をトレードステーションに取得する事も出来ます。

 

実用的ではありませんが、試しにエクセルで「日経平均株価始値の平均値」を求めて、トレードステーションで表示させてみます。

C8セルに平均値を求める関数を入力します。(Open/始値の平均値)

ファイルを上書き保存してください。

 

Trade station開発環境のエディターに、追加のプログラムコードを書き込みます。

追加した部分は、2行目の ,AVG(0) と 13行目以降です。

入力が終わったら、エディターのチエックボタンを押して、プログラムに間違いが無いか確認してください。

エディター左下のアウトプットウインドウに「0エラー、0警告」と表示されていればOKです。

別のエラーメッセージが出ていれば、どこかに間違えがありますので、修正してください。

 

エラーが無ければ次のように、印刷ログウインドにエクセルで計算した平均値が表示されます。

 

初期設定では、印刷ログウインドはチャートの下部に表示されるように設定されています。

表示されない場合は、次の手順を実行してください。

 

・print文で指示したデーターを確認するには、印刷ログウインドを表示させます。

 

追加したプログラムコードの意味

追加したプログラムコードの意味を解説します。

 

◇,AVG(0);(2行目右端に追加)

変数を宣言します。

変数名 AVG 、 初期値 0(数字のゼロ)

エクセルで計算した、平均値を入れる変数です。

 

◇Once (LastBarOnChartEx) Begin

Easy Languageのプログラムコードはチャートのローソク足毎に計算されます。

計算順順序はローソク足の古い順です。(過去から始まって、一番新しい足まで計算して終わり)

ただし、最後の足のときだけ計算させたいときには、このプログラムコードを使います。

最後のローソク足になったら、Begin と End; の間に書かれたプログラムコードを1度だけ実行します。

 

◇ClearPrintLog;

過去に出力された、プリントログを消去します。

◇AVG = WkBk[WBTab].CellsAsDouble[3,8];

エクセルシートの、3列目、8行目の値を AVG変数に入れます。

CellsAsDouble については下の表を参照願います。

出所:Easy Language ヘルプ

 

◇Print(“OpenAVG=”,AVG);

AVG変数の値を印刷ログウインドに表示します。

 

◇End;

Once (LastBarOnChartEx) Begin の終わりです。

 

株価の取得順序を変更する

 

エクセルで株価分析をする為に、「新しいデーターを一番上に表示して、順次古いデーターを下の行に表示させたい」

このように思うのは私だけでしょうか?

「エクセルに取り込んだのだから、ソートすれば良いじゃん」

まさにその通りです。

でも、毎回ソートさせるのも面倒ですよねぇ。

 

ここまでに解説した手順で、株価をエクセルに取得することが出来るようになりました。

下の例は適応したチャートが、日経平均株価の30分足だったので、30分ごとの株価が登録されています。

 

B列のTimeがローソク足の時間です。

データーは、1番古いローソク足のデーターから新しい順に取得されているのが分かります。

 

※Easy Language独特の日付表示の、おさらいをしましょう。

A列のDateのデータを見てください。

A列11行の値は「1190507」になっています。

「1190507」は2019年05月07日を表しています。

これは、Easy Language独特の日付表記で、「1190507」先頭の数字1が西暦2000を表しています。

 

Date は、日付が 2000 年 1 月 7 日の場合、1000107 を返します。

Date は、日付が 1999 年 4 月 12 日の場合、990412 を返します。

出所:Easy Languageヘルプ

 

上の例では、

Date:1190507 は 2019年05月07日

Time:1000 は 10時00分

Time:1030 は 10時30分

となります。

 

データーを取得するプログラムEasy Languageは、ローソク足の単位で実行されます。

計算の順番は、チャートに表示された一番古いローソク足(1番左)から、新しいローソク足(右側)に向かって、実行されます。

 

このため、古いデータが一番上に取得され、新しいデーターが一番下に取得されることになります。

 

下のように、プログラムコードを書き換えました。

 

プログラムコードの意味

◇CntBarN(0);(2行目右端に追加)

変数を宣言します。

変数名 CntBarN 、 初期値 0(数字のゼロ)

何本目のローソク足情報を取得するか、指定する数値を入れる変数です。

 

◇Once (LastBarOnChartEx) Begin

Easy Languageのプログラムコードはチャートのローソク足毎に計算されます。

計算順順序はローソク足の古い順です。(過去から始まって、一番新しい足まで計算して終わり)

ただし、最後の足のときだけ計算させたいときには、このプログラムコードを使います。

最後のローソク足になったら、Begin と End; の間に書かれたプログラムコードを1度だけ実行します。

 

◇For CntBarN = 0 to MaxBarsBack+CurrentBar-1 Begin

CntBarN:何本目のローソク足情報を取得するか、指定する数値を入れる変数

CntBarN 変数の中身は、”0”からスタートして、1番古いローソク足の数まで増えます。

MaxBarsBackとCurrentBarは少々分かりにくいので、Easy Languageヘルプを見てください。

意味を追求せずに、「おまじない」だと思って使うのも1つの手だと思います。

○MaxBarsBack

過去のデータを参照するすべての取引ストラテジー、分析テクニックおよび関数は、計算の実行を開始するまで一定数の足を待機する必要があります。この待機期間は、分析テクニックについて調整でき、スタディが参照する足の最大本数、すなわち、MaxBarsBack と呼ばれます。たとえば、10 本の移動平均を求めるには、MaxBarsBack を 10 に設定する必要があり、すなわち、9 個の足履歴と現在の足が計算に必要です。

出所:Easy Languageヘルプ

○CurrentBar

現在評価されている足の数を返します。

チャートの (スタディによって参照される最大本数である MaxBarsBack によって指定された足数の後の) 各バーに番号が割り当てられ、番号は後続の足のそれぞれについて 1 ずつ増分されます。たとえば、MaxBarsBack が 10 に設定された場合、11 番目の足は CurrentBar 番号 1 であり、12 番目の足は CurrentBar 番号 2 であり、以下同様です。

出所:Easy Languageヘルプ

 

◇WkBk[WBTab].Cells[1,CntBarN+11] = date[CntBarN];

変数 WBTab には、エクセルのシート名 ”Sheet1″ が入っています。

シート名 Sheet1 の 1列目、(CntBarN+11)行目 に date[CntBarN] が登録されます。

変数 CntBarN は、 ”0” から順に チャートに表示されているローソク足の最大数まで増えます。

”0” は1番新しいローソク足を示していて、 ”1” は1つ古いローソク足を示します。

 

この変更したプログラムにより取得された、エクセルシートの例です。(ローソク足は30分足)

 

複数の株価を取得する

 

トレードステーションのチャートには、複数の銘柄を同時に表示することが出来ます。

どうせなら一緒にダウンロードするプログラムに変更しましょう。

 

チャートを準備します。

下のチャートは上から、米ドル/円、日経平均株価、NYダウ平均を表示させました。

 

プログラムコードを下のように変更しました。

 

変更したプログラムコードの意味

◇For CntBarN = 0 to 100 Begin(6行目)

変更前はこちらです: For CntBarN = 0 to MaxBarsBack+CurrentBar-1 Begin

ローソク足のデーターを取得する本数を ”100” に固定しました。

これは、データー取得後にエクセルで株価を自動集計する際に、手間を省くためです。

チャートにローソク足データーが200足以上表示されていれば、150でも200でも構いません。

 

◇WkBk[WBTab].Cells[11,CntBarN+11] = date[CntBarN] of Data2;(14行目)

プログラムコードの最後に  ”of Data2” を追加しています。

これで、2番目に表示されているチャートの情報が取得出来ます。

エクセルに取得する列を変更しています。 Cells[11,

 

◇ WkBk[WBTab].Cells[21,CntBarN+11] = date[CntBarN] of Data3;(19行目)

プログラムコードの最後に  ”of Data3” を追加しています。

これで、2番目に表示されているチャートの情報が取得出来ます。

エクセルに取得する列を変更しています。 Cells[21,

 

複数銘柄データーの注意点

エクセルに3銘柄のデーターが取得されました。

 

ここで注意が必要です。

上の例では、米ドル/円、日経平均株価、NYダウ平均の情報を取得しました。

チャートをもう一度見てみましょう。

中段のローソク足が、日経平均株価です。

中央付近にローソク足が表示されていない期間があります。

なぜだか分かりますか?

 

表示されていない期間は4月末から5月の前半にかけて。

そうです。 「10連休!」と話題になった2019年のゴールデンウィーク期間です。

日本取引所は休場していても、為替やNY証券取引所では取引をしています。

 

エクセルに取得されたデーターを見てみましょう。

A列に取得しているのが為替なので、日曜日以外はデーターが取得されています。

K列に取得しているのが日経平均株価なので、休場の日はデーターが取得されていません。

U列に取得しているのがNYダウ平均なので、休場の日はデーターが取得されていません。

さらに注意点がもうひとつ。

日経平均株価の日付をよく見てください、2019年4月27日の次が2019年5月8日です。

2019年のゴールデンウィークは4月27日からのはず!

 

なぜでしょう?

L列のTimeを見てください。”559″となっています。

これはEasy Languageの時刻の表現方法で、朝の5時59分を表しています。

 

チャートで、為替やNY取引所のデーターを合わせて表示させているため、ローソク足の終わりの時間が翌日の朝になっているのです。

このため、日経平均株価の日付が翌日になっています。

 

 

まとめ

 

いかがでしょうか。

この記事では、チャートの株価データーのエクセル連携について解説しました。

 

実は株価以外にも、ファンダメンタルズ情報や、売買している建玉のポジション情報、口座情報などとも連携させることが出来ます。

 

トレードステーションとエクセルを完全連携させる事により、より高度な投資戦略を構築する事が可能になります。

 

 

冒頭でも述べました。

 

トレードステーション(トレステ)」と、「エクセル」を完全連携させて株価分析を効率化させませんか。

 

この記事で紹介した内容は、「手順が複雑だなぁ」と感じ他かも知れません。

ただし、1度設定してしまえば繰り返し作業が自動化されますので、次回からは大幅に株価分析までの時間が短縮されます。

 

とくに株価分析に充てる時間が少ない、個人投資家のあなたにオススメします。

 

なお、サイト管理者とマネックス証券との間にスポンサー契約等の利害関係はありません。

1人のユーザーとして、「個人投資家の方々に広く知ってもらいたい」この思いで、記事を作成・公開しています。

 

機会があれば、より実践的な「トレードステーション(トレステ)」と「エクセル」連携についても、記事にしたいと思います。

 

それでは、失礼いたします。

 

 

参考文賢

 

この記事を作成するにあたり、参考にさせていただいた、Webサイトです。

 

マネックス証券 様

トレードステーションを提供している証券会社です。

https://info.monex.co.jp/tradestation/about/

Easy Languageオブジェクトガイドブック

https://info.monex.co.jp/tradestation-support/manual.html#01

 

EasyLanguage研究所 様

Easy Languageの情報が非常にわかりやすく、まとめられたサイトです。

※サイトアドレスは、管理者様に承諾を頂いてから、掲載する予定です。

 

関連記事はこちら。 よろしければどうぞご覧下さい。

初心者向け。株価予報をトレードステーションとエクセルで作る。[トレードステーションの使い方やEasy Languageも学べます][自動売買・システムトレード]

 

 

この記事を書いた人

ゆたかドットらいふ編集部

あしおゆたか

投資歴21年の個人投資家

机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。

スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。

◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション

◇運営者情報はこちら