FX

新しいFX自動売買プログラムの作成No2~負けトレードをいかに小さくするか~

新しいEA作成の続編です。

今回は負けトレードの際にいかに負けを小さくするかを考えました。

FXプログラムには、マーチンゲール法を使ったトレードというのがあります。
負けトレードが発生した場合、次のポジションは倍のロット量でポジションを持ちます。
同じ利確pipsで設定するのであれば、利益に走れば倍利益が出るという計算です。
倍々法ですから、1回目は2倍、2回目は4倍、3回目は8倍のトレードになります。
別に悪くはありませんが、これでは1回目のロット量は3連敗を考慮するのであれば1/8以下にしないと成り立ちません。
今私の作ったEAは、高速スキャルピングで、1pips~3pipsほどの差を吸い取るEAです。マイナスも1~3pips程度ですので、初期ロットは大きくしたいのです。
単発ポジションのみですから、保有証拠金の70%くらい投入しても、1~3pipsの負けですから、負けたとしても、最大で全体証拠金量の1%も負けません。
なので、追い上げ型のEAでは、初期ロットは抑える必要が出てくるため、コンセプトに合いません。
そこで今回はパーレー法と言われる逆マーチンゲールを採用しました。

パーレー法では、ロット量が完全に調整できない

つぎに問題になったのは、単純なパーレー法では制御しきれないことです。
例えば、3連勝したけどすべてが0.1pipsの勝ちでは、ロット量ばかりが減っていき、利益額も小さくなります。
もちろん半分・半分と、どんどんロット量が小さくなりますから、いずれ来るマイナストレードの際も損失額は小さく済みますが、それでは、勝も小さいのです。
パーレー法の考え方を維持したまま、勝ちのPips量に合わせてロット量を減らせる方法はないか考えました。
勝ちPips分のロット量を減らす計算
単純に割る2とするのではなく初期ロット量÷(初期1+勝pips量)としました。
これなら、買った分のpips分しか減量しませんので、勝に合わせたロット減量が実現できました。

負けロットも単純に加算(マイナス加算)していくことで、負けトレード直後も初期ロットに戻さず負けた分を勝ちから引いてロット量を決める仕組みにしました。
負けの量が価値の量を超えた場合は初期設定に戻します。
この仕組みであれば、初回勝ちトレードの場合に、負けトレードが発生するまでの間にトレードをしているロット量が負けトレードより多いことになるので、初回勝ちが初回負けより3倍以上あれば理論上は負けないEAになります。
また、当EAはトレードの勝率は90%以上です。
なので、初回負けは、初回勝ちの1/10という計算です。

勝ちも負けも小さいので波が激しい

例えば、10lotが初期ロットだとします。
1回目1pipの勝ちなら初期1+1pipsで、次は10lot/2で、5lotです。
次も連勝して1pipsの勝ちなら、その次のlotは、2.5lotです。

原則1pip以上で決済条件が複雑になる仕組みを作っていますので、1pip前後の勝ちトレードが増えます。
負けの方は3pips以降で複雑な決済条件があります。
なので、勝トレードの積み上げは小さく、負けトレードの大きくなります。論理的には何ら問題はないのですが、少し波が大きくてグラフにするとがたがたするイメージと言えばいいでしょうか。
ちょっと納得ができないところが残りました。

平方根でマイルド減量

÷2pips÷5pipsというのがダメだと思いました。
なので、平方根を使うことにしました。
これであれば勝ちpipsが9pipsで、割る3です。
減量は少しマイルドになります。
もちろん減量はマイルドなので、損失トレードの際も、上記より多めのロット数量にはなりますが、その前のプラストレードの利益も大きくなりますので、右肩上がりのグラフは先述より大きくなります。
これで、利益も損失も大体計算通りになります。

インジケータを利用する

前記事では、インジケータを一切使っていなかったのですが、ボリンジャーバンドを採用しました。
これは、トレンドだけではなく、今現在の、現通貨ペアの値動きをチェックするためです。
市場全体で見たとき、現トレード対象の通貨ペアがほかの通貨ペアから見て少し高めの値付け(要は売りを入れたら差分がとれそうだとして)だったとしても、実際の通貨ペアでも、ここ最近の脚では底であれば、上げながら差分を戻していく可能性が大いにあります。
なので、小さなボリンジャーでテン底を把握しながら、天井にいるときは下落傾向のトレンドに、そこにいるときは上昇傾向のトレンドと合致した場合にポジションを持つようにしました。
これを入れることでトレードタイミングも大幅に減ると予想されますが、もともと、少し多すぎると思っていたところでもありましたので、トレード数もちょうどよくなりました。
それでも、1日にすると、100回以上はトレードを行いますので、悪くはありません。

Return Top