*

(MQL4)EA内で時間をずらすやり方(日本時間) [EA自作]

Originally posted 2019-01-17 19:26:53.

EAの演算時刻をずらす方法

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

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

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

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

 

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

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

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

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

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

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

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

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

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

後はこの関数JapanTimeFunction()をOnTick,Start内に置けば完成です。

 

【追記】

その後新しい関数が追加されたことにより、より簡単で汎用性がある記述が可能になりました。

新しく追加された関数TimeGMT()

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

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

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

TimeGMT()が新しい関数です。GMTのdatetimeの時刻を返します。日本はGMT+9時間なので、ここから起算すれば簡単に日本時刻を作ることができます。

GMTの時刻に9時間分の秒数を足します。

あとは、datetime型からそれぞれの時間に変換する関数(TimeDay()とかTImeMonth()とか)を使います。

 

あとはstaticでそれぞれの変数を宣言して、全体を関数化すればOKです。

 

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

Message

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

CAPTCHA


関連記事

(MQL4)MT4のチャート上にボタンを作るやり方[EA自作]

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

記事を読む

入門者のEA自作のための作り方講座(MQL4/MT4)

プログラミング初心者の方が初めてでもEAを開発できるように解説したページです。このページの内容をマス

記事を読む

MT4の”本当の”スプレッドを表示する(チェックソフト配布)

トレードでは基本的にスプレッドが手数料として上乗せされています。通常であればBid=Close(終値

記事を読む

ロウソク足パターンのEAを作る~3回連続で陽線になったら買い~[EA自作]

ロウソク足の記述方法 ロウソク足がどうなっているかを知るためにはロウソク足のデータを取得する関数・

記事を読む

[MT4]EAに口座縛り/期間限定縛りをかける種類と方法(MT5)

良いEAができると、クレクレ厨がよってきますが、身内の人にならひっそりと配布したい場合もあります。

記事を読む

 
  • fxfx.work

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

     


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

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

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

Translate »
ページトップへ