Numerai APIとnumerapiライブラリのraw_queryメソッド
この記事は、Numerai Advent Calendar 2020 12月12日の記事です。
内容
- Numerai APIの概要説明
- numerapiに備わっている各種メソッドがNumerai APIの最新仕様に追いついてない場合は、numerapiの
raw_query
メソッドでGraphQLクエリを実行することで、最新APIを実行できます。
Numerai GraphQL API
- Getting Started
- 基本的にはNumeraiのWebサイト https://numer.ai は、Numerai GraphQL APIで構築されているので、サイトで表示されているデータはAPIで取得できます。
- Numerai GraphQL APIのエンドポイントURL
- GraphiQL Workspace
-
curlコマンド
- リーダーボードデータを取得する例
- パラメータは
rank
とusername
のみ取得。100個に限定。
curl -X POST -H 'Content-Type: application/json' https://api-tournament.numer.ai -d '{ "query": "{ v2Leaderboard(limit: 100) { rank username } } }" }'
- 診断データを取得する例
- 対象モデルの所有者のみが取得できるプライベートなデータは認証情報が必要です。
-
YOUR_PUBLIC_ID
、YOUR_SECRET_KEY
、YOUR_MODEL_ID
はご自身のもので埋めてください。
- 認証情報は https://numer.ai/submit 、もしくは、https://numer.ai/account の「VIEW API KEYS」で確認できます。
- モデルIDは https://numer.ai/models のモデル名の下に記載されたIDです。
-
YOUR_PUBLIC_ID
とYOUR_SECRET_KEY
の間に$
が入るので、抜けにご注意ください。
- ラウンド番号と
validationSharpe
のみ取得。
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Token YOUR_PUBLIC_ID$YOUR_SECRET_KEY' https://api-tournament.numer.ai -d '{ "query": "{ model(modelId: \"YOUR_MODEL_ID\") { submissions { round { number } validationSharpe } } }" }'
numerapi
-
curlコマンドでデータ取得可能ですが、プログラムから実行する場合は numerapi などのAPIクライアントライブラリを使うと便利です。GraphQLクエリをラップした便利なメソッド群が用意されています。
-
リーダーボードデータ取得の例
import numerapi
api = numerapi.NumerAPI()
response = api.get_leaderboard(100)
-
診断データ取得の例
import numerapi
api = numerapi.NumerAPI('YOUR_PUBLIC_ID', 'YOUR_SECRET_KEY')
model_id = api.get_models()['YOUR_MODEL_NAME']
status = api.submission_status(model_id)
numerapiに備わっているメソッド以外のクエリを実行したい場合
-
例えば、最近リーダーボードに導入された3ヶ月リターン、1年リターンのデータは return_13Weeks
とreturn_52Weeks
のパラメータで取得できます。
- 余談だが、
return_13Weeks
とreturn_52Weeks
だけスネークケースなのはなぜだろう?
curl -X POST -H 'Content-Type: application/json' https://api-tournament.numer.ai -d '{ "query": "{ v2Leaderboard(limit: 100) { rank username return_13Weeks return_52Weeks } } }" }'
-
しかし、numerapiのget_leaderboard
メソッドが最新APIのパラメータ仕様に追いついてない場合があります。
- 12月12日現在、
return_13Weeks
とreturn_52Weeks
は未サポート
- レスポンスパラメータ
-
そんな時は、raw_query
メソッドで直接GraphQLクエリを実行することで、最新パラメータを実行できます。
api = numerapi.NumerAPI()
query = '''
query {
v2Leaderboard(limit: 100) {
rank
username
return_13Weeks
return_52Weeks
}
}'''
response = api.raw_query(query)
raw_query
メソッドでGraphQLクエリを実行することで、最新APIを実行できます。
- Getting Started
- 基本的にはNumeraiのWebサイト https://numer.ai は、Numerai GraphQL APIで構築されているので、サイトで表示されているデータはAPIで取得できます。
- Numerai GraphQL APIのエンドポイントURL
- GraphiQL Workspace
-
curlコマンド
- リーダーボードデータを取得する例
- パラメータは
rank
とusername
のみ取得。100個に限定。
- パラメータは
curl -X POST -H 'Content-Type: application/json' https://api-tournament.numer.ai -d '{ "query": "{ v2Leaderboard(limit: 100) { rank username } } }" }'
- 診断データを取得する例
- 対象モデルの所有者のみが取得できるプライベートなデータは認証情報が必要です。
-
YOUR_PUBLIC_ID
、YOUR_SECRET_KEY
、YOUR_MODEL_ID
はご自身のもので埋めてください。- 認証情報は https://numer.ai/submit 、もしくは、https://numer.ai/account の「VIEW API KEYS」で確認できます。
- モデルIDは https://numer.ai/models のモデル名の下に記載されたIDです。
-
YOUR_PUBLIC_ID
とYOUR_SECRET_KEY
の間に$
が入るので、抜けにご注意ください。
- ラウンド番号と
validationSharpe
のみ取得。
curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Token YOUR_PUBLIC_ID$YOUR_SECRET_KEY' https://api-tournament.numer.ai -d '{ "query": "{ model(modelId: \"YOUR_MODEL_ID\") { submissions { round { number } validationSharpe } } }" }'
- リーダーボードデータを取得する例
numerapi
-
curlコマンドでデータ取得可能ですが、プログラムから実行する場合は numerapi などのAPIクライアントライブラリを使うと便利です。GraphQLクエリをラップした便利なメソッド群が用意されています。
-
リーダーボードデータ取得の例
import numerapi
api = numerapi.NumerAPI()
response = api.get_leaderboard(100)
-
診断データ取得の例
import numerapi
api = numerapi.NumerAPI('YOUR_PUBLIC_ID', 'YOUR_SECRET_KEY')
model_id = api.get_models()['YOUR_MODEL_NAME']
status = api.submission_status(model_id)
numerapiに備わっているメソッド以外のクエリを実行したい場合
-
例えば、最近リーダーボードに導入された3ヶ月リターン、1年リターンのデータは return_13Weeks
とreturn_52Weeks
のパラメータで取得できます。
- 余談だが、
return_13Weeks
とreturn_52Weeks
だけスネークケースなのはなぜだろう?
curl -X POST -H 'Content-Type: application/json' https://api-tournament.numer.ai -d '{ "query": "{ v2Leaderboard(limit: 100) { rank username return_13Weeks return_52Weeks } } }" }'
-
しかし、numerapiのget_leaderboard
メソッドが最新APIのパラメータ仕様に追いついてない場合があります。
- 12月12日現在、
return_13Weeks
とreturn_52Weeks
は未サポート
- レスポンスパラメータ
-
そんな時は、raw_query
メソッドで直接GraphQLクエリを実行することで、最新パラメータを実行できます。
api = numerapi.NumerAPI()
query = '''
query {
v2Leaderboard(limit: 100) {
rank
username
return_13Weeks
return_52Weeks
}
}'''
response = api.raw_query(query)
curlコマンドでデータ取得可能ですが、プログラムから実行する場合は numerapi などのAPIクライアントライブラリを使うと便利です。GraphQLクエリをラップした便利なメソッド群が用意されています。
リーダーボードデータ取得の例
import numerapi
api = numerapi.NumerAPI()
response = api.get_leaderboard(100)
診断データ取得の例
import numerapi
api = numerapi.NumerAPI('YOUR_PUBLIC_ID', 'YOUR_SECRET_KEY')
model_id = api.get_models()['YOUR_MODEL_NAME']
status = api.submission_status(model_id)
-
例えば、最近リーダーボードに導入された3ヶ月リターン、1年リターンのデータは
return_13Weeks
とreturn_52Weeks
のパラメータで取得できます。- 余談だが、
return_13Weeks
とreturn_52Weeks
だけスネークケースなのはなぜだろう?
curl -X POST -H 'Content-Type: application/json' https://api-tournament.numer.ai -d '{ "query": "{ v2Leaderboard(limit: 100) { rank username return_13Weeks return_52Weeks } } }" }'
- 余談だが、
-
しかし、numerapiの
get_leaderboard
メソッドが最新APIのパラメータ仕様に追いついてない場合があります。- 12月12日現在、
return_13Weeks
とreturn_52Weeks
は未サポート - レスポンスパラメータ
- 12月12日現在、
-
そんな時は、
raw_query
メソッドで直接GraphQLクエリを実行することで、最新パラメータを実行できます。api = numerapi.NumerAPI() query = ''' query { v2Leaderboard(limit: 100) { rank username return_13Weeks return_52Weeks } }''' response = api.raw_query(query)
以上です。
Author And Source
この問題について(Numerai APIとnumerapiライブラリのraw_queryメソッド), 我々は、より多くの情報をここで見つけました https://qiita.com/murenoha/items/a64f4c6e473066b0ce22著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .