*

ここが変だよMQL5 ~でも、ちょっとずつ良くなった(概要版)~

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

【この記事は2017年の記事を更新したものです。】

Order, Positionの意味が変わってる

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

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

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

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

(ネッティングタイプでは)両建てができない、決済の関数がない

MQL4ではOrderCloseを使ってポジションを決済しましたが、MQL5では決済の関数がありません。

ではどうするかというと、反対ポジションをとって相殺する、という手を公式で使います。
(いや、意図は分かるんだよ。分かるんだけどもうちょっと何とかなっただろ~)

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

反対ポジションをとると自動的に相殺されてしまいます。しかも同じ通貨ペアのポジションを別のタイミングで複数建てると、
全て合体させられてしまいます。(ヘッジアカウントなら可)

その後、ヘッジアカウントとネッティングアカウントというものが導入され、ヘッジアカウントではMT4のようなポジションの両建て、部分決済ができるようになりました。

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

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

さすがにバージョンアップで実装されたようです。逆にオリジナル関数で代用していた人の場合、定義済みの関数としてバグを吐き出すので、ほんと大変ですよね。

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

それがないんですね~

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

(ネッティングの場合)オーダーコメントが上書きされる

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

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

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

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

その他

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


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

機能性ではMT5の方が上ですが、使いやすさというか慣れはまだMT4です。(いや、慣れろよって話か)

Message

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

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

関連記事

【MQL4】シンプルに稼働するコピートレードツールを作る。その⑩

今回はリバーストレードができるように改良します。 端的に言うと、コピー元と逆向きのポジションをコピ

記事を読む

【MT4MT5】チャート上にWEBサイトの情報を載せる その2

今回はWEBサイトから取得したデータのスクレイピングです。 スクレイピングとは、すごい長い文字列か

記事を読む

第18回:配列で変数をまとめる

MQLの配列 MQLでティックチャートを使うとします。 MQLでは過去のティックチャートのデ

記事を読む

【MQL4】シンプルに稼働するコピートレードツールを作る。その⑧

意外と長い記事になってしまいましたが、現在のこれまでの仕様は下記のとおりです。 ・DLL、外部ソフ

記事を読む

第10回:テクニカル指標を使ったEA~RSIのEAを作る~

今回はテクニカル指標によるEAの一つとして、 RSIのEA を作ります。 ※実際に稼働させ

記事を読む

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

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

PAGE TOP ↑