机上の空論では面白くない
先週の記事ではコイントスやサイコロを例に
確率論とFXについてお伝えしました。
私自身はこのような話はとても興味深く
その本質を突き詰めていくことが好きなのですが
机上の空論になってしまっては本末転倒です。
そこで、確率論や優位性を実際のロジックに
どのように落とし込んでいるのか、という具体的な作業内容をお伝えしますね。
昨日、動画はアップしていますが
つい熱くなって30分ほどの長話になってしまいました^ ^
今日は、その内容をまとめてみます。
勝率50%超えでプラス損益を継続するロジック
今回のロジックのテーマは、「 コイントスよりも少しだけ優位性を高くする 」ことを目指します。
つまり、勝率50%より上を目指すということになります。
ロジックのエントリータイミングに使うのは押し目買い戻り売り(プルバック)になります。
このロジックであれば、相場では一般的に数十年も優位性を保っている、
と考えられます。
多くの人が意識しているエントリータイミングなので、
その人たちについていけば、勝率50%を超えていけると考えました。
次に考えたのはリスクリワードです。
負けた時の損失と、勝った時の利益の比率です。
勝率が50%を超えていれば、リスクリワードが 1:1 でも
結果はぎりぎりプラスになります。
まず、そこをクリアしたいと考えました。
ただ、取引コストにはスプレッドと手数料(ILC口座の場合)がかかります。
スプレッドコストは、買いエントリーの場合は、エントリー時に、
売りエントリーの場合は、決済時にそれぞれ支払うことになりますので
リミットとストップの値を同じpips数にしても問題ありません。
ただ、手数料(ILC口座)はトレードごとに別途費用としてかかってくるので
リスクリワードが 1:1 で勝率がジャスト50%の場合は
手数料分マイナスになります。
そこで、リスクリワードは 1:1.1 としました。
獲得pips数にもよりますが、
リミットを1割多くしておけば、ほぼ手数料分をまかなえます。
文章で書くだけでは分かりづらいので
チャートに落とし込んでみます。
フィボナッチリトレースメントのラインを使って、
エントリーレート、ストップレート、リミットレートを表示しました。
リスクリワードは 1:1.1 で表示しています。
これはショートエントリーの場面なので、戻り売りのタイミングです。
このチャートを見ると、
「 こんなに早く利確しないで、もっと利益が伸ばせばいいのに!
もったいない!」
と思われるかもしれません。
「 ところがどっこい(笑) 」
このロジックでは一度のトレードで利益を伸ばすことを考えません。
応用編としては、半分決済で残りを伸ばす、ということをやってもいいのですが
それをやると、確率論を使ったロジックとしては
計算が成り立たなくなりますので、ここでは考えません。
ひたすらリスクリワード 1:1.1 で
エントリーを繰り返します。
勝率を上げるためにフィルターを搭載する
ロジックを作る時には、まず、基本の機能を搭載してインジケーターを作ります。
その動きを見ながら、
「 ここでは裁量ではエントリーしないなあ 」
といったところをフィルターで削っていく作業に入ります。
今回は、プルバックと相反するタイミングでサインが出るダイバージェンスを
フィルターとして採用することを考えました。
ダイバージェンスというのは、
ローソク足の高値は更新して上昇しているのに
オシレーター系のインジケーターの高値の山は、直前の山よりも下がっている状況です。
トレンドの勢いが弱くなって、そろそろ反転が近いサインと言えます。
プルバックとダイバージェンスの特徴をわかりやすく書くと
こうなります。
● プルバックロジック
・トレンド中は優位性が高い
・トレンド終了付近では負ける確率が高い
● ダイバージェンスロジック
・トレンド終了付近で優位性が高い
・トレンド中は負ける確率が高い
全く逆の性質だということがわかります。
そこで、ダイバージェンスのサインが出たら
その後のローソク足数本は
プルバックのエントリーをしないようにフィルターをかければ
無駄な負けエントリーを減らすことが出来ると考えました。
ただ、このフィルター機能を使ってみると、
ダイバージェンスをフィルターで使うのではなくて
エントリーサインとして使うともっと面白い、
ということに気が付きました。
エントリーポジションは常に1つ以上持たないようにすれば、
ダイバージェンスエントリーでポジションを持っている間は
プルバックロジックのエントリータイミングになっても
ポジションを持つことができないので
フィルターの役割も果たしてくれますよね。
それでバックテストを行った結果が下記になります。
今年の6月1日~15日までを検証してみました。
この段階では、まだEAはできていないので
インジケーターでサインを表示させて
地道にチャートで勝敗を拾っていきます。
ちょっと小さくて分かりづらいかと思いますので
勝敗の合計部分だけ拡大しますね。
一番左が、プルバックとダイバージェンスでエントリーした結果で
21勝26敗で勝率は44.7%でした。
これでは目標の勝率50%超えを達成できていません。
次に、真ん中の結果はフィルターを使った場合で
18勝16敗で勝率52.9%でした。
なんとか目標達成です。
そして、右端の結果。
さらにフィルターをかけました。
16勝8敗で勝率66.7%。
これは非常に出来すぎなので
長期間でデータを取ると50%台まで落ちてくると思いますが
とてもいいですよね。
ちなみに、上のエクセルファイルで、四角の空欄があります。
これは、フィルターをかけることでエントリーサインが出なくなったところです。
当然、エントリー回数は減ってきますが
それにともなって勝率が上がっているので
負けエントリーを減らしていることがわかります。
( 四角の中に緑色で数字が入っているところは、フィルターをかけることで
逆にエントリーして勝った結果です)
ここまでの結果のまとめと今後のアプローチ
・勝率50%を超えるロジックが見えてきた
・リスクリワード 1:1.1 で損失%でロット計算を行う複利を使えば
獲得pips数に関係なく利益を伸ばせる可能性が見えてきた
・インジケーター機能はほぼ完成したので
RangeBreak_EAにエントリー機能を搭載してバックテストを行う
・EAのバックテストで勝率が安定していれば資金管理ロジックをEAに搭載
このインジケーターに確率論の考えを取り入れた段階で
ダランベールや限定マーチンの資金管理ロジック
を搭載することを意識して、これまで進めてきました。
そのためには連敗数を少なくする必要があります。
その面でも、プルバックとダイバージェンスという
2つのロジックをエントリー機能に取り入れたのは
いい影響が出ているように感じています。
フィルターをかける前でも、この期間の最大連敗数は2に抑えられていて
フィルターをかけることで連敗がなくなっていることがわかります。
この、連敗についてもEAでのバックテストの検証が必要です。
そこで、使える見込みが見えてきたら資金管理ロジックを搭載してみます。
引き続き楽しみながらロジックを作っていきますね。