エクセルを使って株価分析をしたい。

エクセルで株価のクセを見つけてシステムトレード戦略(システムトレード・ストラテジー)を作りたい。

そう思う方は多いと思います。

今回は初心者向けに、株価データをエクセルで分析する方法から、システムトレード戦略作成時にミスしやすいポイントを紹介したいと思います。

この記事は、連載しています。 より深く理解するためには過去の記事を先に読んで頂くことをオススメします。

 

過去の記事はこちら

株式投資初心者必見!2018年 日経平均株価暴落は常識です! トレードステーションとエクセルで分析する。

日経平均株価27年分を分析する。エクセルとトレードステーションを連携して株価分析

株初心者にオススメ。 27年分の日経平均株価を使ってエクセルで投資戦略を練る。

 

前回までのまとめ

◇過去の日経平均株価をエクセルに取り込む

マネックス証券のトレードステーションを使った、
株価データーのエクセルへの取り込み方法を紹介しました。

トレードステーションに限らず、
多くのトレードツールから株価データーは取得出来るはずです。

 

一般的なのがテキストファイル形式でデーターを保存し、エクセルに取り込む方法でしょう。

 

手順1:株価データをテキストファイルで保存します

手順2:エクセルで保存したテキストファイルを開きます

手順3:データを区切る

 

※手順の詳細は下のリンクからどうぞ。

株式投資初心者必見!2018年 日経平均株価暴落は常識です! トレードステーションとエクセルで分析する。

 

 

◇株価変動のクセを見つける

皆さんの知恵を絞って投資アイデアを発掘するところです。

 

私の記事では、

  • 1日の値動きはすべての曜日で上昇よりも、下落の方が多い
  • 上昇と下落の差がもっとも大きいのは月曜日、次に多いのは金曜日

この2つのクセに注目しました。

※詳細はこちらの記事をご覧ください。

日経平均株価27年分を分析する。エクセルとトレードステーションを連携して株価分析

 

○すべての曜日で上昇よりも、下落の方が多い

 

始値で売って、終値で買い戻す。

これで利益が出るのでは?

 

以上が前回までのまとめです。

 

スポンサーリンク

 

◇ひたすら売り戦略

ひたすら売り戦略とは

 

日経平均株価の1日の値動きを分析すると、

すべての曜日で上昇よりも、下落の方が多い

 

なので、

 

「毎日始値で売って、終値で買い戻す」

 

 

こんな単純な戦略ですが、長期的には収益が上がりそうです。

 

○ひたすら売り戦略の収益曲線

投資リターン率 約125%

 

※詳細はこちらの記事をご覧ください。

株初心者にオススメ。 27年分の日経平均株価を使ってエクセルで投資戦略を練る。

 

 

ひたすら売り戦略を改良する

 

もう少し条件を加えてみましょう。

 

仮説1

 

始値がOX日の移動平均線よりも低かった場合だけ、トレードすれば利益が上がるか?

 

 

さぁやってみましょう。

 

株価データが入ったエクセルファイルを開きます

 

私のファイルには A列に日付、C列に始値、D列に高値、E列に安値、F列に終値が入っています。

 

※このファイルは27年分のデーターが入っているので、行を非表示にして2015年以降の株価データーを表示させています。

 

移動平均を計算

エクセルに移動平均の値を計算させましょう。

 

P列に表題「移動平均5日」、Q列に表題「移動平均25日」と入力します。

平均を求める関数は AVERAGE です。

P列に  =av  と 入力しました。

 

すると、エクセルが気を利かせて関数の候補を表示してくれます。

AVERAGE を 選びましょう。

 

5日分の平均を計算するので、過去5日分の終値を選択してエンター。

 

平均値が表示されましたね。

入力したセルの内容(関数)を株価データーの最終行までコピーします。

これで移動平均5日の値が計算できました。

 

同様に移動平均25日の値も計算させましょう。

 

移動平均5日との違いは

AVERAGE(この中に過去25日分の範囲を指定) するだけです。

 

 

「始値が移動平均よりも下の場合トレードする」条件設定

これもエクセルの関数を使います。

条件によって処理を変える関数です。

 

下の例では R列のセルに =IF(C5909<P5909,C5909-F5909,0) と入力しています。

 

=IF(C5909<P5909,C5909-F5909,0) の意味

エクセルの C列には 始値、 P列には 移動平均5日の値、 F列には 終値 が入力されています。

 

=IF( 始値<移動平均5日, 始値ー終値, 0)  このようになります。

 

=IF

最初の = は 「このセルに入力しているのは、関数または計算式ですよ」 と エクセルに教える記号と思ってください。

IF 英語の イフ です。 「もしも」 ですね。

 

もしも ○× だったら ◇◇してね。 それ以外なら △△してね

 

=If ( ○× だったら , ◇◇してね , △△してね )

 

このように書きます。

 

なので、

=IF( 始値<移動平均5日, 始値ー終値, 0)  は

 

もしも 始値が移動平均5日よりも低い場合、 始値から終値を引いてね それ以外なら ゼロ を表示してね

 

このような意味になります。

 

始値から終値を引いてね

条件が合えば、「始値で売り」の戦略なので、始値から終値を引いた値が損益となります。

 

ゼロ を表示してね

条件が合わなければ取引をしないので、損益無しの意味で 数値の ゼロ を表示させます。

 

 

よし。 関数が入力出来たので早速損益を計算しよう!

 

そう思ったあなた。

 

システムトレード戦略を構築する上で、致命的なミスがあります

 

 

さてどこでしょうか?

 

少し考えて見てください。

 

 

 

 

 

 

 

 

 

初心者がミスしやすいポイント

 

「致命的なミス」 おわかりになりましたか?

先ほど関数を入力を入力した画面はこちらです。

 

=IF( 始値<移動平均5日, 始値ー終値, 0)  は

もしも 始値が移動平均5日よりも低い場合、 始値から終値を引いてね それ以外なら ゼロ を表示してね

でした。

 

条件判断をさせる 移動平均5日 の値には何が入っているでしょうか。

 

当日の終値を含んだ 5日間の 平均値 が入っているのです。

 

 

デイトレードをするのですから、

トレード当日の 「朝」 に当日の 「終値」 が分かるはずがありません

 

過去のデーターだから、できた計算なのです。

 

では、どうするか。

 

これは実際のトレードを想像すれば答えは見つかります。

 

デイトレードをする際に見る事が出来る 移動平均の値は 前日まで です。

 

前日までの移動平均の値を使って判断するのですから、関数もこのようにするべきです。

 

 

移動平均の値が入っている P列のみ 1行 上のセルを指定すれば良いのです。

 

 

 

これは単純なミスですが、多くの方が犯しているミスです。

 

「過去のデーターを分析したら、すごく良い投資戦略だったから実トレードで運用したら、結果が散々だった」

 

通常のトレードではあり得ない、未来の値を使って分析していることになりますから、実トレードで結果が出ないのは当たり前です。

 

 

今回は単純な移動平均なので、ミスにも気付きますが、複雑なインジケーターを使う場合には、特に注意してください。

 

個人的な意見ですが、自分が算出方法を理解していないインジケーターを使って、

システムトレードの投資戦略を構築するのは危険だと考えています。

 

 

長くなりましたので、

 

ひたすら売り戦略の改良の結果は次回の記事で紹介します。

 

お疲れ様でした。