13日(月)朝、OANDAのMT4はエントリーが起こったのに、なぜか、JForexは反応がありませんでした。
なぜだ?なぜだ?
と考えいてたら、ずっと私の頭の中には、デューカスコピーはスイスの会社だから、サマータイムは「欧州」夏時間だよね。という頭があったのですが、正しくは「米国」夏時間なのでした(^-^;
というわけで、EET(東ヨーロッパ時間)の月曜0時~金曜日23時50分(週末ロスカット)を採用していたストラテジーが全く反応しなかったのは至極当然でございました。
時間の制御をEET(東ヨーロッパ時間)からAmerica/New_Yorkに切り替えました
JavaのZonedDateTimeはサマータイムを考慮してくれるみたいですが、EET(東ヨーロッパ時間)の場合、「欧州」夏時間になってしまいます。
ちょっとこれだとサマータイムが約2週間適用されない状態が生まれてしまいます。
よって「米国」夏時間が適用されるAmerica/New_York(ニューヨーク時間)に時間の制御を変えることにしました。
JForexプログラミング(週末ロスカット)
1 2 3 4 5 6 7 8 9 10 |
public int jikan(){ ZonedDateTime now = ZonedDateTime.now(ZoneId.of("America/New_York")); if((now.getDayOfWeek().getValue() < 5) || (now.getDayOfWeek().getValue() == 5 && now.getHour() < 16)||( now.getDayOfWeek().getValue() == 5 && now.getHour() == 16 && now.getMinute() < 50)||(now.getDayOfWeek().getValue() == 7 && now.getHour() > 16)){ return 1; } else { return 2; } } |
ニューヨーク時間の、日曜日17時以降から金曜日の16時50分までトレードを行うという設定をしました。
サマータイムは、JavaのZonedDateTimeで自動的に修正されるはずですから、この時間がデューカスコピージャパンのトレード時間となるはずです。
よってあとは、戻り値が1の時のみトレードをするようにして、2の時にポジションを持っている場合はロスカットするようにすれば、週末ロスカットができるはずです。
ただ週末ロスカットについては、賛否両論です。
大抵はバックテストした場合、週末ロスカットをしないようにした方が結果は良くなる場合が多いと思います。
ただ私の場合は週末にぐっすり眠りたいので(笑)、週末ロスカットを採用しているだけですね(^^♪
管理人オリジナルJForexツールが貰える!デュカースコピーキャンペーンについてはこちらから