EAが実運用始まって1か月。取り合えず、プラスで終わって安心していたら、
1時間足のロジックなのに終値決定のタイミング以外でエントリーしている問題が、
再発。
今回そのせいで大幅にマイナスになったので修正せざるを得なくなった。
基本的には、ローソク足の切り替わりでエントリーする構造。
void OnTick() {
liquidation();
//---
/*
static datetime time_h1 = iTime(_Symbol, PERIOD_H1, 0);
if(iTime(_Symbol, PERIOD_H1, 0) != time_h1) {
main();
time_h1 = iTime(_Symbol, PERIOD_H1, 0);
}
*/
static int bars_total = iBars(NULL, 0);
if(iBars(NULL, 0) != bars_total) {
main();
bars_total = iBars(NULL, 0);
}
}
上にあるコメントアウトでも同様の動きだったためもう少し違うアプローチをとる必要がある。
ここらへんかと思ったけれども、VPSの問題なのかもしれない。
00分にしか動作しないようにしてみようか。
datetime dt = TimeCurrent();
MqlDateTime tm;
TimeToStruct(dt,tm);
int Minute = tm.min;
とやって
エントリーロジックに
&& Minute == 0
を追加。
取り合えず、17分とか59分とかにはエントリーしなさそう。
なんかもう少しましな方法ないかなあ。