*

(MQL4)EA内で時間をずらすやり方(日本時間) [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です。

 

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

Message

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

CAPTCHA


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

関連記事

テクニカル指標(RSI)を使ったEAの作り方[EA自作]

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

記事を読む

とある両建てロジックのEA検証(コードあり)

今回はちょっとしたシンプルな実験を行います。 お題は両建てです。 ポジションが0の場合SLTP付

記事を読む

[ソースコード開示]たった30行のコードでも右肩上がりにすることはできるのさ(MT4EA)

バックテスト結果   ソースコードはこちら 33行あるやんけ...

記事を読む

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

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

記事を読む

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

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

記事を読む

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

     


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

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

Translate »
ページトップへ