0から始めるテクニカル分析生活2


このnoteで学ぶこと

今回は楽天RSSの使用方法やそれを使って実際にエクセルでのバックテストのやり方の一例を紹介します。

楽天RSSの使用方法(四本値取得編)

楽天RSSは大きくわけて3つの使い方があります。
1.注文
手作業でできる注文方法はたいていはRSSを使って自動売買が可能です。

2.ザラ場情報取得
ある銘柄の現在の価格や歩み値、板情報など様々な情報が取得できます。この情報を使って発注することが多いと思います。

3.チャート情報
ある銘柄の過去の四本足の価格などが取得できます。
この情報を使って優位性があるのかを調べたりバックテストを行ったりすることができます。

シストレを構築する流れとしては、まずは3のチャート情報を使って、トレードルールを考えます。
トレードルールが決まったら2のザラ場情報を使ってフラグが立つのを監視します。(フラグとはここで買う・ここで売るといったエントリーサインのことです)
そしてフラグが立ったら1の注文RSSを使って注文を入れるという流れになります。

というわけなので、今回は最初に手を付けるべき3のチャート情報の説明をしていきます。


まずはエクセルを開いて楽天RSS2を接続中に変更してください。
楽天RSSの利用はマケスピにログインしている時しかできません。土日などにマケスピがメンテに入ると使えない場合があります。

セルA1に好きな証券コード(画像は9984ソフトバンクにしています)を入れて、セルA2をクリックしてからチャートボタンを押してください。

すると上のようなポップアップウインドウが開きます。
関数指定のところをクリックすると、青丸のところにチャート情報、チャート情報(過去)、単純移動平均線と3つでてきます。

今回はチャート情報(過去)を選んでください。

色々とややこしい設定がでますが、銘柄コードはセル参照に●を付けてください。
下の白枠にA1と入力
足種:日足
開始日:20130101と入力
表示本数:2500
取得項目:日付
表示開始セルにA3と入力

画像のようになれば登録ボタンを押してください。

すると上画像のようになると思います。
一番上の計算式の欄に書かれているのが楽天RSS関数というものになります。
=RssChartPast($A$3,A1,"D",20130101,2500)
という式が入っています。この関数はRssChartPast(A,B,C,D,E)という形になっていて
RsschartPast: 過去のチャートを表示します
項目A 記載例:$A$3 意味:A3セルの項目を表示します
項目B 記載例:A1  意味:A1の証券コードを参照します
項目C 記載例:”D”  意味:日足を表示します(週足ならW、月足ならM)
項目D 記載例:20130101 意味:2013年1月1日から表示します
項目E 記載例:2500 意味:2500行表示します。(項目Dで決めた日付から最大で2500個を表示します)

という意味になります。
2013年1月1日からの表示なのに8/2になってるのはなぜかというと、遡れるのは過去10年なので8/2より以前のデータがないということになります。

オートフィル機能の説明


日付データが取得できたので同様に始値高値安値終値を取得したいところですが、今の作業を繰り返すのは少し面倒なので、エクセルのオートフィル機能を使いたいと思います。

A2のセルの右下をドラッグして右にずらしていくのですが、このままやると少し問題が発生します。

なのでここでエクセルの絶対参照の説明を簡単にしたいと思います。エクセルの絶対参照が理解できている方はさっと流してください。

A2セルに入力した=RssChartPast($A$3,A1,"D",20130101,2500)ですが、A3セルとA1セルの表記が違うことがわかると思います。
A3セルには$マークがついてあります。
これが絶対参照というものになります。


A1セルに「=B2+B3」という数式が入っているとします。
A1セルをオートフィルを使ってC1セルまで横にドラッグした場合、B1セルには「=C2+C3」、C1セルには「=D2+D3」という数式が入り、列であるBが一つずつずれていってくれます。
あるいは縦にA3セルまでドラッグした場合、A2セルは「B3+B4」、A3セルは「B4+B5」と数字がずれるはずです。
このように数式の行や列を自動で変更してくれるのがオートフィル機能なのですが、自動で変更してほしくない時がしばしばでてきます。
その時に絶対参照というものを使います。

先ほどのA1セルの数式を「=$B2+B3」とすると横にドラッグした時は、B1セルには「=$B2+C3」、C1セルには「=$B2+D3」となります。
この$マークは、コピーの時に動かさないでねという印なのです。

アルファベットの前に付ける$マーク、つまり$A1とか$B1とかはアルファベットを固定する意味になります。
数字の前につける$マーク A$1とかB$1とかは数字が固定されます。
$A$1だと、横にオートフィルしても下にオートフィルしてもずっと$A$1がコピーされます。

RSSの解説に戻ります。
A2に記載された「=RssChartPast($A$3,A1,"D",20130101,2500)」をこのままオートフィルで横にドラッグするとA3が固定されてしまい、日付しか表示されません。またA1が絶対参照となっていないので、証券コードの参照がB1、C1と空白セルになってしまいます。
なので、「=RssChartPast(A$3,$A$1,"D",20130101,2500)」
と変えてください。これで証券コードの参照はA1固定となり、項目の参照はB3,C3とずれていってくれます。

式は合ってるのに表示されない?

次にB3からE3までに始値・高値・安値・終値の順に入力してください。(4本値の順番は今後もこのnoteでは始値高値安値終値の順で固定になりますので、できれば合わせておいたほうが混乱が少ないと思います)

入力が終わればA2セルをE2セルまでオートフィルを使ってドラッグしてください。

あれ?表示されない?となると思います。
実は日付が20130101となっていることに問題があるのです。

下の方の行を見ればちゃんとありました

少し行を下にしてやると表示されていると思います。
最大10年なので2013/10/23以前は表示されなかったのですね。(このnoteの作成日が2023/10/25なのです)

というわけで、先ほど入力した20130101のところを20131024(10年前)に変えてから再度ドラッグします。

値が取得できる日付に変更します

これでうまくいきました。

EXCELバックテストの作り方

先ほど作った9984ソフトバンクの10年間の日足データを使って、実際にバックテストを行っていきましょう。

今回は作成の一例として、手法1として前日終値が5日線より上で買う。手法2として5日線が25日線より上の時に買う、手法3として5日線が25日線より上かつ前日終値が5日線より上の時に買う。という3つのパターンでの収支がどうなるのかをやってみたいと思います。

2020年10月1日東証サーバーダウン回避


ここで必須のテクニックを紹介します。

また同じ項目をつくる!?

さきほど作った4本値の横に、同じように始値から終値までの項目を作ってください。
けれどA2からE2に記載しているRSSのドラッグは不要なので、F1からi1は空白のままにしてください。
そして、F4に次の式を入れて、右と下にドラッグ。
「=if(B4=""、$I3,B4」


if関数は少しややこしいです

IF関数の説明


IF関数の登場です。
IF関数はエクセルでバックテスト検証をするのに必須の関数です。必ずマスターしていただきます。
上の式は 「=if(B4=""、$I3,B4」と入力してありますが、これは

「もしB4が空白だったなら、i3を表示する。そうでないならB4を表示する」

という意味になります。空白はダブルクオーテーションで括ります。ダブルクオーテーションとは「”」のことです。キーボード数字の2のところにあります

if文の式は=if(A=B,C,D) という形が基本になります。
「AはBである、それが真ならCを参照、それが偽ならDを参照」という意味になります。真、偽という言葉はエクセルやプログラミングではよく出てきます。関数として使用する場合はtrue,falseと英語に置き換えます。
A=Bの式が成り立つなら真(true)、成り立たないなら偽(false)になります。
A=Bの等式はA>Bなどの不等式でも構いません

さて、なぜこのような式を使ってわざわざ同じ四本値の列を作ったのは以下の理由があります。
まったく出来高がなかった時は値がつかないので空白で表示されるのです。
空白で表示されてしまうとこのあと作る予定の収支の項目に影響がでるので、空白を回避する仕組みを作っておきたかったのです。

出来高のないような株は検証しないという人もいるかもしれません。しかしあ2020年10月1日に起きた東証サーバーダウンの日はすべての銘柄が空白になっていますのでやはりこういった処理が必要になってきます。

2020/10/1は空白になっている




さきほどつくった4本値の横に陰陽収支と、前日比、陰陽%、前日%と入力します。



陰陽収支というのは終値から始値を引いたものです。
つまり、寄りで買って引けで売った時の収支になります。
前日比というのは寄りで買って翌日寄りで売った時の収支になります。
%がついているはそれらを%表記したものになります。
例えば3000円で始まって3300円で終えた時は、+300,+10%という感じです。

さっそく入力していきます。
F4セルには「=i4-F4」、G4セルには「=F5-F4」と入力
H4セルには「=i4/F4-1」,F4セルは「F5/F4-1」と入力

BからEの列はあまり使うことがありません。間違えて参照してしまうことも多いので少し小さめにしておいてもいいと思います。

こんな感じになったと思います。L列M列は%表記にしたいので赤丸のところでパーセンテージを選択、青丸のところで好きな桁数にしてください。(桁数は表示の問題だけで実際には小数点以下があります)


最後にオートフィルですべての行にコピーします。
次は移動平均線の作成ですが、ここは非常に注意すべき点があります。

ここから先は

6,705字 / 18画像

¥ 500

この記事が気に入ったらチップで応援してみませんか?