一部の戦略には一定レベルの技術データが必要ですが、他の戦略には 1 時間しかかからないことを考えると、プロセスは必ずしも単純ではなく、インフラストラクチャ、可用性、および次のような要素が考慮されます。接続性はデータの種類によって大きく異なる場合があります。
しかし、なぜこの記事では「トランザクション」データの取得についてのみ説明し、Binance API を使用するのでしょうか?私の記事の内容についていくつか質問があるかもしれません。
データの頻度とバランス
取引データのエンドポイントは主に 99.99% の取引所で利用できると思います。これは粒度が細かく、高頻度取引 (HFT) 戦略のバックテストに十分な詳細 (一部の非常に特殊なケース) を提供し、OHLC ローソク足 (必要に応じて 1S から 24H、またはそれ以上) ベースとして使用できます。
取引データは多用途であり、さまざまな頻度で戦略を使用して広範な実験を行うことができます。
バイナンスを選ぶ理由?
それは、その量が膨大なため、私が後回しにしてしまう傾向にある取引所の 1 つだからです。
これから行うエンコーディング
シンボルのペア、開始日、終了日をコマンドとして受け取る Python スクリプトを作成します。行の引数。すべてのトランザクションを含む CSV ファイルをディスクに出力します。このプロセスは、次の手順で詳しく説明します:
1. シンボル、starting_date およびending_date 引数を解析します。
2. 開始日に発生した最初のトランザクションを取得して、最初のトランザクション trade_id を取得します。
3.ending_date に達するまで、リクエストごとに 1,000 トランザクションを取得するループ (Binance API 制限)。
4. 最後に、データをディスクに保存します。この例では、CSV として保存しましたが、他のオプションもあり、必ずしも CSV として保存する必要はありません。
5.パンダ、リクエスト、時刻、sys、および日時を使用します。コード スニペットでは、説明に値を追加しないため、エラー検証は表示されません。
エンコード時間
スクリプトは次のパラメータを使用します:
1. シンボル: によって定義される取引ペアのシンボルバイナンス。これは、ここでクエリすることも、Binance Web アプリケーションの URL (_ 文字を除く) からコピーすることもできます。
-starting_date とending_date: 一目瞭然です。予期される形式は mm/dd/yyyy、または Python スラングを使用した %m/%d/%Y です。
パラメータを取得するには、組み込み関数 sys (特別なことは何もありません) を使用し、日付を解析するには、datetime ライブラリを使用します。
1 日を加算し、1 マイクロ秒を減算して、ending_date の時刻部分が常に 23:59:59.999 になるようにします。これにより、同じ日の間隔がより多く取得されます。実用的。
トランザクションの取得
Binance の API と aggTrades エンドポイントを使用すると、start パラメーターと end パラメーターを使用すると、1 回のリクエストで最大 1000 個のトランザクションを取得できます。それらの間隔は最大でも 1 時間です。
何度か失敗した後、時間間隔取得を使用することで (ある時点で流動性がおかしくなり、貴重な取引を失うことになります)、from_id 戦略を試してみることにしました。
aggTrades は圧縮された取引を返すので、選択したエンドポイントに設定します。そうすれば、貴重な情報が失われることはありません。
次に、ヘルパー関数を使用して日付を解析し、calendar.timegm 関数を使用して日付を Unix ミリ秒表現に変換します。 timegm 関数は、日付を UTC で保持するため、推奨される関数です。
# current_time に to_date よりも後の最近取得したトランザクション日付が含まれているかどうかを確認し、含まれている場合は次のようにします。 # use From_id パラメータでトランザクションを取得します。
最新のトランザクションから取得した情報を使用して、from_id パラメータと current_time パラメータを更新します。
- わかりやすいデバッグ メッセージを出力します。
- pd.concat これらのトランザクションと前のトランザクション DataFrame
- Binance が 429 HTTP 応答を返さないようにスリープを使用します
-
Clean and Save -
DataFrame を組み立てた後、簡単なデータ クリーニングを実行する必要があります。重複したトリムを持つトランザクションと、to_date 以降に発生したトランザクションを削除します (この問題が発生するのは、1000 件のトランザクションのほとんどを取得しているためです。したがって、一部のトランザクションは目標終了日以降に実行されることが予想されます)。
トリム関数をカプセル化できます:
# これで、次の to_csv メソッドを使用してファイルに保存できるようになります:
# 他のデータ ストア メカニズムを使用することもできます。北極のように。
最後に: データを確認します
取引戦略を使用する際には、データを信頼することが重要です。次の検証を適用することで、フェッチしたトランザクション データでこれを簡単に行うことができます。
コード スニペットでは、この DataFrame を NumPy 配列に変換し、行を反復処理します。行ごとにトランザクション ID が 1 ずつ増加するかどうかを確認します。
Binance トランザクション ID には増分番号が付けられ、シンボルごとに作成されるため、データが正しいことを簡単に確認できます。
追記: 成功するトレーディング戦略を作成するための最初のステップは、適切なデータを入手することです。
以上がPython を使用して Binance の履歴トランザクションを簡単に取得の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Arraysinpython、特にvianumpy、arecrucialinscientificComputing fortheirefficienty andversitility.1)彼らは、fornumericaloperations、data analysis、andmachinelearning.2)numpy'simplementation incensuresfasteroperationsthanpasteroperations.3)arayableminablecickick

Pyenv、Venv、およびAnacondaを使用して、さまざまなPythonバージョンを管理できます。 1)Pyenvを使用して、複数のPythonバージョンを管理します。Pyenvをインストールし、グローバルバージョンとローカルバージョンを設定します。 2)VENVを使用して仮想環境を作成して、プロジェクトの依存関係を分離します。 3)Anacondaを使用して、データサイエンスプロジェクトでPythonバージョンを管理します。 4)システムレベルのタスク用にシステムPythonを保持します。これらのツールと戦略を通じて、Pythonのさまざまなバージョンを効果的に管理して、プロジェクトのスムーズな実行を確保できます。

numpyarrayshaveveraladvantages-averstandardpythonarrays:1)thealmuchfasterduetocベースのインプレンテーション、2)アレモレメモリ効率、特にlargedatasets、および3)それらは、拡散化された、構造化された形成術科療法、

パフォーマンスに対する配列の均一性の影響は二重です。1)均一性により、コンパイラはメモリアクセスを最適化し、パフォーマンスを改善できます。 2)しかし、タイプの多様性を制限し、それが非効率につながる可能性があります。要するに、適切なデータ構造を選択することが重要です。

craftexecutablepythonscripts、次のようになります

numpyarraysarasarebetterfornumeroperations andmulti-dimensionaldata、whilethearraymoduleissuitable forbasic、1)numpyexcelsinperformance and forlargedatasentassandcomplexoperations.2)thearraymuremememory-effictientivearientfa

NumPyArraySareBetterforHeavyNumericalComputing、whilethearrayarayismoreSuitableformemory-constrainedprojectswithsimpledatatypes.1)numpyarraysofferarays andatiledance andpeperancedatasandatassandcomplexoperations.2)thearraymoduleisuleiseightweightandmemememe-ef

ctypesallowsinging andmanipulatingc-stylearraysinpython.1)usectypestointerfacewithclibrariesforperformance.2)createc-stylearraysfornumericalcomputations.3)passarraystocfunctions foreffientientoperations.how、how、becuutiousmorymanagemation、performanceo


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

WebStorm Mac版
便利なJavaScript開発ツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ホットトピック









