*

(MQL4プログラマのための)先に知っておくと時間を節約できるMQL4の仕様

公開日: : 中級者EA開発

Originally posted 2018-06-01 14:42:26.

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

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

StringToTimeの仕様

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ではないので注意が必要です。(MT4のヒストリーの表示状態に依存する可能性があります。)

 

ストップレベル=0はストップレベルがないことではない

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

ストップレベルというのは、現在レートに近すぎるレートに予約注文(指値、逆指値)は出せませんよ~、という目安の数字です。

 

ストップレベルが10の場合は、最低でも現在レートよりも10point離れたレートでないと予約注文を出すことができません。(それ以内の場合は注文拒否にになります。)

 

さて、表題の件ですが、MarketInfoなどでストップレベルを取得した際に0になっているにもかかわらず、ストップレベルが原因で注文が弾かれることがあります。

これはストップレベル=0が「ストップレベルによる制限がないことを表す」訳ではないことを意味します。

一般的には=0の場合、制限がないことを表すことが多いですが、ストップレベルに関しては不定を表します。

そのため、予約注文前にフェイルセイフでストップレベルを検査して0が検出された場合には、一般的なストップレベルの目安であるスプレッドx2を設定します。(これが保証されている訳ではありません。)

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

Message

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

CAPTCHA


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

関連記事

[MT4]EA単体でFX業者間アービトラージ ~為替システムの穴~

より高速になったアービトラージEA 業者間アービトラージが話題になった時代が数年前にありましたが、

記事を読む

[MQL4]EAの稼働が終了しても、データを記録しておく方法

(注:ディープラーニング関連の話ではありません。) MT4のEA、インジケーターは、基本的にバ

記事を読む

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

世の中にはいろいろなMT4用インジケーターがあるわけですが、その中にもEA化できるインジケーターとE

記事を読む

EAを実際に逆コンパイルしてみて、対策を考える(追記あり)

逆コンパイルとは 逆コンパイルというのは実行ファイルからソースコードファイルを復元することで、デコ

記事を読む

[MT4EA]完全無敗 勝率100%のバックテストを生成するEA[ソースコードあり]

今回はバックテストで完璧な成績を出すEAを作成しました。 意味は...ありません。ただの道楽です。

記事を読む

 
  • (↑広告です。このサイトの管理者の運営ではありません)

     


  • 横瀬兼元(ペンネーム)です。

    プロフィール
    商材を買わせようとする偽者がいるらしいのでご注意ください。
    ツイッター始めました(イマサラー)
    https://twitter.com/FxantennaC
    (埋め込みするとページ表示が極端に遅くなるので、リンクでご容赦を)

Translate »
ページトップへ