プログラムからチャートへ

前回に引き続き、ひまわり証券が提供するシステム開発のプラットフォーム「トレードシグナル」を使い、プログラミングについて学んでいきます。

『システムトレードでプログラミング入門(前編)』でご覧いただいた移動平均線(終値10本)が描かれたチャートを使い、数行のプログラムからオリジナルのチャートを作成します。

次のプログラムは移動平均線と移動平均線±50円の平行線を表示させるものです。

Meta:SubChart(False);
DrawLine(AverageFC(Close,10));
DrawArea(AverageFC(C,10)+50,AverageFC(C,10)-50);

このプログラムを実行すると次のチャートになります。

たった3行のプログラムですがチャートのイメージが大きく変わりました。表示されている他の日でも大きな値動きがない限り、平行線内側での値動きとなります。これだけでも他の指標と併用すれば有効なルールが作れる可能性があります。

次に先ほどご覧いただいた3行のプログラムを管理しやすい形に変更します。

//*******************************************************************
// 移動平均線表示プログラム
//*******************************************************************
Meta:SubChart(False);         //プログラムを表示する場用(ろうそく足上に表示)
//-------------------------------------------------------------------
//移動平均線を表示  【DrawLine】 ラインを描くための関数
DrawLine(AverageFC(C,10));    //ラインの値(終値10本の平均)
//-------------------------------------------------------------------   
//移動平均線の上下に平行線を表示  【DrawArea】 2本のラインを描くための関数
DrawArea(AverageFC(C,10)+50,  //1本目ラインの値(終値10本の平均+50円)
         AverageFC(C,10)-50); //2本目ラインの値(終値10本の平均-50円)

このようにプログラム中に説明文を入れると、プログラムの追加・変更時に迷わずスムーズに作業を進めることができます。

プログラムの進化

システム開発で大切なことは、今までに作ったものに満足せず「もっと良いものができないだろうか」と思う気持ちではないでしょうか。

先ほどのチャートを眺めて気付いたことは、日経225先物は海外市場が大きく動けば寄り付きで大きくギャップをして、その直後の移動平均線が機能しないことです。

そこで寄り付きにギャップの調整をして、移動平均線が寄り付き直後から有効に機能する方法がないかと思い次のチャートができました。

このチャートを表示するためのプログラムは、先ほどの3行のプログラムを基本にギャップを調整する命令文を付け加えて、15行で収まる内容で構築できました。

このチャートが有効に機能してトレードで利益が出るかは分かりませんが、ただ、移動平均線のギャップ調整だけで、なんとなく使えそうなチャートになりました。そして、「次はこのチャートにどのような条件を付け加えるか」を考えることが、より良いシステムを構築するうえで大切な手順だと考えます。

理想のチャート

次に紹介するチャートは、1日の高値・安値を表示するチャートです。このチャートさえあれば、取引のタイミングで迷う心配がありません。

実は上記のチャートは、形状の良いチャートを選び都合よく色付けしただけのチャートです。まだリアルタイムで一日の安値陽線・高値陰線を的確に表示させるパターンは見つかっていません。「このパターンが解明できれば……」ノーベル賞はもらえませんが、それに値するほどの大発見です。

あなた自身もチャートを眺め、「疑問に思う」、「○○○が×××ならば」などと感じた時は、その内容をメモに残しましょう。その後、プログラムをマスターすることで、あなた自身のオリジナルチャートが誕生し、そのオリジナルチャートで有効なトレードができそうなら次は自動売買へとステップアップができます。

今後、皆さんが「システムトレード」を勉強する上で次の優先順位を意識してください。

アイデア・手法>プログラミング技術

プログラミング技術はあくまでアイデア・手法をパソコンが理解できる形にするだけのものです。この作業もひょっとすると数年後には必要なくなるかももしれません(今はプログラミングの技術が無いと、正確で効率的な検証はできません)。

一番肝心なのは取引基準となるアイデア・手法であり、どんなに高い技術があってもアイデアが有効でなければ投資では勝てません。このアイデアを生み出すには、理想の高い取引をイメージし続けることが必要ではないのでしょうか。

「システムトレード」は、投資の世界で生き残るための一手段にすぎません。投資の世界で勝ち続けるには、メンタル面、資金管理など一つ一つのレベルが高く、バランスのとれた環境でなければならないと考えます。

まだプログラムを使っての検証・運用をされていない投資家の皆さんは、技術面・費用面でハードルが低くなったプログラミングの世界に飛び込んでみてはいかがでしょうか。