はじめに
投資用語やチャートの読み方が全くわからない状態から、自動売買のプログラムを自分で組んでFX取引を行うまでに至った経緯を実体験をベースに記事にしています。FXに興味があるけど何から始めて良いかわからない方や、同じような不安や疑問を持っている方に対して、何か1つでも参考になることがあれば幸いです。
裁量じゃなくてなぜEAなのか?
①長時間画面に張り付かなくていい
FXのエントリーチャンスはいつやってくるか分かりません。チャンスを逃さないためにチャートをずっと監視しておきたい所ですが、市場が開いている間ずっとチャートを見続ける事は現実的に無理ですし、かといって限定的な時間帯でトレードを行うのもチャンスを逃してしまう事が多くなりそうなので悩ましいところです。トレード手法の考案とそのロジック化を人間が担当し、ロジックの執行をEAに担当させれば、24時間チャートを監視しつつ、チャンスがあればエントリーを行う理想的な運用が実現できます。
②エントリーのタイミングが人より正確
USD/JPYで109円を下回ったら買おう⇒この勢いだともう少し下がるかもしれないからちょっと様子を見よう⇒爆上げしてチャンスを逃す・・・・。なんて事はEAでは起こりません。良くも悪くも感情が無いので、無慈悲なまでにロジックに従ってエントリーと決済を行ってくれます。
EAは勝てるのか?
ロジックそのままで恒久的に勝ち続けることのできるEAは恐らく無いと思いますが、期間限定で有効なロジックは存在します。極端な例ですが、例えば2週間上昇トレンドを形成し続けているチャートを分析した際、15分足のSMA20で頻繁に反発していたとしたら、「SMA20を下回ったら買いのエントリーを行い、30pipsで利確する」等が、優位性の高いロジックとして考えられます。ただ、次もSMA20で反発するかどうかは分かりませんし、トレンドの転換も必ず起こりますので、ロジックに関しても必ず終焉が来ます。実際、私自身がこのような感じでEAを作り、期間限定且つ微小ですが利益を出しています。そしてEAを動かしている期間にチャート分析を行い、次のロジックの検討/製作を行うルーティンとなっています。
EAは誰でも作れるのか?
興味を持って根気よく続けられる情熱があれば、プログラミング未経験者でも作れるようになると思います。私は過去に仕事でプログラマーとしての経験を積んでいたせいもあって、1ヶ月程度で簡単なものを作れるようになりました。とは言え、オブジェクト指向の考え方も言語仕様もほとんど理解していません。ヘルプや色々なサイトを見ながらトライ&エラーを繰り返し、意図した動きをするものを何とか作っているレベルです。昔のプログラミング言語に比べてヘルプが充実しているので、オブジェクト指向に慣れてるプログラマーであれば直ぐにでもコーディングできると思います。
裁量より優秀なのか?
完全なる独断と偏見ですが、順位付けのイメージは以下のような感じです。
- 上級裁量トレード
- システムトレード
- 中級以下の裁量トレード
なんだかんだで経験豊富な裁量トレードが一番優秀だと思います。相場の空気感を感じ取る能力と言うか、ロジックでは表せない怪しいチャートの動き方を敏感に感じる能力と言うのはシステムには無い感性だと思います。そして勝ち続けているトレーダーの方は、少なからずそのような能力が備わっているのではないかと思います。天性のものなのか?努力と経験の賜物なのか?どちらにせよ今の私には備わっていません。
一方でEAによるシステムトレードですが、中級くらいの裁量トレードよりは優位性があると考えています。上級と中級の定義が曖昧ですが、ニュアンス的にはトータルの損益が±を行ったり来たりで、感情による余計なトレードで損失を出したり、チキン利食いを行ってしまったりが多い方を中級レベルとしています。勝てるパターンがあるのであれば、それをロジックに落とし込み、感情による余計な事をしなければ利益は上がるという考えから、システムトレードの方が優位性が高いと思っています。
市販のEAについて
使った事が無いので分かりません。分かりませんが、上述したように恒久的に勝てるEAは無いと思っていますし、相場のあらゆる変化に柔軟に対応できるシステムも無いと思いますので、正直な所、購入意欲を掻き立てられた事はありません。無料お試し期間があったり、サブスクリプションモデルで月額料金が安かったり、コードベースでのカスタマイズが可能であれば試してみたい気持ちもありますが、残念ながら現時点ではそのようなものはありません。
EA自作に興味を持ったら
MT5をダウンロードし、インストールしてみましょう。ソフトウェアは無料ですし、デモ口座であれば入金も必要ありません。MetaEditorというツールが一緒にインストールされます(デスクトップにショートカットができます)ので、ヘルプやWebで使い方を勉強してください。プログラミング経験者であればなんとかなると思います。プログラミング未経験者でも死ぬ気で頑張れば何とかなると思います。当ブログでも簡単なコードなんかを紹介していく予定ですので、興味がある方の参考になれば幸いです。