本日のポジポジ病口座成績です。
方向性はあっていたんですが、さっさとイクジットしたお陰で大きな波を取りそこねてしまいましたね。
いや、まあもともとデイトレ目的で入ったのでいいといえばいいのですが、なんだろうこの微妙な悔しさはw
ポジポジ病口座のコンセプトはこちらをご覧ください。
ということで、結果です。
【結果】
・USD/JPY:+17.2pips(+860円)(取引回数1回)
方向的にはロングかなーと思って入ったのですが、想像以上に跳ねてしまいましたね。
次はどうしていきますかね。。。
以上です。
2015年05月27日
2015年05月26日
MT4でOnTimer()関数のバックテストをする方法
今、私はOnTimer()関数を用いたEAを作成中です。
OnTick()はあくまでティックベースで動くので、ここで売買判定を行うようなプログラムにしておくと、業者によってはエントリー・イクジット判断が10秒単位で遅れてしまう可能性があります。
それに比べ、OnTimer()関数は秒単位で動きを定義できるので、業者に依存しない安定した売買ができます(できると思います)。
ということで便利なこのOnTimer()関数なのですが、EAを作っていて大きな問題に直面してしまいました。
なんと・・・OnTimer()関数はバックテストで一切通らないのです!!
つまり、OnTimer()関数内に売買ロジックを入れ込んでいるようなEAでバックテストを行おうとしても、一切取引が行われずにバックテストが終了してしまうのです。。。
なんてこった・・・バックテストできないEAなどとても運用できないではないか!!
ということで、なんとかOnTimer()でバックテスト出来る方法を考えました。
あまりにも苦肉ですが、よかったら参考にしてみてください。
「#define DEBUG」というおまじないをコードの先頭に置き、あとは以下のコードを、OnInit()の前に置きます。
おしまいに、OnTick()関数内に以下のコードを入れます。
はい、こうすると擬似的にOnTimer()を表現できます。
ただ、3点注意する必要があります。
・バックテストは必ず「全ティック」で動かす必要があります。
そうしないと、秒単位の判定ロジックがバックテスト上ではまったくうまく動かなくなります。
・バックテストはこれでいいのですが、実際に動かす場合は「#define DEBUG」のおまじないは必ず削除するようにしてください。そうしないと、2重でロジックが動いてしまうことになります。
・このやり方だと、OnTimer()を正確には再現できません(30分の間隔を開けようとしても、バックテスト上は40分位の間隔になってしまう)。
これはバックテストのTickが飛んでいることが原因と思われますが、この辺りで若干リアルとの差分が出てくる可能性があります。
もし分単位以上の売買ロジックであれば、上記コードのSeconds()をMinute()にして分単位にしてあげたほうが安定するかもしれません。ロジックによって使い分けてください。
ということで、以上です。
OnTick()関数のバックテストで困っている方は是非参考にしてみてください。
#他にいい方法があれば、ぜひ教えて下さい。。。
OnTick()はあくまでティックベースで動くので、ここで売買判定を行うようなプログラムにしておくと、業者によってはエントリー・イクジット判断が10秒単位で遅れてしまう可能性があります。
それに比べ、OnTimer()関数は秒単位で動きを定義できるので、業者に依存しない安定した売買ができます(できると思います)。
ということで便利なこのOnTimer()関数なのですが、EAを作っていて大きな問題に直面してしまいました。
なんと・・・OnTimer()関数はバックテストで一切通らないのです!!
つまり、OnTimer()関数内に売買ロジックを入れ込んでいるようなEAでバックテストを行おうとしても、一切取引が行われずにバックテストが終了してしまうのです。。。
なんてこった・・・バックテストできないEAなどとても運用できないではないか!!
ということで、なんとかOnTimer()でバックテスト出来る方法を考えました。
あまりにも苦肉ですが、よかったら参考にしてみてください。
「#define DEBUG」というおまじないをコードの先頭に置き、あとは以下のコードを、OnInit()の前に置きます。
//バックテスト用
#ifdef DEBUG
int prevsec;
int BScnt = 0;
bool ForBackTest(int Timerseconds)
{
if (Seconds() != prevsec) BScnt ++;
prevsec = Seconds();
if (BScnt >= Timerseconds){
BScnt = 0;
return(true);
}
return(false);
}
#endif
おしまいに、OnTick()関数内に以下のコードを入れます。
void OnTick()
{
//---
//バックテスト用
#ifdef DEBUG
if (ForBackTest([OnTimerで設定している秒数])) OnTimer();
#endif
}
はい、こうすると擬似的にOnTimer()を表現できます。
ただ、3点注意する必要があります。
・バックテストは必ず「全ティック」で動かす必要があります。
そうしないと、秒単位の判定ロジックがバックテスト上ではまったくうまく動かなくなります。
・バックテストはこれでいいのですが、実際に動かす場合は「#define DEBUG」のおまじないは必ず削除するようにしてください。そうしないと、2重でロジックが動いてしまうことになります。
・このやり方だと、OnTimer()を正確には再現できません(30分の間隔を開けようとしても、バックテスト上は40分位の間隔になってしまう)。
これはバックテストのTickが飛んでいることが原因と思われますが、この辺りで若干リアルとの差分が出てくる可能性があります。
もし分単位以上の売買ロジックであれば、上記コードのSeconds()をMinute()にして分単位にしてあげたほうが安定するかもしれません。ロジックによって使い分けてください。
ということで、以上です。
OnTick()関数のバックテストで困っている方は是非参考にしてみてください。
#他にいい方法があれば、ぜひ教えて下さい。。。
2015年05月23日
今週のトラリピ成績と損益推移(2015/5/23時点)
今週のトラリピ成績更新です。
今週積み重なった利益は、4,817円でした。
トルコが土俵際で踏ん張ってくれているおかげで、なんとかいい感じの成績が維持できています。
週足の21EMA、20SMAを超えきれてないところで来週に不安はありますが。。。
------
と、いうわけで今週の成績です。
まず、オアンダジャパン統一後の原資とトラップ内容は以下のとおりです。
新しいトラリピのトラップ設定について
現在の保持ポジションと決済状況は以下のとおりです。

もう少し積み上げがほしいところですが・・・トラリピは本当に欲張るといけないのです。
このペースであと1年位は安定して積み上げていきたところです。
-----
トラリピ的なロジックで取引を行うEAを超廉価版にて(2,480円!)FX-ON様で出品させて頂いております。
良かったら見ていってください。
おなじみの買い下がりトレード手法のEAを、お手頃価格でご提供します

-----
今週は以上です。
今週積み重なった利益は、4,817円でした。
トルコが土俵際で踏ん張ってくれているおかげで、なんとかいい感じの成績が維持できています。
週足の21EMA、20SMAを超えきれてないところで来週に不安はありますが。。。
------
と、いうわけで今週の成績です。
まず、オアンダジャパン統一後の原資とトラップ内容は以下のとおりです。
新しいトラリピのトラップ設定について
現在の保持ポジションと決済状況は以下のとおりです。

もう少し積み上げがほしいところですが・・・トラリピは本当に欲張るといけないのです。
このペースであと1年位は安定して積み上げていきたところです。
-----
トラリピ的なロジックで取引を行うEAを超廉価版にて(2,480円!)FX-ON様で出品させて頂いております。
良かったら見ていってください。
おなじみの買い下がりトレード手法のEAを、お手頃価格でご提供します

-----
今週は以上です。