• カテゴリー別アーカイブ ダウンロード
  • 実践本のサンプルプログラム

    皆さん、こんにちは。

    出版してから既に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フォルダ

    です。