本連載は、まだ取引を開始して間もない方や、現在勉強中という方を対象に、毎回ある1つのテクニカル指標をピックアップし、知識編・実践編の2回に分けてご紹介しています。実践編では、知識編でご紹介したテクニカル指標を売買ルールとして用いて、システムトレードのプログラミングに挑戦します。

なお、本連載内で使用されるプログラミングのプラットホームには、ひまわり証券が提供しているシステムトレード用チャートツール「トレードシグナル」を使用します。

前回お届けした<知識編>では、価格変動の強さを統計学に基づいて判断するテクニカル指標、「ボリンジャーバンド」をご紹介しました。同指標は、単純移動平均とそこから乖離する2本のラインで構成される標準偏差バンドにより価格変動の強さを視覚化しています。ボラティリティの高い相場局面ではバンド幅が拡大し、逆に保ち合い相場ではバンド幅は狭くなるのが特徴です。

■プログラミング内容

[ラインの構築]

今回の実践編で作製する「ボリンジャーバンド」指標は、下記4つの項目により、ラインを作製していきます。しかし、トレードシグナルの専用言語エキーラには、必要に応じて呼び出すことの出来る関数が予め定義されていますので、今回はその内の一つ、【BollingerBands】関数を使ってプログラムを作成していきます。

<1>
単純移動平均(n日) = 当日を含む直近n日間の終値の総和 ÷ n日間
(※一般的には終値を使用しますが、高値・安値・終値から算出する方法もあります。)
<2>
sumSqr = ( n日間の各終値 - 単純移動平均 )^2 の n日間の累計
<3>
1標準偏差(1σ) = √ ( sumSqr ÷ n日間 )
2標準偏差(2σ) = √ ( sumSqr ÷ n日間 ) × 2
<4>
ボリンジャーバンドのアッパーバンド = 単純移動平均 + 標準偏差
ボリンジャーバンドのローアーバンド = 単純移動平均 - 標準偏差

[売買ルールの構築]

ボリンジャーバンドの売買手法の一つとして、逆張り手法をご紹介します。標準偏差の考え方である、平均値±2σにおいては約95%のデータが集約されるという前提から、バンドの外に価格が抜けてきたとき、価格がそれ以上の範囲外で動くことは5%ほどの確率でしかないという仮定に基づいて売買を行います。また、今回は簡単な損切りプログラムを記載しています。

■サンプル・プログラム

{① プログラムの概要}
Meta:   Synopsis("
    以下、ボリンジャーバンドを用いた過去データによる検証用プログラムです。
    ■終値がローアーバンドを下抜いたとき、1枚買い注文を出す
    ■終値がアッパーバンドを上抜いたとき、1枚売り注文を出す
    ■新規注文から損失額が500円を超えたときに損切り注文
    ■単純移動平均とボリンジャーバンドライン描画する";

{② プログラム内で使用される変数の定義}
Variables: avg, upperBand, lowerBand;

{③ ボリンジャーバンド作製プログラム}
//* 今回使用の関数は、ボリンジャーバンドを表示するための関数【BollingerBands】です。
//* 変数の数値指定と、任意の変数名の指定で値が算出されます。

BollingerBands(close,20,2,avg,upperBand,lowerBand );
//(終値,日数,標準偏差の値指定,変数名1(移動平均の名称),変数名2(アッパーバンドの名称),変数名3(ローアーバンドの名称))

{④ 売買条件の設定}
//終値がローアーバンドを下抜いたとき、1枚買い新規注文
//終値がアッパーバンドを上抜いたとき、1枚売り新規注文
If Close Crosses Under lowerBand Then
    Buy( "買" ) 1 Contracts  Next Bar at Market
Else If Close Crosses Over upperBand Then
    Short( "売" ) 1 Contracts  Next Bar at Market;

{⑤ 損切り注文の設定}
//ロットサイズが1倍とき、損失が500円を超えたら損切り注文
SetStopLoss( 500 );

{⑥ 各ラインを描画するプログラム}
DrawLine( avg, "Mid Line", StyleDot );//単純移動平均線
DrawArea( upperBand, lowerBand, "Upper Band", "Lower Band" );//ボリンジャーバンド
※ここで記載のプログラムは過去データによる検証用として書かれています。実際の自動売買用プログラムとしては、口座やツールの仕様上、このままではお使いいただけません。
※さらに詳しいプログラミング言語「エキーラ」の解説ガイドは、こちら

■検証プログラム適用後

ボリンジャーバンドを適用させた日経平均チャート(日足データ)


参考URL

・『トレードシグナル』

― 第10回 ボリンジャーバンド 編 おわり―