トレーディング戦略の構築に関しては、リアルタイムの洞察が重要です。 データの洞察が遅れると、トレーダーに多額の費用がかかる可能性があります。 多くの場合、将来の取引パターンを予測し、適切な入札を行うために、過去の市場動向を調べる必要があります。 分析する履歴データが多いほど、より良い取引予測が得られます。 ストリーミングデータのバックトラッキングは、高度なストレージおよび分析メカニズムを必要とするため、注意が必要な場合があります。
Amazon Kinesisデータストリーム お客様はストリーミングデータを最大XNUMX年間保存できます。 AmazonKinesisデータストリームの長期保存 ストリーミングデータの(LTR)により、Amazon KinesisDataStreamsに保持されているリアルタイムデータと古いデータの両方に同じプラットフォームを使用できます。 たとえば、データを別のデータストアに移動したり、新しいアプリケーションを作成したりすることなく、金融取引、マーケティングパーソナライズ、および推奨モデルの機械学習アルゴリズムをトレーニングできます。 お客様は、長期保存を使用して、HIPAAやFedRAMPなどの特定のデータ保持規制を満たすこともできます。 したがって、これにより、この投稿で説明するトレーディングのユースケースのデータ取り込みアーキテクチャが簡素化されます。
ポストで AmazonSageMakerを使用したアルゴリズム取引戦略の構築、トレーディング戦略をバックテストする方法を示しました アマゾンセージメーカー 過去の株価データが保存されている Amazon シンプル ストレージ サービス (Amazon S3)。 この投稿では、ストリーミングデータ用にこのソリューションを拡張し、使用方法について説明します アマゾンキネシス.
また、使いたい AmazonSageMaker自動チューニング 移動平均クロスオーバー戦略の最適な構成を見つけるため。 この戦略では、遅い期間と速い期間のXNUMXつの移動平均が計算され、クロスオーバーが発生したときにトレードが実行されます。 動きの速い平均が動きの遅い平均を超える場合、戦略は長いトレードを行います。そうでない場合、戦略は短くなります。 履歴データセットに対して異なる長さの複数のバックテストを実行することにより、これらの移動平均の最適な期間の長さを見つけます。
最後に、この移動平均クロスオーバー戦略の最適な構成を別のテストデータセットで実行し、パフォーマンス結果を分析します。 損益(P&L)で測定されたパフォーマンスがテスト期間で正の場合、この取引戦略をフォワードテストと見なすことができます。
AWSの使用を開始するのがいかに簡単で迅速かを示すために、ストリーミングデータにKinesisの長期保存を使用する拡張可能なトレーディングバックテストソリューションのワンクリックデプロイを提供します。
ソリューションの概要
Kinesis Data Streamsを使用して、リアルタイムストリーミングと過去の市場データを保存します。 Jupyterノートブックを、新しい取引戦略を調査およびバックテストするための中央インターフェースとして使用します。 SageMakerを使用すると、Jupyterノートブックをセットアップし、それらを AWS コードコミット さまざまなバージョンの戦略を保存し、他のチームメンバーと共有します。
Amazon S3を使用して、モデルのアーティファクトとバックテストの結果を保存します。
取引戦略では、バックテストに必要なライブラリと戦略自体を含むDockerコンテナを作成します。 これらのコンテナは、SageMaker内で実行するために、SageMakerDockerコンテナ構造に従います。 SageMakerコンテナの構造の詳細については、を参照してください。 SageMakerトレーニングおよび推論ツールキットの使用.
次の図は、このアーキテクチャを示しています。
SageMakerノートブックからデータ準備ステップを実行します。 これにより、過去の市場データがS3バケットにコピーされます。
を使用しております AWSデータ移行サービス (AWS DMS)マーケットデータをデータストリームにロードします。 The
SageMakerノートブックはKinesisDataStreamsに接続し、SageMakerトレーニングジョブを介して取引戦略アルゴリズムを実行します。 アルゴリズムは、トレーニング用のデータの一部を使用して、最適な戦略構成を見つけます。
最後に、テストデータセットで以前に決定された構成を使用して取引戦略を実行します。
前提条件
始める前に、リソースを設定します。 この投稿では、 us-east-2
例としての地域。
- 提供されているものを使用してAWSリソースをデプロイします AWS CloudFormation テンプレート。
- スタック名、スタックの名前を入力します。
- 過去の市場データを保存するために、既存のS3バケット名を指定します。
データは、このS3バケットからKinesisデータストリームに読み込まれます。 バケットは、スタックが設定されているのと同じリージョンにある必要があります。
- すべてのデフォルトを受け入れて、 Next.
- AWSCloudFormationが作成する可能性があることを確認します AWS IDおよびアクセス管理 (IAM)カスタム名のリソース。
- 選択する スタックを作成.
これにより、必要なすべてのリソースが作成されます。
Kinesisデータストリームへのデータロード
データのロードを実行するには、次の手順を実行します。
- SageMakerコンソールの[ ノート ナビゲーション ペインで、
ノートブックインスタンス. - ノートブックインスタンスを見つけます
AlgorithmicTradingInstance-*
. - 選択する Jupyterを開く このインスタンスの場合。
- に行きます
algorithmic-trading->4_Kinesis
フォルダを選択して Strategy_Kinesis_EMA_HPO.pynb.
これで、ノートブックでデータ準備ステップを実行します。
テストデータが保存されている既存のバケットを指定します。 テストバケットがスタックを設定したのと同じリージョンにあることを確認してください。
- までノートブックのすべての手順を実行します ステップ2データの準備.
- AWS DMSコンソールで、 データベース移行タスク.
- AWSDMSタスクを選択します
dmsreplicationtask-*
. - ソフトウェア設定ページで、下図のように メニュー、選択 再起動/再開.
これにより、S3バケットからデータストリームへのデータロードが開始されます。
レプリケーションタスクがステータスを表示するまで待ちます Load complete
.
- Jupyterノートブックの手順を続行します。
Kinesisの長期保存からデータを読み取る
ストリームの長期保持から、毎日の始値、高値、安値、終値、および出来高のデータを読み取ります。 AWS SDK for Python(Boto3).
使用しませんが 強化されたファンアウト (EFO)この投稿では、既存のアプリケーションがすでにストリームから読み取っているようにすることをお勧めします。 そうすれば、このバックテストアプリは既存のアプリケーションに干渉しません。
次のスクリーンショットに示すように、データを視覚化できます。
取引戦略を定義する
このステップでは、移動平均クロスオーバー取引戦略を定義します。
Dockerイメージを構築する
バックテストジョブをDockerイメージとしてビルドし、にプッシュします アマゾンECR.
トレーニングデータに関するSageMakerによるハイパーパラメータの最適化
移動平均クロスオーバー取引戦略では、この戦略の最適な速い期間と遅い期間を見つけたいと考えており、検索する日数の範囲を提供します。
最適化されたハイパーパラメータを見つけるためのメトリックとして、戦略の損益(P&L)を使用します。
トレーニングデータセットが与えられた場合、この取引戦略の速い期間と遅い期間に7日と21日の値を推奨するチューニングジョブを確認できます。
テストデータに対して最適なハイパーパラメータを使用して戦略を実行します
ここで、テストデータに対して最適なハイパーパラメータを使用してこの戦略を実行します。
ジョブが完了すると、パフォーマンス結果がAmazon S3に保存され、チャートでパフォーマンスメトリックを確認して、戦略の購入注文と販売注文を分析できます。
まとめ
この投稿では、Kinesis Data Streamsの長期保存機能を使用して過去の株価データを保存する方法と、ストリーミングデータを使用してSageMakerでの取引戦略のバックテストを行う方法について説明しました。
ストリーミングデータを長期間保持することで、KinesisDataStreamsに保持されるリアルタイムデータと古いデータの両方に同じプラットフォームを使用できます。 これにより、データを別のデータストアに移動したり、新しいアプリケーションを作成したりすることなく、バックテストや機械学習などの財務上のユースケースにこのデータストリームを使用できます。 また、長期保存を使用して、HIPAAやFedRAMPなどの特定のデータ保持規制を満たすこともできます。 詳細については、を参照してください。 Amazon Kinesis Data Streamsは、最大XNUMX年間のデータストリーム保持を可能にします.
リスク免責事項
この投稿は教育目的のみであり、過去の取引実績は将来の実績を保証するものではありません。
著者について
サチン・タッカー アマゾンウェブサービスのシニアソリューションアーキテクトであり、主要なグローバルシステムインテグレーター(GSI)と協力しています。 彼は、ITアーキテクトおよび大規模機関のテクノロジーコンサルタントとして22年以上の経験を持っています。 彼の重点分野はデータと分析です。 Sachinは、アーキテクチャガイダンスを提供し、AWSで戦略的な業界ソリューションを構築する際にGSIパートナーをサポートします
アモー・ガイクワッド はプロトタイピングチームのソリューション開発者です。 彼は機械学習と分析を専門としており、実世界の環境でMLモデルを開発し、AI/MLやその他のAWSサービスを大規模な本番アプリケーションに統合した豊富な経験があります。 アマゾンに入社する前は、ソフトウェア開発者として、エンタープライズリソースプランニング(ERP)とサプライチェーンマネジメント(SCM)に焦点を当てたエンタープライズアプリケーションを開発していました。 Amoghは、ビッグデータ分析と機械学習を専門とするコンピューターサイエンスの修士号を取得しています。
ディーラジ・タクール アマゾンウェブサービスのソリューションアーキテクトです。 彼はAWSのお客様やパートナーと協力して、エンタープライズクラウドの採用、移行、戦略に関するガイダンスを提供しています。 彼はテクノロジーに情熱を注いでおり、アナリティクスとAI / MLスペースでの構築と実験を楽しんでいます。
オリバー・ステフマン ニューヨークを拠点とするAWSのエンタープライズソリューションアーキテクトです。 彼は、ITアーキテクト、ソフトウェア開発マネージャー、および国際金融機関の経営コンサルタントとして18年以上の経験を持っています。 コンサルタントとしての彼の時間の間に、彼はビッグデータ、機械学習、およびクラウドテクノロジーに関する彼の広範な知識を活用して、顧客がデジタルトランスフォーメーションを軌道に乗せるのを支援しました。 それ以前は、ニューヨークのTier XNUMX投資銀行で地方自治体の取引技術の責任者を務め、ドイツでの自身のスタートアップでキャリアをスタートさせました。