クオンツトレードにフルタイムで飛び込んでから1年が経とうとしています。 1年前の私のビジネスはあまりうまくいっておらず、リターンをもっとコントロールしたい、特にROIをもっと予測できるようにしたい、と思っていました。 学習、再学習、プログラミング、再プログラミング、テスト、再テストを繰り返し、ある時点で戦略を立ち上げ、失敗するのを見るだけです。 しかし、すべてのプロセスを経て、利益を生むようになる戦略もいくつかある。 これらの勝利の戦略にはいくつかの共通パターンがあり、それを私が過去1年間に学んだ以下の教訓にまとめようとしました。 私にとっては、一つひとつが非常に大きな洞察であり、時には市場へのアプローチの仕方に大きな変化をもたらしました。 これらのポイントを事前に知っていれば、数え切れないほどの時間を節約できたかもしれません。
- Strategically Pick your Markets
- Learn the rules and accept them
- Know your priorities
- Expect to lose in your first year
- Don’t rush with capital, rush with execution
- Don’t use price stop
- Know entries and exits
- Know your numbers
- Make risk management a priority
- Use fewer parameters but know what they do
- Create a good backtest and know the ins and outs
- Find a good evaluation metric
- Know what to look for a strategy
- Focus on features, not on optimization
- Deep Learning is overrated
- Better data, better features
- Academic papers are great, but…
- Fast feedback is a must
- Don’t do not trade only on price and price indicators
- Derivations of derivations are useful
- More risky markets, small positions
- Trading fees make a huge difference
- Familiarize yourself with your trading environment
Strategically Pick your Markets
Trading US stocks, forex, and bonds is probably a bad idea.以下の教訓は私宛のもので、順不同である。 最大手との競争が激しすぎるため、最も賢明な選択ではありません。 あなたの流動性ニーズをサポートするような市場を見て、あなたの流動性のスイートスポットを見つけてください。 大手が取引し、ゲームがはるかに困難な場所で取引するのではなく、そのルールを学ぶことによって、ニッチ市場でプレーし、勝つことができます。
Learn the rules and accept them
私はいくつかの異なる市場で取引をしました(今にして思えば、1つの市場にこだわるべきでした)。 それぞれ異なるルールがあり、それなりに不正をしています。 マーケットメーカー(または1つの市場で最も支配的なプレーヤー)は勝つためにあらゆることをします。 しかし、市場が自然に機能していると考えて、それを否定してはいけません。 市場を “出し抜こう “とすると逆効果になる可能性が高い。 大手企業が残した痕跡(行動、スプーフィング、発注、流動性獲得)を探し、それを自分の強みにしましょう。
Know your priorities
Quant Tradingでは、戦略開発、最適化、バックテスト、実行、リスク管理など、やるべきことがたくさんあります。 最初のうちは、パラメータの最適化など、間違ったことに集中しないようにしましょう。 むしろ、方程式内の各パーツの非常に基本的なMVPバージョンを構築し、本番中に反復することによって最適化することです。
Expect to lose in your first year
Don’t start scaling soon as you see some initial success, because it may wipe out large part of your portfolio (40% in my case). それを取り戻すには、より多くの努力が必要になります。その代わりに、最初の段階で適切なリスク対策を行うことが容易となります。
Don’t rush with capital, rush with execution
私は、リスクを考えずに資本を拡大することを急ぎすぎました。 それどころか、「もう一回最適化したら、新しい戦略を立ち上げる」と自分に言い聞かせて、分析麻痺に陥っていることがよくありました。 最適化しすぎていたのです。 複数の戦略を立ち上げて、まずは何が有効かを確認し、継続的に最適化していけばよかったのです。
Don’t use price stop
Price Stopには、全く使わない方法と、ブラックスワン(変動率分布の99.9%)から守る方法の2つがあることが分かりました。 プライスストップの代わりに、タイムストップと適切なポジションサイジングを使用します。 プライス・ストップは、研究が示すように、単にボラティリティのランダム性のために、優れた戦略を破壊する。 時間軸は、取引によって表現される仮説の価格軸よりもはるかに管理しやすく、予測しやすいものです(バックテストでもライブ取引でも)。 タイムストップを使用することで、仮説が有効である期間という点で、時間的制約を設定していることになり、ほとんどの場合、分散を減らす(そしてシャープ比を増やす)ことができます。
Know entries and exits
For each trade, know where to enter and where to exit, the best trading. 私の場合、これらは2つのルールに基づいて設定されます。1つは、Average True Rangeの修正された式です。
Know your numbers
各戦略について、期待値、ヒット率、予想ドローダウン、最長ドローダウン、予想変動率、分散、シャープ比、リターンの標準偏差、リターンの歪度、リスクでの価値を知っておく必要があります。 また、適切なベットサイジング、破滅のリスク、ケリー率、最適Fは、バックテスト中の戦略のパフォーマンスに基づいて戦略的に選択されるべきです。
Make risk management a priority
資本の40%を一日で使い果たしてしまうかもしれませんが、それを取り戻すには何ヶ月も、いや何年もかかることがあります。 そもそも適切なリスク管理を行い、ブラックスワン現象による破滅の潜在的なリスクを認識すること。 最悪のケースを想定しておくのは、常に良いアイデアです。 ある日、目が覚めたら市場が-50%になっていたとしても、戦略にとって難しいことではないはずです。
Use fewer parameters but know what they do
私の最もパフォーマンスの高い戦略は、3つのパラメータのみを使用しています。 これらは最適化しやすく、堅牢性をテストしやすいものです。 パラメータが何を行い、なぜそれらが使用されるかを正確に知ってください。 おそらく最悪の間違いは、最適化スクリプトにパラメータの組み合わせ、たとえば、複数の移動平均の組み合わせのための遅い/速い期間を生成させることです。 紙面上やバックテストではよく見えても、同じ戦略が実際の取引でうまくいくかは疑問です。
Create a good backtest and know the ins and outs
既存のソリューション(ところで、最適化にも当てはまります)を使用しないでください。 スリッページ、手数料、実行イベントのシーケンス、およびさまざまな注文タイプの影響を理解する必要があります。 私は多くのバックテストスクリプトを書きましたが、最初の数本は非常に複雑なものでした。 私の最新版は12行のコード(ほとんどが並列計算)で実行され、シンプルさが勝ることを改めて証明しています。
Find a good evaluation metric
戦略のパフォーマンスをテストするだけでは十分ではなく、何を見るべきかを知らなければなりません。 もちろん、私は年率の高いリターンを探し始めました。 シャープを最適化することはより良いことでしたが、私が必要としていたものではありませんでした(もっと良い評価指標があるのに、なぜシャープ比が業界標準と考えられているのか、今でも不思議に思っています)。
Know what to look for a strategy
優れた評価指標を見つけるには、自分が実際に戦略に何を求めているかを知る必要があります。 どのような評価指標を選ぶべきかは、自分の求める戦略の特徴を知ることである。
Focus on features, not on optimization
最適化のためのツールは、遺伝的最適化、非凸最適化、主成分分析、統計的/ベイズ的最適化、そして1000もの空想的ライブラリと、実にさまざまなものが存在します。 私の見解では、最適化は戦略を10-20%改善するのに役立ちますが、そもそも利益を生む戦略にはつながりません。 もし戦略が悪ければ、どんな最適化も役に立ちません。
Deep Learning is overrated
私はこの誇大広告をよく理解していません。 機械学習は素晴らしいものであり、深層学習も素晴らしいものです (別名、ニューラル ネットワーク)。 10,000 のパラメーターを最適化しても、おそらくオーバーフィッティングになるだけでしょう。 Tensorflowのようなパワーライブラリなしで動作しない戦略は、おそらく本番でも動作しないでしょう(バックテストがすばらしくても)。 要するに、戦略は線形回帰のような単純なものですでに利益を上げているはずです。
Better data, better features
“Data is the oil of the digital world” と誰かが言っていました。 いくつかのヘッジファンドは、駐車場の衛星画像を使って、株式のリターンを予測していると聞きました。 このようなデータには、おそらく限られた情報しか含まれていないと思いますが(天気予報のデータと同じくらいでしょう)、それでも使えるデータであり、決して悪いものではありません。 私が言いたいのは、より良いデータを得て、より良い特徴を生み出すことに集中しようということです。
Academic papers are great, but…
Academic papers are great, but they usually fall short in terms of practicality. 単純に学者とトレーダーのインセンティブにミスマッチがあるんだろう。 学者はトレーダーではないし、トレーダーは実用的な戦略を発表しない。 学術的な研究というのは塩梅を見極めなければなりませんが、完全に無視してはいけません。 私は何度、ちょっとした情報が本当に貴重だと感じたかわからない。
Fast feedback is a must
大企業、特にHFTの領域で競争することは、おそらく悪い考えです(上記で説明したように)。 その逆で、何日も、何か月も、何年も取引を保持することも理想的ではありません。 私にとってのスイートスポットは、5~60分の保有時間です。 2週間で統計的に有意なテスト(100回以上の取引)ができないなら、私はその戦略に時間を費やすことはないでしょう。
Don’t do not trade only on price and price indicators
Price is a reflection of what happened in the market.これは、市場で起こったことを反映しています。 行為者やその意図についての情報は少ない。 指標も価格から派生したものであり、ほとんどの指標は遅れているため、十分に有用ではありません。
Derivations of derivations are useful
I found a way to make indicators useful: by building features off of them. たとえば、MA 値をビンに分割し、過去 X 時間にわたってビンごとの発生をカウントする、などです。 あなたの研究は、念頭に置いて、特定の1つの時間枠で行われるように、これは無限に繰り返すことはできません。 しかし、あなたの戦略が15分に最適化されている場合、保有期間を30分に増やすと、ほとんどの場合、より低いリスクでより良いリターンが得られます。
More risky markets, small positions
ボラティリティは機会にとって良いので、より変動する市場で取引してください。 ただ、リスクを認識し、それに応じてポジションサイズを調整します。 10倍のボラティリティの市場を1/10のポジションで取引する方が、はるかに利益が上がることがあります。 リスクと報酬の曲線は、私が考えていたほど直線的ではありません。
Trading fees make a huge difference
前述のように保有時間を2倍にすることによって、すでに手数料の役割は減少しています。 多額の手数料を避けるために特別に戦略を最適化することは、さらに賢いことです。 戦略によっては(特に高頻度の場合)、手数料はリターンの50%以上を占めます。
Familiarize yourself with your trading environment
Moved above becoming more familiar with one niche market, this applies even more so to broker, exchanges, their APIs, downtimes, and latencies.This means how that uses less market orders, using better brokers, or negotiating better deal with existing brokers.The means to optimizing fees should be one of highest priorities, which means means to use better market orders, or used brokers. 特に、多くのブローカーは、自分のパフォーマンスを本当に助けることができる複雑で隠れた機能(条件付き注文、注文に関するより良い充填/ステータス情報、バルク操作など)を持っているので、それらのAPIを徹底的に知る必要があります。 クオンツトレードも2000時間を迎えようとしていますが、日々学ぶことの量は衰えませんね。 この業界は、時間が経つにつれて学習曲線が急になる数少ない業界だと思うので、これから数ヶ月、数年後が楽しみです。 最後に、もし私が何かを見逃していたら、あるいは連絡を取りたいのであれば、Eメールでご連絡ください。