デリバティブ偏愛家の日記

システムトレードにおいて気を付けていること

デリバ亡者です。私、名前こそデリバティブ全推しですが、取引手法としてはシステムトレードがほとんどです。最近は細々とした分析ばかり投稿していますが(しかも週次と言っておきながら隔週くらいで)、たまには自戒も込めて普段念頭に入れていることを記載しておきます。やや上から目線っぽいのもありますが、あくまで自戒です。ご了承下さい。

※ちなみに私自身は相場の世界に入ったきっかけがシストレで、ロジックを考え始めて約8年くらいになります。

 

  • 分析・開発
  • アイデア源として市場観察は継続して行うべし
  • プログラミングはVBAが出来れば充分
  • マーケットデータはとりあえず取っておくべし
  • 取引手法
    • 過剰最適化回避① データの標本数を増やすべし
    • 過剰最適化回避② 安易なテクニカル指標のパラメータ調整は避けるべし
    • 過剰最適化回避③ 可変パラメータを導入すべし
    • 観測期間に合わせたデータを使うべし
    • 保有期間とリスク量の関係に留意すべし
    • 相場の格言に従う必要は無い
    • 複数のロジックを並走すべし
  • メンタル面
    • 自分で理解してロジックを作るべし
    • 出来れば他人の金で練習すべし
    • 利益を見て「これで○○が買える」と考えるのは避けるべし

分析・開発

アイデア源として市場観察は継続して行うべし

週次ですら記事更新出来ない奴が言うな、という話ですが、市場を見ずにアイデアが生まれることは稀です。チャートや板、経済指標発表前後の動きを日々観察すると「こういう法則あるのでは?」という気付きがあります。勿論打率は極めて低いですが、机上の空論よりは精度が高いと考えます(私は大学時代にひたすら価格変動と移動平均の算術的な関係ばかり机上で分析していましたが、実際の市場では全く役に立っていません)。

 

プログラミングはVBAが出来れば充分

手法にも寄りますが。私はPythonの方を多く使っていますが、データ数が多かったり(1,000万レコード超)、最適化のアルゴリズムを走らせる必要がある、といった事情でなければVBAで普通に分析できます。雑に15分程度で書いて分析できるなら、本格的な言語で数時間かけてコード書くより効率的です。

 

マーケットデータはとりあえず取っておくべし

大半の金融市場データは金を払えば手に入りますが、そもそもそのデータを使って利益の出るアルゴリズムを開発できるか不確定なのに、そこに高額のコストをかけるのは特に個人投資家には厳しいもの。逆に日々コツコツ集めれば無料、というデータも多いので、それは今この瞬間使うとは思えなくとも保存しておいて損は無いはず。

ちなみに下記ページで無料で手に入るマーケットデータをまとめています。

無料で手に入るマーケットデータまとめ

取引手法

過剰最適化回避① データの標本数を増やすべし

シストレにおいて最も恐ろしいのは過剰最適化(カーブフィッティング)でしょう。例えば日足で2015~2017年の日経平均先物のアルゴを考えると、取引回数を10回以下程度に絞れば、ほぼ誰でも必勝に近い手法を開発できると思います※。ただこれは大半が過剰最適化でしょう。売買判定に使うデータを増やすには時間軸のデータ拡大(横の拡大)と銘柄のデータ拡大(縦の拡大)があると考えます。

  • 時間軸のデータ拡大:日足を時間足に替える等
  • 銘柄のデータ拡大:対象を東証一部上場株に拡大する等

最近だと「仮想通貨のシストレで収益n%!」というような広告が散見されますが、よく見ると単一銘柄+計算期間短い+取引回数が少なく、ほぼロングのみ(しかもデータは2017年末まで)という杜撰なものもあります。悪意を持って過剰最適化を使ってくるケースですね。

時間軸のデータ拡大に関しては、金融資産価格変動のフラクタル性から、短期になればなる程合計の値動きは増え、取引機会も増えますが、取引コストは一定なのでそれは留意すべきです。特に個別株はBid/Offerスプレッドもそこそこあるので要注意。

※私はほぼ独学でシストレを学んだので、当初はひたすら過剰最適化に嵌りまくりました。そもそもExcelシートに貼り付けた単一銘柄の株価データに対して式を組んで売買判定をして…という過剰最適化地雷原の上でワルツを踊るかのような手法。ちなみにVBAを学び始めたきっかけは、あまりに最適化で嵌るので全銘柄10年分でバックテストしようとしたらとても人力では不可能と考えたからです。

 

過剰最適化回避② 安易なテクニカル指標のパラメータ調整は避けるべし

これは結構私見に近いかと。個人的にテクニカル指標は「本来市場が構造的にそのように振る舞うのを説明するもの」ではなく、あくまで「投資家がそれを使うことで市場がそのように振る舞うケースがある程度のもの」と考えています。つまり誰も見ていないテクニカル指標にはほぼ意味が無いという思想ですね。一部のチャーチストに怒られそうです。

ただ、私が言いたいのは「MACDとか無意味」という話ではなく、移動平均のゴールデンクロスを考えるとして、50日MAと100日MAを使っていたところ、過去データで最適化したら48日MAと103日MAを使った方が優秀でした、という議論は無意味だろう、ということです。似たような話で「4%下落でロスカット」を「4.2%下落でロスカット」にしたら利益が極大化した、というような話も同様の罠に嵌っていると考えるべきでしょう。

 

過剰最適化回避③ 可変パラメータを導入すべし

上記に近い話ですが、最後の「n%下落でロスカット」というようなパラメータを定数としてしまうこと自体が過剰最適化を生み易いのではと思います。じゃあどうしろと?ということになりますが、私が頻繁に検討しているのがボラティリティに応じてパラメータを変更すること(可変パラメータの導入)です。

ただ、ボラティリティは原資産価格以上に短期的に大きく動く可能性がある他、計算方法に依っても大きく値が変化するので、単純にこれが最善とは言えません。個別株の場合、時価総額の大きさによって潜在的にボラティリティの水準が変わるのでは?という仮説が立つので、現時点で算出されたボラティリティそのものだけでなく、時価総額水準に応じてもパラメータを調整できるとより柔軟かつ的確になり得ます。

 

観測期間に合わせたデータを使うべし

単純な話で、「四半期決算の数字を組み込んで、次の四半期もそれを使って短期でトレードする」ようなアルゴはやや意味不明です。発表直後にのみ仕掛けるなら分かりますが、短期でトレードするならデータも短期で更新されるものしか使えないでしょう。

 

保有期間とリスク量の関係に留意すべし

金融工学では価格変動について期間がt倍になると、確率分布の大きさは√t倍になるとされています※。まあこの理論の厳密な精度はどうであれ、保有期間が1時間→1日と長くなると、リスク量は√24≒5倍程度にはなります。アルゴ間のリスク量分配等を考える時の参考になります。

※価格変動が幾何ブラウン運動になるという前提。ポイントはランダム変動に関して自己相関が0という仮定が置かれている点。これが特に超短期だとモデルと現実の動きの乖離に繋がるケースが目立つ(筆者経験上)。

 

相場の格言に従う必要は無い

ここで言う格言はダブルボトムや三角保ち合いのようなチャートパターンの話ではなく、「損切りは早く、利食いはゆっくり」や「ナンピンは悪」といった執行上の話です。両者共に人間の心理的にはごもっとも、と言える格言ですが※、完全にシステムに依存する場合、こうした人間の心理的な弱さを補う必要も無いので、気にせずにニュートラルな考えで組んだ方が良いです。あくまで完全にシステムに依存できるかはあなた次第ですが…

※こういった格言は行動経済学と整合性がある。人間のトレーダーはある程度大きな評価損になるとそれを気にしなくなり、逆に評価益が僅かでも減るとすぐに利食いをしたがることが実証されている。興味があれば本を読んでみてはどうだろうか?

 

複数のロジックを並走すべし

出来てたら苦労しないよ、という話だが。出来れば市場(株と為替)、時間軸(日足と時間足)、手法(ファンダメインとテクニカルメイン)というように分散させたものを組み合わせると良いです。そう、出来てたら苦労しないよ、という話だが。

 

メンタル面

自分で理解してロジックを作るべし

脱線に近いですが「EAを買って運用する」という発想が私には理解できません。儲かるロジックはそもそも売る必要が無いので、「市場に出回るロジック≒クソ」という認識でいます。ここではそういった表層的な話ではなく、例えば使用するテクニカル指標の計算ロジック等を正確に理解しておくべし、というレベルの話と考えてもらえれば。先程述べたボラティリティによる可変パラメータの導入に関しても、ボラティリティの計算方法を色々と試した上で、その内包する問題点を理解した後に使うべきと思います。

自分で弱点まで理解したロジックなら改善の余地もあるし、ドローダウン中も比較的落ち着いて臨めます。単純に「勝てるロジックは自作以外にあり得ない」という話だけでなくメンタル面でも自作するメリットはあるかと。

 

出来れば他人の金で練習すべし

これは金融機関に勤めないと厳しいのですが…私は自分の金で運用する前に、会社の金でドンパチやる経験が出来た恵まれたケースだと思います。日次の収益目標が500万なのに5,000万負けたり、翌日に1億勝ったり、という日々で色々タフになりました。

 

利益を見て「これで○○が買える」と考えるのは避けるべし

やりがち。4万勝って「これでPS4…!」等と考えると、途端に利益が現実味を帯びてきて、人間トレーダーの発想に嵌り始めます。あくまで「総資産」という「数字」を増やすゲームだと思うことに徹するのが一番です。

このくらいでしょうか。何かしら役に立てば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です