プロに近いトレードルールを求めて

2013/01/29 カテゴリ:自動トレード開発奮戦記
  • このエントリーをはてなブックマークに追加

「1時間の節をめぐる攻防」で原点回帰した吉田と師匠(為替和尚)。これまでは作りやすさを優先して、トレードルールもいつの間にか自動で作りやすいルールになっていた。でも、これではダメだ。

 

「作りやすさを優先して機械に寄ってはならない」

この教訓は、はじめのトレードルールを作り、何ヵ月も結果のでない試行錯誤をして得たものだった。


そもそも「プロトレーダーの考え方を機械に落としこむ」ことを前提として
スタートした自動トレード開発である。
それがいつの間にか自動トレードシステムに適したルール作りにすりかわり、結果はさんさんたるものだった。


師匠は、原点に戻り自分の考え方に近いトレードルールを考案してきた。
これが意味転機となった「トレーディングエッジ」という名前の
トレードルールだった。


吉田は、師匠の考案したトレードルールで、エントリー確認用インジケータ
を作ることを師匠に約束した。

 

1番で準備。2番でエントリー

師匠が名古屋で説明したトレードルールは、1時間の節の考え方を中心にしたものだ。1番が点灯するとエントリー準備。2番でエントリーという2段階方式だった。


ひとまず、EA(自動トレードプログラム)を組む前に、エントリーポイントの確認用インジケータを作るのが吉田のシステム開発の流れである。
おそらく、世の中でEAを開発しているプログラマを同様の手段を
取っていると思う。


自動トレードシステムは完成すれば無人運転が前提となるが、まずは動作が
想定通りになっているかをチャート上で確認する必要がある。
自動トレードは、あくまでも確認済みのルーチンワークを機械に代わりに
やってもらうだけで、トレード自体は人間相手の勝負
である。


MT4用のインジケータやEAは、MQL4というC言語に似た独自の言語で
開発する。MT4はこの自由に拡張できるスタイルが受け、世界中のトレーダーに愛用されている。実際にインジケータだけを検索しても、
軽く2000以上はある。


もうそろそろGWという4月の終わりに、吉田は師匠に「エントリーポイントを確認するためのインジケータ」ができたことを報告した。

為替和尚トレーディングエッジエントリーシグナル

※クリックで拡大できます。

吉田「なんとかインジケータができたので、チャートにいれて見てもらえますか?」
師匠「1番で準備、2番でエントリーやな。ほうほう。」

師匠はチャートをさっと過去にさかのぼってポイントポイント
をチェックした。

師匠「吉田っち。これええわ。完璧やで。ボラのないところは確かに厳しいが、ブレイクアウトもドテンもほぼ完璧にとらえてるやん」
吉田「ドテン専用だと思っていたので、ブレイクアウトが狙えたのが意外でしたよ」
師匠「なんでブレイクアウトもいけた?」
吉田「これは意外だったんですけど、ブレイクアウト前に逆方向の1番準備シグナルが点灯してますね? ブレイクアウト前に、高値もしくは安値を更新してるってことですね」
師匠「なるほどな。とりあえず、これでEA作ってな。頼むで吉田っち!!」


エントリーシグナルが予想以上にいい出来だったため、師匠は
上機嫌で電話を終えた。

 

■開発効率のアップの取り組み

チャート上での確認が終わったので、あとはトレードルールを
自動トレードシステムにするだけだ。ここからの問題は開発効率。

これだけ広く受け入れられ、数多くのカスタムインジケータの公開がされているMT4だが、やはり専門の開発環境と比べるとあまりに貧弱

特にプログラムの誤りや動作確認のための「デバッガー」というツールが
ないのが致命的だった。

もともと吉田はプログラム開発を専門としており、プロが使う開発環境を
愛用していた。マイクロソフト社のVisual Studio2005である。
これを使えばぐっと開発もしやすくなる。

エントリーポイントの確認は、すでにチャートをみて確認済みだったので、
その他の部分をVisual Studioで開発することにした。

VisualStudio2005での開発
2010年当時、吉田も師匠もMT4対応のブローカーをあまり信用していなかった。2013年と比較すると原則海外業者ばかりで、スプレッドも高かった。
なにより、出金にまつわるトラブルなども耳にしていたので、自動を回すなら、国内のノーディール(ECN)の業者に注文を流すことを考えていた。

「豆知識」

ECN取引:電子商取引によるトレードで、基本的に人の手を介さず、すべて機械で処理される方式。ノーディール方式の方法のひとつ。


だから、MT4のEA(自動売買プログラム)を作ったところで結局作り直す
はめになる。それでも、いきなりリアル口座に注文を流すわけにはいかない
ので、まずはバックテストが絶対に必要になる。


そこで、まずMT4のStrategy Testerに相当する検証用のソフトウェアを
作ることにした。データはMT4のものを流用する形になる。


これに売買ロジックをいれて、勝率やプロフィットファクターを計算させる
つもりである。


MT4の開発効率をあげる構想は以前からあり、すでに移動平均やMACDなど
主要なテクニカル指標はVisual Studioのプログラムとして作っていた。


検証用ソフトウェアは1ヶ月ぐらいの開発期間を要した。
そして、2010年5月末、吉田と師匠は驚愕の事実を目撃することになる。

当時のMT4は透明性の面で不安があったみたいよ

ブログランキング

この記事に対するコメント

3 件のコメント

  • 私はコボラー
    2013/01/29 17:33

    私はCOBOLオンリーなのでMQL4をやりだしたとき、
    とても苦労しました。今もですがf^_^;)

    驚愕の事実、とても気になります。。ドキドキ

    それと、モバイルモードをONにして
    コメントを投稿しようとすると、
    エラーになってしまいますが、
    私だけでしょうか…f^_^;)
    あまり、ブログでコメントをした事がないので
    やり方が間違っていたら、すいませんm(_ _)m

  • まつもと
    2013/01/29 21:22

    私はMQL4しか利用できないんですが、偏差などの計算を含めていくと段々と動作が緩慢に… ^^;

    他のやり方(エクセルを取り入れるなど)を検討しなくちゃイケナイナ~と、まだそのままです^^;

    続きが楽しみです!!

  • 2013/01/30 08:30

    みなさん、いつも応援ありがとう!
    コメント頂けると励みになります。

    「私はコボラー」さん

    MQL4はポインタのないC言語なので、COBOLからだとちょっと苦戦するかも
    しれないですね。吉田のメインはVisualBasicですけど、たまに文法を
    とり間違えることがあります(笑)。

    MQL5はオブジェクト指向になり、デバッガもついて開発しやすくなるみたい
    ですけど、対応ブローカーが少ないですし、過去の資産が…。

    モバイルモードはプラグインで実現しているので、コメントまでチェックして
    ないです。ちょっと調整してみます。

    「まつもと」さん
    偏差までは配列内の数値の計算処理ができると思います。
    Excelよりも外部DLLを利用しないと計算速度は稼げないでしょうね。

    Visual C++でWin32 API対応のDLLを作る形になります。
    吉田も別件でやりましたが、えらい大変でした!

    これからも応援お願いします!

コメントを残す