カシオペア製作③後編
2020年12月の頭に前回の記事にあるインジケータを作り上げ、そこから僅か1週間(~12/12)でとりあえず動くEAへと進化させ焼肉おごりを回避したんですが、なんとその後12月最終週にさしかかったあたりでPCのSSDが逝去しました。
一応GoogleDriveにバックアップあったんですけど当時の最新版と初回バックテストの結果が消えてしまったこともあって年明け(2021年)以降も復旧とかに手間かかって一旦やる気がフェードアウト……1月のブログ更新が限界でした……。(普通に本業の塾講師が繁忙期というのもありましたが。)
4月中頃から再開してEA復旧したりなんだりはしたんですが、製作過程の細かい部分を忘れてしまして……(←ブログ書けないじゃん)。とはいえインジケータ→EAへの変更は関数の変更があったり残高把握用の用意された関数組み込んだりといった程度でさほど大変ではなかったおぼえがあります。やたらコンパイルエラー出たような気もするけど。
当時のコード読み返せば何やったか思い出せるとは思うので今後気が向いたら書こうと思いますが、今回はその先を書いていきます。
ローソク形状判定以外の判定
5月頃に復旧した試作Cassiopeiaにて2020年4月~2021年3月のログを用いてバックテストを行った結果がこちら

見づらい&わかりにくいのでまとめると、
・総取引数 = 337 [回] ・勝率 = 33.2 [%]
・利得/損失の比率(ペイオフレシオ : POR) = 2.20
→ 年利率(元本除いた純増分) = 23.0 [%]
というものでした。
……勝っとるやんけ!!
……しかし弱い。
試作機時点で勝ちが出てるのはめちゃくちゃ希望が湧いたのは事実なんですが、せっかくFXなのに年率23%はちょっと弱い……。普通に利率700%(実質8倍)とかほしい……。
さてどうするか。
「ローソク足形状の判定のみで少なくとも微増という結果が出るのであれば、これに別の判定を加えれば精度が向上しもっと年率も上がるのではないか」と考えました。
また、実際のバックテスト中において損失が出ているのが非トレンド時(トレーディングレンジ時)にたまたま判定に引っかかるローソク足が出現して刈られるパターンが見受けられたので、「なるべくトレンド時に売買すべくトレンド判定(当初の機能γ. )の実装が必要」と考え、既存のCassiopeiaに以下を追加したものを作ってみました。(ついでに思いついた他の指標も含む)
①3本の指数平滑移動平均線(EMA5, 12, 26)によるゴールデンクロス/デッドクロス[2,3]
②MACD(12, 26)とそのシグナル線(9)のゴールデンクロス/デッドクロス[4,5]
③MACD(12, 26)のシグナル線(9)が水平より上向き時に買い、下向き時に売り[6,7,12~14,106]
④ボリンジャーバンド2σに触れたら戻すと仮定[8,9]
⑤EMAからの乖離率が一定値を超えたら戻すと仮定[10]
⑥含み益が一定を超えたら損切り価格を建値に変更[11~14,106]
※[]内は下の結果表におけるNo.を表す
このあたり及び一部その組み合わせと、利益確定や損切りまでの値幅などのパラメータ調整を行いつついくつか試した結果がこちら↓

やってみた感じ、③MACD(12, 26)のシグナル線(9)が水平より上向き時に買い、下向き時に売り & ⑥含み益が一定幅(21[pips](21銭))を超えたら損切り価格を建値に変更 を組み合わせつつ利益確定までの値幅を105[pips](1円05銭)にするのが少なくともこの2020/4~2021/3のログにおいては良さそうですね。
もちろん期間も短いのでオーバーフィッティングである可能性はあるのですが(実際3年単位とかで回すとここまでの成果でない等もありました)、ひとまず実際に現金動かす稼働試験としてこれ(No.106)で中長期運用してみるか、となりました。
※なおNo.106は実戦投入に際して管理用にナンバーの100の位を追加するなどして調整してるので実際100以上の組み合わせで記録を取ったわけではありません(バックテストの記録を一つ一つ転記するのもなかなか面倒な作業だったので、明らかに弱すぎるものは飛ばしてたりします。よってバックテスト自体は100回以上やったと思います)。