どうも、FXトレーダー兼システムエンジニアのナオトです。
20の時間足の水平線を1枚のチャートに引く、e-LineTraderPro2 を作り直したときの話をもう1つ書きます。
前回はM2の線を消すと週足の線まで消えた件でした。今回は、東京、ロンドン、ニューヨークの3つの市場の時間帯を、四角で表示する部分です。
市場の時間帯をチャートに描くには、サーバーの時刻と、各市場の現地の時刻を、行き来させる必要があります。
そこで面倒なのがサマータイムです。
ロンドンとニューヨークは、夏の間だけ時計を1時間進めます。多くの業者のサーバーの時刻も、アメリカのサマータイムに合わせて1時間動きます。
古い版では、サマータイムの始まりと終わりの日付を、入力で持っていました。
その既定の値が、2025年の日付で固定されていたんです。
2025年のうちは、正しく動きます。
ところが年が変われば、日付は2025年のままです。2026年の夏は、何もしなくても、四角が1時間ずれる形になっていました。
入力を毎年書き換えれば合いますが、使う人がそれを毎年覚えておくのは難しいことです。
直し方は、日付を持たずに、決まりから毎年求めることでした。
アメリカは、3月の第2日曜から11月の第1日曜まで。
イギリスは、3月の最後の日曜から10月の最後の日曜まで。
その年の、何月の何番目の日曜日かを計算する関数を1つ作り、どちらもそこから求めます。入力の欄は消しました。
ここで気をつけたのが、アメリカとイギリスで、切り替わる日が違うことです。
3月は、アメリカが先に夏の時間に入り、イギリスは2週間から3週間あとです。秋も、イギリスが先に冬の時間に戻ります。
その間は、ロンドンとニューヨークの時差が、ふだんと1時間違います。
市場ごとに別々に判定するようにして、この数週間も、それぞれの現地の時刻で四角を描くようにしました。
あわせて、時刻の計算を、サーバーの時刻、世界標準時、現地の時刻、の順に通す形に整理しました。
古い版では、パソコンの時計とサーバーの時刻の差の扱いにも、ずれが残っていました。間に世界標準時を1つ挟むと、どこでずれたかを追いやすくなります。
今年の値で動くものは、来年も動くかを確かめる必要があります。
日付や年を入力や定数で持っていたら、それは来年の不具合の種かもしれません。
インジケーターやEAの点検と作り直しのご依頼も受けています。
最後までお読みいただき、ありがとうございました。