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

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

新MT4対応ライブラリーに感謝!!

2017-06-24 15:29:05 | 投資

 6月7日のブログで、豊嶋久道著Kindle版「新MT4対応EA実践プログラミング」に触れた。同著を読み進んでいくうちに、新規開発されたライブラリー、LibEA4.mqhの素晴らしさに驚嘆している。 

 その有難さを平たく表現すると、同ライブラリーをスーパーマーケットに陳列された「刺身用の柵」に例えることができる。消費者は、この柵を適当な大きさに切り分け、お皿に盛り付け、ワサビと醤油でいただくだけになっている。魚の鱗をとったり、頭や骨を外して三枚におろしたりする作業はバックヤードの仕事であって、我々の目には触れることはない。 

 ことほど左様に、新MT4プログラミングにとって必要な前処理は全てLibEA4.mqhが裏方としてやってくれているのである。そして、来るべきMT5にもほぼ同じようなプログラミング手法で対応できるように工夫されている。著者紙本「FXメタトレーダー4 & 5」で開発された「MyPosition.mqh」では、まだいくつかの前処理が利用者に課されていたが、今回これらの作業も全てライブラリー側が面倒を見てくれるようになっている。 

 例えば、売買シグナルsig_entry、決済シグナルsig_exitの発生条件を通常のEA同様に準備したとする。(紙本「FXメタトレーダー実践」参照)そして、ストップロスとして変数SLpipsを設定すると、一連の作業を含めたEAの本体部分は、次のような簡素なものになる。 

//ストップロスの設定

if(MyOrderStopLoss()== 0) MyOrderModify(0, MyOrderShiftPrice(-SLpips), 0);

//成行き売買

MyOrderSendMarket(sig_entry, sig_exit, Lots);

 このような簡潔な記述でEAを完結させることができるのは、MT5共通のオリジナル内部関数等が多数開発され、われわれの見えないところで必要な前処理が行われているからである。前処理の内容をすぐに理解することは難しい。でも、旧MT4を理解している読者にとっては、ライブラリーのプログラムをつぶさに読めば徐々に理解することができる。まずは使ってみることだろう。ライブラリーの内部処理の詳細を知ることは必ずしも必要ではなく、後で学んでも決して遅くはない。MT4を学んでいるようでいて、実はMT5の訓練をさせられているのである。 

 今回のライブラリー、LibEA4.mqhで大助かりなことは、豊富なトレード関連関数が採用されたことである。数えてみると、30個以上が用意されている。紙本「MT4メタトレーダー実践」の5個と比較すると格段の違いである。例えば、含み益が100pipsに達すれば、利益を確保して決済したいという場合、現在の含み益をピップスで計算するのには、結構面倒な計算が必要であるが、開発されたMyOrderProfitPips()を使えば一発で呼びだすことができる。含み益を金額ベースで呼び出すことができるMyOrderProfit()が用意されていることは、もちろんである。著者自らのトレード経験に加えて、多くのプロ級MT4トレーダーが開発してきたオリジナル関数を一堂に集結させた功績は大きい。実用的で、高速かつ無駄のないEAを作成することが可能となった。 

 今回のライブラリー、LibEA4.mqhのネーミングやその扱いは示唆的である。いずれLibEA5.mqhへの変身を予感させられる。また、同ライブラリーは未だ正式なライブラリー扱いはされていない。MT4が現在も更新中であることを考慮してのことと思われる。そうした著者の指示にも拘わらず、ブログ筆者は、正式なライブラリーとしてincludeファイルに保管して使用させていただいている。