*

ここが変だよMQL5

公開日: : FX自動売買開発 , , ,

MT5を久しぶりにちょっといじってみたので、所見(愚痴)を書かせてください。

ここが変だよMQL5

1.OrdersTotal()が意味が変わってる

MT4では何かと御世話になるOrdersTotalですが、MT5ではバグ屋さんです。
類似の関数にPositionsTotalというものができているのですが、
MQL5では約定したポジションと予約注文が分かれています。

Order~ Position~系は完全に関数が分離しています。

これを知らずにMQL4と同じようにコーディングすると痛い目を見ます。(見ました)

しかもフォーラムによると、メタクオーツの公式サイトからダウンロードしたMT5だけバグる模様です。
(勘弁してください)

2.両建てができない、決済の関数がない

MQL4ではOrderCloseを使ってポジションを決済しましたが、MQL5では決済の関数がありません。
ではどうするかというと、反対ポジションをとって相殺する、という手を公式で使います。
(いや、意図は分かるんだよ。分かるんだけどもうちょっと何とかなっただろ~)

また、この仕様のせいで両建てはできません。

反対ポジションをとると自動的に相殺されてしまいます。
どう頑張っても見かけ上の両建てはMT5では無理です。

しかも同じ通貨ペアのポジションを別のタイミングで複数建てると、
全て合体させられてしまいます。(トラリピ、グリッドトレードもアウト)

3.Open[],Close[],iOpen(),iCloseが使えない

MQL4では始値、終値、高値、安値を取得する関数がありましたが、
MQL5ではありません。

「いや、でも名前が変わっても似たような関数があるんでしょ?」
と思うのが普通だと思います。

それがないんですね~

MQL5では、
自分で配列を宣言して、配列の向きを変えて、配列に値を入れないと
始値~安値を取得できない!

4.オーダーコメントが上書きされる

同じ通貨ペアでポジションを新規にとると、すでに保有しているポジションのチケットナンバーでロットだけ増加します。
同じように、もしEAにコメント付きでオーダーを送信させて、そのあと裁量で同じ通貨ペアのオーダーをすると、
オーダーコメントが上書きされてしまいます。

コメントでオーダーを管理するというのは、安定性に欠けるので避けるべきではありますが、
それでも複雑な開発要件の場合、どうしても使用せざるをえないことがあります。

しかし、MT5ではコメントがリアルタイムで変化する可能性があるので、
コメントを使ったプログラミングは結構穴になる可能性があります。

(見かけ上は古いコメントが消滅したように見えますが、中では残っているようです。)

まとめ

ところどころ良くなっているところはもちろんあるのですが、
その他にも
・MT5を複数インストールフォルダにコピーするとEAの紐づけがバグる
・特定の条件でコンパイルしてもEAが初期化されないバグ
・そもそも対応業者が少ない
・ヒストリーデータがいじれない(import,export)
・旧式のOrderSendの廃止->構造体に
・コンパイルしたときにエラーが一番上に来ない
・決済後のトレードのコメントを表示できない


・・・
など細かい点をあげると、どんどん悪い方に目が行ってしまいます。

機能性ではMT5の方が上ですが、安定性はまだMT4ですね。

Message

メールアドレスが公開されることはありません。

このコメントはWEBに公開されるので、問い合わせ等はメールでお願いします。

関連記事

パターン分析トレードシステムを作る

今回はMT4のファイル関数を使って、 パターン分析トレードシステムを作成します。 まずチャー

記事を読む

合成通貨アービトラージ

FXは通貨ペアなので、 その組み合わせは無数にあります。 例えば、ドルから円に換える場合、

記事を読む

意外と厄介なWebRequestのPOST

最近になってMQL4でもオンラインに接続できるようになりましたが、 WebRequestのPOST

記事を読む

トレード履歴からEAを復元することは可能か

「優秀なトレード履歴からEAを復元することはできるか」 という問い合わせをたまにいただきます。

記事を読む

第5回:コンパイルとEAの生成

ここではソースコードからEAを生成します。 mqファイルのコンパイル ソースコードファイルは

記事を読む

 
  • ブログ管理人の横瀬兼元(ペンネーム)です。

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽物がいるらしいので偽物にご注意ください。
no image
ストップレベル=0はストップレベルがないことではない

MT4/MT5では予約注文を行う際にストップレベルというものがあります

no image
私の偽者、偽ブログにご注意ください

読者の方からご連絡いただいたのですが、私のブログの内容をそのままコピー

no image
サービス展開向けの仮想通貨自動売買システムを作るには

前置き ビットコイン、仮想通貨の自動売買を作る目的として、通常は個人

一回の演算で複数のリクエストを送る 仮想通貨の自動売買⑪

公開:2017/9/4 基本的にjson形式でAPIをたたく場合

コインチェックAPIで信用取引 仮想通貨の自動売買⑩

公開:2017/9/4 これまではAPIで現物取引を扱ってきまし

→もっと見る

PAGE TOP ↑