MQL4でサマータイムを計算する方法を考えるのをやめた

さらに強いEAを作るのに時間で制御するEAを作ることになるんだけど、MT4はサマータイムという仕様があって例えば、日本時間の8月の9時55分が仲値の時刻です。その時のMT4のGMT+3なので3時55分です。同じ3時55分で12月に仲値かというと1時間ズレて10時55分になります。開発を進めるとちょっとしたハードルになると思います。

去年の今頃は色々ググって実装してみたけど今はChatgptがあるので一発で出せます。

ホソノ

MQL4で夏時間ならtrueを返却する関数を作ってください。 アメリカの夏時間は3月第二日曜日から、11月の第一日曜日までです。

この関数は、現在の日時を取得し、アメリカの夏時間の期間にあるかどうかを判定しています。monthが3から11の間である場合、夏時間の期間内である可能性があります。そのため、monthが3より大きくかつ11より小さい場合は、夏時間であると判断してtrueを返します。

monthが3または11である場合は、それぞれ夏時間が始まる日と夏時間が終わる日を計算し、現在の日付がその範囲内にあるかどうかを判定します。その結果に応じてtrueまたはfalseを返します。

注意点として、この関数は地域によって異なる夏時間のルールには対応していません。アメリカの夏時間のルールに従っているため、他の地域で使用する場合は適切に変更する必要があります。

Chatgpt

こんな感じで一発で出せました。ただこれだと、TimeLocal()を使っているのでPCの時間を取得しているんだよね。

なのでこれを

ホソノ

バックテストで使えるようにするには?

上記のisDST()関数をバックテストで使用する場合、現在の日時ではなく過去の日時を取得する必要があります。

バックテスト中に現在の日時を取得するには、TimeCurrent()関数を使用します。また、テスト中であることを確認するには、IsTesting()関数を使用します。

以下は、バックテスト中に過去の日時を取得して夏時間の期間を判定するisDST()関数の例です。

Chatgpt

あとはこれを使って気に入らなければChatgptに書いてもらうを繰り返すことでいつの間にかEAが完成しているのである(おわり)

noteでマガジンを始めました。

  • 完全版ゴトー日EA
  • 完全版朝スキャEA
  • ユロドルアノマリーEA
  • 月末アノマリーEA
  • ポンドルアノマリーEA
  • ブレイクアウトEA
  • 完全版RSI逆張りEA
  • Web認証システム

ソースコード付きです。

ホソノP自作EA

Gotobi Teriyaki
19,800円
設置が簡単♪ゴトー日のEA
  • ゴトー日のEAです

もうやってるよね? タリタリの自己アフィリエイト

海外FXキャッシュバック口座開設ならTariTali(タリタリ)
海外業者にはキャッシュバック必須です。タリタリを使うと自己キャッシュバックが受け取り可能に。IB乗り換えもOK。
\スプレッドの40%が戻ってくる /
ドル円1LOT約400円キャッシュバック
  • -
    コピー

この記事を書いた人

最近のコメント

  1. アバター
  2. アバター
  3. アバター
  4. アバター
  5. アバター