だましで切られるのが続いたので、上位足のトレンドの向きを条件に足した。ついでに、値動きの薄い時間帯も外した。狙いどおり、要らないエントリーは減った気がする。ところが今月に入ってから、一本も入っていない。
バックテストを回してみると、去年一年で七回だった。これでは成績が良いのか悪いのかも判断できない。数が足りないと、勝率も最大の落ち込みも、たまたまの一言で説明がついてしまう。条件を厳しくしたことで、確かめる手段のほうを失っている。
フィルタを足したら入らなくなった、という話は珍しくない。そして原因は、どれか一つの条件が壊れていることよりも、条件同士の掛け合わせにあることが多い。どの条件でいくつ落ちているかを、見つける手順から書く。
「入れない」のか「まだ来ていない」のか
最初に分けるのはここだ。入らない理由には二種類ある。条件の組み合わせが実質成立しなくなっている状態と、成立はしうるがその相場がまだ来ていない状態。この二つは打つ手がまったく違う。前者は作りを直す話で、後者は待つか、狙う相場そのものを見直す話になる。
分け方は、期間を延ばすことだ。設定はそのままで、数年ぶんのデータに広げて件数を見る。数年回して一本も出ないなら、条件の側の話になる。数十本出るなら条件は成立しうるので、直近に来ていないだけという線が残る。
実運用のログを眺めていても、この切り分けはできない。出ていないという事実しか残らないからだ。判定が何回走って、そのうち何回が条件を通ったのか。数えるための仕掛けが先に要る。エントリーの有無だけを見ている限り、原因のある場所には近づけない。
フィルタは足し算ではなく掛け算になる
条件を一つ足すとき、体感では「少し厳しくなる」くらいに思える。実際に起きているのは割り算だ。半分の時間で成立する条件を三つ重ねれば、三つが同時に揃うのは八回に一回まで落ちる。二つ目で減った量より三つ目で減る量は小さく見えるが、割合としては同じだけ削っている。
そして現実の条件は、半分よりずっと狭いことが多い。向きが三回に一回、時間帯が四分の一、値幅の下限が二回に一回。この三つを重ねると、三つ足しただけで二十四分の一になる。どれも単体では、そこまで厳しい条件には見えないはずだ。
しかもこれは、元のエントリー条件を通ったものに対しての割合だ。元の合図が月に二十回だったなら、残るのは月に一回に満たない。減り方が急に見えるのは、感覚が足し算で、起きていることが掛け算だからである。
どの条件で何回落ちたかを数える
条件を並べて「どれか一つでも外れたら見送る」と書いていると、見送った理由が残らない。落ちた場所を残していないものは、後から数えようがない。まずここを直すところから始める。数えられる形にしていない限り、この先はすべて感覚の話になってしまう。
判定の中で、どの条件で抜けたかを一つの値として持ち、ログに書き出す。あとは条件ごとに件数を集計するだけでいい。数える仕掛けを入れる作業自体は、たいてい短く済む。判定の場所はすでにあるので、抜ける直前に一行足すだけの話になる。
出す数字は二種類ある。一つは、上から順に評価していって、その条件で落とした件数。もう一つは、その条件だけを外したときに何本増えるか。効き目として読むべきは後者のほうだ。前者は落ちた場所の分布で、後者はその条件が実際に削っている量になる。
前者は書いた順番に左右される。上に書いた条件ほど件数が大きく出るので、並びを入れ替えると数字も変わる。これをそのまま効き目と読むと、外す条件を選び間違えることになる。順番を変えて二度数えてみると、この癖はすぐに見えてくる。
同じことを二度聞いていないか
移動平均の向きと、別のトレンド系の指標。名前は違っても、中身は近い計算をしていることがある。両方を条件にしても絞り込みはほとんど増えないのに、片方がわずかにずれた瞬間に見送りになる。同じ材料を二度使っているだけなので、増えるのは厳しさではなく、揃わない機会のほうだ。
絞り込みは増えないのに、止まる回数だけが増えるのがこの状態だ。見分けるのは難しくない。二つの条件が同時に成立した回数と、片方だけ成立した回数を数えて比べればいい。ほとんど一致するなら、同じことを二度聞いている。
逆に、性質の違う条件同士であれば、揃う回数は掛け算どおりに落ちる。こちらは重複ではなく、狙って絞れている状態だ。同じ「入らない」でも中身がまるで違うので、外すかどうかの判断もそこで分かれる。重なっているほうは、片方を消しても件数はほとんど戻らない。
月で区切って数え直す
年間の合計だけを見ていると、条件が厳しいのか、相場が来なかったのかが混ざったままになる。七本のうち五本が一月に固まっていて、残りの月が空なら、それは条件よりも相場の話に近い。全体をならした数字は、この偏りを見えなくしてしまう。
ここで効くのが、集計した数ではなく一件ずつの記録を残しておくことだ。判定の日時と落ちた条件を一行ずつ残しておけば、月でも週でも曜日でも、後から何度でも切り直せる。月ごとの合計しか持っていないと、この切り直しができない。
入れた理由を説明できない条件は、効いているかどうかも確かめられない。
外す順番は、件数の多い順ではない
数字が出ると、いちばん落としている条件から外したくなる。だがそれは、いちばんよく効いている条件を先に捨てることにもなりうる。順番を決める基準は、件数ではない。落とした量は、効いている証拠にも、絞りすぎの証拠にもなる。
入れた理由を説明できないものから外す。あの週にだましが多かったから足した、という条件は、根拠が特定の場面に紐づいている。他の期間で何をしているのかを、まだ誰も確かめていない。説明できる条件なら、外したときに何が起きるかも予想がつく。
外すときは一つずつにする。二つ同時に戻すと、どちらが効いたのか分からなくなるからだ。それと、消す前に緩めるほうを先に試したい。期間や閾値を一段緩めるだけで件数が戻ることもあり、条件そのものは残せる。
当方は元金融系のシステムエンジニアで、テクニカル指標を使ったMT5のEAの制作と改修をココナラでお受けしています。条件ごとの件数を出す仕掛けを入れるところからでも、ルールを整理し直して組み直す形でも構いません。いま使っている条件を箇条書きにしたものを添えて、ココナラのメッセージからご相談ください。なお、お渡しするのはソフトウェアであって、投資助言や運用の代行ではありません。