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

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

前回お届けした<知識編>では、時間的概念に重きをおいている日本を代表するトレンド系テクニカル指標「一目均衡表」をご紹介いたしました。同指標は、5つのラインで構成されており、それが意図するもの全てを読み解くには奥が深く、それ相応の時間と労力をかけなければなりません。したがって、今回ご紹介する売買ルールの構築におきましても、一部の基礎的な解釈として受け取っていただければと思います。

■プログラミング内容

[ラインの構築]

前回のおさらいです。一目均衡表は、転換線、基準線、遅行スパン、2本の先行スパンの計5つのラインで構成されています。

転換線 =(直近9日間の最高値 + 直近9日間の最安値)÷ 2
基準線 =(直近26日間の最高値 + 直近26日間の最安値)÷ 2
先行スパンA =(転換線 + 基準線)÷ 2 を 26日間先行させたもの
先行スパンB =(直近52日間の最高値 + 直近52日間の最安値)÷ 2
を 26日間先行させたもの
遅行スパン = 当日の終値 を 26日間遅らせたもの

[売買ルールの構築]

2つの先行スパンの間に形成されるスペースを"雲"と呼びます。価格がこの"雲"の上にあるときは上昇トレンド、下にあるときは下降トレンドと判断されます。これを売買ルールとして用いて作製していきます。

買いシグナル … 現在終値が "雲" (先行スパンAとB)を上抜けたときに買い
売りシグナル … 現在終値が "雲" (先行スパンAとB)を下抜けたときに売り

■サンプル・プログラム

{① プログラムの概要}
Meta:   Synopsis( " 2本の異なる期間の移動平均線からトレンドを判断し、それに追随する手法として、
        「ゴールデンクロス」「デッドクロス」と呼ばれるポイントで売買を実行する。" );

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


{③ 移動平均線 計算式}

//トレードシグナルの専門言語エキーラには、頻繁に使用されるプログラムが、
//予め関数として定義されており、必要に応じて呼び出すことができるのでとても便利です。
//計算式を展開して書くことはせずに、容易にプログラムを書くことができます。

//今回使用の関数は、[SummationFC(直近足の価格の総和を算出する関数)]です。

 fast = SummationFC(close, 5)/ 5;   // 5日単純移動平均線(短期線)
 slow = SummationFC(close,38)/38; //38日単純移動平均線(長期線)

//短期線が長期線を下から上へクロスしたとき、次のバーで"買い"
//1 Contractsとは、取引枚数を指定しています。(下記の場合、1枚)
 If fast Crosses Over slow Then
  Buy  ("買") 1 Contracts  Next Bar at Market;

//短期線が長期線を上から下へクロスしたとき、次のバーで"売り"
 If fast Crosses Under slow Then
  Short("売") 1 Contracts  Next Bar at Market;


{④移動平均線 ライン表示プログラム}
//DrawLineは、ラインを描くための関数です。StyleSolidは、"直線"と指定しています。
//ライン関数(出力する値(変数名),線の名称,線の形,線の幅,線の色)
 DrawLine( fast, "短期線",StyleSolid,2,Darkblue);
 DrawLine( slow, "長期線",StyleSolid,2,DarkMagenta );

{以上でプログラム作成終了です。説明文を省けば、たった9行で作成出来てしまいますね。}


//****≪ちょっと応用≫****
//* 今回はSummationFC関数を使用して、" n日間の総和 ÷ n日 " という計算式を作成しました。
//* しかし、エキーラではもっと簡単に単純移動平均線を表す関数があります。 ⇒ 【AverageFC】関数
//* SummationFC(price,period)/period = AverageFC(price,period)
※ここで記載のプログラムは過去データによる検証用として書かれています。実際の自動売買用プログラムとしては、口座やツールの仕様上、このままではお使いいただけません。
※さらに詳しいプログラミング言語「エキーラ」の解説ガイドは、こちら

■検証プログラム適用後

一目均衡表を適用させた日経平均チャート(日足データ)


参考URL

『トレードシグナル』

― 第8回 一目均衡表 編 おわり―