*

第16回:EA内で日本時間を作る

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

サーバー時刻のEAの演算を日本時刻にする

MT4の時刻は多くの場合日本時間ではなく、
サーバーが置いてある時刻になっています。

そのため、雇用統計の時間をEAに認識させるためには時刻の修正を行わなければいけません。

MT4自体には時刻を変更する機能がないので、
EAのプログラミングで時差分を修正する必要があります。

ここでは
MT4のサーバー時刻の時間関数
Month(), DayOfWeek(), Day(), Hour(), Minute()に代わるJapanMonth,JapanDayOfWeek,JapanDay,JapanHour,JapanMinute
という変数を作ります。
※元の時間は関数ですが、これから作るのは変数なので()は不要になります。

<追記>—————————————————————-
現在はTimeGMT()というグリニッジ標準時の関数があるので、
これをもとに作成すると、簡単に作れます。

このTimeJapanが日本時間のUnixタイムになるので、
ここから日付や時間や分を取得するときには、

を使います。
———————————————————————–

まず変数を宣言します。EA全体で使うのでstaticで冒頭に宣言してください。

次にプラスする分の時間を宣言し、プラス分の時間を入れます。

サーバー時刻が標準時刻の場合日本時間は+7時間がほとんどですので、
この場合AddJapanHourという変数に7を代入します。

まずは、それぞれの変数にサーバー時刻の値を入れ、その後修正をかけます。

分が59を超えた場合は60を引き、時間を+1します。

時間が23を超えた場合、24を引きます。

足した分の時間と分が日付変更を超えた場合、
その日付に合わせて日付と曜日を加算します。

それぞれの月でMAXの日付が異なるので
月の最大の日付を超えた場合には日付を1にし、月を+1します。

これらをまとめて処理を行う1つの関数※にします。
※関数の作成についてはまだ行っていないので、それほど気にしないでください。

後はこの関数JapanTimeFunction()をOnTick,Start内に置けば完成です。これまで作ったコードに日本時間の月曜日以外にエントリーという条件を加えてまとめます。

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

関連記事

【MT5】MACD, ストキャスティクス, モメンタムEA(配布)

GBPUSD 2018/1/1~2018/12/31 H2 GBPUSD 2018/1/1

記事を読む

EAに自動的に最適化させる

どんなに優秀なEAでも、 ライブで稼働させる場合、定期的なパラメータの最適化が必要です。

記事を読む

【無料プレゼント】ストキャスティクス スイングEA

2018/1/1~2018/12/31 M5 EURCAD PF:10.99 勝率:82.46%

記事を読む

MT4のメールを複数アドレスに送るには

MT4が出すメールを複数のアドレスに送信したいときがあります。 ほとんどは"シグナルのメール通

記事を読む

意外と厄介なWebRequestのPOST

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

記事を読む

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

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽者がいるらしいのでご注意ください。
【MT4】H4, D1用EA(プレゼント企画)

EURUSD 2018/1/1~2018/12/31 D1

質問回答コラム

Q. 管理人さん自身はEAで運用しているのですか A.  して

【MT5】MACD, ストキャスティクス, モメンタムEA(配布)

GBPUSD 2018/1/1~2018/12/31 H2

【MT5】 3通貨相関アービトラージEA(無料プレゼント)

EUR, GBP, USD の3通貨の相関を利用したさや取りトレード

no image
仮想通貨対応マーチンゲールEA(無料配布)

USDJPY 2018/1/1~2018/12/31 Spread:

→もっと見る

PAGE TOP ↑