• カテゴリー別アーカイブ ダウンロード
  • MT5ヘッジ口座用ライブラリ

    皆さん、こんにちは。

    前回の記事でもちょっと触れましたが、MT5のヘッジオプション機能が正式にリリースされました。MT5でも、MT4のようにオーダー毎にポジションが建てられるようになったようです。

    以下が日本語のリリース記事です。(タイトルは意味不明ですが・・・)

    MetaTrader 5取引プラットフォームはヘッジを獲得しました

    記事によると、これでMT5への移行は問題ない、と言わんばかりの書き方ですね。しかし、ポジションの扱いは見た目上、MT4と同じにはなりましたが、肝心のプログラミングの部分は相変わらず、互換性のないままです。これでMT5への移行が進むとは考えにくいです。

    ところで、拙著の『メタトレーダーではじめるFXシステムトレードプログラミング』は、MT4とMT5で同じソースプログラムが使えますよ、という本だったのですが、そういう需要がなかったせいか、あまり売れてはいないようです。

    ただ、私がEA作成用に利用しているのがこのライブラリなので、今回、MT5のヘッジ口座で使えるようなライブラリを作成してみました。

    ライブラリは、拡張子がmqhのヘッダファイルとして作成されています。解凍してできたファイルをMT5のデータフォルダの「MQL5\Include\MyLib」の下にコピーしてください。一応、黄色本のサンプルプログラム一式がインストールされていることが前提です。

    ヘッジ口座用のEAを作成するには、プログラムの最初に「#define HedgeAccount」を追加するだけです。下のように「#include」の前に記述します。

    この状態でコンパイルすると、ヘッジ口座用のライブラリを組み込んで実行ファイルが作成されます。EAの使い方はこれまでと同じです。「StartHistory」「RetrieveHistory」といった余計な変数がなくなったので、逆に見やすくなったかと思います。

    なお、ライブラリ関数の仕様は、黄色本に掲載したライブラリ関数と同じです。詳しい使い方については、黄色本を参照していただきたいと思います。但し、例によって本ライブラリを使用したことにより生じるいかなる損害に対しても著者は責任を負いません。自己責任でのご利用をお願いいたします。



  • 実践本のサンプルプログラム

    皆さん、こんにちは。

    出版してから既に6年以上経った実践本「FXメタトレーダー実践プログラミング」ですが、いまだに時々質問をいただきます。

    最近多いのが、ライブラリファイルの「MyLib.mq4」をコンパイルするとエラーが出るけど大丈夫か?というものです。

    実際、コンパイルすると「sign mismatch」というメッセージが何か所か出ます。ただし、これはエラーメッセージではなく、警告メッセージです。一応、コンパイルはできて、実行ファイルも作成されているはずです。通常の実行には、特に問題はないと思います。

    ちなみに警告メッセージが出ているのは、次の if 文が書かれているところです。

    「sign mismatch」の意味は、比較している左辺と右辺のデータ型の符号の扱いがあっていない、ということです。つまり、データ型としてはどちらも整数型で同じなのですが、左辺の「GetTickCount()」の戻り値の型が「uint」型(符号なし整数)なのに対して、右辺の「MyOrderWaitingTime」が「int」型(符号付き整数)と、符号の有無で型があっていないということなのです。

    旧MQL4では、整数型は「int」型しかなかったので問題なかったのですが、MT4 build600以降の新MQL4では、整数型が「int」「uint」などC言語と同じように増えたので、こんなメッセージが出るようになったのです。

    ということで、このメッセージを消すためには、型を揃えればよいので、17行目の「MyOrderWaitingTime」の宣言文で、型が「uint」になるように

    と修正します。また問題の if 文中に出てくる「starttime」の宣言文も同じく

    のように「uint」に修正すればOKです。

    以上の修正を行ったサンプルプログラム一式を上げておきますので、下のリンクからダウンロードしてください。

    ただ、実践本のプログラミングは、旧MQL4をベースにしているので、現在のMT4で動かすプログラムとしては、あまり推奨できません。新MQL4のプログラミングは、「新MT4対応 FXメタトレーダープログラミング入門」で解説しているので、そちらに移行されることをお勧めします。



  • 新メタトレ入門本サンプルプログラム

    みなさん、こんにちは。

    『新MT4対応 FXメタトレーダープログラミング入門』(長いので「新MT4入門本」と略します)を発売して1週間経ちました。毎日数冊ずつですが売れているようです。どうもありがとうございます。

    ところで、今回、電子書籍にしたことで、サンプルプログラムの配布方法を変えました。

    本書のプログラムリストの

    【リスト】ex1_ea.mq4

    のファイル名のところをクリックすると、ブラウザが開いてダウンロードできるようにしたのですが、KindleやFireでは、ブラウザ上に表示されるもののダウンロードができないことが判明しました。

    PC用のkindleでしか確認していなかったので、大変失礼いたしました。

    取り急ぎ、サンプルプログラム一式をダウンロードできるように手配しました。下のどちらかの方法でダウンロードしてください。

    1.以下のURLをブラウザに入力してダウンロードする。

    http://forex.toyolab.com/XXXXXXXX/MQL4.zip

    ただし、「XXXXXXXX」のところは、本書でサンプルプログラムのファイル名をクリックしたときのダウンロードリンクのURLと同じものを入れてください。

    2.以下のリンクからダウンロードしてください。

    ただし、パスワードとして、上記の「XXXXXXXX」と同じものを入力してください。

    次回の改版では、ダウンロードの方法について説明を加えますので、それまでは、この方法でサンプルプログラムをダウンロードしてください。

    ご不明な点がありましたら、お問い合わせください。



  • 本書オリジナルライブラリーのアップデート

    皆さん、こんにちは。

    「FXメタトレーダー4&5一挙両得プログラミング」(本書)のオリジナルライブラリーアップデートのお知らせです。

    読者の方からのご指摘で気が付いたのですが、本書のサンプルプログラムのうち、343ページ以降の「待機注文による仕掛け」に掲載されているEA(MQL4版)を、特定の業者(判明しているのはOANDA)のMT4で動かすと不具合が生じる可能性があります。

    具体的には、待機注文が約定した場合、ポジションがなくなったと判断され、さらに待機注文が入ります。そして、さらに約定を繰り返すと、オープンポジションがPOSITIONSで指定した数以上に作成されてしまいます。

    これは、OANDAのMT4で、待機注文のチケット番号と、それが約定してできたポジションのチケット番号が異なっているためです。(他のほとんどの業者では待機注文のチケット番号は約定しても変わりません)

    取り急ぎ、本書オリジナルライブラリーを修正したものを公開しますので、問題がある場合にはダウンロードして差し替えてください。

    なお、同じ待機注文を扱うEAでもMQL5版では特に問題はありません。またOANDA以外で同様な不具合は確認されていません。

    ダウンロードして解凍すると、「MyPosition.mqh」というファイルが現れるので、そのファイルをMT4のデータフォルダにコピーしてください。

    コピーするフォルダの場所は、

    MT4 build509以前の場合:

    MT4をインストールしたフォルダの下の\experts\include フォルダ

    MT4 build600以降の場合:

    メニューの[ファイル]―[データフォルダを開く]で開いたフォルダの下の\MQL4\Includeフォルダ

    です。