例外・・・

データの例外をどうるすか、ちょっと悩み中。利益目標100%、ストップロス−10%、期間ストップ100日。トレース取って100日をオーバーするケースのバグ(ストップロスレベルの設定を、仕掛ける前日の終値ベースで計算して仮の値にしていたんだけど、仕掛けた日の引け後に、買(売)った時の価格ベースに再計算するロジックを入れた。この時'='を比較演算子のつもりで使うという第一級の初心者ミスが発覚orz)をつぶしたんだけど、100%と−10%の範囲を超過するケースが残る。範囲内で終わるやつはシミュレーション期間の終了でケリがついたけど、それ以外のものがあって、その原因が指値手仕舞いの範囲を超えた値段がついた場合に、当日は100%、−10%の指値手仕舞いできずに翌日の指値−不成引けの手仕舞いモードになった時の誤差らしい。
んー、これはしょーがないのかなー。実際の運用でも、通常は利益目標とストップロスのW指値入れるしかないし。
ということで、BUGFIX後の結果でグラフを作り直してみる。



MAEとCTDのグラフ。バグをつぶした効果でCTDがプラスの領域で、MAEが-10%を超えているものがほぼ消えた。全体的にヘンなばらつきが消えて各種のストップが値を寄せる=標準偏差を縮小させるのに寄与しているのがわかる。
しかし、これじゃMAEレベルのスケールが大きすぎてわけがわからないな。MAEレベルのスケールを変更してみよう。


MAE-10%未満の尻尾のような領域はストップロスの指値の範囲を超えて下落してしまったトレードだ。こいつらを何とかしたいわけだけど、気づいた時にはもうどうしようもなくなっている・・・ 翌日に元値の指値−不成引けを入れるのがせめてもの抵抗だ。これを切り取るには下落が起こる前日に手仕舞するしかない(ということは前々日には判断できていないといけない)。「明後日は指値の範囲を超えて値が動くから明日は手仕舞いしようっと♪」 できるかボケwww

可能性があるとすれば

  • 利益目標のレベルを下げる事ですくい取る。下がったレベルよりも上の利益とトレードオフ
  • ETDレベルによるストップを導入することで、ストップロスレベルにまで下落する前に手仕舞いする。

この二つか。実装がカンタンなのは利益目標レベルの修正だけど・・・ ETDレベルによるストップは利益目標を下げるよりも有効そうに思える。このストップでより多くの利益が得られたはずのトレードを救えるかもしれない。
これを確かめる為に、ETDとCTDの関係を見てみよう。


ETDによるストップを行っていないので拡散してしまっている。MAE=ETDのケースは、ETDのストップを導入しても指値の範囲を超えた下落を救うことはできないけど、一旦上がったあと、ドスっと下がったやつは救える。「一旦上がった」ヤツはどれぐらいあるんだろう? それにはMFEとETDの関係を見れば分かるじゃないか!


んーと。例えばETDレベルが-50%以下の領域にあるやつでもMFEが40%以上のものがある。ETDストップを導入すると、このへんの「MFEが十分あったんだけど、ずるずる下がって終了」というヤツを利益のあるうちに終了にできそうだ。

ここで、Excelを使うとずるずる下がったやつと、利益のあるうちに手仕舞いできたやつが分離できることに気づく。

ふむ。データの入っているシートにETDレベルが-20%以下になったらCTDをMAE-20%に置き換える計算を行う列を追加して、結果をみてみよう。

・・・すごく改善されたような気がするのは、気のせい? ほんとは最初に作ったMAE-CTDのグラフを貼りたいけど、ETDを抑制したとき、CTDに跳ねるのは分かるんだけど、MAEは跳ねるケースと跳ねないケースがあって難しい。ここから先は実際にETDストップを実装して、結果を出してみた方がいいな。

ひとまず、今のバージョンのサマリーを。

総トレード数 プロフィットファクター 平均損益 損益標準偏差 総損益
12,642 2.94 8.87% 24.37% 112176.82%
勝ちトレード数 勝率 勝ちトレード最大利 勝ちトレード平均利益 勝ちトレード利益標準偏差 累積利益
6,477 51.23% 155.86% 26.23% 23.02% 169909.49%
負けトレード数 敗率 負けトレード最大損失 負けトレード平均損失 負けトレード損失標準偏差 累積損失
6,165 48.77% -90.33% -9.36% 3.53% -57732.67%

レポートのプログラムがバグってるかもしれないけどw  総利益が11万2千%ww ま、東証一部の全銘柄に仕掛けてるから無尽蔵の資金が必要だけどね。出来高も考慮してないから、流動性の低いマーケットだとどーにもならないことになるだろうな。