更新日時:2019年9月16日 午後0時46分
あなたは、天気予報を毎日チェックしますか?
株式投資をやっているなら、「株価予報」も毎日チェックしたいと思いますよね?
「今日の日本の株価は 晴れ(上昇)でしょう。」
「降水確率(下落確率)は30%です」
こんな情報を、朝のニュース番組でやっていたらいいですよね。
でも私の知る限り、朝のテレビ番組では放映していません。
インターネットのサイトも探してみました。
日本語のサイトしか検索していませんが、私のイメージに合う情報を発信しているサイトを見つけることは出来ませんでした。
よし! ないなら作ってみよう!!
このように思い立ちましたが、作るのは 株価予想 ではなく 株価予報 です。
ナゼ、そのような予報になったのか、根拠を公にする必要があるでしょう。
そもそも、「株価予報」なんて本当に出来るの?
そんな疑問も自分の中に湧いてきました。
「インタネートのサイトを探しても見つからないのだから、出来るわけないよ!」
「簡単にできるなら、とっくに誰かがやっているよ!」
「国家プロジェクト並の潤沢な資金を使って、AIを駆使すれば出来るかもね」
そんな声も聞こえてきそうです。
やっぱりムリかなぁ。。。。。
諦めかけていたその時、ふと昔の出来事を思い出しました。
私は、十数年前パラグライダーをやっていました。
パラシュートを背負って、山の上から滑空するスカイスポーツです。
パラグライダーは、雨の日に飛ぶことは出来ません。
風向きが悪くても、風が強くても飛ぶことは出来ません。
山の上で1日中風を待って、結局飛べずに歩いて下山することもありました。
パラグライダーを趣味にする者にとって気象情報は、とても大切なんです。
茨城県の筑波山付近でパラグライダーをやっていたので、筑波大の学生も沢山来ていました。
メチャメチャ賢そうな学生が、手帳いっぱいに書き込んだ気象情報を手に、天気予報を出してくれます。
その天気予報は当たったか?
えーと。 占いのレベルだったでしょうか。。。。
もちろん、「今日は確実に雨です(>_<)」これは当たります。
でも、そんな日にはそもそもパラグライダーに出かけませんから。。。。
パラグライダーのインストラクターが言っていました。
「地元農家のおじさんの予想が、よっぽと正確だよ。」
「あの山に雲がかかったから明日は雨だ!」
「空気が湿っぽくなったから、1時間もしないうちに雨が降るぞ!」
「こんな情報の方が当たるんだよ。」
うーん。 色々考えました。
地元農家のおじさんの予想になら追い付けるかな?
経験だけはしっかり積んでいるぞ。。。。
考えました。
そして、やってみることにしました!
このブログを開設したキッカケは、「日本のシステムトレードを盛り上げたい」「株式投資初心者の役に立ちたい」でした。
結果が「膨大な時間を掛けても出来ませんでした」だったとしても、その失敗を公開することに意味があるでしょう。
同じ時間を掛けて失敗する人の数が減るのですから、十分な価値があるはずです。
よい結果が出たことだけで無く、失敗したこともすべて公開します。
成功と失敗を重ねながら、多くの時間を掛けて開発することになるでしょう。
作業した順番に見て頂かないと意図が伝わりにくいと思い、ブログ記事は随時ページの下に追記することにしました。
これだけは、絶対に自信を持って言えます。
「このページにあるのは、偽りのない事実だけです」
株価の分析は、「エクセル」と「トレードステーション」を使用しますが、このアプリケーションを持っていなくても、分析内容を理解出来るように配慮するつもりです。
なお、株価分析の過程は「これから株の自動売買(システムトレード)を始めたい」と思っている方には、非常に有益な情報となるでしょう。
これから、しばらくの間お付き合いください。
このページを、お気に入り(ブックマーク)に登録していただければ幸いです。
日経平均株価予報β版(β0.01)
この章(株価予報)の追記:2019年6月23日
おぼろげながら、株価予報への道筋が見えてきました。
まだまだ発展途上のベーター版なので、不定期に公開したいと思います。
日経平均株価予報ver.β0.01 | ||
2019年6月24日 | の予報は? | |
雨 | ||
陰線の回数 | 2 | |
陽線の回数 | 1 | |
全検証足数 | 2282 |
過去の為替/DOW指数/日経平均株価の値動きパターンを分析。
分析の過程や、ロジックをすべて公開しています。
この先の記事をじっくりご覧下さい。
スポンサーリンク
降水確率とは?
そもそも降水確率ってどうやって計算するのでしょうか?
気象庁のHPで調べました。(以下は抜粋です)
出所:気象庁HP(抜粋)https://www.jma.go.jp/jma/kishou/know/yougo_hp/yoho.html
b)降水確率30%とは、30%という予報が100回発表されたとき、その内のおよそ30回は1mm以上の降水があるという意味であり、降水量を予報するものではない。
フムフム。 分かるようで、よく分からない分からない感じですね。
この点は、後で良く考えることにしましょう。
このページでは、取りあえす次のように理解して先に進みます。
世界中の気象情報を集めてデーターベース化して、過去に同様の気象パターンが何回あったのかを調べる。
そして、同じパターンが表れた時に、○△%の確率で雨が降っていた場合、降水確率は○△%とする。
※上の解釈が間違っていたら修正します。 詳しい方ご教示ください。
この記事のコンセプト
このブログ記事を書き進める前に、記事作成の方針を明らかにします。
- 「株価予想」を作成する過程を公開する。
- 「株価予想」のロジック(しくみ)を公開する。
- 「再現性」を確保する。(他の人もできる)
- トレードステーションやエクセルがなくても内容を理解できる。
「株価予想」を作成する過程を公開する。
情報の取り方や、取得した情報の加工方法なども、解説します。
作業手順を、順番どおり公開します。
失敗(無意味な分析結果が出る)することも多いと思いますが、隠さずに公開します。
システムトレードをやっている方には、むしろ失敗の方が有益な情報になるかも知れませんね。
「株価予想」のロジックを公開する。
株価予報の結果が、どのように導き出されたのか?
すべての理由を公開します。
ロジックを公開した条件下でなら、ベータ版の「株価予報」をこのページで公開しても、許容されると考えています。
再現性を確保する。
使用するツールは誰でも手に入れられるツールを使用します。
「マネックス証券のトレードステーション」と「Microsoftのエクセル」を使用する予定です。
トレードステーションから情報を得たり、検証するためにトレードステーションの専用プログラミング言語「Easy Language」を使用します。
「Easy Language」のプログラムも、できるだけ単純な構成にして、プログラム未経験者にも優しい解説を心がけます。
トレードステーションや、エクセルがなくても内容を理解できる。
読み物としても楽しんでいただけるように、配慮するつもりです。
気楽に読んでいただけたら幸いです。
[第1章]日本の株価に影響を与える要素は何か?
まず、「日本の株価に影響を与える要素は何か?」を考えます。
ニューヨーク証券取引所の「DOW指数」や「為替」が日本の株価に影響を与えるのは有名ですね。
最初は、日経平均株価の値動き、前日のDOW指数の上下、為替(USD・JPY)の上下、この関係性を見てゆきましょう。
※この他にも沢山考えられますが、最初はあえて対象を絞ります。
[第2章]トレードステーションのチャートに表示させる
※トレードステーションを持っていない方は、読み飛ばして頂いて結構です。
ただし、無料で使える高機能トレードツールなので、手に入れて損はありませんよ。
ここからは、マネックス証券のトレードステーションを使います。
トレードステーションはマネックス証券が提供している、高機能トレードツールです。
マネックス証券の口座を、開設すれば無料で使用する事が出来ます。
マネックス証券トレードステーション特設サイトはこちら
※2019年4月21日現在、緩~い使用制限が発表されています。
無料で使用出来るのは次に該当する方です。
・直近1年以内にお取引いただいているお客様
・トレードステーション利用契約から一定期間以内のお客様
・一定以上の残高があるお客様出所:マネックス証券サポートサイト https://info.monex.co.jp/ts-support-info/information/20190401_info.html
詳細はマネックス証券サポートサイトをご覧下さい。
日経平均株価の値動き、前日のDOW指数の上下、為替(USD・JPY)の上下、この関係性を見たいので、すべての銘柄をチャートに表示させます。
トレードステーションのチャートに銘柄を追加するのは簡単です。
チャートの上でマウスを右クリック。
挿入したい銘柄コードを入力して、プロットボタンを押します。
銘柄コードは下記を参照ください。
日経平均株価: $MNK
DOW指数: $DJI
米ドル・日本円:USDJPY
その他の銘柄コードはこちらでも紹介しています。
すべての銘柄がひとつのチャートに表示されます。
ただし、私の環境ではすべてのチャートが5分足で表示されているため、すべてのローソク足が画面上に現れません。
下の例では、中段にDOW指数のチャートが表示されるように設定していますが、ローソク足が現れていません。
東京証券取引所とニューヨーク証券取引所の取引時間が異なるためです。
すべての銘柄を日足にします。
チャート上で右クリックし、「銘柄コードの設定」をクリックします。
変更したい銘柄を選択して、「設定」ボタンをクリックします。
日足に変更して、「OK」ボタンを押します。
これをすべての銘柄に対して行います。
すべての銘柄が日足になりましたので、ローソク足が並んで見えます。
[第3章]トレードステーションからデーターを取得する
それでは、トレードステーションからデーターを取得しましょう。
方法はいくつかあるのですが、一番簡単な方法から紹介します。
チャート上で右クリック。
「データウインドウを表示」をクリックします。
するとデータウインドウが開き、ローソク足の詳細データーが表示されます。
データウインドウ左上の「保存のアイコン」を押すと、データーをテキスト形式でダウンロードすることも出来ます。
この方法でダウンロードしたデーターを、エクセルに読み込んで分析を進めてもOKです。
このブログでは、今後の高度化した分析に耐えられるように、トレードステーション専用のプログラミング言語「Easy Language」を使用して、データーを取得します。
[第4章]トレードステーションからデーターを取得する2
※トレードステーションを持っていない方は、読み飛ばして頂いて結構です。
トレードステーションでは「データウインドウ」から簡単に株価情報を取得することが出来ます。
取得したデータをエクセルや、統計ソフトなどでグリグリ分析しても良いのですが、トレードステーションはトレード専用ツールです。
株価分析に必要なインジケータも沢山搭載されていますから、分析が高度化した場合の開発効率を考えて、データは次のように取得します。
- トレードステーション側で少し加工したデーターを出力
- エクセルに取り込んで分析する
どのようなデーターを取得するか
手始めに、日経平均株価の値動き、前日のDOW指数の上下、為替(USD・JPY)の上下、この関係性を見てゆきます。
必要なのは、各銘柄の4本値です。
「始値」「終値」「高値」「安値」
この4本値は、ローソク足の情報そのままなので、取得は簡単です。
日経平均株価が、米国DOW指数や為替の影響を受けていることは、広く知られています。
前日のDOW指数が上げて、円安になれば翌日の日経平均株価は高く始まることが多いと言われています。
日経平均株価そのものについても考えましょう。
前日の株価が大暴落した翌日の株価はどうなるか?
2日続けて上昇したときの翌日の株価は?
いくら米国DOW指数に影響されるといっても、日経平均株価そのものが強気の時と、弱気の時では影響度も変わるはずです。
「日経平均株価が2日続けて上昇」「DOW指数が2日続けて上昇」「日本円が2日続けて円安」
このパターンの時に、翌日の日経平均株価の値動きはどうだったのか?
仮定の話ですが、過去にこのパターンが100回現れて、80回上昇していたとしたら、あなたはどのような投資戦略を立てますか?
想像しただけで、ワクワクしてきますね。
取得するデーター
取得するデーターは次となります。
- 日経平均株価(4本値)および、「上昇」「下降」「中立」だったか
- DOW指数株価(4本値)および、「上昇」「下降」「中立」だったか
- 為替(USD・JPY)(4本値)および、「上昇」「下降」「中立」だったか
それぞれのローソク足が「上昇」「下降」「中立」だったかは、トレードステーションの専用のプログラミング言語「Easy Language」で判断します。
データーを取得するプログラムコード
※「プログラムなんて見たくもない」というかたは読み飛ばしてください。
データーを取得するプログラムコードは、次になります。
最初のプログラムコードにしては長くなりすぎました。(反省)
===プログラムコードここから===
※2019年4月30日プログラムコードにバグ(不具合)が見つかりましたので、プログラムコードを削除しました。
修正したプログラムコードは、このブログ記事 [第8章]エクセルに直接株価情報を取り込む で紹介しています。
===プログラムコードここまで===
Easy Languageを使った、データーの取得手順は後で説明
次に行うのは、作成したプログラムを使ってデーターを、エクセルに取り込むことです。
しかし、ココまでの説明がかなり長くなってしまいました。
多くの方が興味を持っているのは、データーの取得方法では無く、分析結果の方ですよね?
まず分析結果の解説から始めたいと思います。
※2019年4月30日プログラムコードにバグ(不具合)が見つかりましたので、プログラムコードを修正しました。
修正したプログラムコードおよびデーターの取得手順は、このブログ記事 [第8章]エクセルに直接株価情報を取り込む で紹介しています。
[第5章]データー取得の仕切り直し
プログラムのミスでご迷惑をおかけしております。
データー取得の仕切り直しです。
先に解説した、トレードステーションの「データウインドウ」から株価データを取得します。
トレードステーションのチャートを右クリック。
データウインドウを選びます。
データウインドウ右上の「保存」アイコンをクリック。
保存するデータを選んで「OK」ボタンを押します。
ファイル名を付けて保存すれば、株価データが取得出来ます。
同様に「DOW指数」「為替」のデータも保存しましょう。
◇ここで、取得したデーターについて注意。
取得したデーターはDOWや為替データーも含まれるため、ローソク足データーの最終取得時間は、朝5時59分です。
このため、日経平均ローソク足の期日は翌日の日付で登録されています。
パターンを分析する上で支障が無いため、補正せずにデーターを使用しています。
エクセルに取得
ダウンロードしたデーターをエクセルで読み込みます。
エクセルを立ち上げて、先ほどダウンロードしたテキストデータを、ドラッグ&ドロップすればOK。
エクセルにデータが読み込まれましたが、A列のセルにすべてのデーターが格納されています。
このままでは分析できないので、データーを区切ります。
エクセルの「データ」「区切り位置」を選びます。
取得したデーターはカンマで区切られているようですね。
「カンマ」にチェックを入れて「次へ」ボタンを押します。
ここで注意!
A列に日付データが入っていますが、データーの並びは「月・日・年」です。
日付のラジオボタンにチェックを入れて、プルダウンから「MDY」を選びます。
確認して「完了」ボタンを押しましょう。
「日経平均株価」「DOW指数」「為替」のデーターをすべてエクセルに取り込んでください。
取り込みが完了したら、ファイルをエクセルの形式で保存するのも忘れずに!
私の環境では、日経平均株価を取り込んだ際、日本語がうまく処理されていませんでした。
I列が文字化けしています。 正しくは、 短期の移動平均 長期の移動平均 でした。 まぁご愛敬と言うことにしておきましょう。
手で修正しました。
エクセルでパターンを判定
株価データーをエクセルに取り込むことが出来ましたので、いよいよパターン分析を始めましょう。
まず、ローソク足が陽線だったのか陰線だったのか判定させます。
陽線:始値よりも終値が高い
陰線:始値よりも終値が低い
終値と始値の差をエクセルに計算させます。
下の例では、K列に 計算式 「=F2ーC2」を入力しています。
次にローソク足が陽線だったのか陰線だったのか判定させます。
この判定には、エクセルの関数 IFを使います。
=IF(K2>0,”陽線”,”陰線”)
簡単に、この関数の説明をしますね。
K2>0
K2セルに入っている数値が、ゼロより大きいかを判断
もし大きければ、”陽線” と表示
それ以外であれば, ”陰線” と表示
IF は 英語の”もし” のIFです。
当日、前日、前々日、の日経平均株価のローソク足が、「陽線だったのか」「陰線だったのか」、セルにまとめます。
文字は ”&” でまとめて(結合)表示されます。
なんと、M列の一番上に陰線が3つ続けて出ています。 最初の分析結果なのに不吉ですねぇ。(*^_^*)
ふと、思いつきました。
日経平均株価が2日続けて陰線だった場合、翌日の日経平均が陰線になる確率は?
つまり、3日続けて陰線(又は陽線)になる確率が高ければ、デイトレード戦略に活用出来そうです。
「2日続けて陰線だから、寄り付きから空売りしよう!」なんて戦略は機能するでしょうか。
チョット寄り道して、「3連続陽線」「3連続陰線」が出現する度合いを見てみましょう。
チョット寄り道(日経平均3連続陰線・陽線戦略は機能するか?)
思いつきの戦略が機能するかどうかの確認なので、エクセルのフィルタを使って簡単に調べましょう。
戦略1:日経平均株価が2日続けて陰線ならば、「寄り付きで空売り」して「大引けで手仕舞う」。
M列「陰線陰線陰線」でフィルタを掛けます。
エクセルの左下に「4911レコード中597個が見つかりました」と表示されています。
これは、株価の日足データーが4911日分あり、その中で3日続けて陰線だったパターンが597回あったと言うことです。
次にK列をすべて選択します。
エクセルの左下に「平均-117.9145059 データの個数:597 合計:ー70394.96」と表示されています。
これは、3日続けて陰線だった日の平均下落幅、出現回数、合計額を表しています。
合計:ー70394.96 です。
想定した戦略はこちらです。
戦略1:日経平均株価が2日続けて陰線ならば、「寄り付きで空売り」して「大引けで手仕舞う」。
合計がマイナスですが、売り戦略なので利益は逆のプラスになります。
日経平均株価そのものを売買することは出来ませんが、仮に日経225先物が同じ価格だったとします。
日経225先物は、ラージで現物の1000倍、ミニで現物の100倍のレバレッジです。
単純に1000倍してみます。
70394.96 X 1000 = 70,394,960円
なんと、7千万円以上の利益を得られることになります。
※手数料、税金は考慮していません。
さっそくやってみよう!と思ったあなた。
忘れちゃいけません。
これまで計算していたのは、3日続けて陰線が出たときの収益です。
戦略が外れて、損をする場合の計算もしましょう。
陰線が2日続いた後陽線が出たパターンでフィルタを掛けます。
エクセルの左下に「平均117.8255397 データの個数:630 合計:74230.09」と表示されています。
合計:74230.09
先ほどと同じように、仮に日経225先物が同じ価格だったとして計算します。
日経225先物は、ラージで現物の1000倍、ミニで現物の100倍です。
単純に1000倍してみます。
74230.09 X 1000 = 74,230,090円
今度はこの合計金額がマイナスになりますので、先ほどの利益 7,039,4960円から引きます。
70,394,960円 ー 74,230,090円 = -3,835,130円
おやおや、4百万円弱の損失になりました。
※手数料、税金は考慮していません。
戦略1:日経平均株価が2日続けて陰線ならば、「寄り付きで空売り」「大引けで手仕舞う」。
この戦略では、損益が -3,835,130円 となりました。
お気付きかも知れませんが、マイナスが出ているので戦略を「買い」に変えるだけで、利益がでる戦略に早変わりです。
戦略1改:日経平均株価が2日続けて陰線ならば、「寄り付きで買い」「大引けで手仕舞う」。
「そうか! それならさっそくこの戦略でトレードしよう」と思ったあなた。
まだまだ気が早いですよ。
経験上使えない投資戦略になりそうな予感がします。
チョット寄り道 戦略1改の損益カーブ
戦略1改:日経平均株価が2日続けて陰線ならば、「寄り付きで買い」「大引けで手仕舞う」。
この収益曲線を、エクセルで計算してみましょう。
陽線が2日続いたら買う戦略なので、M列のフィルタを「陰線陰線陽線」にします。
K列には、終値から始値を引いた数値が入っていますので、その数値が利益となります。
集計しやすくするために、N列に =K6 と入力しK列と同じ数値がN列にも表示されるようにしましょう。
そのセルをデーターの一番下まで貼り付けてください。
M列にはフィルタがかかっている状態なので、戦略1改「陰線陰線陽線」で利益が出ている日だけ、M列に値が表示されることになります。
次に損失の計算をする準備をします。
陽線が2日続いたら買う戦略なので、3日目が陰線の場合損失が出ます。 M列のフィルタを「陰線陰線陰線」にします。
K列には、終値から始値を引いた数値が入っていますので、その数値が損失となります。
集計しやすくするために、N列に =K6 と入力しK列と同じ数値がN列にも表示されるようにしましょう。
そのセルをデーターの一番下まで貼り付けてください。
M列にはフィルタがかかっている状態なので、戦略1改「陰線陰線陰線」で利益が出ている日だけ、M列に値が表示されることになります。
フィルタを解除すると、損益が出ているセルだけに数値が入っていることが分かります。
損益通算を算出しましょう。
O列に下のような計算式を入れます。
データーは上から古い順に並んでいますので、損益通算を算出することが出来ます。
感覚的に理解するためにグラフにしましょう。
不要な列を非表示にしてから、グラフを作ると簡単ですよ。
どうでしょうか。
自分が実際に投資していると想像してください。
1999年4月27日から投資を始めて、翌年にはマイナス突入。
その後プラス圏とマイナス圏を行ったり来たりして、4年後の2013年から徐々に利益が積み上がっていますが、積み上げた利益を半分ほど失うような、荒い損益カーブになっています。
もう一つ疑問が生まれてきました。
戦略のロジックをもう一度確認しましょう。
戦略1改:日経平均株価が2日続けて陰線ならば、「寄り付きで買い」「大引けで手仕舞う」。
買いだけの戦略です。
戦略のロジックが有効なのでは無くて、単に日経平均株価のトレンドに影響されていないか?
この点は非常に重要です。
システムトレードを子らから学ぶ方には、十分注意して頂きたい内容となります。
戦略1改損益通算グラフに日経平均株価のチャートを重ねてみましょう。
日経平均株価の終値がF列に入っていますので、エクセルシートのF列を再表示させてから、チャートを作成します。
おや? 日経平均株価の終値がチャートに表示されませんね。
Closeが数値としてエクセルに認識されていないのかも知れません。
データーの範囲を選択して、表示形式を数値に変えます。
この方法でもグラフに変化はありませんでした。
グラフの上で右クリック。「グラフの種類の変更」を選びます。
おお。 出てきましたね。
2つの折れ線グラフが表示されている図を選んで「OK」ボタンを押します。
さらに、2つの折れ線グラフを重ねてみましょう。
グラフ上で右クリックして「データー系列の書式設定」を選びます。
この設定画面が現れるので、第2軸のラジオボタンをクリックします。
表示されたグラフはこちら。
左側の軸は日経平均株価、右側の軸は損益(1000倍していない値)です。
どうでしょうか。
ほぼ、日経平均株価の値動きと、損益のグラフは同期しているように見えます。
トレード戦略1改のロジックが正しかったと言うよりも、単に日経平均株価が上昇基調であった事によって、利益が出ていたのかも知れません。
これなら、手数料をかけてトレードを繰り返すより、日経平均ETF(上場投資信託)や先物を買っていた方がマシですよね。
思いがけず、システムトレード戦略構築で重要な注意点に出会うことが出来ました。
戦略のロジックが有効なのか? 単に株価のトレンドに影響されただけ?
この点は常に注意する必要があります。
トレンド転換を判断するロジックが組み込まれていない、システムトレード戦略を作った場合は、トレンド転換により損益が大きく変化します。
戦略1改を、さらに改良するアイデアも沢山あるのですが、寄り道が長くなってしまいます。
本題の「株価予報」に戻りましょう。
[第6章]3つのローソク足データーをまとめる
寄り道が長くなりすぎましたので、株価予報について思い出しましょう。
株価予報作るために、日本の株価に影響を与えるとされる、ニューヨーク証券取引所の「DOW指数」や「為替」データーをエクセルに取り込みました。
そして、日経平均株価の値動き、前日のDOW指数の上下、為替(USD・JPY)の上下、この関係性を見ることにしました。
別々にデーターを取得したので、それぞれのデーターは別のブックまたはシートに入っていると思います。
このままでは、関係性を分析するのは難しいので、データーを1つのシートにまとめましょう。
データーを1つのシートにまとめる
データーがエクセルのシートにどのように保存されているか確認しましょう。
私の環境では、日経平均株価、前日のDOW指数、為替(USD・JPY)すべて、下の画像のように保存されていました。
A列に期日、B列に時間、C列に始値・・・・・・・・
データーをまとめて分析する方法は、色々な方法が考えられますが、今回はエクセルの標準機能である「ピボットテーブル」を使います。
それぞれのデーターをまとめる前に、何のデーターなのか識別するための、文字列を入力しましょう。
A列に空白列を挿入して、1行目に「銘柄」と入力します。
そして、それぞれの銘柄名を2行目以降データーの最終行まで入力します
日経平均株価
DOW指数
為替(USD・JPY)
ここまで出来たら、日経平均株価が登録されているシートにデーターを貼り付けます。
まず、「DOW指数」のデーターを「日経平均株価」最終行の下に貼り付けます。
つづいて、「為替(USD・JPY)」のデーターを「DOW指数」最終行の下に貼り付けます。
これで「日経平均株価」だけが入力されていたシートに「DOW指数」「為替(USD・JPY)」も入力されました
日経平均株価が登録されているシートに、計算式を入力したのを覚えていますか?
計算式の例はこちら。
実際には、下のように計算結果が表示されています。
このL列からN列までの計算式をコピーして、データーの最終行まで貼り付けます。
このとき「DOW指数」と「為替(USD・JPY)」データの先頭2行分、N列の計算式は削除しておきます。
2行分の計算式を削除する理由。
N列は3日間のローソク足が陰線だったのか陽線だったのか、判定する計算式が入力されているセルです。
先頭の2行は3日分のデーターが揃っていないので、誤った計算結果となるためあらかじめ削除しておきます。
さて、ここまでの作業で「日経平均株価」、「DOW指数」、「為替(USD・JPY)」のデータが1つのシートにまとまりました。
エクセルに精通している方は、自由に分析を進めて頂いて結構です。
高度なテクニック不要で、手間を掛けずにデーターをまとめるために「ピボットテーブル」を使用する事にしました。
「ピボットテーブル」とは何だ!?
このように思われる方も沢山いらっしゃいますね。
「ピボットテーブル」はエクセルの標準機能で、「クロス集計」をカンタンに行うことが出来ます。
「だから!クロス集計って何者だ!!」
大変失礼しましました。
「ピボットテーブル」とは「データーを勝手に集計してくれる機能」ですが、とっつきにくい機能でもあります。
次で「ピボットテーブル」を使った集計手順を詳しく説明しますので、まず手順をご覧下さい。
ピボットテーブルで日毎にデーターを整理
データーを1つのシートにまとめた理由は、
日経平均株価の値動き、前日のDOW指数の上下、為替(USD・JPY)の上下、この関係性を見ることでした。
日付毎の日経平均株価、DOW指数、為替(USD・JPY)の情報が一覧表形式になっていると、分析がしやすくなります。
エクセル標準機能の「ピボットテーブル」を使って日毎にデーターを整理してみましょう。
これまでに行った手順で、「日経平均株価」、「DOW指数」、「為替(USD・JPY)」のデータが1つのシートにまとまっています。
データーが入力されている、どこかのセルをクリックして選択された状態にしておいてください。
「挿入」タブの中に「ピボットテーブル」のアイコンがありますので、クリックします。
テーブル/範囲(T)にデーター全体の範囲が指定されていることを確認して、「OK」ボタンを押します。
もし、表題を含むデータ全体が指定されていなければ範囲指定をやり直してください。
エクセルの別のシートがアクティブになって下のような画面に切り替わります。
Dateをドラッグ&ドロップしてみましょう。
A列に値が自動的に表示されます。
「+」のボタンを押すと、隠れていた四半期毎、月毎の表示が現れます。
でました-。 エクセルのおせっかい機能です。
今回表示させたいのは、日毎のデーターなので右クリックして、「グループ解除」しましょう。
「Open(始値)」と「銘柄」をそれぞれドラッグ&ドロップします。
すると、銘柄毎の「Open(始値)」が自動的に表示されます。
せっかくなので、別の集計もしてみます。
銘柄毎に、3日間の陰陽パターンが何回現れたのか、出現回数を集計しました。
横軸と縦軸の項目の合計を算出しているので「クロス集計」と呼ばれます。
今回の目的は「ピボットテーブルで日毎にデーターを整理」する事だったので、次の条件でピボットテーブルに整理させます。
「合計/Open」と表示されていますが、各期日にOpenは1つしか登録されていませんから、値に変わりはありません。
これで、日毎にデーターを整理する事が出来ました。
さらにこのデーターを使って分析を進めますので、このままでは使い勝手が良くありません。
ピボットテーブルの機能をリセットして、データーを自由に使えるようにします。
その方法は、シート全体をコピーして値貼り付けをするだけです。
エクセルシートの左上をクリックしてシート全体を選択します。
そのままマウスで右クリック。
コピーをクリック。
シート全体が表示された状態のまま、再度マウスの右クリック。
「貼り付けのオプション」の値貼り付けをクリックします。
値が貼り付きましたが、A列の日付の表記がおかしくなりましたね。
A列を選んで、セルの書式設定を日付に修正しましょう。
H列とI 列に,OpenとCloseの合計が集計されていますが、現時点では使用するつもりは無いので削除して、データーの整理は完了です。
[第7章]パターン分析
日本の株価に影響を与えるとされる、ニューヨーク証券取引所の「DOW指数」や「為替」データーをエクセルに取り込みました。
そして、3つのローソク足のデーターを1つのシートにまとめる所まで完了です。
いやぁ。 長いことお待たせしました。
いよいよパターン分析が始まります。
目的を思い出しましょう。
株価予報作るために、日経平均株価の値動き、前日のDOW指数の上下、為替(USD・JPY)の上下、この関係性を見ることでした。
この分析をスムーズに進めるために、あと少しだけデーターに手を加えます。
表題をわかりやすい題名に直しましょう。
A列を期日、B列以降は合計を銘柄名に変更しました。
おっと、ここで新たな問題が発見されました。
3日間のローソク足の陰陽を再判定しなければならないこと。
そして、日本とアメリカの証券取引所の営業日が異なるので、銘柄毎のデーターが連続していないこと。
銘柄毎のデーターが連続していないと、ローソク足の陰陽ターンを算出するのが難しくなります。
「アクセスなどのデーターベースに突っ込んでデーター整理すれば良かったかなぁ」と頭をよぎります。
しかし、この記事のコンセプトの1つは、「再現性」を確保する。(他の人もできる)でした。
できるだけ、一般的な標準的な手法を使って分析をしたい。
しばし考え中。。。。。。
よし! 「VLOOKUP関数」を使うことにしました。
VLOOKUP関数はなじみのない関数かも知れませんが、エクセル標準の関数です。
非常に便利な関数なので、これを機に覚えておいて損は無いでしょう。
最初に言ってしまいますが、VLOOKUP関数は少し分かりづらい関数の1つだと思います。
Googleなどで検索して貰えれば、易しく説明しているサイトが沢山見つかりますので、是非ご覧下さい。
もちろんこの記事でも、順を追って説明しますので概要は理解していただけると思います。
「VLOOKUP関数」を使うために、データーを一部加工します。
・[第6章]3つのローソク足データーをまとめる
・データーを1つのシートにまとめる
このときに使ったシートを活用します。
このシートには、日経平均株価、DOW指数、為替(USD・JPY)のすべてのデーターが入っています。
※このシートを「ピボット元シート」と名付けます。
A列の前に列を挿入して計算式を入力します。
そしてデーターの登録されている最終行まで計算式を貼り付けます。
ピボットテーブルを使ってデーターをまとめたシートに戻ります。
※このシートを「まとめシート」と名付けます。
A列の前に3列挿入してそれぞれ計算式を入力し、最終行まで計算式を貼り付けます。
さぁ、ここから「VLOOKUP関数」の出番ですよ。
「まとめシート」のK列に関数を入力します。
そしてデーターの最終行まで計算式を貼り付けます。
すると、「ピボット元シート」に登録されている、日経平均の3日間の陰陽が表示されます。
すごいでしょ!
同様にDowとUSDJPYの陰陽も取得しましょう。
つぎに、カンタンですが「VLOOKUP関数」の説明をしますね。
VLOOKUP関数の説明
ここで、カンタンに「VLOOKUP関数」の説明をします。
=VLOOKUP(C6,ピボット元シート!$A$2:$O$15135,15,FALSE)
C6 : 「まとめシート」C列のセルと同じものを「ピボット元シートから探します」
ピボット元シート!$A$2:$O$15135 : 検索するデータの範囲を指定します。
15 : 検索するデータの範囲の先頭から15行目のデーターを指定しています。
FALSE : 一致するもの無ければ エラーを返します。
こんな関数をさらっと使っていたら、カッコ良いですよね。
そろそろ本題の分析に戻ります。
フィルターでパターン分析
第5章でも行いました、エクセルのフィルター機能を使って分析しましょう。
今回は日経平均だけで無く、DOW指数ローソク足の陰陽、為替(USD・JPY)ローソク足の陰陽を含めてパターン分析を行います。
「まとめシート」N列に計算式を入れて、文字列を結合させます。
日経平均単独の陰陽を判定させる式も入力します。
入力した計算式は一番下の行までコピーしておきます。
さぁ、いよいよパターン分析本番です。
取得したデーターの最新が2019年4月27日のデーターなので、この日のパターンを見てみましょう。
N列でフィルタを掛けます。
フィルタの条件は2019年4月27日に現れた「ローソク足陰陽統合」パターンです。
全データ5206件中13件抽出されました。
おっ、すべて日経平均株価は陽線だ!
もちろん、喜んではいけません。
日経平均のパターンには、当日の陰陽パターンも含まれています。
期日2019年4月27日の日経平均株価は陽線なので、すべてのデーターが陽線で当たり前ですよね。
※取得したデーターはDOWや為替データーも含まれるため、ローソク足データーの最終取得時間は、翌日の朝5時59分です。
このため、日経平均ローソク足の期日は翌日の日付で登録されています。
この点も、システムトレード戦略を考える上でとても重要です。
「とても成績の良い戦略が出来たと思ったら、当日の終値を判断材料に入れていた」なんて、笑っちゃう話も良くあるんです。
トレード当日の終値が分かっていれば、勝って当然ですからね。
それでは、2019年4月27日の陰陽パターンで、逆に陰線が出た場合を抽出してみましょう。
「ローソク足陰陽統合」の先頭から3つめが日経平均当日の陰陽パターンです。
この3つめを、陽線から陰線に変えてフィルタを掛けます。
抽出されたのは5件です。
日経平均株価 陽線 13件
日経平均株価 陰線 5件
日経平均だけで無く、DOW指数ローソク足の陰陽、為替(USD・JPY)ローソク足の陰陽を含めたパターンです。
日経平均株価 陽線 13件 に対して 陰線 5件。
期待が持てそうです。
この他にも、色々なパターン分析が出来そうですが、フィルタ機能を使ってボタンをポチポチやっているのも疲れます。
[第6章]3つのローソク足データーをまとめる
ピボットテーブルで日毎にデーターを整理
このときに使った、ピボットテーブルで分析しましょう。
ピボットテーブルでパターン分析
エクセル標準機能のピボットテーブルを使って、パターン分析をしてみます。
「ローソク足陰陽統合パターン」がどの程度の割合で現れているのかを分析します。
おさらい
「ローソク足陰陽統合パターン」とは、
日経平均、DOW指数、為替(USD・JPY)それぞれのローソク足の陰陽3日分のパターンをまとめたものです。
陽線とは、始値よりも終値の方が高く終わったローソク足のことです。
陰線とは、始値よりも終値の方が低く終わったローソク足のことです。
◇表示例
日経平均が3日続けて陽線ならば、陽線陽線陽線
DOW指数が3日続けて陰線ならば、陰線陰線陰線
為替(USD・JPY)が3日続けて陽線ならば、陽線陽線陽線
なので、まとめると「ローソク足陰陽統合パターン」は「陽線陽線陽線陰線陰線陰線陽線陽線陽線」このようになります。
ピボットテーブル分析を始めます。
エクセルの「まとめシート」をアクティブにして、データーが入力されている、どこかのセルをクリックして選択された状態にします。
「挿入」タブの中に「ピボットテーブル」のアイコンがありますので、クリックします。
表全体が選択されていればOKですが、下のように一部のセル範囲しか範囲選択されていない場合があります。
この場合は、表題を含むデーター範囲全体を選択してください。
ピボットの条件は次の通りです。
ピボットテーブルのままでは、データー分析がやりにくいので、ピボットテーブルの機能をリセットして、データーを自由に使えるようにします。
エクセルシートの左上をクリックしてシート全体を選択します。
そのままマウスで右クリック。
コピーをクリック。
シート全体が表示された状態のまま、再度マウスの右クリック。
「貼り付けのオプション」の値貼り付けをクリックします。
※上のコピーと貼り付けの画像2つは、第6章で使用した画像と同じです。(気付いた人するどい!)手順を説明するための画像なので、使い回しをお許しくださいませ。
シート名を「陰陽まとめピボット改」に変更しました。
パターンの総数は512です。
3銘柄の陰陽組み合わせパターンのすべてが現れているようです。(私の計算が間違っていなければ)
日経平均株価が陰線だった日のパターンの出現回数が多い順に並べてみます。
一番多く現れたパターンは、「陰線陽線陰線陰線陽線陰線陰線陽線陰線」でした。
では、当日の日経平均以外が全く同じパターンだったときの出現回数を見てみます。
当日の日経平均は先頭から3番目なので、これを陽線に変えて「陰線陽線陽線陰線陽線陰線陰線陽線陰線」フィルタを掛けてみます。
陽線が現れた回数は12回でした。
当日の日経平均以外が同一パターンの出現回数です。
日経平均株価 陽線 12件
日経平均株価 陰線 30件
出現回数を比較すると、約3倍ですね。
逆に陽線が一番多く現れたパターンも見てみましょう。
陽線が現れた回数は35回でした。
当日の日経平均以外が同一パターンの出現回数はこちら。
陽線が現れた回数は28回でした。
当日の日経平均以外が同一パターンの出現回数です。
日経平均株価 陽線 35件
日経平均株価 陰線 28件
出現回数を比較すると、約3倍ですね。
突然ですが再確認します。
◇再確認です。取得したデーターについて注意。
取得したデーターはDOWや為替データーも含まれるため、ローソク足データーの最終取得時間は、朝5時59分です。
このため、日経平均ローソク足の期日は翌日の日付で登録されています。
パターンを分析する上で支障が無いため、補正せずにデーターを使用しています。
ここまでの手順で、「日経平均株価」に影響を与えるであろう「DOW指数」や「為替」の値動きと、日経平均株価ローソク足の陽線(上昇)、陰線(下降)に関連性が見えてきました。
株価予報実現は意外と近いか?
しかし、あらたな問題が発覚しました。
今の分析の流れは、
トレードステーションから株価データーをダウンロード。
そして、エクセルに取り込んでからパターン分析を行う。
これだけですが、手順は多く煩雑でもあります。
株式市場は平日には毎日取引を行っています。
毎日新しいデーターを取り込むのは、面倒です。
一度エクセルに取り込んだデーターの範囲内で、分析を進めるのなら良いのですが、やはり最新のデーターを分析対象にしたいですよね。
次の章では、トレードステーションから直接エクセルに、ローソク足データーを取り込む方法を解説します。
トレードステーションは持っていない方から、「早くパターン分析を進めてよ!」このような声が聞こえてきそうですが、少々お付き合いください。
[第8章]エクセルに直接株価情報を取り込む
※トレードステーションを持っていない方は、読み飛ばして頂いて結構です。
トレードステーションには、エクセルのファイルに直接データーを書き込んだり、エクセルから情報を取得する機能があります。
その名は「Easy Languageオブジェクト」です。
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に・・・。
動作には影響がないのでこのまま進めます。(*^_^*)
ここからの作業が「Easy Languageオブジェクト」を活用するための手順となります。
Trade station開発環境のエディター左上の、「ツールボックスタブ」にマウスポインターを移動します。
すると「ツールボックスパネル」が現れますので、エクセルコンポーネントをダブルクリックしてください。
エディターの下部にエクセルコンポーネントが表示されます。
①Trade station開発環境のエディター右上の、「プロパティタブ」にマウスポインターを移動します。
②すると「プロパティパネル」が現れますので、エクセルコンポーネントをクリックしてください。
③事前に準備したエクセルの保存フォルダと、ファイル名を入力します。 ( ” を忘れずに)
④エクセルコンポーネントのプロパティ名を「WkBk」に変更してください。
ここまでの作業が、「Easy Languageオブジェクト」を活用するための、主な追加手順となります。
お試しプログラムを書いてみました。
プログラムコード ここから====
WkBk[“Sheet1”].Cells[1,1] = “aaa” ;
WkBk[“Sheet1”].Cells[2,2] = “bbb” ;
WkBk[“Sheet1”].Cells[3,3] = “ccc” ;
プログラムコード ここまで====
このプログラムを動かすと、エクセルが起動します。
エクセルのシートには、プログラムで指定した文字列が登録されています。
直接、株価データーをエクセルに登録できるのなら、分析時間の短縮になりそうですね。
手順解説の途中ですが、お知らせです。
「エクセルに直接株価情報を取り込む」手順の詳細は、別記事に切り出すことにしました。
理由は下記となります。
エクセルとトレードステーションの情報連携は、少しだけ手順が複雑になります。
今後の「株価予報」開発の効率化のために、外せない機能ではありますが、トレードステーションをもっていない方にとっては、退屈な時間にもなりかねません。
かといって、データー取得の重要な部分なので解説を雑に終わらせたくない。
この記事作成のコンセプトでもある。
「株価予想」を作成する過程を時系列で公開する事にもこだわりたい。
悩んだ末の結論です。
エクセルとのデーター連携を詳しく知りたい方は、こちらの記事をご覧下さい。
エクセルとトレードステーションのデーター連携手順詳細は別記事へ
「エクセルに直接株価情報を取り込む」手順の詳細は、
データー連携に興味がある方は、こちらの記事を是非ご覧下さい。
トレステとエクセルを完全連携させて株価分析を効率化させる。[Easy Languageオブジェクト活用/ExcelWorkbookコンポーネント]
新規に取得した複数銘柄データーの注意点
エクセルに3銘柄のデーターが取得されました。
ここで注意が必要です。
上の例では、米ドル/円、日経平均株価、NYダウ平均の情報を取得しました。
チャートをもう一度見てみましょう。
中段のローソク足が、日経平均株価です。
中央付近にローソク足が表示されていない期間があります。
なぜだか分かりますか?
表示されていない期間は4月末から5月の前半にかけて。
そうです。 「10連休!」と話題になった2019年のゴールデンウィーク期間です。
日本取引所は休場していても、為替やNY証券取引所では取引をしています。
エクセルに取得されたデーターを見てみましょう。
A列に取得しているのが為替なので、日曜日以外はデーターが取得されています。
K列に取得しているのが日経平均株価なので、休場の日はデーターが取得されていません。
U列に取得しているのがNYダウ平均なので、休場の日はデーターが取得されていません。
さらに注意点がもうひとつ。
日経平均株価の日付をよく見てください、2019年4月27日の次が2019年5月8日です。
2019年のゴールデンウィークは4月27日からのはず!
※Easy Language独自の書式で期日が表示されています。
Date は、日付が 2000 年 1 月 7 日の場合、1000107 を返します。
Date は、日付が 1999 年 4 月 12 日の場合、990412 を返します。
出所:Easy Languageヘルプ
なぜでしょう?
L列のTimeを見てください。”559″となっています。
これはEasy Languageの時刻の表現方法で、朝の5時59分を表しています。
チャートで、為替やNY取引所のデーターを合わせて表示させているため、ローソク足の終わりの時間が翌日の朝になっているのです。
このため、日経平均株価の日付が翌日になっています。
[第9章]パターン分析2
パターン分析は、7章でも行いましたが、データー取得方法を変更しましたので、手直しが必要です。
もう一度、分析の目的を思い出しましょう。
株価予報作るために、日経平均株価の値動き、前日のDOW指数の上下、為替(USD・JPY)の上下、この関係性を見ることでした。
分析しやすいように元データーの形を整えます。
データーの形を整える
まずデーターの表題を整えましょう。
10行目の表題の先頭に「為替」「NK」「D」を挿入しました。
エクセルでパターンを判定2
新たに株価データーをエクセルに取り込みましたので、関数も入れ直します。
まず、ローソク足が陽線だったのか陰線だったのか判定させます。
陽線:始値よりも終値が高い
陰線:始値よりも終値が低い
終値と始値の差をエクセルに計算させます。
下の例では、K列に 計算式 「=D11ーC11」を入力しています。
次にローソク足が陽線だったのか陰線だったのか判定させます。
この判定には、エクセルの関数 IFを使います。
=IF(E11>0,”陽”,”陰”)
簡単に、この関数の説明をしますね。
E11>0
E11セルに入っている数値が、ゼロより大きいかを判断
もし大きければ、”陽線” と表示
それ以外であれば, ”陰線” と表示
IF は 英語の”もし” のIFです。
当日、前日、前々日、の日経平均株価のローソク足が、「陽線だったのか」「陰線だったのか」、セルにまとめます。
文字は ”&” でまとめ(結合)て表示されます。
同じように、DOW指数の関数も入力します。
そして今回は、日経平均株価の陰陽判定の基準を変更します。
理由は、取得した日経平均株価の日付が、実際に日本時間で取引されている日付と異なるからです。
ローソク足が、日本時間の翌朝5時59分までの時間で形成されているため、為替とDOWの日付に対してズレが生じています。
分かりにくいでしょうか?
説明の方法を変えます。
チャートで、為替やNY取引所のデーターを合わせて表示させているため、ローソク足の終わりの時間が翌日の朝になっているのです。
このため、日経平均株価の日付が翌日になっています。
この記事を書いているのは、2019年6月9日 午後5時46分です。
取得出来た日経平均株価のデーターは下の通り、2019年06月08日になっていますね。
”1190608” これはEasy Language独特の日付表示で、2019年6月8日の事です。
ここで、Easy Language独特の日付表示の、おさらいをしておきましょう。
「1190608」は2019年06月08日を表しています。
これは、Easy Language独特の日付表記で、「190507」先頭の数字1が西暦2000を表しているのです。
Date は、日付が 2000 年 1 月 7 日の場合、1000107 を返します。
Date は、日付が 1999 年 4 月 12 日の場合、990412 を返します。
出所:Easy Languageヘルプ
2019年06月08日は土曜日で、東京取引所では株式の売買は行われていません。
ではなぜ、2019年06月08日なのか?
2019年6月7日の取引時間(立会時間)は9時~15時までです。
しかし、為替やDOWの立会時間が続いているため、ローソク足の時刻が翌日の朝5時59分になっているのです。
これにより、日経平均株価の日付が翌日になってしまいます。
日経平均株価の関数だけ、下のように1日分ずらして入力します。
為替-DOW指数ー日経平均 の陰陽パターンを結合させましょう。
エクセルのAE列に下の式を登録してください。
AE列に表示される順番が変更されていることに注意してください。
G列(為替)-AA列(DOW)-Q列(日経) この順番で陰陽パターンが結合されています。
2019年06月7日の陰陽パターンは下のようになりました。
※先述したようにNKDateに表示されている期日は、1日ズレているため6月7日のローソク足データーが表示されています。
2019年06月7日の日経平均株価は、陽線で終わりましたが過去に同じ陰陽パターンが現れた際にも陽線で終わっていたでしょうか?
※2019年6月19日追記
また、大きなミスをしていることに気付きました。
3銘柄の「陰陽パターン」を結合する部分に誤りがあります。
上の手順では、3銘柄の「陰陽パターン」を結合する為に、同じ列に算出された銘柄毎の「3日間の陰陽」を結合させています。
思い出してください。
日経平均株価、DOW指数、為替はそれぞれ別の市場で取引されています。
市場によって取引を行わない休場日が異なるので、取得されたデーターは同じ期日のデーターが、同一列に並んでいないのです。
このまま横並びで各銘柄の「3日間の陰陽」パターンを結合してしまっては、異なった期日のパターンを結合する事になってしまいます。
正しく期日を合わせるには、どうすれば良いでしょうか?
このページの、
[第6章]3つのローソク足データーをまとめる
このなかで、紹介した「ピボットテーブル」を使用しても良いでしょう。
いろいろ考えましたが、今回はエクセルのマクロを使用してみましょう。
エクセルのマクロで「陰陽パターン」を結合させる
「マクロなんて使ったことない!」
「またプログラム?」
このように思う方も沢山いらっしゃるでしょう。
マクロ初心者向けに、できるだけ単純なプログラムを心がけますので、少々お付き合いください。
また、このマクロは「株価予報」を理解する上で必須ではありませんし、先に解説した「ピボットテーブル」や「VLOOKUP関数」で代用することも出来ます。
説明を読み飛ばしていただいても結構です。
※2019年6月23日追記
カンタンにエクセルのマクロを作成しました。
マクロの構成を単純にする為に、2つのマクロに分けています。
1つ目のマクロ「陰陽パターン結合日経基準為替総当たり取得」で、為替と日経平均の「陰陽パターン」を結合。
2つ目のマクロ「陰陽パターン結合日経基準為替DOW総当たり取得」で、結合済みの「陰陽パターン」とDOWの「陰陽パターン」を結合。
もう少し洗練されたマクロを書こうとも思いましたが、できるだけカンタンな構成にする為に計算の効率などは無視しました。
マクロで集計した結果がこちらです。
エクセルのフィルタでパターン分析2
※2019年6月23日追記
「陰陽パターン」集計に誤りが見つかったため、記事を修正しました。
ご迷惑をおかけします。
2019年06月7日の日経平均株価は、陽線で終わりました。
陰陽パターンは「陽陰陰陰陽陽陽陽陽」です。
エクセル標準機能のフィルタをかけて、同じパターンが現れているか確認しましょう。
取得したデーターの内、為替・日経・DOWすべての「陰陽パターン」を取得出来たのは2491日分のローソク足です。
同じ「陰陽パターン」が現れたのは、7回。
P列に日経平均株価のローソク足が「陽線」だったのか「陰線」だったのか判定しています。
結果は、2491日の間に同じ「陰陽パターン」が現れたのは7回。
ローソク足が「陽線」の数2回。
ローソク足が「陰線」の数5回。
7回の内5回が「陰線」。
つまり、始値よりも終値が下がっていた。
「よし! 次にこのパターンが現れたら、寄り付きから売りエントリーだぁー」
チョット待ってください。
もう少し分析を進めましょう。
ピボットテーブルでパターン分析2
※2019年6月23日追記
「陰陽パターン」集計に誤りが見つかったため、記事を修正しました。
ご迷惑をおかけします。
為替-DOW指数ー日経平均 のローソク足「陰陽パターン」分析を進めます。
「陰陽パターン」別の出現回数や、その時の日経平均株価のローソク足の状況を、表形式に集計します。
この記事の[第7章]パターン分析で解説した、ピボットテーブルを使います。
ピボットテーブルの詳細な作成手順は、第7章の記事を参考にしてください。
ピボットテーブルでの集計画面はこちら。
A列には、陰陽パターン(為替-Dow-日経 3日分の陰陽統合)すべてが表示。
B列には、日経平均株価(1日)の「陰線」が現れた回数が表示。
B列には、日経平均株価(1日)の「陽線」が現れた回数が表示。
上の表の5列目には、全銘柄の3日のローソク足が陰線だったパターンの集計結果が表されています。
このパターンが現れた回数は12回。
そのうち日経平均株価が「陰線」の回数6回。
日経平均株価が「陽線」の回数6回。
なんと同数でした。
もしあなたが、この「陰陽パターン」を使ってトレードをするなら、どうしますか?
私なら、次の条件でトレードに値する「陰陽パターン」なのか否か判断するでしょう。
「陰陽パターン」出現回数がそこそこ多い。
かつ、
日経平均株価の「陰線」と「陽線」の回数に差がある
上の表の5列目の、「全銘柄の3日のローソク足が陰線」だったパターンでは、売買エントリー出来ませんね。
売買エントリーできそうな条件を探してみましょう。
トレードに使えるパターンを探す
※2019年6月23日追記
「陰陽パターン」集計に誤りが見つかったため、記事を修正しました。
ご迷惑をおかけします。
また株価予想から寄り道しますが、集計した「陰陽パターン」のうちで、実トレードに使えるパターンがあるか探してみます。
ピボットテーブルで集計した表に手を加えます。
編集をするので、ピボットテーブルが作成されたシートをコピーして、別のシートに貼り付けておきましょう。
見つけたい「陰陽パターン」は次の条件に合うものです。
「陰陽パターン」出現回数がそこそこ多い。
そして、
日経平均株価の「陰線」と「陽線」の回数に差がある。
まず、日経平均株価の「陰線」と「陽線」の現れた回数に差がある、パターンを見つけるために、関数を入力します。
下の例でE5セルに入力したABS関数は、数値の絶対値を計算してくれます。
「陰線」の出現回数から、「陽線」の出現回数を引いて差を算出した出現回数の差が正の整数で表示されます。
次に並べ替えです。
並べ替えの条件は、「陰陽出現回数の差」と「総計」です。
順序は大きい順にしてください。
並べ替えた結果がこちら。
この上位10パターンで、売買していたらどのような結果になっていたか、妄想してみましょう。(*^_^*)
「陰線」出現回数の多い「陰陽パターン」は、売り戦略でエントリー。
「陽線」出現回数の多い「陰陽パターン」は、買い戦略でエントリー。
ローソク足データーを取得したエクセルシートのO列には、日経平均株価の終値から始値を引いた値が算出されていました。
売り戦略の場合は、この数値がマイナスなら利益が出ますので、マイナス1(-1)を掛けます。
下の例ではAG列に、売り戦略の場合はマイナス1(-1)をかけています。
日経平均株価そのものを売買することは出来ませんが、仮に日経225先物が同じ価格だったとします。
日経225先物は、ラージで現物の1000倍、ミニで現物の100倍のレバレッジです。
単純に1000倍、100倍してみました。
日経の価格差 | ¥10,582 |
先物ラージ想定(1000倍) | ¥10,581,510 |
先物ミニ想定(100倍) | ¥1,058,151 |
なんと、ラージ1枚で1000万円以上の利益を得られることになります。
※手数料、税金は考慮していません。
さっそくやってみよう!と思ったあなた。
忘れちゃいけません。
そもそも、良い結果が出たパターンだけで損益を計算しました。
結果が良くて当たり前ですよね。
あくまでも、妄想トレードとして考えてください。
エクセルマクロで出現回数カウントの自動化
※2019年6月23日追記
「陰陽パターン」集計に誤りが見つかったため、記事を修正しました。
ご迷惑をおかけします。
パターン分析を、エクセルのフィルタやピボットテーブルを使って行いました。
せっかくエクセルを使っているのですから、エクセルのマクロを使って「陰陽パターン」の出現回数も自動で計算させてみましょう。
計算結果は、フィルタやピボットテーブルで算出したものと同じになります。
むしろ、同じにならなければ困りますよね。
このマクロは、分析をする上で必須ではありませんので、ご興味のある方はご覧下さい。
マウロ初心者の方にも、分かりやすいように 繰り返しは For~next だけを使いました。
まずは表示領域をシートに作ります。
AF3:出現回数(指定パターン)
AG3:陰線出現回数
AH3:陽線出現回数
AE3:検出するする陰陽パターンをこのセルに登録する。
作成したマクロはこちら。
ついでに、マクロ実行ボタンも作りました。
「出現数カウント」ボタンを押すと、自動でセル番地AE3に登録された「陰陽パターン」の出現回数を計算します。
関数で出現回数カウント
エクセルに詳しい方なら「おいおい。マクロなんぞ使わなくても関数で計算出来るぞい」と思っていらっしゃいますね。
そうなんです。
関数を使えばものすごく簡単に、出現回数をカウントする事ができます。
あえてマクロで計算しているのには訳があるのですが、そのわけは後で説明するとして関数の使い方を簡単に解説します。
使用する関数は、 COUNTIF 関数です。
下の例では、AE列8行目に関数を入力しています。
=COUNTIF(範囲,条件)
関数を入力してエンターキーを押すと、AE列3行目と同じ文字列が入力されている個数を計算してくれます。
下の例では、計算結果を確かめるためにフィルタを掛けていますが、フィルタは掛かっていても、掛かって無くても結果は同じです。
このように、エクセルの関数を使えばパターンの出現回数をカンタンに算出する事が出来ます。
エクセルって賢いですよね。
では、なぜこの記事ではエクセルマクロを使って計算していたのでしょうか?
それは妄想を楽しみたかったからです(*^_^*)
妄想トレード結果も自動で算出
この章の「トレードに使えるパターンを探す」で妄想トレード結果を算出しました。
あくまでも仮定の話ですが、利益の出る様子を見ると元気が出てきますよね。
上の記事で「陰陽パターン」の出現回数を自動計算するマクロを作成しました。
どうせなら、妄想の利益で「ムフフ」ってしながら、分析を続けたいですもんね。
まずは、エクセルワークシートの準備。
表示領域をシートに作ります。
AI3:検証回数(何本のローソク足データーから計算したか)
AJ3:算出行数(無くても良いのですが、マクロで何行目を計算しているのか、目視出来るように)
AG5:売り戦略の場合の損益。 仮に日経平均株価と日経225先物(ミニ)が同じ価格と想定(ミニは100倍のレバレッジ)
AH5:買い戦略の場合の損益。 仮に日経平均株価と日経225先物(ミニ)が同じ価格と想定(ミニは100倍のレバレッジ)
AI5:出現回数が多い方(陰線・陽線)で売買するので、出現回数が多い方をエクセルの関数で表示
AI5に入力した関数はこちら。
作成したマクロはこちらです。
マクロコード ここから====
Sub 陰陽パターン出現数カウントと妄想損益算出()
Dim I As Double
Dim 検証足数 As Double
Dim 陰陽フラグ未取得回数 As Double
Dim 買い損益 As Double
Dim 売り損益 As Double
Sheets(“JPY-NK-DOW(マクロ実行用)”).Select
‘シートの初期化
Range(“AF3”).Value = 0
Range(“AG3”).Value = 0
Range(“AH3”).Value = 0
Range(“AG5”).Value = 0
Range(“AH5”).Value = 0
Range(“AI3”).Value = 0
Range(“AJ3”).Value = 0
検証足数 = 0
陰陽フラグ未取得回数 = 0
買い損益 = 0
売り損益 = 0
’11行目から指定日数算出する
For I = 11 To 2450 + 10
If Range(“AE3”).Value = Cells(I, 31) Then
‘出現回数カウントアップ
Range(“AF3”).Value = Range(“AF3”).Value + 1
‘日経が陰線の場合
If Cells(I, 15) <= 0 Then
‘陰線出現回数カウントアップ
Range(“AG3”).Value = Range(“AG3”).Value + 1
‘妄想損益算出
売り損益 = 売り損益 + (Cells(I, 15).Value * -1)
買い損益 = 買い損益 + Cells(I, 15).Value
End If
‘日経が陽線の場合
If Cells(I, 15) > 0 Then
‘陽線出現回数カウントアップ
Range(“AH3”).Value = Range(“AH3”).Value + 1
‘妄想損益算出
売り損益 = 売り損益 – Cells(I, 15).Value
買い損益 = 買い損益 + Cells(I, 15).Value
End If
Range(“AG5”).Value = 売り損益 * 100
Range(“AH5”).Value = 買い損益 * 100
End If
If Cells(I, 31) = “” Then
陰陽フラグ未取得回数 = 陰陽フラグ未取得回数 + 1
End If
検証足数 = I – 11 – 陰陽フラグ未取得回数
Range(“AI3”).Value = 検証足数
Range(“AJ3”).Value = I
Next
Range(“AE3”).Select
MsgBox “パターン算出が終わりました。”
End Sub
マクロコード ここまで====
エクセルシートの AE3 に入力されたパターンの出現回数は5回。
陰線出現回数 4回
陽線出現回数 1回
陰線の出現回数が多いので、投資戦略は「寄り付きで売り」「終値で買い戻し」。
仮に日経225先物ミニが同価格だったと想定すると、この戦略で得られる利益は 26,090円(手数料考慮しない)。
と言う結果になりました。
検索パターンを 陰陽陰陽陰陽陰陽陰 に入れ替えてみます。
すると利益は、¥242,359(手数料考慮しない)。
あくまでも妄想ですよ(*^_^*)
[第10章]少しだけ統計的な分析
日経平均株価に影響を与えてると考える、ニューヨーク証券取引所の「DOW指数」や「為替」の値動き。
このローソク足(陽線・陰線)のパターンを組み合わせて、翌日の日経平均株価の値動きを予想(予報)出来るのでは?
この思いでここまで分析を進めてきました。
このパターン分析で最も重要なのが、ローソク足が 陽線(始め値よりも終値が高い) か 陰線(始め値よりも終値が低い)です。
この2つのローソク足は陽線と判断。
この2つのローソク足は陰線と判断。
同じカテゴリーと考えるには無理があるかも・・・・。
天気予報だって、「はれ」「あめ」の他に「くもり」だってある。
陽線 か 陰線 または 中立 こんな考えがあった方が良いのでは?
そうですよね。
あなたもそう思いますよね?
きっとそうに違いない。
勝手に決めつけてしまいました。
では、中立を定義しなければなりません。
1日の値幅のうち、何円以内ならば中立?
何パーセント以内ならば中立?
これを決めるために、1日の値幅の分布を調べましょう。
1日の値幅の分布をヒストグラムで分析
ヒストグラムを使って、1日の値幅の分布を調べます。
とっても利口なエクセルさんの出番です。
このようなヒストグラムを作成します。
では,さっそくヒストグラム分析を始めましょう。
あなたのエクセルでヒストグラムを使えるか確認します。
[データ]リボンに[データ分析]があるか調べてください。
このデータ分析は標準インストールでは、使えるように設定されていないと思います。
[データ]リボンに[データ分析]がない方は、下の手順で設定してください。
エクセルの[ファイル]-[オプション]から「分析ツール」を選択して「設定」を押します。
アドインの[分析ツール]にチェックを入れて OK を押します。
これで[データ]リボンに[データ分析]が現れたはずです。
取得された為替データの値幅(当日ローソク足の始値と終値の幅)は、上下4円以内に収まっていましたので、データー区間は -4 から +4 までにします。
エクセルの任意のセルにデーター区間を入力します。
下の例では、H11セルからH27に 0.5 間隔でデーターを入力しています。
[データ]リボンの[データ分析]をクリック。
ヒストグラムを選んで OK ボタンを押します。
入力範囲には、為替のローソク足の終値から始値を引いた数値が登録されている E11からE2513 を入力。
データ区間には、先ほど入力した数値の範囲 H8からH27 を入力。
一番下の[グラフ作成]にチェックをいれて、OKボタンを押します。
私の環境では、新しいシートが作成され次のヒストグラムが表示されました。
データーのほとんどが、-0.5 から 2 の間に含まれていると言っていいでしょう。
データ区間の間隔が大きすぎたかも知れません。
データ区間を0.1刻みで-2から+2に変更して、為替のヒストグラムを作り直しました。
◇為替データの値幅(当日ローソク足の始値と終値の幅)ヒストグラム
同様にして、日経平均株価とDOW指数のヒストグラムも作りました。
◇日経平均株価データの値幅(当日ローソク足の始値と終値の幅)ヒストグラム
◇DOW指数の値幅(当日ローソク足の始値と終値の幅)ヒストグラム
統計の専門家に言わせれば、突っ込みどころ満載の分析だと思います。
ただし、今回の分析ではローソク足の、「はれ」「あめ」「くもり」に相当する、陽線 陰線 中立 の線引きをどこでするか?
これを決めるための分析です。 だいたいの傾向が分かれば良しとしましょう。
さてと、本題の、陽線 陰線 中立 の線引はどうしましょうか。
データー数が、3等分になる数値を選ぶか?
左側のローソク足(左側)のように、十字線のように始値と終値が極端に近いものだけを、 中立 と考えるか?
色々悩みましたが、これは正解の無い問題です。
とりあえず、値幅 0.5% 以内の値動き(始値・終値)ならば、 中立 と考えることにします!
ローソク足の、「はれ」「あめ」「くもり」に相当する、陽線 陰線 中立 の線引きをどこでするかを決めることが出来ました。
中立 を含めたパターン分析を始めたいところですが、統計的な分析をもうひとつやってみましょう。
相関関係を散布図で分析
相関関係とはなんでしょうか?
他のサイトさん(統計WEB)の説明が分かりやすいので、引用させていただきます。
26-2. 正の相関と負の相関
相関関係には「正の相関」と「負の相関」があります。正の相関関係とは次の左側のグラフのように横軸の値(x)が増加すると縦軸の値(y)も増加するという関係のことです。負の相関関係とは、次の右側のグラフのようにxが増加するとyが減少するという関係のことです。
また、直線的な関係の傾向が強い場合は「強い相関関係」、逆の場合は「弱い相関関係」といいます。xが増加してもyに増減の傾向が見られない場合は「相関関係なし」といいます。
エクセルでも、この相関関係を見る事ができます。
さっそくやってみましょう!
◇仮定
為替が変化したら、翌日の日経平均株価も影響を受けるはず。
DOW指数が変化したら、翌日の日経平均株価も影響を受けるはず。
相関関係を見るデータは,下の三つです。
- 為替データの値幅(当日ローソク足の始値と終値の幅)
- 日経平均株価データの値幅(当日ローソク足の始値と終値の幅)
- DOW指数の値幅(当日ローソク足の始値と終値の幅)
為替と日経平均株価の相関
DOW指数と日経平均株価の相関
それぞれ見てゆきましょう。
データーの準備
エクセルに取得したデーターは、為替のローソク足を基準に取得しているので、日経平均株価の期日だけ1日ズレがあります。
これは、
[第8章]エクセルに直接株価情報を取り込む
[節] 新規に取得した複数銘柄データーの注意点
で解説していますが、日経平均株価の期日は1日前のデータになります。
例:エクセルデーターの 2019年06月26日 日経平均株価データーは、実際にはその前日の2019年06月25日(日本時間)のデータ。
ややこしいですねぇ。
この補正は、私がエイヤッ!と(大胆)にやってしまいます。
為替、日経平均株価、DOW指数をピボットテーブルで集計します。
日経平均株価のデータだけを1列上にずらします。(当日の為替の値動きと、翌日の日経の値動きとを比較するため)
※2019年8月3日追記:最初に投稿した記事では誤って、2列ずらしていたので修正しました。
為替と日経平均株価の相関
為替と日経平均株価の相関を見てゆきましょう。
エクセルのメニュー[挿入]-[散布図]を選びます。
散布図が表示されました。
うーん。 仮定していたような散布図になっていません。
横軸が為替なので、右側に行くほど円安になります。
縦軸が日経平均株価なので、円安になれば翌日の日経平均株価が元気になって、下の矢印周りに分布が集まって欲しかったのに・・・。
DOW指数と日経平均株価の相関
DOW指数と日経平均株価の相関も同じように見てゆきます。
こちらも為替と同様に、相関があるとは言いにくい散布図の形です。
相関関係は無いのか?(考察)
相関関係を散布図で分析しましたが、想定していたような結果は得られませんでした。
「相関関係が無いんじゃ、これ以上分析を進めてもムダだね」
「株価予想なんて、所詮ムリだったんだよ」
イヤイヤ、ココで諦めてはもったいない。
簡単にできないのは承知で、始めたではありませんか。
逆に考えましょう。
「為替の値動きと、日経平均株価の値動きに関連性が無い」
「DOW指数の値動きと、日経平均株価の値動きに関連性が無い」
これを証明できるでしょうか?
なかなか難しいですよね。
想定していたような結果に繋がらなかった要因を考えます。
相関関係を見たデータは,下の三つ。
- 為替データの値幅(当日ローソク足の始値と終値の幅)
- 日経平均株価データの値幅(当日ローソク足の始値と終値の幅)
- DOW指数の値幅(当日ローソク足の始値と終値の幅)
為替データーが円安で、DOW指数が上昇した場合、日経平均株価は高く始まる事が多い(経験則)。
ギャップを開けて、高く始まると始値から値を下げて取引を終了することが多い(経験則)。
為替データーが円高で、DOW指数が下降した場合、日経平均株価は安く始まる事が多い(経験則)。
ギャップを開けて、安く始まると始値から値を上げて取引を終了することが多い(経験則)。
よって、
為替(1日の値動き)と、翌日の日経平均株価(1日の値動き)の相関
DOW指数(1日の値動き)と、翌日の日経平均株価の相関(1日の値動き)
この2つには、有意な相関関係は認められなかった。
そうでした! 大切なことを忘れていました。
そもそも、3日間のローソク足のパターンから翌日の日経平均株価の値動きを予測出来ないか?
これを調べるためにデーターを加工していたのです。
このブログ第4章の文章を抜粋します。
==抜粋ここから==
手始めに、日経平均株価の値動き、前日のDOW指数の上下、為替(USD・JPY)の上下、この関係性を見てゆきます。
必要なのは、各銘柄の4本値です。
「始値」「終値」「高値」「安値」
この4本値は、ローソク足の情報そのままなので、取得は簡単です。
日経平均株価が、米国DOW指数や為替の影響を受けていることは、広く知られています。
前日のDOW指数が上げて、円安になれば翌日の日経平均株価は高く始まることが多いと言われています。
日経平均株価そのものについても考えましょう。
前日の株価が大暴落した翌日の株価はどうなるか?
2日続けて上昇したときの翌日の株価は?
いくら米国DOW指数に影響されるといっても、日経平均株価そのものが強気の時と、弱気の時では影響度も変わるはずです。
「日経平均株価が2日続けて上昇」「DOW指数が2日続けて上昇」「日本円が2日続けて円安」
このパターンの時に、翌日の日経平均株価の値動きはどうだったのか?
仮定の話ですが、過去にこのパターンが100回現れて、80回上昇していたとしたら、あなたはどのような投資戦略を立てますか?
想像しただけで、ワクワクしてきますね。
==抜粋ここまで==
1日の値動きの相関を見ても、意味が無かったかも知れません。
為替やDOW指数の3日間のローソク足のパターンと、日経平均株価の3日間のローソク足のパターンとの関連性を調べる必要性があったのです。
ここまでのまとめ
[為替やDOW指数のローソク足のパーターン]と日経平均株価の値動きに相関があるかを、継続して分析する。
次の経験則についても、分析を進める。
- 為替データーが円安で、DOW指数が上昇した場合、日経平均株価は高く始まる事が多い(経験則)。
- ギャップを開けて、高く始まると始値から値を下げて取引を終了することが多い(経験則)。
[翌日の日経平均株価の始値が、○△円以上の場合]等の条件を入れればより正確な、予報に繋がると思っています。
でも、これってシステムトレード戦略を作っているみたいですね。
天気予報的では無くなってしまう?
ローソク足の陰陽に加えて、移動平均線の傾きをパラメーターにしては?
前日終値と当日終値が上昇したか、下降したかをパラメーターにしては?
色々なアイディが浮かんできますね。
パターン分析用データーの準備
統計っぽい分析は、サラッと終わらせるつもりだったのですが、分析を進めるにつれてより深く分析する必要性を感じてきました。
分析の元になるデーターは、エイヤッ!とエクセルの行をずらして補正したものなので、データーの信頼性も??な感じです。
この際なので、為替、日経平均株価、DOW指数のデーターもマジメに取り直します。
トレードステーションからデータ取得
日経平均株価を基準にデーターを取り直します。
まず、チャートに 日経平均株価、日経平均株価、DOW指数 を表示させます。
※表示させる手順の詳細を知りたい方は、このブログ記事の[第2章]をご覧下さい。
[第2章]トレードステーションのチャートに表示させる
Easy Languageオブジェクトを使ってデーター取得
Easy Languageオブジェクトを使って,エクセルにデーターを取得します。
Easy Languageのプログラムコートはこちら。
プログラムコード ここから====
Vars:
WBTab(“NK-DOW-JPY昇順 (D-Y-1)”),Cnt(11),AVG(0),CntBarN(0);
ClearPrintLog;
WkBk[WBTab].CellsAsInt[1,CntBarN+11] = date[0];
WkBk[WBTab].CellsAsInt[2,CntBarN+11] = time[0];
WkBk[WBTab].CellsAsDouble[3,CntBarN+11] = open[0];
WkBk[WBTab].CellsAsDouble[4,CntBarN+11] = close[0];
WkBk[WBTab].CellsAsInt[11,CntBarN+11] = date[1] of Data2;
WkBk[WBTab].CellsAsInt[12,CntBarN+11] = time[1] of Data2;
WkBk[WBTab].CellsAsDouble[13,CntBarN+11] = open[1] of Data2;
WkBk[WBTab].CellsAsDouble[14,CntBarN+11] = close[1] of Data2;
WkBk[WBTab].CellsAsInt[21,CntBarN+11] = date[1] of Data3;
WkBk[WBTab].CellsAsInt[22,CntBarN+11] = time[1] of Data3;
WkBk[WBTab].CellsAsDouble[23,CntBarN+11] = open[1] of Data3;
WkBk[WBTab].CellsAsDouble[24,CntBarN+11] = close[1] of Data3;
PRINT(“CntBarN=”, CntBarN);
CntBarN = CntBarN + 1;
Once (LastBarOnChartEx) Begin
PRINT(“処理が終わりました。” );
End;
プログラムコード ここまで====
このEasy Languageオブジェクトをチャートに適応すると、エクセルにデーターを取得する事ができます。
今回のデーターは、エクセルの11行目から古い順にデーターを取得しています。
※データー取得手順の詳細を知りたい方は、このブログ記事の[第8章]を参照願います。
[第8章]エクセルに直接株価情報を取り込む
データーがちゃんと取得出来ているか確認しましょう。
今回データーを取得したチャートには、上から 日経平均株価、日経平均株価、DOW指数 の順に表示されています。
前日(日本時間:朝6時)までの、 DOW指数 と 為替 の値動きが、当日の日経平均株価の値動きに影響を与えているかを分析します。
当日の 日経平均株価 と 前日の DOW指数 、 為替 データー が同じ行に取得出来ていれば OK!
エクセルに取得したデーターを見ると、ちゃんと並んでいますね。
東京取引所が休場だった、2019年のゴールデンウィークも見てみましょう。
連休時のデーター取得にも問題なさそうです。
※日経平均株価のDateは翌朝Time5時59分の期日を取得しているので、1日ズレます。
為替・DOWと日経平均株価のパターン相関
データを取り直したのでもう一度、為替と日経平均株価の相関を見てみましょう。
日経平均株価、DOW指数、為替 それぞれの1日の値動き(終値-始値)を算出します。
散布図を表示させてみましょう。
やはり相関は見られません。
これは想定していた事なので、良いのですが少しだけ前回のチャートと形が異なるのが気になりますね。
データーがおかしかったのかな?
まぁ、データーを取り直したので、気にしないで先に進みましょう。
データーの期間:2009年8月1日~2019年8月10日(日経取引日は8月9日)
パターン分析の準備
さぁ、いよいよパターン分析に入ります。
最初に分析するのは、為替・DOW指数の3日間のローソク足の陰陽パターンと日経平均株価(1日の値動き)との相関です。
陰陽のパターン、例えば「陽陰陰」を散布図でグラフ化することはできません。
パターンを数値に置き換えます。
3日間のローソク足が、 陰線 なのか 陽線 なのかパターン化しています。
前々日 よりも 前日 のほうが影響力が強いと思われるので、重み付けをしました。
上の表にあるように、3日間陽線が続けば、111ポイント。
3日間のローソク足のパターンが、 陰陽陽 ならば109ポイント。
数字の大小はあまり意味が無く、パターンの識別の為の数値と考えて下さい。
エクセルのセルに、関数を入力して重み付けの計算をさせます。
下の例では、AH列からAJ列で陰陽の判定と重み付けをしています。
為替データーにも、同様に重み付けの計算をさせます。
これで、パターン分析の準備が整いました。
為替・DOW指数と日経平均株価のパターン散布図
さて、散布図を作成してパターンの相関があるか見てみましょう。
おやおや、プロットされた位置が近すぎて、パターンが8種類あるのに4種類のように見えます。
パターンの重み付けが良くないようです。
重み付けを変更しましょう。
前々日の重み付けを、 1 から 10 へ変更。
前日の重み付けを、 10 から 50 へ変更しました。
エクセルの関数を変更します。
下は為替の変更例ですが、同様にDOW指数の関数も変更しました。
関数を変更すると、散布図も自動で更新されます。
散布図はそれなりに表示されましたが、やはり相関があるとは言えないですねぇ。
これまでのパターン分析では、夢のある結果が現れていません。
あまり楽しくないので、この辺で妄想トレードをしてみましょう。
もし、上の散布図に現れた8種類のパターンで、実取引をしていたらどうなっていたでしょうか?
パターンで妄想トレード
これまでの作業で3日間のローソク足が、 陰線 なのか 陽線 なのかパターン化しました。
それぞれのパターンに重みを付けています。
3日間陽線が続けば、160 ポイント。
3日間のローソク足のパターンが、 陰陽陽 ならば 140 ポイント。
パターンは全部で8種類。
それぞれのパターンで、もし実トレードしていたらどうなっていたでしょうか?
妄想してみましょう!
日経平均株価そのものを売買することは出来ませんが、仮に日経225先物が同じ価格だったとします。
日経225先物は、ラージで現物の1000倍、ミニで現物の100倍のレバレッジです。
ピボットテーブルを使って、パタン毎の損益を集計します。
DOW指数の方が良い結果が出ると思いますので、DOW指数でやってみましょう!!
DOW指数の重み付けをした範囲を選択して、ピボットテーブルを作成します。
範囲を選択して。
メニューの 挿入-ピボットテーブル に進みます。
範囲は選択済みなので、そのままOKボタンを押します。
ピボットテーブルのフィールドを選びます。
パターンの出現回数も、集計してみましょう。
さて、いよいよ妄想を始めます。
日経平均株価そのものを売買することは出来ませんが、仮に日経225先物が同じ価格だったとします。
日経225先物は、ラージで現物の1000倍、ミニで現物の100倍のレバレッジです。
それぞれの陰陽パターンが出現したときに、翌実の日経平均を寄り付きで買い(戦略によっては売り)、引けで決済。
先物ラージを想定すると、 ¥14,940,260 の利益。
先物miniを想定すると、 ¥1,494,026 の利益。
なんと、ラージなら 1千万円以上の利益 を得られることになります。
※手数料、税金は考慮していません。
※データー算出期間: 2009年8月5日~2019年8月10日
久しぶりに、夢のある結果が出ました。
良かった良かった!
実は、このDOW指数の値動きと日経平均株価の値動きの連動性を元にした、システムトレードを運用しています。
もちろん、この記事で算出した 陰陽パターン をそのまま使ったものではありませんが・・・・。
妄想トレードのたびにお話をしていますが、この投資手法で実トレードを絶対に行わないでください。
過去の結果を集計して、都合の良い投資戦略(今回の場合は、売りと買い)を設定していますから、利益が出て当然なんです。
パターン判定に ”中立” を追加
この記事[10章]の冒頭でも、”中立” 判定の必要性書きました。
10章の前半を振り返ります。
====振り返りここから====
日経平均株価に影響を与えてると考える、ニューヨーク証券取引所の「DOW指数」や「為替」の値動き。
このローソク足(陽線・陰線)のパターンを組み合わせて、翌日の日経平均株価の値動きを予想(予報)出来るのでは?
この思いでここまで分析を進めてきました。
このパターン分析で最も重要なのが、ローソク足が 陽線(始め値よりも終値が高い) か 陰線(始め値よりも終値が低い)です。
この2つのローソク足は陽線と判断。
この2つのローソク足は陰線と判断。
同じカテゴリーと考えるには無理があるかも・・・・。
天気予報だって、「はれ」「あめ」の他に「くもり」だってある。
陽線 か 陰線 または 中立 こんな考えがあった方が良いのでは?
そうですよね。
あなたもそう思いますよね?
きっとそうに違いない。
勝手に決めつけてしまいました。
では、中立を定義しなければなりません。
1日の値幅のうち、何円以内ならば中立?
何パーセント以内ならば中立?
==中略==
さてと、本題の、陽線 陰線 中立 の線引はどうしましょうか。
データー数が、3等分になる数値を選ぶか?
左側のローソク足(左側)のように、十字線のように始値と終値が極端に近いものだけを、 中立 と考えるか?
色々悩みましたが、これは正解の無い問題です。
とりあえず、値幅 0.5% 以内の値動き(始値・終値)ならば、 中立 と考えることにします!
====振り返りここまで====
繰り返しますが、正解はありません。
まず、値幅 0.5% 以内の値動き(始値・終値)ならば、 中立 と考える事にします。(上下それぞれ0.5%なので、計1%が中立)
エクセルに、 中立 を判断させる関数を入力しましょう。
値幅を 0.5% に設定する事にしましたが、後から簡単に変更出来るように、AI9セルにパラメーターを入力出来るようにしました。
0.5% は 0.0005 を入力します。
N列の終値に、0.0005を掛けて、中立の範囲を算出しています。
そして、中立の場合は 数値0(ゼロ)と表示させる事にしました。
上の例ではAH13セルに前々日の 陰陽中立 を判定させる下の関数を入力しました。
=IF($P11>($N11*$AI$9),10,IF($P11<($N11*$AI$9*-1),-10,0))
次に、前日の値動きを判定する関数をAI13セルに入力します。
=IF($P12>($N12*$AI$9),50,IF($P12<($N12*$AI$9*-1),-50,0))
同様に当日の値動きを判定する関数をAJ13セルに入力します。
=IF($P13>($N13*$AI$9),100,IF($P13<($N13*$AI$9*-1),-100,0))
AH03、AI13、AJ13に入力した関数をコピーしてデーターの最終行まで貼り付けます。
同じ手順で、為替の 、陽線 陰線 を判定させる関数を置き換えて 、陽線 陰線 中立 を判定させます。
関数を置き換えると、散布図も自動的に更新されるのが、エクセルの便利なところです。
上の散布図は中立の値幅0.5%(上下で1%)を中立と判定させたものです。
中立判定させる値幅のパラメーターを変更して見ましょう。
中立と判定させる値幅を0.25%(上下で0.5%)に変更した際の散布図はこちら。
ここまで来て、また間違いに気付きました。
陰陽パターンに重みを付けて、数値化しています。
このため、異なった陰陽パターンに同じ数値が割り振られていました。
◇例
パターン 陰陰中 の場合 : (-10) + (-50) + (0)
パターン 陰陽陰 の場合 : (-10) + (50) + (-100)
2つのパターン共 -60
重み付けの基準を変えます。
新しく振り直した数値で散布図を見てみましょう。
中立と判定させる値幅を0.25%(上下で0.5%)際の散布図はこちら。
やはり相関があるとは言いにくい散布図ですね。
また妄想トレードで気分転換しましょう!
各陰陽パターンで投資戦略を立ててトレードしていたら・・・・
日経平均株価と、日経平均先物の価格が同一だと仮定します。
それぞれの陰陽パターンが出現したときに、翌実の日経平均を寄り付きで買い(戦略によっては売り)、引けで決済。
先物ラージを想定すると、¥29,438,220 の利益。
先物miniを想定すると、 ¥2,943,822 の利益。
※手数料、税金は考慮していません。
※データー算出期間: 2009年8月5日~2019年8月10日
陰陽パターンに 中立 を加えたら、妄想トレードの成績も良くなりました。
「なるほど! 明日からこの投資戦略でトレードするぞ!」
このように思ったあなた。
チョット待ってください!!
パターンの条件を細分化して、必ず利益が出る方向に売買条件を設定しているのですから、利益が増えて当然なんです。
妄想トレードのたびにお話をしていますが、この投資手法で実トレードを絶対に行わないでください。
この[第10章]では、少しだけ統計的な分析をあえて 相関係数 などの数値を使わずに見てきました。
次の章では、トレードステーションを使って、より視覚的な分析を進めたいと思います。
[第11章]トレードステーションで相関分析
「相関だとか散布図だとか、もう飽きたよ!」
そんな声が聞こえてきそうですね。
でも、まだ株価予報に使えそうなデーターが見つかっていないので、もう少し辛抱してください。
10章では、マネックス証券のトレードステーションを使って分析を進めます。
チャートが表示されて、株価分析をしてる感はありますので、お付き合いください。
ここからの分析は、マネックス証券さんが提供しているツールを使います。
銘柄分析に役立つワークスペース
マネックス証券のトレードステーションサイトに、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指数・為替の終値の相関関係です。
単純に終値だけを使って、株価予報を作成するのは難しそうですね。
次の章以降では、株価パターンを使った株価予報作りに戻りたいと思います。
[第12章]有効な株価パターンをトレードステーションで見つける
思い出しましょう。
「日本の株価に影響を与える要素はなにか?」
ここから株価予報の開発がスタートしました。
そして手始めに、「日経平均株価の値動き、前日のDOW指数の上下、為替(USD・JPY)の上下」この関係性を見ることにしました。
それそれ3日間のローソク足が、陰線なのか陽線なのかを計算し、3日間陽線が続けばパターンを「陽陽陽」、逆に陰線が続けば「陰陰陰」としました。
「このパターンの組み合わせで、翌実の日経平均株価の値動きが予測出来出来るはず」と仮説を立てましたが、今のところ良い結果が出ていません。
下のローソク足は、両方とも「陰陽陰」ですが、同じ値動きとは言いにくいですね。
終値の値動きを新しいパターンとして取り入れてはどうでしょうか?
例えば、過去三日間の終値が「上がって下がるパターン」、「連続で上がるパターン」。
この12章では、マネックス証券のトレードツールトレードステーションを主に使って、パターン分析を進めます。
終値の値動きパターンを定義する
まずは、終値の値動きパターンを定義しましょう。
過去3日間の終値が、前日の終値よりも上だったのか、下だったのかを判断します。
パターンは全部で4パターン。
3日前の終値から2日前の終値 | 2日前の終値から1日前の終値 | 終値パターンポイント | ||||
上 | 上 | 700 | ||||
下 | 上 | 600 | ||||
上 | 下 | 500 | ||||
下 | 下 | 400 |
終値パターンポイントとは、上のパターンをトレードステーションで判断しやすいように、数値化したものです。
なぜ700とか400とか中途半端な数値なのかは、後ほど解説します。
トレードステーションのチャートに適応する
定義したパターン判別を、トレードステーション専用プログラム言語、Easy Languageで書きます。
「プログラムなんて嫌い!」って方はこの章を読み飛ばして頂いても、理解出来るように記事を作成しますので、ご安心ください。
プログラムコード ここから====
//終値の上下パターン
variables:
NKzen1close(0),NKzen2close(0),NKzen3close(0),
NKClosepattern(0);
inputs:
tradepattern( 700 );
NKzen1close = close[1] of data1;
NKzen2close = close[2] of data1;
NKzen3close = close[3] of data1;
IF NKzen3close < NKzen2close then begin
IF NKzen2close < NKzen1close then NKClosepattern = 700;
IF NKzen2close > NKzen1close then NKClosepattern = 500;
end;
IF NKzen3close > NKzen2close then begin
IF NKzen2close < NKzen1close then NKClosepattern = 600;
IF NKzen2close > NKzen1close then NKClosepattern = 400;
end;
Plot1( NKClosepattern, !( “Closepattern” ) ) ;
Plot2( 550, !( “ZeroLine” ) ) ;
プログラムコード ここまで====
プログラムコードの解説
○ variables:
変数を定義します。
NKzen1close(0),: 日経平均株価1日前の終値
NKzen2close(0),: 日経平均株価2日前の終値
NKzen3close(0),: 日経平均株価3日前の終値
NKClosepattern(0); :終値パターンポイント
○ NKzen1close = close[1] of data1;
close[1] of data1 : 日経平均株価の終値を、変数 NKzen1close に格納。
○ IF NKzen3close < NKzen2close then begin
もし NKzen3close(日経平均株価3日前の終値)よりも NKzen2close(日経平均株価2日前の終値)よりも大きければ、begin以降のプログラムコードを実行。
IF NKzen2close < NKzen1close then NKClosepattern = 700;
IF NKzen2close > NKzen1close then NKClosepattern = 500;
end;
○ IF NKzen3close > NKzen2close then begin
もし NKzen3close(日経平均株価3日前の終値)よりも NKzen2close(日経平均株価2日前の終値)よりも小さければ、begin以降のプログラムコードを実行。
IF NKzen2close < NKzen1close then NKClosepattern = 600;
IF NKzen2close > NKzen1close then NKClosepattern = 400;
end;
○ Plot1( NKClosepattern, !( “Closepattern” ) ) ;
終値パターンポイントをチャートに描画
○ Plot2( 550, !( “ZeroLine” ) ) ;
終値パターンポイントの中央ラインをチャートに描画
トレードステーションのチャートに適応する
トレードステーションのチャートに日経平均株価を表示させてください。
チャート上でマウスを右クリック 分析テクニックを挿入 を選びます。
作成したプログラム(インジケーター)を選んでください。
チャート下部にインジケーターが表示されました。
表示されている値は、 終値パターンポイント の値です。
トレードステーションで妄想トレード
これまでの分析では、エクセルで良い結果が出そうなパターンを抽出して、おまけで妄想トレードをしていました。
※妄想トレードとは、「仮にこの投資戦略でトレードしていたら・・・」と、妄想を膨らませてムフフと思うだけの行為です。
今回の分析はトレードステーションを使用しているので、いきなり妄想トレードをやってみましょう。
先ほど作ったプログラムを、システムトレード用プログラムに書き換えます。
書き換えると言っても、23行目と25行目を書き加えて、ストラテジーとして保存しなおすだけです。
Easy Languageエディタのファイル-新規作成-ストラテジ と進みます。
任意のファイル名を付けて保存。
下のプログラムコードを、打ち込むか複写して改めて保存してください。
追加したプログラムコードの解説
○ IF tradepattern = NKClosepattern then buy next bar at market;
もし、トレードパターンとして指定した数値と 終値パターンポイント が同じなら、次のローソク足の始まりで成り行き買い。
○ Sell this bar on close;
買ったローソク足の終値で決済売り
※この Sell this bar on close はバックテストのみで使用する事。 現実のトレードでは次の足の始値で発注されるので注意。
チャートに妄想トレード(投資戦略を)適応
チャート上で右クリック。
メニューからストラテジを挿入を選択して、チャートに適応させます。
適応後のチャートはこちら。
小さくて見にくいので、赤丸部分を拡大しました。
ローソク足の始値で買って終値で売っている事がチャートに表示されています。
この妄想トレード戦略でどの態度儲かっているのか?損しているのか知りたいですよね。
終値パターンは全部で4パターンでした。
3日前の終値から2日前の終値 | 2日前の終値から1日前の終値 | 終値パターンポイント | ||||
上 | 上 | 700 | ||||
下 | 上 | 600 | ||||
上 | 下 | 500 | ||||
下 | 下 | 400 |
パターン毎に見てゆきましょう。
ストラテジーパフォーマンスレポートを表示させます。
メニューバーの 表示 - ストラテジーパフォーマンスレポート を選択してください。
下のウインドウが現れたら、 パフォーマンスグラフ タブをクリックして収益曲線を表示させましょう。
おやおや、水平ラインが損益ゼロなので、大きくマイナスしていることが一目で分かります。
ちなみに上の収益曲線は終値パターンポイント400のパターンです。
他の終値パターンでの収益曲線も見てみましょう。
チャート上で右クリック - ストラテジの設定 を選びます。
ストラテジを選択されているのを確認して 設定 ボタンを押します。
この部分の数値を変更すれば、終値パターンを変えることが出来ます。
○パターン1収益曲線
3日前の終値から2日前の終値 | 2日前の終値から1日前の終値 | 終値パターンポイント | ||||
上 | 上 | 700 |
キレイに右肩下がりですね。
ここまでキレイに下がっていると、戦略の売り買いを逆にして利益が出る可能性があります。
○パターン2収益曲線
3日前の終値から2日前の終値 | 2日前の終値から1日前の終値 | 終値パターンポイント | ||||
下 | 上 | 600 |
とりあえず黒字キープですが・・・
○パターン3収益曲線
3日前の終値から2日前の終値 | 2日前の終値から1日前の終値 | 終値パターンポイント | ||||
上 | 下 | 500 |
右肩上がりと言えなくも無いですが、とてもこのままでは投資戦略としては使えませんね。
○パターン3収益曲線
3日前の終値から2日前の終値 | 2日前の終値から1日前の終値 | 終値パターンポイント | ||||
下 | 下 | 400 |
一番最初に見た収益曲線とおなじものです。
パターン1とパターン3の収益曲線は大きくマイナスしているので、買い戦略から売り戦略に変えてみます。
○パターン1収益曲線
3日前の終値から2日前の終値 | 2日前の終値から1日前の終値 | 終値パターンポイント | ||||
上 | 上 | 700 |
○パターン3収益曲線
3日前の終値から2日前の終値 | 2日前の終値から1日前の終値 | 終値パターンポイント | ||||
下 | 下 | 400 |
パターン1から4まで、すべての連略を使ってトレードした場合の、収益曲線はこちら。
いつものように、妄想トレードの仕上げです。
日経平均株価そのものを売買することは出来ませんが、仮に日経225先物が同じ価格だったとします。
日経225先物は、ラージで現物の1000倍、ミニで現物の100倍のレバレッジです。
単純に1000倍、100倍してみました。
○妄想トレード損益
先物ラージ想定(1000倍) | ¥9,355,110 |
先物ミニ想定(100倍) | ¥935,511 |
取引期間:2011年07月20日~2019年09月03日
毎回言っています。
この結果は、あくまでも過去の値動きを分析した結果です。
このままの戦略で実トレードを絶対に行わないでください。
今回の記事はココまでとします。
次回の記事追加まで、少々お待ちください。
この続きは、随時更新予定です。
よい結果が出たことだけで無く、失敗したこともすべて公開します。
成功と失敗を重ねながら、多くの時間を掛けて開発することになります。
作業した順番に順番に見て頂かないと、本来の意図が伝わりにくいと思い、ブログ記事は随時ページの下に順次追記することにしました。
次回更新まで、少々お待ちください。
coming soon
スポンサーリンク
この記事を書いた人
ゆたかドットらいふ編集部
あしおゆたか
投資歴21年の個人投資家
机上の理論ではなく、実体験に基づいた記事作りをモットーにしています。
スポーツクラブに毎週2日~3日通い、サウナ後の暴飲暴食が趣味。
◇主な投資対象
日本株式
株式ETF(上場投資信託)
日経225先物
日経225先物オプション
◇運営者情報はこちら