更新日時:2019年9月16日 追記:2020年1月25日
※この記事は連載です。
トレードステーションとエクセルを使った株価予報の開発過程を完全公開します。(サンプルプログラム含む)
連載記事を続けてご覧の方は、目次から [第11章]トレードステーションで相関分析 にお進みください。
前の記事はこちら。
株価予報の作り方5 日経平均株価・為替・DOW指数は連動するのか? エクセルで相関分析 [サンプルコード付き・自動売買・システムトレード戦略]
あなたは、天気予報を毎日チェックしますか?
株式投資をやっているなら、「株価予報」も毎日チェックしたいと思いますよね?
「今日の日本の株価は 晴れ(上昇)でしょう。」
「降水確率(下落確率)は30%です」
こんな情報を、朝のニュース番組でやっていたらいいですよね。
でも私の知る限り、朝のテレビ番組では放映していません。
ないなら作ってみよう!!
このように思い立ちましたが、作るのは 株価予想 ではなく 株価予報 です。
ナゼ、そのような予報になったのか、根拠を公にする必要があるでしょう。
サイト管理者が、頭を悩ませながら株価予報の仕組みを作ります。
その過程をすべて公開する予定です。
成功と失敗を重ねながら、多くの時間を掛けて開発することになるでしょう。
これだけは、絶対に自信を持って言えます。
「このページにあるのは、偽りのない事実だけです」
スポンサーリンク
この記事のコンセプト
このブログ記事は、下のブログ記事を再編集したものです。
目的の項目にアクセスしやすいように、記事を分割・加筆・修正しました。
初心者向け。株価予報をトレードステーションとエクセルで作る。[トレードステーションの使い方やEasy Languageも学べます][自動売買・システムトレード]
このブログ記事を書き進める前に、記事作成の方針を明らかにします。
- 「株価予想」を作成する過程を公開する。
- 「株価予想」のロジック(しくみ)を公開する。
- 「再現性」を確保する。(他の人もできる)
- トレードステーションやエクセルがなくても内容を理解できる。
「株価予想」を作成する過程を公開する。
情報の取り方や、取得した情報の加工方法なども、解説します。
作業手順を、順番どおり公開します。
失敗(無意味な分析結果が出る)することも多いと思いますが、隠さずに公開します。
システムトレードをやっている方には、むしろ失敗の方が有益な情報になるかも知れませんね。
「株価予想」のロジックを公開する。
株価予報の結果が、どのように導き出されたのか?
すべての理由を公開します。
ロジックを公開した条件下でなら、ベータ版の「株価予報」をこのブログで公開しても、許容されると考えています。
再現性を確保する。
使用するツールは誰でも手に入れられるツールを使用します。
「マネックス証券のトレードステーション」と「Microsoftのエクセル」を使用する予定です。
トレードステーションから情報を得たり、検証するためにトレードステーションの専用プログラミング言語「Easy Language」を使用します。
「Easy Language」のプログラムも、できるだけ単純な構成にして、プログラム未経験者にも優しい解説を心がけます。
トレードステーションや、エクセルがなくても内容を理解できる。
読み物としても楽しんでいただけるように、配慮するつもりです。
気楽に読んでいただけたら幸いです。
この記事は連載です。
前の記事はこちら。
株価予報の作り方5 日経平均株価・為替・DOW指数は連動するのか? エクセルで相関分析 [サンプルコード付き・自動売買・システムトレード戦略]
[第11章]トレードステーションで相関分析
「相関だとか散布図だとか、もう飽きたよ!」
そんな声が聞こえてきそうですね。
でも、まだ株価予報に使えそうなデーターが見つかっていないので、もう少し辛抱してください。
11章では、マネックス証券のトレードステーションを使って分析を進めます。
チャートが表示されて、株価分析をしてる感はありますので、楽しくお付き合いください。
ここからの分析は、マネックス証券さんが提供しているツールを使います。
銘柄分析に役立つワークスペース
マネックス証券のトレードステーションサイトに、2銘柄の関連性を分析するツールが用意されています。
https://info.monex.co.jp/tradestation-support/template.html
このページの中程に、あります。
銘柄分析に役立つワークスペース
今回使うのは、 「2銘柄の相関分析」 です。
さっそくダウンロードしてみましょう。
※ダウンロード後の、トレードステーションへの適応方法は、同ページの
インジケーター・ワークスペースのダウンロードについて(PDF)
をクリックして、手順をご確認ください。
2銘柄の相関分析
ダウンロードして、トレードステーションに適応させました。
私の環境では、このようにトヨタ自動車と日産自動車のチャートが表示され、チャート下部に相関を示すインジケーターが表示されています。
(上のチャートがトヨタ自動車、下のチャートが日産自動車)
素晴らしいですね。
インジケーターの説明を探しましたが、マネックス証券さんのページでは、このインジケーターの詳細説明は見つけられませんでした。
インジケーターは、Easy Languageというプログラム言語で描画されていますので。 プログラムの中身を見てみます。
※このプログラムコードはマネックス証券さんの著作物だと思いますので、コード自体は紹介しません。
2銘柄の相関を示すインジケーターの動き
チャート1(例ではトヨタ自動車)と チャート2(例では日産自動車)の 終値 を比較しています。
相関を計算するときに、考慮するローソク足の数は 14足(デフォルト:変更出来ます)
相関係数が、0.7(変更出来ます)を超えると、アラートを出します。
相関係数が、ー0.7(変更出来ます)を下回ると、アラートを出します。
ついに出てきました、相関係数。
あえて、”相関係数”という単語を避けてここまで解説してきたのですが、仕方ありません。
Easy Languageのヘルプに説明がありましたので、引用します。
出所:Easy Language ヘルプ
相関係数の説明を抜き出します。
相関係数は -1 と 1 の間の数値であり、2 つの変数が線形関係にある度合を示します。2 つの変数の間に正の傾きを持つ完全な線形関係がある場合には、相関係数は 1 になります。正の相関がある場合、1 つの変数が高い (低い) 値を持つときには、もう 1 つの変数も高い (低い) 値を持ちます。2 つの変数の間に負の傾きを持つ完全な線形関係がある場合には、相関係数は -1 になります。負の相関がある場合、1 つの変数が高い (低い) 値を持つときには、もう 1 つの変数は低い (高い) 値を持ちます。相関係数 0 は、変数の間に線形関係がないことを意味します。
出所:Easy Language ヘルプ
頭から煙が出そうですね。
この文章を読むよりも、実際のチャートを見た方が理解が早いと思いますので、頭がモヤモヤしている方も気にせずに先に進みましょう。
日経平均株価とDOW指数の相関
マネックス証券さんのホームページからダウンロードしたツール(2銘柄の相関を示すワークスペース・インジケーター)では、対象の銘柄が、 トヨタ自動車 と 日産自動車 でした。
銘柄を、日経平均株価 と DOW指数 に変更します。
チャート上で右クリック。
銘柄コードの設定 をクリックします。
データ1の トヨタ自動車が選択されていることを確認して、 設定 ボタンを押します。
銘柄コードを、日経平均株価の $MNK に変更。
ローソク足データーを取得する範囲を 10年に変更して、OKボタンを押します。
同様にデーター2も、DOW指数に変更します。
無事にチャート下部に相関を示す折れ線グラフが表示されました。
日経平均のローソク足とDOW指数は時差がありますし、相関を計算するときに、考慮するローソク足の数は14足に設定されていました。
本当に正しい数値が表示されているのか検証する必要があります。
マネックス証券さんのホームページからダウンロードしたツール(2銘柄の相関を示すワークスペース・インジケーター)を変更します。
Easy Languageをシンプルに書き換えてみました。
上のプログラムコード17行目からのPrint文でローソク足毎の数値を表示させています。
このPrint文により、印刷ログに 時間・NK225終値・DOW終値・相関 が出力されます。
表示された印刷ログをよく見ると、同じ日付を2回計算しているようです。
Easy Languageの日付の表記は特殊で、”1190830” は ”1019年08月30日” を示しています。
上の印刷ログでは、同じ日付が2行ずつ表示されています。
これでは、正しく計算されていないようです。
為替のチャートを追加してみましょう。
為替のチャートを同時に表示させると、印刷ログの期日も1日ずつ表示されています。
これで分析を進めることが出来ます。
プログラムコード ここから====
inputs:
Length( 14 ),
PosCorrAlert( .7 ),
NegCorrAlert( -.7 );
variables:
CorrelVal( 0 ) ;
CorrelVal = Correlation( Close[0] of data1, Close[1] of data2, Length ) ;
Plot1( CorrelVal, !( “Correl” ) ) ;
Plot2( PosCorrAlert, !( “PosCorrAlert” ) ) ;
Plot3( NegCorrAlert, !( “NegCorrAlert” ) ) ;
Plot4( 0, !( “ZeroLine” ) ) ;
Print(“日付”, Spaces(2), Date:7:0, Spaces(2),
“時間”, Spaces(2), Time:4:0, Spaces(2),
“NK225終値”, Spaces(2), Close[0] of data1, Spaces(2),
“DOW終値”, Spaces(2), Close[1] of data2, Spaces(2),
“相関”, Spaces(2), CorrelVal);
プログラムコード ここまで====
プログラムコードの解説
○ CorrelVal = Correlation( Close[0] of data1, Close[1] of data2, Length ) ;
Correlation関数で相関係数を計算しています。
Close[0] of data1:第1チャートに表示されている、日経平均株価の終値。
Close[1] of data2:第2チャートに表示されている、DOW指数の終値(1日前)。
相関係数で考慮するバーの数は、 初期値 inputs: で指定した 14です。
出所:Easy Language ヘルプ
○ Plot1( CorrelVal, !( “Correl” ) ) ;
Correlation関数で計算した相関係数をチャートに描画
○ Plot2( PosCorrAlert, !( “PosCorrAlert” ) ) ;
初期値では、inputs: で指定した 0.7 のラインをチャートに描画
○ Plot3( NegCorrAlert, !( “NegCorrAlert” ) ) ;
初期値では、inputs: で指定した -0.7 のラインをチャートに描画
○ Plot4( 0, !( “ZeroLine” ) ) ;
ゼロ のラインをチャートに描画
相関係数は目安として、0.7を超えると強い正の相関があるとされることが多いようです。
逆に-0.7を下回ると強い負の相関があるとされることが多いようです。
ただし、 0.7 または -0.7 の数値はあくまでも目安として考えてください。
Plot2とPlot3のラインは、初期値でこの 0.7 、 -0.7 のラインです。
もう一度相関係数のインジケーターを見てみましょう。
概ねゼロのラインを超えていますので、正の相関があるように見えますね。
より長期間のインジケーターを表示させてみます。
あらら、マイナスの期間も結構ありますねぇ。
やっぱり相関は無いのかぁ・・・・。
諦めますか?
でも、上のチャートをもう一度だけ見てください。
第1チャートの日経平均株価のチャートの形と、第2チャートのDOW指数のチャートの形を!
とても他人とは思えない、似た顔つきだと思いませんか?
数字の計算ばかりで、つまらないので次からは「見た目」重視の分析をしましょう。
日経平均株価とDOW指数の相関(チャート分析)
相関係数を計算したのは、日経平均株価とDOW指数の終値でした。
ゴチャゴチャして値動きがよく見えないので、移動平均などのインジケーターを非表示にします。
チャートの上でマウスを右クリック。
分析テクニックを有効にする/有効にする を選択して。
移動平均線のチェックをすべて外します。
移動平均線が表示されなくななりました。
次にDOWチャートを選択して、マウスの右ボタンを押しながら上の日経平均株価チャートにドラッグ&ドロップします。
スケーリングする軸は右軸を選択して、OKボタンを押します。
日経平均株価とDOW指数のローソク足が重ねて表示されています。
このチャートを見て、あなたはどのように感じますか?
個人的な感覚に違いがありますから、感じ方は人それぞれでしょう。
私は、 「2銘柄の値動きに関連がありそうだ」 このように感じます。
もう少し見やすいようにチャートを変えてみましょう。
終値だけのラインを表示させます。
Easy Languageで 日経平均株価 と DOW指数 の終値を描画するインジケーターを作成します。
日経平均株価とDOW指数の終値を描画するインジケーターを作成
Easy Languageで 日経平均株価 と DOW指数 の終値を描画するインジケーターは、たった2行のプログラムコードで完成します。
プログラムコードの解説
○ Plot1(close[0] of data1);
1番目のチャートの終値をチャートに描画
○ Plot2(close[0] of data2);
2番目のチャートの終値をチャートに描画
このインジケーターをチャートに表示させました。(一番下のチャート)
少し見やすくなりましたね。
トレードステーションなら、自分の欲しいチャートをこんなに簡単に作ることが出来るんです。
表示を拡大します。
このまま分析を進める前に、もう一つだけ注意する点があります。
この記事を書いているのが2019年9月8日です。チャートの最新データーはこちら。
日経平均株価の終値:21,119.57円
DOW指数の終値:26,797.46ドル
両方とも数値は20,000台です。
しかし、日経平均株価の単位は円、DOW指数はドルなのです。
日経平均株価とDOW指数の価値をあわせる
2019年9月8日現在、日経平均株価とDOW指数は共に20,000台ですが、日経平均株価の単位は円、DOW指数はドルです。
双方の価値はそのままでは比較できませんね。
普通ならドル建ての日経平均株価を使うところでしょうが、チョット違う視点で見てみましょう。
DOW指数に為替(ドル・円)を掛けて日本円に価値を換算します。
DOW指数 X 為替(ドル・円) = 日本円に換算したDOW指数の価値
Easy Languageのプログラムコードを一部変更します。
2行目に * close[0] of data3 を追加しています。
close[0] of data3 は 為替の終値です。
チャートに表してみましょう。
非常に見にくいのですが、上のチャートの一番下に一直線で引かれているのが日経平均株価の終値を結ぶラインです。
日経平均株価もDOW指数も、数値は同じ20,000台ですが価値を合わせると、100倍以上の開きがあることが分かります。
この点は株式投資をする上で重要な視点なので、株式投資初心者の方は良く覚えておいてください。
DOW指数が100ドル上昇する事と、日経平均株価が100円上昇する事の価値の違いは、およそ100倍なのです。
チャート分析に戻ります。
数値の桁が,2桁も異なると、2銘柄の値動きが見にくいので、日経平均株価を100倍して桁を合わせます。
「えっ? せっかく価値を円に揃えたのに、100倍しちゃうの?」
そんな声が聞こえてきそうですね。
はい。 100倍します!!(*^_^*)キッパリ。
日経平均株価とDOW指数の相関を、チャートで見ることが目的なので、このままでは分析が進みません。
もちろん、価値が100倍違う事を忘れ無いように注意です。
Easy Languageのプログラムコードを一部変更します。
1行目に * 100 を追加して、日経平均株価を100倍にしています。
チャートに適応します。
上のチャートは、価値の補正を入れた後の日経平均株価とDOW指数のチャートです。
青色の線:DOW指数の終値
赤色の線:日経平均株価の終値
下のチャートは、価値の補正を入れる前のチャートです。
価値の補正を入れる前のチャートと、後のチャートを比較してください。
経済大国1位のアメリカと、3位の日本の株価ですが、連動しているように見えませんか?
値動きをより良く比較するために、チャートを重ね合わせます。
価値の補正をする為に、日経平均株価を100倍しましたが、この数値を115に変更しました。
この数値を大きくすると、赤い線の日経平均株価のチャートが上にズレます。
そのチャートはこちら。
補正を入れた後の値動きを比較していることを差し引いても、私の目には日経平均株価とDOW指数の値動きに、相関があるように見えます。
次に日経平均株価と為替の相関も見てゆきましょう。
日経平均株価と為替の相関
日経平均株価と為替の相関も、トレードステーションのEasy Languageを使って調べます。
Easy Languageのプログラムコードは、日経平均株価とDOW指数の相関をみたプログラムを一部変更して使います。
比較するチャートは日経平均株価か第1チャート(data1)に表示されていて、為替が第3チャート(data3)なので、変更箇所は下のオレンジ部分だけです。
プログラムコード ここから====
inputs:
Length( 14 ),
PosCorrAlert( .7 ),
NegCorrAlert( -.7 );
variables:
CorrelVal( 0 ) ;
CorrelVal = Correlation( Close[0] of data1, Close[1] of data3, Length ) ;
Plot1( CorrelVal, !( “Correl” ) ) ;
Plot2( PosCorrAlert, !( “PosCorrAlert” ) ) ;
Plot3( NegCorrAlert, !( “NegCorrAlert” ) ) ;
Plot4( 0, !( “ZeroLine” ) ) ;
Print(“日付”, Spaces(2), Date:7:0, Spaces(2),
“時間”, Spaces(2), Time:4:0, Spaces(2),
“NK225終値”, Spaces(2), Close[0] of data1, Spaces(2),
“DOW終値”, Spaces(2), Close[1] of data2, Spaces(2),
“相関”, Spaces(2), CorrelVal);
プログラムコード ここまで====
表示されたチャートはこちら。
一番したの折れ線グラフが、日経平均株価と為替の相関を表しています。
先ほどの
日経平均株価とDOW指数の相関チャート と 日経平均株価と為替の相関チャート を並べて表示させます。
下のチャートの内、上がDOW指数、下が為替との相関を表すチャートです。
為替の方が若干相関が強いように見えますか?
トレードステーションで相関分析のまとめ
この[第11章]では、トレードステーションを使って、日経平均株価・DOW指数・為替の相関を見てきました。
分析したのは、日経平均株価・DOW指数・為替の終値の相関関係です。
単純に終値だけを使って、株価予報を作成するのは難しそうですね。
次の章以降では、株価パターンを使った株価予報作りに戻りたいと思います。
今回の記事はココまでとします。
連載一時中断のお知らせ
連載記事として続けて参りましたが、諸般の事情により連載を一時休止とさせて頂く事となりました。
この連載記事を開始する際のコンセプトは以下の4点でした。
- 「株価予想」を作成する過程を公開する。
- 「株価予想」のロジック(しくみ)を公開する。
- 「再現性」を確保する。(他の人もできる)
- トレードステーションやエクセルがなくても内容を理解できる。
連載が進むにつれ、このコンセプトを維持しながら記事を書き進めることの困難さに直面することとなりました。
ある程度の予測精度を持たせるロジックは、システムトレード寄りとなってしまいます。
現時点で公開出来る範囲のロジックだけを利用して、予測精度を満足出来るまで向上させるのは困難であると判断しました。
今後は一般的に知られたロジックの組み合わせで、予測精度を上げられないかを考察し、ある程度案がまとまり次第連載を再開するつもりです。
この連載を続けて読んで頂いた方々には大変申し訳ありません。
スポンサーリンク
この記事を書いた人
ゆたかドットらいふ編集部
あしおゆたか
投資歴21年の個人投資家
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら