*

久しぶりにMQL4を触って違和感を覚えたこと(覚書)

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

ほとんどの人には関係ない記事だと思います。

開発者の方が検索してたまたま見てもらうような覚書です。

StringToTimeは0や0000.00.00 00 00を変換すると2001年1月1日のタイムスタンプになる

0を変換したら0(1970/1/1)のタイムスタンプになると思いきや2001年に飛ばされるんですね。

マニュアルにも一切注意書きがないので意外と引っかかりました。

OrderClosePriceは決済前では現在レートを返す

MT4のオーダー情報もそうなってるので当たり前と言っちゃ当たり前ですが、

よく考えると(いや、良く考えなくても)この仕様っておかしいですよね。

この2つが何に影響するかというと、決済されているかどうかを調べるときにOrderCloseTime>0 とするかOrderClosePrice>0とするかに響いてきます。

前述のようにOrderClosePrice>0ではこの条件を上手く表してくれません。EA内でOrderCloseTimeを判定するときには良いのですが、外部から時刻を文字列で引っ張て来てそれを変換して比較しようとすると、上の仕様にぶち当たります。

OrdersHistoryTotalとOrderSelectのMODE_HISOTRYの検索順序

履歴のオーダーを調べたい場合、履歴の情報が膨大になるとメモリに負担がかかるので、たとえば最新10件のオーダーだけを調べたいことなどがあります。

そのときに重要になってくるのが、OrderSelectでSELECT_BY_POSしたときの順序です。

とすると、古い10件が取り出せます。

新しい10件を取り出したい場合には、

とすればOKです。

ちなみに順序はチケットナンバー順です。OrderOpenTimeではないので注意が必要です。

Message

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

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

関連記事

EA化できないインジケーターをむりやりEA化する方法

意外と知られていないようなので、ちょっとした小ネタです。 世の中にはいろいろなインジケーターが

記事を読む

意外と厄介なWebRequestのPOST

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

記事を読む

MT4のチャート上にボタンを作る

現在のMT4は結構いろいろな機能が追加されていて、 DLLや拡張ファイルを使わずに、 EA単体で

記事を読む

【MQL4】外部ソフトなしで稼働するコピートレードツールを作る。その⑦

前回は、コピー先でエントリーするところまで行ったので、今回は決済処理をします。 決済は「ファイル関

記事を読む

MT4チャート上で動画を表示する

MT4にはチャート上に画像を表示させる機能があります。 しかし、動画を表示させる機能はありません。

記事を読む

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

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

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

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

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

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

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

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

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

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

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

→もっと見る

PAGE TOP ↑