デイトレードのテンプレEAを作りつつの更新
MQL5にはTimeDaylightSavings()って夏時間の補正を返す関数があるんだけど、
一見便利そうじゃん、俺も思ったわけこれはいいじゃんって。
でもこれPCのタイムゾーンを参照するから日本に住んでる奴の大半が補正無しって出ちゃうの、バックテストじゃ動かねえし
こういうの多すぎだろMQ社よ、馬鹿が。
怒りに任せて書き殴れってことか↓
4月と10月は問答無用で夏時間として
追記:3月までと11月からのboolにfalseが入っていない
詳しくは一番下のコードの中身を見てください、ほかにもいろいろ変わってるので。
3月の2週からの判定が69行目から3月1日が何曜日か分かれば2週目の判定ができますday_of_weekを使って8から引いてやってそれより大きかったら2週目で夏時間。
日曜日だけちょっと1週ずれるけどまあ日曜日は相場が開いてないので無視。
11月は逆に小さかったら1週目で夏時間適用。
そしていろいろ書いてる間にわかった
オフセットの意味を勘違いしていて修正
TimeTradeServer()で管理するんだから夏時間とOFFSETが関係するのが逆なんだよね。CP-CLで管理するのは単純にOPとCLに時間を入れればいいだけだったて言う。
よく考えたらちゃうな、GMTの時間でOPとCLだからNewYorkだと常に11か
OFFSET分引いておかないとダメだ。
差し替えるまでそのままなんで後で直します。
差し替えた
そしてTokyoとGMToffsetが
もうちょっと綺麗に書けそうな気がするんだけど
どこなおすか今のところ思いつかないね。まあちゃんと動いてるっぽいしいいだろ。
一応MQL4に戻しやすいようにやりつつだし、んーめんどかった。
しかしタイム関連の関数はローカル参照するのが多すぎて使いもんにならんよな、
MQL4に落とすときに相互性がちょっとないし。
MQL5でかけるけど実際採用された時両建てできないのはつらすぎるし
困ったもんだぜ。
ということで今回のEAのサンプル
まじめにデイトレードやりたい人は持って行って。
追記:間違っているので後で差し替える。
さらに追記:差し替え済み
眠い | DTEA.zip ダウンロード | uploader.jp
仕様(パラメータ)の説明
SaP_Modeは先行指標の区切りをどこにするか
dayperiodは取引する一日の区切り(サインがでてポジションを保持する期間)
G_Offsetは業者の夏時間を考慮しないタイムゾーンを入れる。
1H足以外では動かないのでそれ以外で使いたいなら工夫してね
2割ほど書き換えたら多分なおせるでしょ。
まあそんなとこかな、ちゃお。
追記:色使ってホワイトボードに図を書きなぐると修正が早かった、これからもブログにお絵かきするのは有用かもしれない。