FXをディープラーニングで学習させたら勝てるのか
売買ルールを人間が一切書かず、報酬だけを与えてニューラルネットに学習させました。 23年・5通貨ペア・15分足で回した結果を、期間外テストのまま出します。
結論
(期間外200年ぶん)—
(中央値)—
学習の進み方
横軸は世代(進化戦略の更新回数)。縦軸は学習に使っていない期間(2016〜2019年)での1年リターンの中央値です。 学習期間の成績ではなく、見たことのない年での成績を出しています。
数字の表で見る
1年の走りを再生する
学習に使っていない2020年以降から、ランダムな日付・ランダムな通貨ペアで1年間動かしたときの資産推移です。 元手 $10,000、同じ期間・同じ手数料で「ただ買って持つだけ」も並べています。
200年ぶん走らせた結果の散らばり
期間外(2020年以降)のランダムな1年窓を200本。横軸が1年後のリターン、縦軸がその本数です。
4つのやり方を同じ条件で比べる
同じ200本の1年窓・同じスプレッド・同じレバレッジで比較しています。
報酬の重みを変えるとどうなるか
報酬は 1年後のリターン% − λ × 最大ドローダウン% − 取引回数の罰 です。 λ が大きいほど「負けを浅くすること」を重く見ます。
λ=2 のときだけ勝率が五分に近づき、最悪の年も浅くなりました。 ただし中央値はマイナスのままで、「ただ買って持つだけ」には届いていません。
なぜこうなるのか
1. 保持時間が短いほど、スプレッドが重くのしかかる
勝つために必要な「方向を当てる確率」です。50%は当てずっぽうと同じ意味なので、 これを超えて当て続けられなければ黒字になりません。
2. 方向は読めないが、値動きの大きさは読める
過去と未来の相関です。0に近いほど「読めない」。 方向はすぐ0になりますが、値動きの大きさは1日後でも残ります。
この2つが同時に成り立つと、方向を当てにいく短期売買は原理的に不利になります。 当てられないものを当てにいき、当たっても毎回スプレッドを払うためです。 一方で「値動きの大きさ」は読めるので、方向ではなく変動幅を扱う道(オプションなど)は別の話になります。
検証の条件
学習に使ったのは2015年までです。2016〜2019年はどの重みを残すかの判断だけに使い、 2020年以降はこのページの結果を出すまで一度も使っていません。 年も通貨ペアも、価格の水準もボラティリティの水準もネットには渡していません。 渡しているのは、ボラティリティで割って正規化した値動きの形と、曜日・時間帯の時計だけです。