そもそもバックテスト時に一部計算が間違ってたので修正した
一応それでもプラスだったので、指値が入るのであれば勝てるという想定で考えてみる
逆指値ではなく指値ベースの執行を考える
そこまで関係ないと思うけど一応。
それでもおそらく逆指値よりは指値のほうが入りやすいと思うので、執行を指値軸で考えてみるのはありだと思う
自分なりに考えてみて、長期的に勝てる執行には利確が必ず必要だと思っている(損切り + 固定時間では平均して上がり続けている通貨で勝つことはできないはず)
利確 + 損切りを組み込んだモデルをバックテストすることは、できなくもないが正確な値になりにくいので避けるべき(そもそも指値戦略を採用する理由が逆指値排除にあるので損切りを入れたら本末転倒だと思う)
時間軸を伸ばす
長期時間軸になれば分散が小さくなると思うので、執行に含まれるボラティリティから指値価格を決定するロジックが安定した価格を作るようになるという考え
値幅がある程度あれば挙動は安定しやすいはず
並列処理化
ohlcv取得から順番に処理を走らせているので単純に価格決定のロジックが走ってから実際に注文されるまでが遅い
めんどくて並列処理化してなかったんだけど、これはやらないとなぁという感じ
モデルの再学習
リターンの算出方法にバグが有った
というより、新しく決めた取引所の決済・注文の区分が今までのものと違かったため、リターンの出方が変わってしまったという感じ
訓練データの目的変数が変わってしまうので再学習したほうがいいよなという感じ
追加:逆に時間軸を短くする
短くしてしまえば、注文間の時間が短くなるから指値貫通したとしても再注文でリスクヘッジできるんじゃないかという考え
↑その場合cryptowatchのapi制限の問題出てくるわ…
---
とりあえず並列処理にするところからな気がする
で、処理時間計測してどれぐらい改善するのかも見ておこうと思う
時間軸伸ばすとか、値幅調整とか細かいところは一旦並列処理化して処理速度上げた場合の挙動見てからかな
とりあえず直近5時間ぐらい回してみては-500円ぐらいでした。時給-100円のシステムを作ってしまった
計算上は週間だと7割ぐらいでプラスになる計算なんだけど、指値が刺さらなくて損失ドカンと来たり、利益取れなかったり。というのが結構あるので指値周りの改善が見込めないと厳しそうな気はする
明日は並列処理化を頑張ろうということで今日はシステム動かしといて寝ようと思う
おはぎゃーすることになりそうっすなぁ…