*

【EA開発講座】第16回:EA内で時間をずらす

公開日: : EA開発講座 , , , , ,

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に公開されるので、問い合わせ等はメールでお願いします。

関連記事

【EA開発講座】第22回:チャート上にデータを表示させる

MT4のチャート上にデータを表示させる Comment()という関数を使うとビジュアルモードのバック

記事を読む

【EA開発講座】第3回:新規作成後に記述されているコードの意味

ここでは新規作成で現れた記述に対する解説を行います。 // と /**/ と コメントアウト プログ

記事を読む

【EA開発講座】第28回 EA・インジケータに利用者制限を付ける方法

EA・インジケータを第3者に渡すとき、何かしらの制限をかけておかないと、コピーされてしまう可能性があ

記事を読む

【EA開発講座】第0回:プログラミングの基本ルールと挫折しないための気構え

プログラミングを始めるにあたって大切なことは”諦めないこと”、”飽きないこと”な訳ですが、正直言って

記事を読む

【EA開発講座】第23回 MT4のチャート上にボタンを作る

(今回はちょっと応用なので、ここまでギリギリの方はスルーしてください。) 現在のMT4は結構いろい

記事を読む

 

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



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

    ご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    偽者(オリジナルある模倣者)がいるらしいのでご注意ください。
【MT4EA】半年で5万回以上トレードしても右肩上がりにできる証明(EA配布)

(ただし、スプレッドが狭ければ...) EURUSD

no image
(MT4EA)MACDと特殊ベッティング【EA検証班求ム】 

. . 超シンプルなMACDのEAです

MT4の1分足テストで起こる致命的な現象

1分足っていうのは他の時間枠といろいろ違う点があります。 まず、本題か

no image
【EA検証班募集】コツコツドカンとドローダウン(MT4) ~原理は単純を、構造は複雑を、人は最も人らしく~

EURGBP 2018.11.1~2019.4.30 D1 Sp

MT5のテスターではスプレッドは変更できないという事実

を知らない人が多くて、「このバックテストのスプレッドはいくつですか」と

→もっと見る

PAGE TOP ↑