翻訳者から:技術のスキルを使って年間50万ドルを稼ぐことができた人について、私の注意を引き、行商人に訴えた記事( その1 )の翻訳を続けました。完全なトレーディングシミュレーターの作成
そのため、インジケータをテストおよび最適化できるフレームワークがありました。 しかし、私はもっと何かをしなければなりませんでした-取引システム全体をテストして最適化できるフレームワークが必要でした。 コマンドを送信してポジションをオープンできるもの。 この場合、総利益と損失を最適化することができます-ある程度-1つの取引セッションの平均利益と損失。
このようなフレームワークを作成するのは簡単ではありません。ある意味では、正確にシミュレートすることさえ不可能ですが、できる限りのことをしました。 そして、私が直面しなければならなかったいくつかの質問があります:
- チームがシミュレーターで市場に行くとき、タイムラグをシミュレートする必要があります。 私のシステムがオファーを「見た」という事実は、すぐにそれを購入できるという意味ではありません。 システムはコマンドを送信し、約20ミリ秒待機します。オファーがまだ有効な場合にのみ、クローズされた取引と見なされます。 実際のラグの持続時間は常に同じではなく、記録されないため、これは完全に正確ではありません。
- 株式の売買の申し出を行うとき、トランザクションの実行フロー(APIが提供)を考慮に入れ、それを使用して注文が実行されるタイミングを追跡する必要があります。 これを正しく行うには、キュー内のチームの位置を追跡する必要があります(キューは先入れ先出しシステムを使用して形成されます)。 繰り返しますが、私はそれを正確に行うことはできませんでしたが、可能な限り現実に近いシステムをモデル化しました。
注文の実行のシミュレーションを改善するために、APIを使用して実際の取引中に収集されたログを取得し、同じ期間の取引シミュレーション中に記録されたログと比較しました。 私はシミュレータを現実に非常に近い状態に近づけることができました。正確にモデル化できない瞬間については、出力結果が統計データに対応することを確認しようとしました(重要だと思われるメトリックについて)。
収益性の高い取引の確保
発注のシミュレーションモデルを使用して、シミュレーションモードで取引所にコマンドを送信し、条件付きの利益と損失を追跡することができました。 しかし、私のシステムは、いつどこで売買するかをどのように理解しますか?
価格行動の予測はシステムの出発点でしたが、話はそこで終わりませんでした。 次に、売買の5つの価格レベルごとにスコアリングシステムを開発しました。 これらのレベルには、国内需要の1つ上のレベル(買い注文)と国内供給の1つ下のレベル(売り注文)が含まれます。
いずれかの価格レベルのアカウントが指定されたしきい値よりも高い場合、これは、このレベルでシステムにアクティブな買い/売りオファーがあることを意味します。 スコアがしきい値を下回っている場合、アクティブな注文をキャンセルする必要があります。 これらの条件下では、私のシステムが購入の申し出を突然市場に出し、すぐにそれをキャンセルすることは珍しくありません(実際、そのような状況はモニター画面上の生きている人にとって怖いので、私はそのようなイベントが発生する可能性を最小限に抑えようとしました迷惑です)。
さまざまな価格レベルのアカウントは、次の要因に基づいて計算されました。
- 価格行動の予測(前に説明しました)
- 問題の価格レベル(内部レベルは、より高い価格跳躍を示します)
- 注文する前の契約数が揃っている(少ないほど良い)
- 注文後の契約数(並んでいるほど良い)
基本的に、これらの要因が売買の「安全な」ゾーンを決定します。 それ自体では、価格の振る舞いを予測することは状況を評価する不適切な方法です。なぜなら、購入オファーを出すときに自動的にポジションをクローズしなかったという事実を考慮していなかったからです。 。 現実には、誰かが与えられた価格で何かを私に売っているというまさにその事実は、取引の確率論的な見方を変えます。
このステップで使用されるすべての変数は、最適化の対象となりました。 価格変更の指標の変数を最適化したのと同じ方法で行われましたが、この場合、損益の下限に応じて変数を最適化しました。
私のプログラムが無視したもの
人が取引するとき、彼らはしばしば次善の決定につながる可能性のある感情や偏見の影響を深刻に受けます。 もちろん、これらの偏見が私のコードに反映することは望みませんでした。 したがって、私のシステムはいくつかの要因を無視しました:
- ポジションのエントリー価格-商社のオフィスでは、誰かが長い取引と短い取引を締結する価格について、これが将来そのような決定の採用に影響するかのように頻繁に話されます。 そのようなデータはリスク低減戦略の枠組みにおいてある程度重要であるという事実にもかかわらず、市場イベントのさらなる発展とは関係がありません。 したがって、私のプログラムはこの情報を完全に無視しました。 これは、不可逆的なコストを無視するのと同じです。
- ロング/ショートトランザクションの結論-原則として、人間のトレーダーは、ロングポジションを販売する場所とショートトランザクションを終了する場所を決定する特別な基準を持っています。 ただし、私のアルゴリズムの観点からは、2つの間に違いはありませんでした。 私のアルゴリズムが価格の低下を予想した場合、トランザクションが「ロング」、「ショート」、または「フラット」であったかどうかに関係なく、販売は論理的なステップでした。
- 「倍増」戦略-これは一般的に受け入れられている戦略で、最初は取引が有利ではない場合にトレーダーがより多くの株を購入します。 その結果、平均購入価格が引き下げられます。つまり、株価がコースを変更した場合、最短時間で費用を「相殺」します。 あなたがウォーレン・バフェットでない限り、それはただの悪夢のような戦略だと思う。 あなたのトランザクションのほとんどが燃え尽きるので、あなたはすべてがあなたとうまくいっていると思うように自分をだましています。 問題は、運が悪ければ、その損失は驚くべきものになるということです。 このアプローチのもう1つの結果は、市場で本当に優位に立つことができるのか、それとも単に幸運なのかを判断するのが非常に難しくなることです。 私のプログラムの重要な品質は、私のプログラムが本当にそのような利点を持っている状況を追跡して確認できることだけでした。
リスク管理
私のアルゴリズムは、イベントの展開のどの段階で彼が取引をしたか、ポジションが現在ロングかショートかに関係なく等しく決定を下したので、彼は時々不利なポジションをオープンし、多額の金額で取引に失敗しました(成功した取引はありましたが)それほど大きくないため)。 しかし、リスクを管理するために私が何もしていないと思い込まないでください。
アクティブな取引日中に最大ポジションのサイズが時々大きくなる可能性があるため、単位時間あたり2契約のレベルで最大ポジションのサイズを厳密に設定しました。 また、日中の予想外の変化や自分のプログラムのバグから身を守るために、日中の最大損失額に制限を設けました。 これらの制限はコードで規定されていましたが、ブローカーに指示を出すことでさらに保険をかけました。 これらの予防措置を講じて、その後、重大な問題は発生しませんでした。
アルゴリズムを使用する
私のプログラムの作業が開始されてから、収益性が出始め、実際にテストできるようになるまで、6か月が経過しました。 正直なところ、ほとんどの場合、私はプログラミング言語を勉強しました。 プログラムの改善に取り組みながら、今後4か月間に利益の増加を記録しました。
毎週、過去4週間から収集したデータに基づいてプログラムを再トレーニングする必要があります。 しかし、これにより、最新の行動市場のトレンドを検索することと、アルゴリズムが有意な行動パターンを開発するのに十分な情報を確実に受け取ることのバランスが崩れることがわかりました。 トレーニングに時間がかかるようになったとき、Amazon EC2サービスを使用して8台の仮想マシンで実行できるように、トレーニングを中断しました。 その後、結果はローカルマシンで結合されました。
私の取引の最高点は2009年10月で、ほぼ10万ドルを稼ぎました。 その後、毎月利益が減少しているにもかかわらず、プログラムを改善するためにさらに4か月を費やしました。 残念ながら、今日、私は自分の最高のアイデアをすべて試したように思えます。なぜなら、私が使用したすべてが私をあまり助けてくれなかったからです。
プログラムを改善できないことや成長感の欠如に苛立ち、新しい方向性について考え始めました。 私は、高頻度取引を専門とする6つの異なる取引会社に手紙を書き、私のプログラムを購入して仕事に雇ってくれないかと尋ねました。 誰も答えませんでした。 それから、私は新しいスタートアップのアイデアを手に入れたいと思ったので、このビジネスを完全に放棄しました。
注 :この投稿をHacker Newsに投稿しました。 私は今、自分で似たようなことをしようとしている人々を保護しようとはしていないと言いたいだけです。 市場の誰かと競争しようとするためには、多くのスキルを備えた非常に優秀な同僚のチームが必要です。 私のプログラムを書いたときでさえ、lonersが成功することはめったにありませんでした(しかし、私はそのようなことを聞きました)。
ページの上部[
元の投稿 -約。 翻訳者]「統計の操作」などの表現があるコメントがあり、実際の量[
量/引用-両方の翻訳バージョンがロシア語の翻訳実務で使用されている -約 "投資家小売業者"と呼ばれています。 翻訳者]彼らは「撃つ必要がある」と言う。 これは非常に残念なコメントであり、現実とはほど遠いものです。 一方、私の記事にはもっと興味深い
レビューがあり
ます 。
注2 :この記事を読んだトレーダーから受け取ったよくある質問
に対する回答のリストを公開しました。