簡易型ボリンジャーバンドバックテスティングボリンジャーバンドを使った投資戦略の検証から好成績の売買ルールを見つけ出す!このビデオの主なポイントとタイムライン(TIME:2:08~4:50)バックテストの誤差について~サンプルシートご利用の注意点(TIME:15:20~24:28)売買ポイント・強制ロスカットの設定や売買履歴の見方(TIME:24:29~30:03)2つのシート「上方マクロ」「上方(簡易)」の特徴と違い(TIME:30:04~~37:10)バックテストで累積損益を見ながら好成績の数値を見つけ出す今回取り上げますエクセルのサンプルシートは、「簡易型ボリンジャーバンドバックテスト」です。ボリンジャーバンドを使ってシステムトレード(一定のルールに沿ったトレード)をした時に、どのぐらい損益が上がるかを検証するためのシートです。売買(エントリーとエグジット)の条件を変更していくことで、過去に収益力が高かった売買ルールを探します。エクセルサンプルシート「「簡易型ボリンジャーバンドバックテスト」」の入手先ボリンジャーバンドで引かれるラインを使い、どこで市場に入り(エントリー)、どこで利食い、または損切り(エグジット)をするのか。ある一定のルールを繰り返していったら、どれだけの収益があがっていたのか。過去に高収益をあげた売買ポイントはどこだったのかは、投資家の気になるところだと思います。そこで、売買ポイントを変更しながら投資収益がどうなるかを、検証していくためのシートが今回のサンプルシートです。バックテストの誤差について~サンプルシートご利用の注意点(TIME:2:08~4:50)このシートは、最終的にはご自身で活用していただくものですから、あまりに精密で複雑なものをお出しするのは適切ではないと考え、「簡易型」となっています。一方で、簡易型なので、できることには限界があることもご承知おきいただき、改良すべきポイントがあれば、ご自身の判断で改良を加えていただければと思います。現実にバックテストをする際には、このシートには、少し誤差があります。具体的には、たとえば、同じ日付の中にエントリーポイントとエグジットポイントが同時に存在する場合です。朝に買って、その日のうちに利食ってしまうようなケースには対応していません。複数のエグジットポイント(利食い、損切り、強制ロスカットなど)が同じ日に存在する場合、利食いが先なのか、損切りが先なのか、わからずにエラーが出ます。実際にはそういった場合、調節が必要になります。細かく検証する場合には、うまく機能しない部分に関して、日中の値動きのデータを持ってきて検証するといったことが必要になります。いう細かな部分はありますが、どういう風にストラテジー(投資戦略)の検証をしていくか、という大きな流れに関しては、このサンプルシートを利用する中でご理解いただけるのではないかと思います。このシートの限界を把握した上で、ご自身の投資にご活用いただければ幸です。今回使用するボリンジャーバンドの投資戦略~順張りと逆張り(TIME:4:51)今回のサンプルシートでは、ボリンジャーバンドを使った投資戦略を利用します。ビデオでは、以前使用した「チャート描画サンプルシート」から、ボリンジャーバンドのチャートを表示しています。ボリンジャーバンドでは、一般的に25日間の移動平均を中心として値動きが上下に乖離しています。乖離が大きくなれば、もう一度移動平均線に収束していく、こういった値動きを繰り返すのではないかという、仮定があります。ビデオの中で表示された2011年5月付近の期間では、ろうそく足が移動平均線の下にある期間がしばらく続きましたが、やがて上に抜けて、ある程度上昇しました。そこで、+1σまで上昇したポイントで買い、+2σのポイントに到達した段階で利食いをしてみます。同じうなケースで売買を繰り返したときに、一定期間内の累積の利益がどうなるでしょうか。投資家にとって気になるところです。このトレードパターンの結果は、必ずしも利益とは限りません。2011年7月頃、価格が1σを上抜けますが、2σに到達せずに下落しました。利食いはできませんでした。この場合、ストップロス(損切りの設定)をつけておかないと、取引が成立しません。「25日移動平均まで落ちてきたらロスカットをする」といったルールも決めておきます。何σかのポイントを下から上に突き抜けたときに、エントリーします。その後、上の方向に利食いのポイント、下に行ったときにの損切りポイントも、何σかで決めます。上記のケースでは移動平均線でロスカットだったので0σで損切り、となります。このような売買は、上昇時に買うわけですから「順張り」と言えます。逆に1σのポイントで売って、2σを損切りポイントとする「逆張り」の投資戦略も考えられます。逆張りならば2σに到達できずに価格が下がったときには、たとえば、「0σの位置で利食い」といったような戦略を取ることができます。通常のボリンジャーバンドでは±1σ、±2σでラインが引かれていますが、バックテストでは、このラインを少しずつずらして(たとえば、+1σで買うのではなく、+1.1σで買ったらどうか)みます。そのルールに従ってある特定の期間内で、淡々と取引を行っていった場合に損益がどうなるかを、エクセルで算出します。今回の簡易シートでは、ボリンジャーバンドの上半分(移動平均線よりも上)を使っています。順張り・逆張り両方のケースに対応するシートを作ってみました。サンプルシートの構成(TIME:10:35)今回のサンプルシート「簡易型ボリンジャーバンドバックテスト」の説明をしていきます。シートは日経先物で作成しており、バックテストを行うシートとしては「上方マクロ」と「上方(簡易)」の2種類があります。それぞれに2つずつチャートを添付しています。チャートの1つ目はろうそく足と、ボリンジャーバンドの上半分の曲線(移動平均線と+σの線)が入っています。2つ目は指定ルールに従って取引をしていった際の損益累計をグラフ化したものです。損益グラフの単位は、左側は株価、右側に売買損益のポイント(金額)を示しています。ビデオ上では、一定のルールに従って売買した結果、最終的に約400円分の利益になった状況が出ています。「上方マクロ」「上方簡易」ともに、この損益グラフが見られます。最後に「FCANDLE」というシートがあります。これは以前のビデオで使用した「チャート描画サンプルシート(先物)」で、岡三RSSで4本値を取得するFcandle関数が入ったシートです。4本値データをコピーしてチャートを表示する(TIME:12:42)最初に「上方(簡易)」のスプレッドシートを使ってみます。原則として色のついているセルについては、数値を入れたり、選択したりできます。現在「データ数」欄に「200」と表示されています。「FCANDLE」シートを見ると、C9セルで本数が200と指定されており、200日間の4本値データを取得しています。Fcandle関数で取得したデータのうち日付部分をコピーして、「上方(簡易)」シートの日付欄に、[形式選択貼り付け]で[値]を貼り付けます。同様に、4本値データも「FCANDLE」シートからコピーして「上方(簡易)」の4本値の欄に値を貼り付けます。ここで「簡易BB」を見てみましょう。ろうそく足のチャートとボリンジャーバンドが表示されています。(なお、ビデオでは2011年頃の日経平均先物のデータを使用しているため、日経平均の価格が現時点では大きく変わっており、チャートが表示されないかもしれません。その場合、軸の書式設定で最大値・最小値を最近の値幅に沿った形で調整すればチャートが表示されます。左側、右側両方の軸で同じ最大値・最小値に設定します)。「簡易BB」のチャートには、25日移動平均線が入っています(黒線)。「順張り」の場合は、価格が下から青線に達したらエントリー。その後、上昇して赤い実線に達したら利食い。利食いポイントに達する前に、赤点線まで下落したら損切りになります。「逆張り」の場合は、青線に達したらショート(売建)。赤の実線到達でロスカット(損切り)になり、赤い点線まで下落すれば利食いとします。バックテストでは、エントリーポイントと、利食い、及び損切りをどのポイントにすれば利益が最大になるかを探します。そのためには「マクロBB損益」や「簡易損益」の累計損益グラフが、いちばん高い位置まで行く投資戦略を探せばいいわけです。その目処となる線の位置を探っていきます。売買ポイント・強制ロスカットの設定や売買履歴の見方(TIME:15:20~24:28)次に「上方マクロ」のシートで解説していきます。「マクロBB」のシートでボリンジャーバンドの水準が見られます。「上方(簡易)」と「簡易BB」のシートも見方は同様です。価格帯を4つのZoneに分割(TIME:15:35)順張りの時にはボリンジャーバンドの青い線到達でエントリー(買建)して、赤い実線まで上昇したら利食い、赤い点線まで下落したら損切り。この3つのポイントの指定が重要です。これを「上方マクロ」シートの左上、水色の部分で指定します。左上に水色のエリアで「σ以上」の数値を入れる場所が3つあります。真ん中(上から2つ目)がエントリーポイントになります。今、仮に、+1.7σでエントリー、利食いを+2.2σ、損切りを同じ0.5σ幅で+1.2σとします。シートの上部にはそれぞれのゾーンが割り振られています。B」(+1.2~+1.7σ)に入ります。A」に突入した時に損切りを実行します。D」に到ったときに、利益確定となります。D=2」と数字に置き換えています。エントリーとエグジットの見方(TIME:18:01)今4本値の高値・安値が、Zoneのどの位置にあるかを示しているのがM列、N列になります。サンプル数が25日なので、最初の24日間は線が引けません。25日目からσの線が引けます。ここで4本値の高値と安値が先ほどのZoneのどこにあるかをM列、N列で示しています。具体的にエントリーするポイントが、右側のところで、エントリーをしたかどうかはP、Q列の「Entry」を見ます。ここに「1」という数値が入ればエントリーを意味します。「持高」の欄の「1」は1枚買い持ちしている意味になります。「2010/11/5」で「Entry」の表示が「1」に変わっています。σ位置の真ん中「1.7σ」の列を見ると9597.5円(H48セル)です。この価格に到達した段階で買い注文を出して、呼び値の次の値段9600円で買っています(Q48セル)。その翌営業日(2010/11/8)でZone位置の高値(M48セル)を見ると、1から2に移っています。D」で+2.2σ以上、9722.5円(I48セル)です。ここに到達したので利食い売りを出します。指値としては9722円の切り捨て部分で9720円(S49セル)となります。エントリー・エグジットポイントは右の方「価格」の列に表示されます。「Entry」「Exit」の列もありますが、上の方(ボリンジャーバンドの赤い実線到達)で「Exit」した時は利益確定で、下(赤い点線到達)は損切りとなります。強制ロスカットとスリッページを設定(TIME:21:20)このシートでは「強制ロスカット」を作っています。最悪のケースは、損切りラインとなる赤い点線が右肩下がりになっている時に、損切りラインに到達せずに、損失がどんどん膨らんでいく場合です。それを防ぐために、このビデオでは、左上の入力欄で「強制LC」を「200」と設定しています。200円下落したら、損切りライン(赤い点線)未到達でも、強制的に損切りとなります。ロスカットを逆指値注文で行った場合には、マーケット価格よりも少し不利な価格で約定することがあります。何ポイント損失が増えるかを考慮して計算させるかを、シートの左上にある「スリッページ」の欄に入力します。日経225miniでは呼び値が5円ずつ動きますが、、日経225先物(ラージ)では呼び値が10円なので、ここでは10と入力しています。手堅く見積もる場合は、ここを「20」に設定してもいいでしょう。シートの左上にある入力欄をまとめると次のとおりです。強制ロスカットを何円にするかスリッページを何円にするか先物種別は▼ボタンから指定サンプル数はボリンジャーバンドを描くときに、中心となる移動平均線のサンプル数を指定なお「累積損益」の欄は、ボリンジャーバンドの何σかを変更することで、変化します。2つのシート「上方マクロ」「上方(簡易)」の特徴と違い(TIME:24:29~30:03)精密な計算が行われるが計算に時間がかかる「上方マクロ」(TIME:24:29)ここで「上方マクロ」と「上方(簡易)」2つのシートの違い、使い方を解説します。ボリンジャーバンドですが、25日移動平均線を中心とした標準偏差が、1標準偏差となりますが、25日移動平均は終値が決まった時点で計算ができるわけです。取引が終了前の立会時間中は、終値が未定なので、現在値で25日移動平均を計算することになります。25で割ったものが25日移動平均ということになって、そこからいくらずつ離れていったかを、出していった結果が、標準偏差の計算基盤になります。σの列(J~K列)には、その計算式が入っていますが、1.2σ(「σ位置」の列)の数字を、このシートではエクセルの「ゴールシーク」という機能を使って、入力しています。σの欄は、左上のσの入力欄の数字と同じになります。下を0.6、真ん中を1.2、上を1.8と入力した場合、「この数字に合致するような、σ位置のポイントを逆算しなさい」というマクロが「σ位置」のセルに入っています。σ位置に適当な数字を入れていき、σの列で指定した0.6σになる数字を探すような機能が、エクセルの「ゴールシーク」です。これによってσのラインは、より正確な数字が算出されます。ゴールシークの計算をさせる指示は「Calc」ボタンをクリックします。左上の入力欄で、σの数字を書き換えて、「Calc」ボタンをクリックすれば、指定したσ位置の実際の値がいくらになるかを、コンピュータが自動計算して、1σ相当になる値を出します。処理に時間がかかることと、いちいち「Calc」ボタンをクリックしなければいけないことです。エントリーポイント、エグジットポイント、ロスカットポイントは、瞬時に表示されません。計算結果がすばやく算出される「上方(簡易)」シート(TIME:28:42)その欠点を補うために「上方(簡易)」シートがあります。「上方(簡易)」の場合、何σというポイントを前日までの移動平均プラス前日における1標準偏差を計算して、ここから単純に指定したラインのσ分(ビデオでは0.8)をかけています。380円(標準偏差)×0.8(指定したライン)+9588.8円(前日までの移動平均)今日の数字は無視して昨日を基準にして作った0.8σ、1.4σ、2σという値を利用していますから、左上のσの数字を入れた途端にすばやく計算結果が出せます。この数値は、近似値であり不正確ですが、すばやく計算結果を出すことができます。バックテストで累積損益を見ながら好成績の数値を見つけ出す(TIME:30:04~~37:10)バックテストを行う手順とコツ~3つの数値をどう決めるか(TIME:30:04)「上方(簡易)」シートを使えば、「累積損益」も瞬時に変わります。そこで、3本のσのラインの組み合わせが最大値になるようにしたいわけです。試しにシートの左上(水色のセル)に適当な数値を入れてみましょう。エントリー(真ん中)を1.6、利食い(上)を2.6、損切りを0.6(下)とします。損益の推移は「簡易損益」を見るとグラフで見られます。途中負けている期間が出てしまいました。チャートを改めて見ると、エントリー後、上の利食いラインが遠すぎて、タッチできずに下落した様子がわかります。この3つの組み合わせの数字をどう決めるかですが、最初のうちは上下同じ間隔にするのがいいと思います。間隔を0.7にしてやります。間隔が同じですから、上から2番目、3番目のセルには-0.7の計算式を入れれば、いちばん上のセルだけ入力すれば、残り2つのセルは自動入力されるので、最終損益をすばやくチェックできます。上のセルだけどんどん変えて、最終損益が大きいところが、いい値ではないかと想定できます。ビデオのケースでは、真ん中が1.1程度にすると、好成績とわかってきました。そこで、今度は真ん中は1.1に固定して、損切りを遠くしたり、利食いを近くしたりと、少し変えてみます。いった試行錯誤を行いながら、累積損益が最大になる位置を探してみましょう。取引履歴と実現損益を見る(TIME:32:40)実際の具体的な取引の様子を見てみましょう。Zone位置の高値(M列)の82行目で0から1に変わったところでエントリ―しています。このポイントが8760円ですが、よく見ると真ん中の線は8724.379円となっており、だいぶ高い位置でエントリーしています。この日のポイントは前日をベースに作っており、寄りつき時点8750円ですから、すでに8724円よりも高くなっています。寄りつき(8750円)が確定してからエントリーしますので、10円高い8760円でエントリーしたわけです。その後翌日にはZone位置が「-1」に到達しており、これで損切りとなりました。損切りの水準は8624.259円となっています。ここに到達して損切りを出すため、実際には8620円で発注となります。先ほどの「スリッページ」を考慮した10円下で、損切り価格は8610円と出ました。損益累計で好成績のポイントを見つけたら「上方マクロ」へ(TIME:34:30)実現損益や評価損益のエリアでは、具体的な取引の履歴が見られます。実現損益では、買った段階で買った金額分のマイナスとなりますが、買い戻しをした段階でその差額が出ます。評価損益の欄は、買った物を終値で転売をした場合の損益が表示されます。それぞれ実現・評価損益を足し込んでいったのが、累計の損益です。そのいちばん下の行の数値と同じものが、左上の累積損益に表示されます。「上方(簡易)」シートで累積損益の投資成績がいい3本の線の値を見つけたら、これを上方マクロに持ってきて、[形式を選択して貼り付け]で値を貼り付けます。これで「Calc」ボタンを押せば、正確な値が表示される、という流れで利用するといいと思います。☆エクセル2007や2003でのグラフ機能を使い株価チャートを作ってみる。「セミナー」テクニカル分析に基づいてトレードをしたときの検証をエクセルを使って行う※どこまで検証できるのかの限界を最初に明確にする。サイト内に掲載されている画面・文言等は一部開発中のものです。変更となる場合がありますのでご了承ください。※当サイト内に記載されている会社名、製品名等は一般に各社の登録商標または商標です。