本連載では、このルール構築のプロセスにプログラミングを取り入れる方法を紹介していきます。プログラミングをルール作りに利用することにより作業時間を効率的に使え、より正確な検証ができます。またアイディア次第では取引時の有効なツールとなり、あなたのもっとも頼れる投資のパートナーになることでしょう。

前回は、簡単なシグナル条件を指定したチャート上にシグナル表示や色付けをするプログラムをご紹介しました。今回は売買シミュレーションを前提にしたテクニカル指標を利用したプログラムをご覧いただきます。

なお、下記で取り上げるプログラムは、「トレードシグナル」だけでなく「トレードシグナルLite」でもご利用いただけます。ソースをコピーしてどうぞご活用ください。

次の表は「ストキャスティクス」をシグナル条件に使用した売買シミュレーション結果です。売買条件は下記の通りで、「ストキャスティクス」のスロー%Dの数値を利用しています。

・ポンド/円(5分足)

・買い スロー%Dが10以下の陽線

・売り スロー%Dが90以上の陰線

・反対シグナル時のドテンあり

・利益確定 20pips(20銭)

・損切り 20pips(20銭)

ポンド / 円 売買シミュレーション結果

期間 評価損益(円) 取引回数 利益率
1月 2009 -0.6 74 50.00%
2月 2009 3.92 76 64.47%
3月 2009 -3.8 73 39.73%
4月 2009 1.42 66 54.55%
5月 2009 5.15 62 72.58%
6月 2009 1.58 74 56.76%
7月 2009 4 67 65.67%
8月 2009 0.64 52 53.85%
9月 2009 1.47 33 63.64%
10月 2009 1.25 72 55.56%
11月 2009 -1.17 70 47.14%
12月 2009 0.81 62 54.84%
1月 2010 0.93 44 52.27%
2月 2010 0.73 48 54.17%
3月 2010 1.1 76 53.95%
4月 2010 0.64 79 53.16%
5月 2010 -1.63 72 48.61%

スプレッドなどを考慮するとこのままでの運用は難しい状態ですが、勝率などを見ると筋の良いルールではないでしょうか。

ストキャスティクスを利用したチャート表示プログラム

まず売買プログラムを構築する前に、新規シグナルを表示するプログラムを作成します。

「ストキャスティクス」を計算する関数を使い、簡単な条件を指定してシグナルを表示するチャートを作成します。

シグナル表示条件

・「↑」:買い スロー%Dが10以下の陽線

・「↓」:売り スロー%Dが90以上の陰線

シグナル条件が一致するまではチャート上には何も表示されず、シグナル条件のチェックを通過すれば「↓」または「↑」のテキストが表示されます。≪シグナルの特徴が視覚的に確認できます≫

GBP/JPY 5分足

Meta:
  Subchart(False);
Variables:
   fast_k,slow_k,slow_d; //ストキャス値代入用

//【基本】 処理
//ストキャス計算(値を代入)
StochasticNormal(H,L,C,5,3,3,fast_k,slow_k,slow_d);

//【シグナルチェック】 処理     
NoPlot( "買いシグナル" );NoPlot( "売りシグナル" );
//買いシグナル
If slow_d <= 10 and O < C Then Begin                           //買い条件チェック
  DrawText[0](L-0.1"買いシグナル","↑"20, Red,Bold); //ローソク足下に「↑」表示
End;
//売りシグナル
If slow_d >= 90 and O > C Then Begin                          //売り条件チェック
  DrawText[0](H+0.1,"売りシグナル","↓",20,Blue,Bold); //ローソク足上に「↓」表示
End;

【関数の詳細】

「Subchart 」:プログラムのシグナルを表示する場所を設定 (False) → メインチャート上(「True」=サブチャート上)

「Variables 」:変数を定義します

「StochasticNormal」:ストキャスティックを計算 「fastk」=「ファスト%K」・「slowk」=「スロー%K」・「slow_d」=「スロー%D」を代入

「DrawTex」:チャート上に文字列を書き込む DrawTex (表示する位置・価格,名前,表示内容,文字の大きさ,文字の装飾指定) 例:DrawText(H+0.1,"売りシグナル","↓",20,Blue,Bold); L-0.1 → 安値-0.1(安値から0.1円低い位置) 買いシグナル → 名前 ↑ → 「↑」のテキストをチャート上に表示 20 → 文字の大きさ 20ポイント Red → 文字色「赤」 Bold → テキストを太字で表示

「O」:始値 「H」:高値 「L」:安値 「C」:終値

「If」:真偽判断を行い、条件分岐を行う If O < C Then 処理A; → 「始値(O)<終値(C)」(陽線)なら「処理A」を実行


ご紹介したような形で新規シグナル条件ができれば、売買シミュレーションを行うプログラム構築は難しくはありません。

次回は実際に売買シミュレーションができるプログラムをご紹介します。