0
0

More than 3 years have passed since last update.

QuantAnalyzerでEAの安定性を判定する

Last updated at Posted at 2019-12-05

理屈

安定したEA = 固定ロットでバックテストした際の損益曲線がほぼ直線。凸凹していない。

∴近似直線との相関係数を求めればよくね?

やること

C:\QuantAnalyzer4\extend\Snippets\com\strategyquant\extend\OverviewTab.SQDefault.java
をVSCodeで編集。以下のように書き換え。Java用の拡張機能がインストールされていれば勝手にビルドされるはず。
上書き保存した後、QuantAnalyzerを起動。何かを読み込む。

SQDefault.javaの179行目
replace("S4_3", "Correlation Factor", stats == null ? NA : d2(stats.getDouble(StatsConst.STABILITY)))

結果(右下のCorrelation Factorに注目)

この数値は、最初のトレードと最後のトレードを結んだ直線との相関係数です。
取引回数ベースではなく、時間ベースでの計算のようです。
1に近いほど相関あり、-1に近いほど逆相関ありです。理想は0.99みたいな数字。
このヒストリーは安定して下降しているので、相関ありとなっています。
Equity Controlのところで出てくるやつだから、もしかしたら、最初の30%分のデータかもしれません。
image.png

追記。こっちのほうが良くね?

前提1.実は相関係数、普通はr^2ですが、QuantAnalyzerではr^4を使っているみたいで、差がわかりやすいです。
前提2.でも4乗だと意外と差が出なくて分かりづらい(そりゃそうか)
んで、r^16としました。

SQDefault.javaの179行目
replace("S4_3", "Correlation Factor", stats == null ? NA : d2(Math.pow(stats.getDouble(StatsConst.STABILITY), 4))

追記分の結果

結果の見方はあいも変わらず、1に近ければ近いほど直線に近いという話です。
いい感じに相関係数が減ってくれましたね。
直線よりも下に膨らんでいる部分が大きいグラフを描いているやつだったので、だいぶ下がっています。
image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0