mcpField
R
revx-trading

revx-trading

github.com/revolut-engineeringその他7496 回インストール1 週間前に更新
リポジトリ

revx-trading について

revx-tradingは、`revx`コマンドラインからRevolut Xの注文を発注、置換、キャンセルするスキルです。成行、指値、条件付き、利確・損切り注文に対応し、資金が動く操作には利用者の確認が必要です。

主な機能

  1. 01成行注文と指値注文の発注
  2. 02条件付きストップ注文の作成
  3. 03利確と損切りのトリガー設定
  4. 04未決済注文の変更
  5. 05未決済注文のキャンセル

活用シーン

  1. 01成行または指値取引の発注
  2. 02価格条件付き注文の設定
  3. 03ポジションの決済トリガー設定
  4. 04既存注文の変更またはキャンセル

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/revolut-engineering/revolut-x-api --skill revx-trading

インストール後、Claude Code で/revx-tradingを入力して読み込まれたか確認します。

詳細

取引(revx order place / revx order replace / revx order cancel)

成行注文、指値注文、条件付き注文(ストップ注文)、利確/損切り注文の発注、未約定注文の置き換え(変更)、キャンセルを行います。

認証が必要です。 これらのコマンドを実行する前に、revx がインストールされ、設定されていることを確認してください。コマンドで認証関連のエラー(Auth not configured、No private key found、Authentication failed (401)、Invalid signature、insecure permissions、または ~/.config/revolut-x/ にキーや設定ファイルがないなど)が発生した場合は、直ちに revx-auth スキルを実行し、自分で問題を解決してください。 セットアップを実行するようユーザーに頼んで作業を中断してはいけません。ユーザー自身にしかできない手順(API キーの貼り付け、Revolut X プロフィールへの公開鍵の登録)のみ、ユーザーに依頼してください。修正後、元のコマンドを再試行してください。

シンボルは、ハイフンで区切った BASE-QUOTE 形式を使用します。例:BTC-USD、ETH-EUR、SOL-USD。revx market pairs でペアの制約を確認してください(revx-market スキルを参照)。

order place と order replace は、機械可読な出力を得るために --json または --output json をサポートしています。


Claude の動作指示

ユーザーの確認が必須

明示的なユーザー確認なしに、revx order place、revx order replace、revx order cancel を絶対に実行しないでください。 これらのコマンドは実際のお金を動かします。

注文コマンドを実行する前に、次のような確認用の要約をユーザーに提示してください。

発注する注文:

  • ペア:BTC-USD
  • 売買:買い
  • 種類:指値 @ $95,000
  • 数量:0.001 BTC

続行してもよろしいですか?

条件付き注文や利確/損切り注文の場合は、要約にトリガーの詳細を含めてください。

発注する注文:

  • ペア:BTC-USD
  • 売買:売り
  • 種類:条件付き — $100,000 でトリガーし、その後 0.001 BTC を成行で売却

続行してもよろしいですか?

ユーザーが明示的に承認した後にのみ実行してください(例:「はい」「進めて」「実行して」)。

revx order cancel --all の場合は、すべての未約定注文がキャンセルされることをユーザーに警告し、確認を得てください。

パラメーターが不足している場合 — 必ず確認し、推測しない

必須パラメーターはすべてユーザーから取得してください。不足しているものがあれば、コマンドを組み立てる前に確認してください。

すべての注文で必須:

  1. シンボル — どのペアですか?(例:BTC-USD)
  2. 売買 — 買いですか、売りですか?
  3. 数量 — どのくらいですか?(基軸通貨の数量には --qty、決済通貨の金額には --quote を使用します。利確/損切り注文では --qty のみ使用できます)
  4. 注文種別 — 成行(--market)、指値(--limit <price>)、条件付き(--conditional)、または利確/損切り(--tp/--sl)のどれですか?

注文種別ごとの追加要件:

  • 条件付き注文には、トリガー価格も必要です。任意でトリガー指値価格も指定できます。
  • 利確/損切り注文には、--tp <price>/--sl <price> の少なくとも一方が必要です。トリガー方向は売買に基づいて自動的に決まるため、指定しないでください。

これらのパラメーターのデフォルト値を決して推測しないでください。 ユーザーが「BTC を少し買って」と言った場合は、次の点を確認してください。

  • どのくらいですか?(BTC の数量、またはドル建ての金額)
  • 成行注文ですか、それとも指値注文ですか?(指値の場合はいくらですか?)

任意のフラグ(--post-only)は、ユーザーから希望がない限り省略できます。


注文の発注

# Market order (buy 0.001 BTC at best price)
revx order place BTC-USD buy --qty 0.001 --market

# Limit order (buy 0.001 BTC at $95,000 or better)
revx order place BTC-USD buy --qty 0.001 --limit 95000

# Post-only limit (maker only, cancelled if would take)
revx order place BTC-USD buy --qty 0.001 --limit 95000 --post-only

# Limit order with time in force (immediate-or-cancel)
revx order place BTC-USD buy --qty 0.001 --limit 95000 --time-in-force ioc

# Quote-sized order (buy $500 worth of BTC at market)
revx order place BTC-USD buy --quote 500 --market

引数: <symbol> <side>

  • symbol: BASE-QUOTE 形式(例:BTC-USD、ETH-EUR)
  • side: buy または sell(大文字と小文字は区別されません)

フラグ:

フラグ説明
--qty <amount>基軸通貨での数量(例:BTC の場合は 0.001)
--quote <amount>クオート通貨での数量(例:USD の場合は 500)
--market成行注文(別の注文タイプを選択しない場合は必須)
--limit <price>指値(別の注文タイプを選択しない場合は必須)
--time-in-force <value>gtc(デフォルト)または ioc。指値注文のみ対象です。発注時に fok は指定できません。
--post-onlyポストオンリーでの執行(指値注文のみ)
--client-order-id <uuid>注文に指定する独自の ID。再試行で二重発注されるのを防ぎます(省略時は生成されます)

--qty または --quote のいずれかを指定する必要があります(両方は指定できません)。

結果の読み方: 取引所は注文の状態を返し、終了コードはその状態に従います。--json を指定すると、応答があった注文について、取引所のドキュメントが同じ終了コードで出力され、失敗理由は stderr に出力されます。取引所が要求を即座に拒否した場合は、エラーのみが stderr に出力されます。新しい注文は数秒間一覧に表示されないため、revx order get または revx order fills を実行する前に少し待ってください。

状態意味終了コード
pending_new、new、partially_filled、filled発注済み0
cancelled、成行注文または IOC 注文直ちにクローズされました。約定内容は revx order fills <id> で確認できます0
cancelled、その他の注文取引所によって直ちにキャンセルされました。一部約定している可能性があるため、再発注する前に revx order get <id> を確認してください1
rejected発注されませんでした。--post-only を指定した場合は、通常、価格が即座に約定する状態だったことが原因です1
その他の状態送信済みです。revx order get <id> で確認してください0

応答が失われた場合: すべての注文はクライアント注文 ID 付きで送信されます。--client-order-id を指定しない場合は生成されます。注文が取引所に到達した可能性がある後に接続が切れた場合、または取引所がサーバーエラーを返した場合、コマンドは 1 で終了し、注文が発注された可能性があることを示すメッセージとクライアント注文 ID を stderr に出力します。--json を指定した場合も stdout は空のままです。そのため、スクリプトでは独自の --client-order-id(UUID)を指定してください。ほかの操作を行う前に、revx order open --json でその ID を検索するか、約定後に revx order history --json で検索してください。成行注文が表示されるまで数分かかることがあります。再試行するには、同じコマンドを --client-order-id <that ID> を付けて実行します。最初の注文が通っていた場合、取引所はすでに発注済みとして再試行を拒否し、CLI はその ID の注文がすでに存在し、2件目は発注されなかったことを示します。ID を付けずに再試行しないでください。2件目の注文が発注される可能性があります。接続拒否や DNS 障害など、送信前に接続が失敗した場合は、その旨が示され、注文は発注されません。注文の置き換えについては、revx order get <original id> で状況を確認できます。元の注文がまだオープンであれば、置き換えは行われていません。

価格刻み: --limit または --price の値は、ペアの価格刻み(revx market pairs で確認できます)の倍数でなければなりません。そうでない場合、CLI は送信前に拒否し、最も近い有効な価格を示します。--qty、--quote、--limit、--price には、最大 18 桁の小数位までの正の数を指定してください。


条件付き(ストップ)注文

市場価格がトリガー価格を超えるまで待機し、その後、成行注文(デフォルト)または指値注文(--trigger-limit-price を指定した場合)を発注します。1 回のコマンドで指定できる注文タイプは 1 つだけです。

# Stop-market: sell 0.001 BTC when the $100,000 trigger fires
revx order place BTC-USD sell --qty 0.001 --conditional --trigger-price 100000

# Stop-limit: buy 0.001 BTC when the $90,000 trigger fires, then place a limit buy at $89,900
revx order place BTC-USD buy --qty 0.001 --conditional --trigger-price 90000 --trigger-limit-price 89900

# Quote-sized conditional (buy $500 worth of BTC at the $95,000 trigger)
revx order place BTC-USD buy --quote 500 --conditional --trigger-price 95000

フラグ:

フラグ説明
--conditional条件付き(ストップ)注文タイプ
--trigger-price <price>注文を有効にする価格(必須)
--trigger-limit-price <price>トリガー発動時に発注する注文の指値。省略すると成行で執行
--qty <amount> / --quote <amount>注文数量 — いずれか 1 つが必須

動作:

  • --time-in-force と --post-only は指値注文用のフラグのため、条件付き注文では拒否されます。
  • トリガー発動後、成行注文のレッグは即時に執行され(ioc)、指値注文のレッグは gtc の指値注文として待機します。
  • 注文は、トリガーが発動するかキャンセルされるまで、タイプ conditional、条件 Trig ≥/≤ <price> として revx order open に表示されます。
  • 通常どおり revx order cancel <order-id> でキャンセルします。

利益確定/損切り注文

市場価格が利益確定および/または損切りのトリガーに達したときにポジションを決済する、待機注文を発注します。--tp/--sl の少なくとも 1 つが必須です。両方を組み合わせることもできます。トリガーの方向は売買方向から自動的に決まるため、指定しないでください。

  • 売りの TP/SL(ロングポジションの決済):価格が --tp 以上に上昇すると利益確定が発動し、価格が --sl 以下に下落すると損切りが発動します。
  • 買いの TP/SL(ショートポジションの決済):価格が --tp 以下に下落すると利益確定が発動し、価格が --sl 以上に上昇すると損切りが発動します。
# Sell 0.001 BTC: take profit at $110,000, stop loss at $90,000 (both market on trigger)
revx order place BTC-USD sell --qty 0.001 --tp 110000 --sl 90000

# Take profit only, with a limit price for the triggered leg
revx order place BTC-USD sell --qty 0.001 --tp 110000 --tp-limit 109900

# Stop loss only
revx order place BTC-USD sell --qty 0.001 --sl 90000

# Both legs with limit prices
revx order place BTC-USD sell --qty 0.001 --tp 110000 --tp-limit 109900 --sl 90000 --sl-limit 89900

フラグ:

フラグ説明
--tp <price>利益確定のトリガー価格(--tp/--sl の少なくとも 1 つが必須)
--sl <price>損切りのトリガー価格
--tp-limit <price>利益確定レッグの指値。省略するとトリガー発動時に成行注文
--sl-limit <price>損切りレッグの指値。省略するとトリガー発動時に成行注文
--qty <amount>基準通貨建ての数量 — 必須。TP/SL 注文では --quote は使用できません

動作:

  • TP/SL 注文では --time-in-force と --post-only は拒否されます。
  • 注文はタイプ tpsl として revx order open に表示され、Conditions 列には TP <price>/SL <price> と表示されます。
  • 両方のレッグを設定した場合、先に発動したトリガーが優先され、もう一方は破棄されます。
  • 通常どおり revx order cancel <order-id> でキャンセルします。

注文を置換(変更)する

既存の未決済注文をその場で更新します。キャンセルと同じURLですが、PUTを使用します。指値注文、条件付き注文(ストップ)、テイクプロフィット/ストップロス注文に対応しています。

# Change limit price
revx order replace <order-id> --price 96000

# Change quantity (amount is recalculated server-side)
revx order replace <order-id> --qty 0.002

# Change quote amount (qty is recalculated server-side)
revx order replace <order-id> --quote 150

# Explicitly allow taker execution (must be set explicitly)
revx order replace <order-id> --allow-taker

# Switch to post-only
revx order replace <order-id> --post-only

# Change time in force
revx order replace <order-id> --time-in-force ioc

# Combine — re-price and re-size
revx order replace <order-id> --price 96000 --qty 0.002

# Replace a conditional (stop) trigger — the whole trigger is replaced
revx order replace <order-id> --trigger-price 100000 --trigger-limit-price 99500

# Change only the trigger limit price → re-pass the whole trigger
revx order replace <order-id> --trigger-price 100000 --trigger-limit-price 99000

# Replace take-profit/stop-loss triggers, or re-size the order only
revx order replace <order-id> --tp 115000 --tp-limit 114900 --sl 90000
revx order replace <order-id> --qty 0.002

# Remove a trigger leg — pass `none` explicitly
revx order replace <order-id> --sl none

動作:

  • 指定したフィールドのみが変更され、それ以外はそのままです。
  • --priceのみを変更すると、buyでは見積通貨の金額が維持され(数量が変わります)、sellでは数量が維持されます。buyの数量を維持するには、--qty <current qty>も指定してください。数量を変更すると金額が再計算され、その逆も同様です。
  • --allow-takerは明示的に設定する必要があります。推測によって設定されることはありません。
  • 置換が拒否されると、注文は残りません。 取引所は先に元の注文をキャンセルするため、置換注文がrejectedで返された場合、または--time-in-force iocなしの置換注文がcancelledで返された場合、どちらの注文も未決済状態にならず、コマンドは1を終了コードとして返します。
  • トリガーは全体を置き換えます。 トリガー内の単一フィールド(例:指値価格のみ)を変更するには、トリガー全体を再度指定してください。指値価格を省略すると、トリガー発動時にその部分は成行執行に切り替わります。
  • トリガーを削除するには、noneを明示的に指定します — --tp none、--sl none、または--trigger-price noneを指定してください。フラグを省略すると、トリガーは変更されません。
  • --price/--time-in-force/--post-only/--allow-takerは指値注文に、--trigger-priceは条件付き注文に、--tp/--slはテイクプロフィット/ストップロス注文に適用されます。これらのグループは組み合わせられません。
  • 注文IDは変更されます。 置換後、元の注文はクローズされ、新しいvenue_order_idを持つ新しい注文が作成されます(レスポンスで返されます)。元のIDは新しい注文のprevious_order_idとして保持されます。それ以降のキャンセル/置換/取得操作には新しいIDを使用してください。古いIDは無効になります。

フラグ:

フラグ説明
--price <price>新しい指値価格
--qty <amount>新しい基軸通貨の数量
--quote <amount>新しい見積通貨の数量
--client-order-id <uuid>置換注文に使用する独自のUUID(省略時は生成されます)
--time-in-force <value>gtcまたはioc。置換時にfokは指定できません。
--post-only執行方法を[post_only]に設定します
--allow-taker執行方法を明示的に[allow_taker]に設定します
--trigger-price <price>新しい条件付きトリガー価格(noneでトリガーを削除)
--trigger-limit-price <price>条件付きトリガーの指値価格(--trigger-priceと併用する場合のみ)
--tp <price>新しいテイクプロフィットのトリガー価格(noneでこのレッグを削除)
--tp-limit <price>テイクプロフィットトリガーの指値価格(--tpと併用する場合のみ)
--sl <price>新しいストップロスのトリガー価格(noneでこのレッグを削除)
--sl-limit <price>ストップロストリガーの指値価格(--slと併用する場合のみ)

--price、--qty、--quote、--time-in-force、--post-only、--allow-taker、--trigger-price、--tp、--slのいずれか1つ以上が必要です。


手数料

Revolut Xは受け取る資産から手数料を差し引くため、注文の売買方向によって通貨が決まります。

注文支払うもの受け取るもの手数料が差し引かれる通貨影響
Buy見積通貨(例:USD)基軸通貨(例:BTC)基軸通貨購入した数量分を支払い(見積通貨建ての注文では全額)、受け取るコインはわずかに少なくなります。
Sell基軸通貨見積通貨見積通貨コインはすべて差し引かれ、受け取る見積通貨はわずかに少なくなります。
  • 手数料率: 板に置かれる注文のメイカー手数料は0%、即時に約定する注文(成行注文および市場価格を超える価格の指値注文)のテイカー手数料は0.09%です。手数料は通貨の最小単位に切り上げられます。
  • 実例(買い、2026年10月7日): BTCを10 USDC分成行買いしたところ、0.00011904 BTCが約定しました。手数料は0.00000011 BTCだったため、0.00011893 BTCが受け取られ、10 USDC全額が使用されました。
  • 実例(売り): 9.957938 USDC相当のBTCを売却したところ、手数料として0.008963 USDCが差し引かれ、9.948975 USDCを受け取りました。
  • 確認方法: 約定した注文にはtotal_feeとfee_currencyが記録されます(revx order get <id> --json)。手数料率は変更されることがあるため、推定するのではなく、これらの値を使用してください。

注文をキャンセルする

revx order cancel <order-id>           # Cancel a single order (market, limit, conditional, tpsl)
revx order cancel --all                # Cancel all open orders
revx order cancel <order-id> --json    # {"cancelled": "<order-id>"}, or {"cancelled": "all"} with --all

エラーリファレンス

エラー原因修正方法
注文パラメーターが無効です、または注文置換パラメーターが無効ですCLI の内部チェックで送信前に不正な値が検出されました。以下の行に各フィールドの詳細が記載されています該当するフィールドを修正します。たとえば、シンボルの形式を BTC-USD にします
取引所からのメッセージを伴う不正なリクエスト(400)取引所が注文を拒否しました。たとえば、ペアの上限または下限を超えるサイズが指定されていますrevx market pairs でサイズと刻み幅を確認します
価格刻み幅の倍数ではありません--limit または --price が、ペアの価格刻み幅より細かく指定されていますメッセージで提案されている 2 つの価格のいずれかを使用します
残高が不足しています(422)注文に必要な資金が足りませんrevx account balances を確認します
状態が rejected または cancelled、終了コードが 1取引所が注文を拒否またはクローズしました数秒後に revx order get <id> を実行します
見つかりません(404)注文 ID が無効ですrevx order open で確認します(revx-account スキルを参照)
レート制限(429)リクエストが多すぎますretryAfter の期間が過ぎるまで待ちます

関連スキル

スキル目的
revx-account取引後に残高を確認し、注文状況や約定を表示します
revx-market取引前に価格とペアの制約を確認します
revx-authAPI キーの設定とパスキーの構成を行います
revx-strategy自動グリッド取引ボット

コメント