前回のあらすじ(戦局を定義せよ!)
打ち合わせを兼ねた忘年会の後、師匠(為替和尚)は吉田に
その年最後の宿題を出した。
宿題の内容は「押し目、ドテン、レンジブレイク」の3つのパターン
についてそれぞれ30枚ずつ抜き出し、パーフェクトオーダー
を定義せよだった。
パーフェクトオーダーとは、いわゆる鉄板パターンを指し、まずは4つの戦局をチャートの形として抜き出すことを命じた。吉田は2日間かけてチャートパターンをキャプチャして整理したが、
その先が見えてこない。この作業を通じて強く感じさせたのは、
やはり「ヨコの流れ」をどう定義づけるかだった。
トレンドをどう定義するか? 現在の相場の戦局をどう判断するか?
結局ここに決着を付けなければ、先には進めないことを再認識させられた。
[続きを読む]
前回までのあらすじ(プロに近いトレードルールを求めて)
インジケータをいくら弄り回しても、答えから遠ざかることに気づいた我々は、原点に戻り、為替和尚の考え方に最も近いトレードルールを
練り直した。
エントリーポイントを確認するためのインジケータを、師匠の為替和尚に確認してもらった吉田は、これを元に自動トレードシステムの開発に着手する。MT4の開発環境の効率の悪さ、最終的に自動トレードを運用するシステムの関係上、MT4のEA(自動売買プログラム)ではなく、Visual Studio2005(プロ向け開発ツール)上での開発を決断した。
自動売買のロジックのパフォーマンスを確認するには、検証ソフトを使ってチェックする必要がある。この作業を「バックテスト」といい、過去のデータを使って、利益が出るかどうかを確認する大事な作業である。
自動売買の場合、過去データで結果が出るかを確認するための「バックテスト」と、そのルールで将来も成績が出ることを確認するための「フォワードテスト」がある。
当たり前だが、過去データを使った「バックテスト」で成績の出ないトレードルールは、勝てないルールと判断していい。MT4を使う場合、このバックテストをするためのツールが「ストラテージテスター」である。
今回、吉田はMT4を使わずに開発したので、ストラテージテスターに相当する検証用のプログラムを自作した。この結果が出たのが2010年5月末のことである。
そこで出た数字はただただ、目を疑うばかりであった。
「1時間の節をめぐる攻防」で原点回帰した吉田と師匠(為替和尚)。これまでは作りやすさを優先して、トレードルールもいつの間にか自動で作りやすいルールになっていた。でも、これではダメだ。
「作りやすさを優先して機械に寄ってはならない」
この教訓は、はじめのトレードルールを作り、何ヵ月も結果のでない試行錯誤をして得たものだった。
そもそも「プロトレーダーの考え方を機械に落としこむ」ことを前提として
スタートした自動トレード開発である。
それがいつの間にか自動トレードシステムに適したルール作りにすりかわり、結果はさんさんたるものだった。
師匠は、原点に戻り自分の考え方に近いトレードルールを考案してきた。
これが意味転機となった「トレーディングエッジ」という名前の
トレードルールだった。
吉田は、師匠の考案したトレードルールで、エントリー確認用インジケータ
を作ることを師匠に約束した。
師匠が名古屋で説明したトレードルールは、1時間の節の考え方を中心にしたものだ。1番が点灯するとエントリー準備。2番でエントリーという2段階方式だった。
ひとまず、EA(自動トレードプログラム)を組む前に、エントリーポイントの確認用インジケータを作るのが吉田のシステム開発の流れである。
おそらく、世の中でEAを開発しているプログラマを同様の手段を
取っていると思う。
自動トレードシステムは完成すれば無人運転が前提となるが、まずは動作が
想定通りになっているかをチャート上で確認する必要がある。
自動トレードは、あくまでも確認済みのルーチンワークを機械に代わりに
やってもらうだけで、トレード自体は人間相手の勝負である。
MT4用のインジケータやEAは、MQL4というC言語に似た独自の言語で
開発する。MT4はこの自由に拡張できるスタイルが受け、世界中のトレーダーに愛用されている。実際にインジケータだけを検索しても、
軽く2000以上はある。
もうそろそろGWという4月の終わりに、吉田は師匠に「エントリーポイントを確認するためのインジケータ」ができたことを報告した。
※クリックで拡大できます。
吉田「なんとかインジケータができたので、チャートにいれて見てもらえますか?」
師匠「1番で準備、2番でエントリーやな。ほうほう。」
師匠はチャートをさっと過去にさかのぼってポイントポイント
をチェックした。
師匠「吉田っち。これええわ。完璧やで。ボラのないところは確かに厳しいが、ブレイクアウトもドテンもほぼ完璧にとらえてるやん」
吉田「ドテン専用だと思っていたので、ブレイクアウトが狙えたのが意外でしたよ」
師匠「なんでブレイクアウトもいけた?」
吉田「これは意外だったんですけど、ブレイクアウト前に逆方向の1番準備シグナルが点灯してますね? ブレイクアウト前に、高値もしくは安値を更新してるってことですね」
師匠「なるほどな。とりあえず、これでEA作ってな。頼むで吉田っち!!」
エントリーシグナルが予想以上にいい出来だったため、師匠は
上機嫌で電話を終えた。
チャート上での確認が終わったので、あとはトレードルールを
自動トレードシステムにするだけだ。ここからの問題は開発効率。
これだけ広く受け入れられ、数多くのカスタムインジケータの公開がされているMT4だが、やはり専門の開発環境と比べるとあまりに貧弱。
特にプログラムの誤りや動作確認のための「デバッガー」というツールが
ないのが致命的だった。
もともと吉田はプログラム開発を専門としており、プロが使う開発環境を
愛用していた。マイクロソフト社のVisual Studio2005である。
これを使えばぐっと開発もしやすくなる。
エントリーポイントの確認は、すでにチャートをみて確認済みだったので、
その他の部分をVisual Studioで開発することにした。
2010年当時、吉田も師匠もMT4対応のブローカーをあまり信用していなかった。2013年と比較すると原則海外業者ばかりで、スプレッドも高かった。
なにより、出金にまつわるトラブルなども耳にしていたので、自動を回すなら、国内のノーディール(ECN)の業者に注文を流すことを考えていた。
「豆知識」
ECN取引:電子商取引によるトレードで、基本的に人の手を介さず、すべて機械で処理される方式。ノーディール方式の方法のひとつ。
だから、MT4のEA(自動売買プログラム)を作ったところで結局作り直す
はめになる。それでも、いきなりリアル口座に注文を流すわけにはいかない
ので、まずはバックテストが絶対に必要になる。
そこで、まずMT4のStrategy Testerに相当する検証用のソフトウェアを
作ることにした。データはMT4のものを流用する形になる。
これに売買ロジックをいれて、勝率やプロフィットファクターを計算させる
つもりである。
MT4の開発効率をあげる構想は以前からあり、すでに移動平均やMACDなど
主要なテクニカル指標はVisual Studioのプログラムとして作っていた。
検証用ソフトウェアは1ヶ月ぐらいの開発期間を要した。
そして、2010年5月末、吉田と師匠は驚愕の事実を目撃することになる。
新たな局面を迎えた自動トレード開発。
「パトリオットシステム」、「パトリオットシステムNeo」と2つのシステムを考案、検証してみたものの、期待していたパフォーマンスはまったく出ず、解決の糸口が見えなかった。
そんな時、師匠である為替和尚は、「インジケータをいくら組み合わせても答えは出ない。基本に戻る」ことを宣言。
裁量トレードで重視していたポイントを取り入れることにした。
これまでのルールも裁量でワークすることは確認していたが、自動トレードのルールにしやすいように考えられていたので、中心はあくまでもインジケータ。
「プロトレーダーの考えを機械に落としこむこと」を考えていたのに、
作りやすさを優先して人間が機械に寄っていては本末転倒だった。
師匠の原点回帰宣言は、ある意味必然といえる。
その中で師匠が特に意識すべきものとして持ち出してきたのが、
1時間の四本値だった。
相場の波をすべてとる!
24時間稼働する自動トレードシステムにとって、理想的なコンセプト
ですね。でも、現実はそこまであまくない!
師匠(為替和尚)が最初に考案した自動トレードのルールは、裁量ではうまく
使えるけど、自動トレードにするとプロフィットが出ない。
改良版を投入しても結果は同じ。
結局、プロフィットを出すために解決しなければいけない問題が、
先送りになっていたからなんですね。
最初のルール考案から3ヶ月がたったある日、遅々として進まないシステム
開発に業を煮やした師匠は、吉田に言いました。
師匠「このままじゃ、あかん! インジケータをいくら組み合わせても答えはでぇへん。基本に戻ることが肝心や」
ここから、トレードシステム開発は、次のステージに進みます。
[続きを読む]