• カテゴリー別アーカイブ 「新MT4対応 FXメタトレーダープログラミング入門」
  • MT4 Build1090でカスタム指標プログラムを作るときの注意点

    現在、MT4の最新ビルドは Build1090ですが、カスタム指標プログラムに関して、不具合というか、仕様の変更があったようなのでご報告します。

    症状としては、一部のカスタム指標プログラムで、指標ラインが表示されないというものです。ただし、ソースコードを更新してコンパイルし直すと、表示されるようになります。そして、一度表示されるようになると、それ以降は表示が消えることはないようです。

    という不具合のような現象が起きているのですが、バグなのか仕様なのかわからないので、とりあえず対処方法がわかったので書いておきます。

    旧MQL4をはじめ、新MQL4でもカスタム指標で表示させる指標がラインの場合、特にそれを指定せずに書かれたものが多数だと思います。

    kindle本の「新MT4対応FXメタトレーダープログラミング入門」のサンプルプログラムもそうです。例えば、こんな感じです。

    ラインの色や太さは指定していますが、指標がラインだということは明示していません。これまでのMQL4では、指定しなければラインとみなしてくれていたので、特に問題はありませんでした。

    一方、MQL5では、指標の種類を明示しないと何も表示されない仕様になっています。なので、ラインであっても必ず、

    という命令を書く必要がありました。今回のMT4のアップデートは、MQL5の仕様に合わせたのかもしれませんが、コンパイルし直すと表示されたりと、実に不安定な現象となっているのです。

    アップデートの度に仕様がころころと変わるので、安定するまでもう少し様子を見た方がいいかと思いますが、もし、今まで表示できていたカスタム指標プログラムで表示ができなくなった場合、プログラムの最初に

    という命令を、表示させたい指標の数だけ追加してみてください。

     

     



  • 月替わりセール540円1月31日まで

    拙著Kindle本『新MT4対応 FXメタトレーダープログラミング入門』ですが、1月のKindle月替わりセールで4割引きの540円で販売されています。
    MT4の最新版Build1031に対応させるために、内容を更新したばかりです。
    1月31日までですので、この機会にお買い求めください。



  • 「新MT4対応 FXメタトレーダープログラミング入門」更新しました

    皆さん、こんにちは。

    1年前に出版したKindle本『新MT4対応 FXメタトレーダープログラミング入門』ですが、MT4のアップデートに伴い、内容が古くなってきたので、更新を行いました。

    修正箇所をすべて書き出すことはできませんが、基本的に、MT4 Build 1031に合わせてメニュー項目などの修正と一部画像の差し替えを行いました。

    内容としては、細かい誤植の修正が何か所かありますが、以下の部分でちょっと多めに文章の削除、追加を行いました。

    1-1  MT4のダウンロードとインストール

    現在、MetaQuotes社のサイトからMT4をダウンロードすると、MT4ではなくMT5がインストールされるようなので、その旨を追加し、MetaQuotes社のサイトからダウンロードする説明を削除しました。

    3-5  繰り返しを使ったチャート全体への プロット
    チャート全体にプロットのところで、rates_totalとprev_calculatedの説明を少し補足しました。

    本日以降、新規に購入された方には更新版が配信されています。既に購入済みの方については、アマゾンの「コンテンツと端末の管理」をご確認ください。個別に連絡は行かないと思いますが、更新版があることが表示されるか、設定で「本の自動更新」がONになっていれば、自動的に更新されるのではないかと思います。

    なお、更新版では、最初の免責事項のページと最後の著者紹介のページに、MT4 Build 1031対応と記載されています。ご確認ください。

    追記:Kindle本を更新すると、ハイライト、ブックマーク、メモなどのデータが消えてしまいますので、既存の読者全員に更新をお願いするものではありません。今回の更新では、「本の自動更新」がONになっていても、自動的には更新されません。更新しても問題がなければ、一旦、本書を端末より削除してください。その後、アマゾンの「コンテンツと端末の管理」より配信の手続きをすると、更新版が配信されると思います。

    追記の追記:アマゾンの公式見解では、書籍を端末より削除しても更新版は配信されないということです。更新版の配信を希望する場合には、アマゾンの「問い合わせフォーム」から連絡してくださいとのことです。(自分も含めて端末から削除しただけで更新版が配信された人はいるみたいなんだけど、間違った配信なの?)



  • 新MQL4のカスタム指標をMQL5に移植する

    皆さん、こんにちは。

    最近、MT5に関してちょっとした動きがありました。こちらのMetaQuotes社の記事です。

    MetaTrader 5にポジション計算のヘッジシステムが追加されました

    MT5はもともと同じ通貨ペアのポジションを合算して一つのポジションとして扱う方法を取っていました。これがMT4からの移行が進まない要因の一つでしたが、これを改め、MT4と同じようにオーダー毎にポジションが建てられるようにするオプションが追加されるそうです。

    まだベータ版で、正式な対応にはもう少し時間がかかるでしょうが、動向を注視したいと思います。これを早くやってくれれば、あの七面倒くさいライブラリ作らなくて済んだのに・・・

    ところで、今回の記事は上記のMT5の動きとは直接は関係ありません。新MQL4のプログラムをMQL5に移植する際の注意点についてお話しします。

    まず、『新MT4対応 FXメタトレーダープログラミング入門』に掲載しているカスタム指標のサンプルプログラムの簡単なものを見てみます。

    これは、各バーにおける4本値の平均をプロットするカスタム指標です。特に意味はありません。

    これをMQL5に移植してみましょう。まずは、ファイルの拡張子を「mq4」から「mq5」に変えてMT5のデータフォルダの「MQL5\Indicators」の下にコピーします。すると、MT5のメタエディターで開くことができるので、そのままコンパイルしてみましょう。

    すると、こんなエラーが出ます。

    ‘Open’ – undeclared identifier
    ‘High’ – undeclared identifier
    ‘Low’ – undeclared identifier
    ‘Close’ – undeclared identifier

    MQL4では、4本値の配列が「Open[]」「High[]」「Low[]」「Close[]」という配列としてあらかじめ定義してあるので、それをそのまま使えばよかったのですが、MQL5ではそれがありません。

    ここでは、OnCalculate()関数の引数となっている「open[]」「high[]」「low[]」「close[]」という配列が4本値の配列に対応しているので、「Open→open」「High→high」「Low→low」「Close→close」のように変えます。

    これをコンパイルすると、エラーはなくなりました。実行ファイルはできているので、適当なチャートに挿入して実行してみましょう。でも、何も表示されません。そこでコンパイルの画面に警告メッセージが出ているところに注意してください。

    no indicator plot defined for indicator

    指標プロットが定義されていないということのようです。実は「#property」命令がMQL4とMQL5でちょっと異なっていて、MQL5ではプロットする指標の数を「indicator_plots」で指定しなくてはなりません。またもう一つ、指標の種類も「indicator_type1」で指定する必要があります。ラインの場合、「DRAW_LINE」を使います。これらを追加すると、次のようになります。

    これをコンパイルすると、エラーも警告も出ません。そこで、これをチャートに挿入すると、ラインが表示されます。これで移植完成かと思いきや、しばらくチャートを見ていると新しいバーのラインが更新されません。

    USDJPY.mM1
    これは、指標バッファ用の配列がMQL4とMQL5で異なっているためです。MQL4では指標バッファ用配列は最初から「時系列配列」になっていますが、MQL5ではそうではなく、時系列配列にするためにArraySetAsSeries()関数を実行しなくてはなりません。これを「Buf」だけでなく、4本値配列の「open」「high」「low」「close」に適用すると、次のようになります。

    これで移植完成です。どうでしょうか?MT4からMT5への移行の道のりはまだまだ長そうな気がします。

    なお、新MQL4の詳しいことは、こちらの書籍をご参照ください。

    『新MT4対応 FXメタトレーダープログラミング入門』



  • Kindle本プロモーションに選定?


    『新MT4対応 FXメタトレーダープログラミング入門』

    本日、アマゾンより「Kindle本プロモーション契約」というメールが来ました。何か怪しいメールかと思いましたが、以下のようにKindle本を宣伝してくれるそうなので、一応契約しました。

    「日替わりセール」「月替わりセール」「Kindle先行・限定タイトルセール」または「ゴールデンウィークセール」などのスポットセール等Kindle ストア内の様々な位置で紹介されます。

    もし、これから本書を購入しようかと思っている方がいましたら、安く買える機会があるかもしれないので、予めお知らせしておきます。ただ、そのセールがいつ行われるかは著者にはわからないので、逆にセールが行われていれば教えてほしいくらいです。