トレード備忘録 & MT4/MT5インディケータ及びEAの開発

日々のトレード備忘録及びMT4/MT5に関する事項

最新MT4/MT5 事情

2018-08-21 12:37:00 | 投資

 FXを経験した人であれば、一度はMetaTraderを使ってみたいという気になる。実際にチャートを使ってみると、なるほど世間に存在するテクニカル指標は何でも使えるので、どのFX会社でトレードをしていても、相場分析は無料で利用できるMetaTraderのチャートと決め込んでいる人が多い。 

 優れたチャート環境はMT4であろうとMT5であろうと全く変わらないが、MetaTraderの卓越した有用性はチャートによる相場分析にとどまることはない。CやC++に近い簡単なプログラム言語(MQL4、MQL5)を覚えてしまうと、トレーダー各自が考案した取引手法をプログラム化し、そのプログラムが本当に儲かる可能性のある手法であるかどうかを、事前に過去の相場の動きに当てはめて検証することができる。検証の結果が、良好であれば、リアル取引に実際に利用して自動取引として稼働させることができるという優れものである。 

 MetaTrader(MetaQuotes社)は、近い将来、現行のMT4からMT5への全面的な切り替えを計画している。MT4がFXを含むCFD限定の取引プラットフォームなのに対して、MT5はそれ以外の株式、債券、商品先物等の金融商品全般をもカバーする統合システムであるからである。 

 問題はMT4とMT5の間には完全な互換性がないことにある。ただし、本日現在、MT4/MT5双方で互いに近づける努力が重ねられた結果、その違いは両者が使っている関数に互換性がないだけになったといえる。注文送信関数OrderSend()を例にとると、OrderSendの( )内に入る引数がそれぞれ異なる仕様になっただけのことなのだ。そうは言っても、MT5のOrderSend()は複雑で、そのままではプロのプログラマーでも使い辛い。何しろこの関数一つで、MT4のOrderSend()、OrderModify()、OrderClose()までこなしてしまう上に、株式や債券、商品先物にも対応しているからである。 

 そこでライブラリー(Library)という仕組みが必要になってくる。FXのプログラマーならMT5のOrderSend(a,b,c,---)とあるのを、FX専用のOrderSend(x,y,z)と必要な項目だけに特化した簡便な関数を作成し、これから複雑なOrderSend(a,b,c,---)という関数に導く仕組みを開発する。簡略化された関数はMT4に酷似したものであれば、MT4経験者にはプログラムするに際してMT5への抵抗感は少なくなる。こうした一連のMT4に似た関数を用意して、FX用にひとまとめにしたものをライブラリーと呼んでも差し支えないだろう。 

 一方、MT4サイドでも従来のOrderSend()の引数を少し変えてMT5の要素とできるだけ共通化しておく。どちらもFXの送信関数に変わりはないのであるから、( )に入る引数をほぼ共通化することが可能である。一部共通化された一連のMT4関数もこれまたライブラリー化しておけば便利だ。 

 MT4用に作成されたライブラリーをLib4.mqh、MT5用に開発されたライブラリーをLib5.mqhとして用意しておき、MT4で使用されるときはLib4.mqhがMT5で使用されるときにはLib5.mqhが自動的に呼び出されるようにしておけば、MT4でもMT5でも同じ感覚でプログラム作成ができる環境が出来上がる。 

 上記の共通ライブラリー完成版が、LibEA.mqhとして無料公開されている。開発者はほかならぬ神奈川大学工学部教授豊島久道先生、先生はこのプロセスをMT5のMT4化と称されているようである。

http://toyolab.com/fx/