Docs - アルゴリズム取引
アルゴリズム取引ツールは、JavaScriptを使用してカスタム取引アルゴリズムを作成、テスト、シミュレーションできる高度なプラットフォームです。複雑な取引戦略を実装し、過去の市場データに対してバックテストできる柔軟なイベント駆動型環境を提供します。
フィールド:
- ティッカー - アルゴリズムが取引する資産ティッカーの配列。これらには、ティッカーセクションで説明されているティッカータイプのいずれかを含めることができます。
- 残高 - 取引に利用可能な初期現金残高(基準通貨建て)。これは取引アルゴリズムの初期資本を表します。
- 日付 - アルゴリズムがシミュレーションされる過去の期間を定義する開始日と終了日のタプル。
- レバレッジ - trueに設定すると、レバレッジ取引が可能になり、アルゴリズムは利用可能な現金残高よりも大きなポジションを取ることができます。これは潜在的なリターンとリスクの両方を増加させるため、慎重に使用する必要があります。
- 初期証拠金 - 初期証拠金要件(0から1の間の小数で表示)。これはレバレッジが有効な場合にのみ適用されます。ポジション価値のうち、利用可能な現金でカバーしなければならない割合を定義します。
- 最小証拠金 - 最小証拠金要件(同じく0から1の間の小数で表示)。これはマージンコールがトリガーされる閾値です。レバレッジが有効な場合にのみ適用されます。
- コード - 取引アルゴリズムを定義するJavaScriptコード。ユーザーはここで提供されたAlgoWorkspace環境を使用して取引ロジックを実装します。
コード (AlgoWorkspace):
AlgoWorkspaceは、アルゴリズム実行のためのイベント駆動型環境を提供します。ユーザーがシミュレーション環境と対話し、取引ロジックを実装できるイベント、プロパティ、メソッドのセットを提供します。
利用可能なイベント:
this.on('start', async (next, timeseries) => { ... })- シミュレーションの開始時にトリガーされます。timeseriesパラメータは、すべての資産の完全な過去のデータセットへのアクセスを提供します。this.on('data', async (next) => { ... })- シミュレーションの各データポイント(通常は各取引日)でトリガーされます。主要な取引ロジックは通常ここで実装されます。this.on('end', async (next, result) => { ... })- シミュレーションの終了時にトリガーされます。resultパラメータは最終シミュレーション結果へのアクセスを提供します。this.on('error', async (next, errors) => { ... })- シミュレーション中にエラーが発生したときにトリガーされます。errorsパラメータには遭遇したエラーの詳細が含まれています。
プロパティとメソッド:
this.date- シミュレーションの現在の日付。this.assets- 取引されている各資産の現在の価格と他の関連データを含む配列。this.portfolio- 現金残高と資産ポジションを含む、ポートフォリオの現在の状態を表します。this.index- シミュレーションの現在の反復インデックス。this.length- シミュレーションの総反復回数。this.inputs- シミュレーションの初期入力パラメータを含みます。this.state- シミュレーション全体でカスタム状態データを保存するためのユーザー定義オブジェクト。this.buy(assetCode: string, quantity: number): void- 指定された資産と数量の買い注文を実行します。this.sell(assetCode: string, quantity: number): void- 指定された資産と数量の売り注文を実行します。this.print(...msgs: string[]): void- シミュレーション出力にメッセージをログ記録します。this.depositCash(amount: number): void- 指定された金額の現金をポートフォリオに追加します。this.loadScript(path: string): Promise- 外部JavaScriptファイルをロードし、追加のライブラリやモジュールの使用を可能にします。this.download(obj: any, name?: string): void- 指定されたオブジェクトデータを含むダウンロード可能なファイルを生成します。
これらのツールとメソッドは、複雑な取引戦略を実装およびテストするための包括的な環境を提供します。ユーザーはAlgoWorkspace内で市場データにアクセスし、ポートフォリオを管理し、取引を実行し、結果を分析することができます。