注文執行
取引所のレートリミットとは、ある一定の時間枠内に、1つのIPアドレスまたはAPIキーから取引所が受け付けるAPIリクエストの最大数、または最大リクエスト重みのことです。これを超えるとエラーが返され、続けるとIPまたはキーが一時的にBAN(利用制限)されます。
自動化は人間よりもはるかに多くのリクエストを発生させます。レバレッジの設定、エントリーの発注、保護注文の作成、すべての口座のすべてのシグナルに対するポジションのポーリングと約定確認などです。制限は同じIPやキーを使用するすべてのものの間で共有されるため、動作の悪い1つのループが同じサーバー上の他のすべての口座の注文をブロックしてしまうことがあります。急速に動く市場の最中でのBANは最悪のケースです。ポジションを開くことができず、ソフトウェア上にしか存在しないストップは移動できません。制限は取引所間、エンドポイント間でも異なるため、プラットフォームはそれを実際にぶつけて発見するのではなく、あらかじめ予算として管理する必要があります。
AlgoVestaは注文あたりの呼び出し回数を固定かつ少なく保ち、口座ごとに取引所をポーリングするのではなく共有の公開フィードから市場データを読み取ります。リクエスト予算は取引所ごと、キーごとに追跡され、取引先がレートリミットまたはBANの応答を返した場合、影響を受けたキーまたはサーバーは即座に再試行するのではなく後退します。この状態は記録され、ダッシュボードに表示されます。共有のテストネットで報告されたBANは、実際の市場でのBANとは別に管理されるため、テスト環境が実際の執行サーバーをローテーションから外してしまうことはありません。ストップとターゲットは取引先上の待機中の注文として設定されるため、一時的な制限によってポジションが無防備になることはありません。過去データの取得やその他の重い読み取り処理は別のマシンから実行されるため、執行サーバーの予算を消費することはありません。リトライ(再試行)ロジックと対応取引所ページをご覧ください。
市場の急騰中、あるシグナルチャンネルが1つの口座に対して1分間に8つのシグナルを発火させます。それぞれが固定された一連の呼び出しで執行され、取引所の1分あたりの予算に余裕を持って収まります。ポジションはそれぞれのストップを取引所に置いた状態で開かれます。もし途中で取引所からレートリミットのエラーが返されていれば、残りのシグナルはその理由とともにブロック済みとして記録され、キーはより長いBANを引き起こすのではなく、次の試行の前に一時停止していたはずです。