• カテゴリー別アーカイブ 「新MT4対応 FXメタトレーダープログラミング入門」
  • 月替わりセール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 ストア内の様々な位置で紹介されます。

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



  • 新メタトレ入門書の作り方(3)


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

    明けましておめでとうございます。年をまたいでしまいましたが、kindle本の作り方の続きです。

    epub作成ツールとして重宝したでんでんコンバーターですが、いくつか困ったこともありました。

    • でんでんコンバータ―でエラーが発生してepubが作成されない

    これは執筆が進んで、テキスト中でマークダウン記法やhtmlのコードが混在した頃に時々遭遇しました。でんでんコンバータ―では、何かしらエラーが発生すれば、エラーだということはわかるのですが、どこのファイルでどういうエラーが発生したのかはわかりません。

    そのため、エラーを特定するために前のバージョンに戻したりと、結構プログラミングのデバッグのようなことをやりました。こまめに変換して正しくできることを確認しなくてはいけないとは、ほんとにプログラミングと同じでした。

    ただ、慣れてくるとエラーの発生しそうなところはわかってきます。本書の場合、文中で「i<0」のようなコードを書いているところがあって、その不等号の記号がhtmlの記号と見なされて、おかしくなるケースが多かったようです。文中のコードは「`」で囲むマークダウン記法で書けば大丈夫でした。

    • でんでんコンバータ―でエラーが出ないのに反応しなくなる

    エラーが出れば何とかなるのですが、エラーが出ないのにでんでんコンバータ―が反応しなくなることもありました。これは原因不明だったのですが、時間をおいて再度トライしてみるとできたりしたので、サーバーの負荷の問題だったのかもしれません。

    実際、本書全体を変換する際に150個近い画像ファイルのリンクを張っていたので、ウェブ上サービスとしては使用条件が厳しかったのでしょう。でも無料のサービスなので無理を言ってはいけません。使える範囲で使うというのがマナーです。

    • 画像ファイルの解像度の問題

    最後の方で問題に気付いて、結構な作業量となったのが画像ファイルでした。画像ファイルは150個もあるので、無暗に大きくしてしまうと全体のファイルサイズに影響します。当初はPCのKindleビューアで見て適当だと思われる解像度で画像ファイルを作成していました。

    ただ、Kindleの端末やFireタブレットで読む人も多いだろうと多い、最も解像度の高いFire HDX 8.9を買って、それで確認してみました。すると、画像がすごく小さく表示されてしまい、文字などがよく見えなくなってしまいました。Kindle本は文字のサイズは変えられるのですが、画像のサイズは解像度で決まってしまうのでした。同じファイルでも解像度の低い端末では大きく表示されるものが、解像度の高い端末では小さく表示されるのです。

    小さい画像もダブルタップで拡大することはできるのですが、いちいち拡大していては文章が読みにくいということで、画像ファイルをすべて大きいサイズで作り直すことにしました。画像ファイルは、大きすぎても勝手に縮小して表示してくれるので、特に問題はありません。結構手間はかかりましたが、編集・校正作業全体に比べればわずかなものです。次からはその手間は省けるでしょう。

    • 最後にKDPに登録

    KDPへの登録は、本書の本体のファイルをアップロードをする前にある程度済ませることができます。KDPのアカウントもアマゾンのアカウントがあればすぐに作れます。以前は米国の源泉徴収税の免税処理が面倒だったようですが、最近は米国以外で販売する場合は、この処理は不要になっています。

    本のファイルをアップロードした後に決めるのが本の価格です。これがなかなか悩ましいところですが、そのときパンローリングのメタトレーダーの本がKindle版で1800円だったので、その半額ということで900円に設定しました。

    ロイヤリティは2か月後ということなので、まだもらってません。ロイヤリティを70%にした場合、別途配信コストがかかるということでしたが、1MBあたり1円ということで、本書の場合6円でした。これも本のアップロード時にはよくわからなくて、アップロードしたmobiファイルが12MBあったので、12円かかるのと思っていたのですが、実際に配信されるファイルは半分くらいに小さくなっているようでした。

    他にもよくわかっていないことも多いのですが、とりあえずアマゾンから文句も言われていないし、読者からのクレームもないので、いいのかなと思っています。ということで、本年もよろしくお願いします。