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

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

MT4⇆MT5自由自在、Library LibEA.mqh完成

2019-11-26 10:48:25 | 投資


  去る11月15日、豊島久道著「メタトレーダー 4 & 5 共通ライブラリによるEA開発入門」が電子書籍(Kindle版 500円)として刊行されました。MT4/5関連で同氏の書籍は、紙本4冊を含んで今回で7冊目の出版となります。 

 豊島先生は2017年9月来、MT4/5共通ライブラリ開発に取り組んでこられ、計7回β版を公開されています。今回のライブラリ正規版の完成により、MT4とMT5は互換性のない言語の壁が取り払われることになり、我々メタトレ愛用者にとっては大きな福音となりました。 

 ところで、せっかくの贈り物も使い方によっては宝の持ち腐れとなってしまいます。就中、プログラミング言語に全く不案内な初心者には、このライブラリを使ってEAを自由自在に作成するのは困難と言わざるを得ません。文系出身でプログラミング知識など皆無のトレーダーにとっては、敷居が高すぎるからです。 

 最近の著者のブログ等では、MT4にてEAを作成するには、少しばかりC言語(あるいはC++)を勉強していた方がよいとのお考えを述べておられます。著者の最初の入門書はズブの素人でもわかるようにとの意図で刊行されましたが、なかなか一般に理解が進まなかったことをその理由として挙げておられました。 

 著者の現実的なコメントは理解できますが、実際にズブの素人からメタトレを学んだ筆者はこのお考えには反対です。C言語に関する著書は書店に山のように並んでいますが、文系人間にとってはどれも最初のページを2~3ページ読んだだけで頭痛がしてきます。それは、外国語の勉強を文法から始める愚に似ているからです。 

 一方、氏の最初の著書「FXメタトレーダー入門」は最初から簡単なテクニカル指標の作成にチャレンジします。ここでは、プログラムの初歩的な部分をこれでもかというほどページ数を割いて説明されています。それでも、初心者にとっては険しい道のりですが、好きなFXトレードのためと思えば、必死になって頑張ることができるのです。「配列」とか「繰り返し計算(for分)」を覚えることができればしめたものです。筆者はこの部分だけを理解するのにおよそ6ヶ月もかかってしまいました。C言語なんて正面からは決して理解することはできません。豊島先生のお説に逆らうようですが、MT4を通じて結果的にC言語の知識を得たというのが筆者の偽らざるところです。 

 豊島先生は、2008年以来、次のような著書を上梓されています。最初の4冊は紙本で、残りの3冊は電子書籍(Kindke版)です。

①「FXメタトレーダー入門」2008,1.3

②「FXメタトレーダー実践プログラミング」2009.10.4

③「FXメタトレーダー 4&5 一挙両得プログラミング」2013.12.3

④「メタトレーダーで始めるシステムトレードプログラミング」2014.12.31

⑤「FXメタトレーダープログラミング入門」2015.11.1

⑥「新MT4対応ライブラリによるEA実践プログラミング」2017.3.13

⑦「メタトレーダー 4&5共通ライブラリによるEA開発入門」2019.11.15

  上記のうち、③と④については、MT5の環境が書籍発刊時から大きく変わったこと、ないしは、著者のライブラリがその後LibEA.mqhに統一されたことにより、現在ではEA作成には妥当しなくなっています。 

 プログラミング言語に不案内のMT4/5の初心者が、⑦を理解するには①と②は避けて通れない著書であると確信しています。①ではMT4インディケータやEA作成を通じてMT4とCの基礎知識を習得し、②では発展的EA作成には欠かせないライブラリの基礎を学ぶことができます。作成したインディケータやEAは現在のMT4環境でもそのまま作動します。残念ながら、紙本は在庫が少なくなっているようですが、Amazonからは電子書籍として販売が再開されているようです。


EA作成においてAskを使う時は要注意!

2019-11-17 07:28:11 | 投資

 時々、MT4の学習者が作成されたEAを拝見することがある。大きな誤りとは言えないが、多い誤解の一つにAskの使い方がある。 

 例えば、「価格がボリンジャーバンドのσ1を上抜けたら、成行きで買う」という順張りの命令文を書く場合、ボリンジャーバンドσ+1をBB1としたときの命令は;

if(Ask > BB1) OrderSend( Ask); とされていることがある。これは厳密には誤りである。 

 日頃見慣れているMT4チャート(それ以外のチャートも)では、すべてのインディケータはBidベースで計算されている。終値Close[ ]), High[ ], Low[ ]等の値も同様だ。ボリンジャーバンドσ1の表示もBidベースで表示されているから、AskがBB1を超えたとしても、Bidは未だBB1に達していない場合がある。つまり、チャートを見ていると、価格がσ1に届いていない段階で買い注文が出されてしまうことになる。スプレッド(spread)が考慮されなくてはならない。 

 上記の命令文は、if(Ask > BB1+spread) OrderSend(Ask );と書き直す必要がある。

Ask > BB1+spreadはAsk−spread > BB1と同義である。Ask−spread = Bidであるから、結局、命令文は、if(Bid > BB1)としてもよいことになる。 

 売り注文の場合は、どちらもBidとBidの比較であるから調整を必要としない。

 


トレンドラインを引いて自動売買(MT4 TrendLine_AutoTrade)

2019-11-13 23:42:25 | 投資

 チャート上に自由に引いたトレンドラインで自動売買ができないものだろうか? 一般的には大変難しかろうと想像されますが、実はMT4ではこれができると申し上げると驚かれる方が多いのです。トレンドラインの傾斜角を計って三角関数を使うのではありません。MT4にはそれを可能にするオブジェクト関数が用意されているなんて大したものではないですか。 

 以前、筆者が関係するメタジェニック社からTrendLine_AutoTradeという自動売買プログラム(EA)を公開しておりました。このEAでは上値抵抗線の戻り売り、ブレーク買い及び下値支持線での押し目買い、ブレーク売りそして両者を混在した取引が可能となっていました。 

 世上あまり出回っていないEAであったこともあり、EAの設定画面が煩雑となってしまい、もう少し簡便な設定画面にならないかとの要望が届いておりました。そして、押し目買い・戻り売りのエントリー方法にもオプションを増やすようにとのリクエストがあったため、今回、思い切って正規版のバージョンアップとともに、Extra版を開発し正規版に同梱することとなりました。 

正規版の特徴は;

① 上値抵抗線での戻り売り、ブレーク買い

② 下値支持線での押し目買い、ブレーク売り

③ 上記①、②の合成取引(4種の取引を同時に行うことも可能)

 つまり、三角持ち合いやチャネル相場での取引等にも対応できる。

④ トレイリングストップ機能付き

バージョンアップの内容

① 煩雑であったエントリー条件の簡素化を図った。

② トレイリングストップの法式を通常の形に戻した。

Extra版の特徴

 正規版では押し目買いと戻り売りの逆張りでは、エントリー条件は終値ベースでトレンド変更を確認した上での発注、即ち、逆張りの中でも順張り的な保守的方法をとっていた。Extra版では、現値が上値抵抗線や下値支持線にタッチした瞬間、成行きで売買できるようにした。 

 上記のように正規版のバージョンアップに加えてExtra版もパッケージしていますので、より効率的なトレンドラインでの自動売買が可能となっています。

 MetaGenicFX社によれば、旧正規版を既にご利用されている方には、順次新パッケージを送信されるとのことです。 

MetaGenicFX

https://metagenicfx.thebase.in/

 

 


MT4 トラリピEAの「ニコチャン」マークが消えた

2019-11-09 23:57:16 | 投資

 トラップリピートイフダン(トラリピ)を最も効率的に行うには、MT4で自動売買を利用すべきであることを過去のブログで繰り返し述べてきました。コスト面は言うに及ばず、機能面でもFX業者各社が提供する類似手法と比較してはるかに汎用性・拡張性に富んでいるからです。 

 そうは言っても、自動売買となれば常にパソコンをオンの状態にしておくか、もしくは外部のコンピュータをレンタルして24時間プログラム(EA)を作動させておかなくてはならない・・・。トレーダーの中には、そこまでしてまで自動売買なんてやることはないと考える人が多いのは事実です。むしろ、注文方法は単純だから、手動発注のみでトラリピ行っているといる人もいます。 

 上記の自動取引は、トラリピに関する限り、自動売買を自身のパソコンで行うことが可能であり、その方法(半自動)を提唱してきました。現在では多くの方がEAを使ったトラリピの半自動取引を利用されるようになり、ときどき様々なご質問やご意見を頂くようになりました。 

 ご質問の中に、半自動取引中に困った症状に遭遇した旨のご報告があったので、今回、この問題を取り上げてみたいと思います。 

症状:「EAを稼働中にパソコンのスイッチを切り、数時間後に再度スイッチオンにしたところ、件のEAの「ニコチャン」マークが消えてしまっていた」というもの。 

 通常はパソコンのスイッチを切り、再度オンにしてMT4を立ち上げれば、EAは再び活性化します(ニコチャン・マークも再点灯します)。マークが消えたのは、MT4の設定がそうなっていることがほとんどです。チャート画面から、ツール → オプション → エキスパートアドバイザで次の画面が現れます。 

 「自動売買を許可する」に☑が入っているのは当然なのですが、その下の3個の「ストップする」に☑が入っていると今回のようなトラブルになることが多いようです。半自動取引を行う際には、筆者は3個の☑をすべて外した状態にしています。その他、注意すべき点は; 

① EAを作動させているチャートでは相場分析をしたり、時間軸を変えたりしないことです。チャート分析等はEAを作動させていない他のMT4口座(デモ口座)を使うようにするようにします。

② 万が一のために、EAの設定画面をキャプチャーして保存しておくことです。「ニコチャン」マークが消えていても、再度全く同じ設定にすれば、すべてが復活します。決して、注文が二重になるようなことはありません。 

 MT4によるトラリピ半自動取引に関する過去のブログの中、3件を掲げておきますので、ご参考まで。

https://blog.goo.ne.jp/antnobu/e/13d2a3178e4e72572162908f4f562176

https://blog.goo.ne.jp/antnobu/e/80be7e4d58f06f1c60e3b24644535b92

http://blog.goo.ne.jp/antnobu/e/75edc034c7177c3c0b03d1bbcf7b7305

 


Bollinger Five EA 最新バージョン完成

2019-11-07 23:45:26 | 投資

 

 元敏腕ディーラー水上紀行氏が唱えられるブレークアウト手法『ボリンジャー・ファイブ』のEA化に挑戦を続けてきたが、ようやく最終バージョンにまでこぎつけた。

 最初のバージョンは、水上氏のセミナーとその書籍で公開された手法そのままの仕様となった。ボリンジャーバンド収縮の判定を目視に頼った結果、仕上がったEAはスクリプトに近いシンプルなプログラムとなった。その後もフルオートのEA化への試行を重ねてきたが、その道程は厳しかった。理由は今から振り返ると、プロの裁量取引手法はプログラムの論理式にはなかなかなじまないところがあったからである。 

 手法の重要な仮説は、「BB5のバンド幅収縮時にBB5σ2の外側に売り買い20ピップスの逆指値注文を出しておいて、バンド幅拡大時に順張りで待ち受ける」というものであるが、収縮時の判定と20ピップスの妥当性が問題になる。

① 収縮時の判定

 収縮の判定であるが、候補となるインディケータとしてATR、標準偏差、ADXがフィルターとして考えられる。その中では、ADXが汎用性において優れていたので、前バージョンではこれを採用した。

② 20ピップスの妥当性

 水上講師は、全通貨ペア共通にσ±20ピップスとされているが、これは明らかに不合理である。日中価格高低差(ATR)が200ピップスもある通貨ペアと50ピップス前後の通貨ペアを同列に扱うことはできない。

③ プロの持つ動物的反射行動

 そのほか、プロの行動は論理式にはなじまないところがある。例えば、「相場を見ていて、危ういとみれば早々に利確、損切をする」とされるが、EA化にはこれをも論理式に加えなければならない。 

 何百回と過去検証を繰り返し、ようやく自信の持てるEA化に漕ぎつけた。

採用したインディケータ

① BB5 σ±2(変わらず)② MACD(12,26,9)③ BreakPips(20ピップスに相当するもの)は通貨ペアによりパラメータで可変とした ④ プロの動物的反射神経に相当するところは、浅めのトレーリングストップによってカバーすることができた。 

 以下に、GBPUSD、GBPJPY、USDJPYのバックテスト(2019年1月1日~10月31日まで、いずれも4時間足)

 

 

(注)

 MetaGenicFX社の確認後、上記バージョンは公開の予定です。既に旧版ご利用各位にはメールに添付して無償にてお届けするとのことです。

https://metagenicfx.thebase.in/