資源の読み込みに... 荷物...

exchange.IO

についてexchange.IO()交換オブジェクトに関連する他のインターフェース呼び出しに使用されます.

についてexchange.IO()機能は交換オブジェクトに関連する他のインターフェースに呼び出し,成功した呼び出しで要求された応答データを返します.失敗した呼び出しでは null を返します. 文字列,数, bool,オブジェクト,配列,null,およびシステムによってサポートされる他の種類

exchange.IO(k,... args)

についてkパラメータは,オプション値でコールタイプを設定するために使用されます."api", "currency", "base", "trade_margin", "trade_normal", "public_base", "mbase", selfTradePreventionMode, simulate, cross, dual, unifiedそしてこれからも k 本当 文字列 拡張されたパラメータ,特定のコールシナリオに従って通過,arg複数のパラメータが通過できます.exchange.IO()パラメータの数と種類は,異なる機能に対応します. パラメータの数と種類は,exchange.IO()機能は不確定です アルグ 本当 文字列,数, bool,オブジェクト,配列,null,その他のシステムでサポートされるタイプ

function main() {
    var arrOrders = [
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
    ]
    
    // Call exchange.IO to access the exchange's bulk order interface directly
    var ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", JSON.stringify(arrOrders))
    Log(ret)
}
import json
def main():
    arrOrders = [
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"}, 
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
    ]
    ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", json.dumps(arrOrders))
    Log(ret)
void main() {
    json arrOrders = R"([
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"1","posSide":"long"},
        {"instId":"BTC-USDT-SWAP","tdMode":"cross","side":"buy","ordType":"limit","px":"16000","sz":"2","posSide":"long"}
    ])"_json;
    auto ret = exchange.IO("api", "POST", "/api/v5/trade/batch-orders", "", arrOrders.dump());
    Log(ret);
}

システムを使用exchange.IO("api", httpMethod, resource, params, raw)呼び出しのフォームexchange.IO()FMZプラットフォームに追加されていない機能を拡張することができます. 交換のAPIインターフェースを理解し,関連するドキュメントを最初に確認する必要があります.POST対応するパラメータを記入する限り,FMZが既に下に処理しているパラメータを暗号化,署名,検証する心配する必要はありません.OKX 交換所パラメーターを使用します.raw順序パラメータを表示するには:

var amount = 1
var price = 10
var basecurrency = "ltc"
function main () {
    // Note that both amount.toString() and price.toString() have a ' character on the left and right side
    var message = "symbol=" + basecurrency + "&amount='" + amount.toString() + "'&price='" + price.toString() + "'&side=buy" + "&type=limit"
    var id = exchange.IO("api", "POST", "/v1/order/new", message)
}
amount = 1
price = 10
basecurrency = "ltc"
def main():
    message = "symbol=" + basecurrency + "&amount='" + str(amount) + "'&price='" + str(price) + "'&side=buy" + "&type=limit"
    id = exchange.IO("api", "POST", "/v1/order/new", message)
void main() {
    auto amount = 1.0;
    auto price = 10.0;
    auto basecurrency = "ltc";
    string message = format("symbol=%s&amount=\"%.1f\"&price=\"%.1f\"&side=buy&type=limit", basecurrency, amount, price);
    auto id = exchange.IO("api", "POST", "/v1/order/new", message);
}

キー値がparamsパラメータ (つまり,Http リクエスト パラメータ) は文字列で,パラメータ値を包むためにパラメータ値の周りに単一の引数で (つまり,符号 ') 書き込む必要があります.

function main() {
    var ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
    Log(ret)
}
def main():
    ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
    Log(ret)
void main() {
    auto ret = exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC");
    Log(ret);
}

ベースアドレスを切り替える操作を省略できる.exchange.SetBase()機能)

function main(){
    var ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT")
    Log(ret)
}
def main():
    ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT")
    Log(ret)
void main() {
    auto ret = exchange.IO("api", "GET", "/api/v5/trade/orders-pending", "instType=SPOT");
    Log(ret);
}

パラメータなしの呼び出しの例raw:

function main() {
    // For example, if you set the current trading pair of the exchange object to BTC_USDT at the beginning of the live trading, print the current trading pair tickers
    Log(exchange.GetTicker())
    // Switch the trading pair to LTC_BTC      
    exchange.IO("currency", "LTC_BTC")
    Log(exchange.GetTicker())
}
def main():
    Log(exchange.GetTicker())
    exchange.IO("currency", "LTC_BTC")
    Log(exchange.GetTicker())
void main() {
    Log(exchange.GetTicker());
    exchange.IO("currency", "LTC_BTC");
    Log(exchange.GetTicker());
}

コードで設定された取引ペアを切り替えるように,現在の交換の取引ペアを切り替える直接取引の作成時にまたはバックテストで.

function main () {
    // exchanges[0] is the first exchange object added when the live trading is created 
    exchanges[0].IO("base", "https://api.huobi.pro")
}
def main():
    exchanges[0].IO("base", "https://api.huobi.pro")
void main() {
    exchanges[0].IO("base", "https://api.huobi.pro");
}```
For example, the default base address when the exchange object is wrapped is ```https://api.huobipro.com```, and when you need to switch to ```https://api.huobi.pro```, use the following code to switch:
```javascript
function main() {
    exchange.SetBase("https://api.bitfinex.com")
    exchange.IO("mbase", "https://api-pub.bitfinex.com")
}
def main():
    exchange.SetBase("https://api.bitfinex.com")
    exchange.IO("mbase", "https://api-pub.bitfinex.com")
void main() {
    exchange.SetBase("https://api.bitfinex.com");
    exchange.IO("mbase", "https://api-pub.bitfinex.com");
}

取引先のインターフェースと取引インターフェースの異なるベースアドレスを持つ取引所では,例えば,Bitfinex Futuresには2つのアドレスがあり,一つは ticker インターフェース,もう一つは取引インターフェースです.Bitfinex futuurs はプライベート インターフェースのベースアドレスを使用して切り替えます.exchange.SetBase("xxx")Bitfinexの先物取引は,公開インターフェースのベースアドレスをexchange.IO("mbase", "xxx").

I. 暗号通貨中心の取引所では,パラメータが均一にカプセル化されていない他のAPIインターフェース呼び出しkに設定"api":

exchange.IO("api", httpMethod, resource, params, raw)
  • httpメソッド: パラメータは文字列タイプで,リクエストタイプを入力しますPOST, GETなど
  • resource: このパラメータは文字列タイプで,要求経路を埋めます.完全な要求経路の使用をサポートします.詳細については参照例を参照してください.
  • params: パラメータは,要求パラメータで満たされた文字列タイプで,URL.
  • raw: このパラメータは raw の文字列パラメータであり,省略することもできます.

についてexchange.IO("api", httpMethod, resource, params, raw)呼び出しが失敗してエラーが発生した場合,関数呼び出しは交換インターフェースにアクセスし null を返します. 真の取引のみをサポートしますexchange.IO("api", httpMethod, resource, params, raw) function.

II. 取引対を切り替える場合,パラメータはk設定されています."currency":

exchange.IO("currency", currency)
  • 通貨: パラメータは,単一の上文字形式の文字列タイプで,下文字で区切ります.baseCurrencyからquoteCurrency例えばBTC_USDT.

    1. バックテストでは,同じ通貨の取引ペアに切り替えるのみに注意を払う必要があります. 例えば,現在の取引ペアは,ETH_BTC切り替えるだけですLTC_BTCしないLTC_USDT.
    2. 仮想通貨先物契約の場合,取引対象は取引ペアを切り替えており,どの契約が取引されるかを決定するために,契約コードを再設定する必要があります.
    3. {@fun/Account/exchange.SetCurrency exchange.SetCurrency}関数を使って取引ペアを切り替えるのは,exchange.IO("currency", currency)取引相手を切り替える

(III) 仮想通貨スポット取引所オブジェクトのレバレッジアカウントモードを切り替えるために使用する:

  • パラメータk設定されています."trade_margin"スポットレバレッジアカウントモードに切り替える.オーダーと口座資産の取得は,取引所のスポットレバレッジインターフェイスにアクセスします. 取引所が,即日レバレッジにおいて,完全なリマージと孤立したリマージを区別する場合,以下を用います.exchange.IO("trade_super_margin")利回り口座の全保安金に切り替える,およびexchange.IO("trade_margin")利回り口座の利回り分担に切り替える
  • パラメーターk設定されています."trade_normal"通常のスポット口座モードに戻る.

ローバー付き口座モデル間の切り替えをサポートするスポット取引所:

交換 特別注意事項
OKX レバレッジアカウントモードの取引ペアは通常のものとは異なります.一部の取引ペアはそれらを持たない可能性があります.exchange.IO("trade_super_margin")レバレッジ付き口座の全ポジションに切り替えて使用するexchange.IO("trade_margin")位置から位置に切り替える.trade_normal通常のスポットモードに切り替える.exchange.IO("tdMode", "cross")直接レバレッジモードを指定する.
ハウビー ハーバードアカウントモードの取引ペアは通常のペアとは異なります.一部の取引ペアはそうでない場合があります. Huobi ハーバードアカウントにはフルポジションとポジションごとに位置があります.trade_marginレバレッジ口座のポジションごとに切り替えるtrade_super_marginレバレッジアカウントの完全なポジションに切り替える.trade_normal通常の通貨対通貨モードに切り替える
バイナンス レバレッジされた口座モードは,ポジションごとにポジションとフルポジションに分けられる.trade_margin位置から位置に切り替え,使用trade_super_marginフルポジションに切り替えるには,trade_normal通常の通貨対通貨モードに切り替える
ゲート レバレッジされた口座モードは,ポジションごとにポジションとフルポジションに分けられる.trade_margin位置から位置に切り替え,使用trade_super_marginフルポジションに切り替えるには,trade_normal通常の通貨対通貨モードに切り替える
アセンデックス 使用exchange.IO("trade_margin")レバレッジアカウントモードに切り替えるexchange.IO("trade_normal")普通のアカウントモードに戻る
ワオ 使用exchange.IO("trade_margin")レバレッジアカウントモードに切り替えるexchange.IO("trade_normal")普通のアカウントモードに戻る
コインエックス 使用exchange.IO("trade_margin")レバレッジ付き口座モードに切り替えるexchange.IO("trade_normal")普通のアカウントモードに戻る

他のスイッチ機能:チェックしてくださいexchange.IO()の関数他のスイッチ機能ユーザーガイドで

{@fun/NetSettings/exchange.SetBase exchange.SetBase}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@var EXCHANGE_OP_IO_CONTROL}, {@var EXCHANGE_OP_IO_CONTROL}, {@fun/NetSettings/exchange.SetBase exchange.SetBase}, {@fun/Account/exchange.SetCurrency exchange.SetCurrency}, {@var EXCHANGE_OP_IO_CONTROL}, {@var EXCHANGE_OP_IO_CONTROL}, {@var EXCHANGE_OP_IO_CONTROL}, {@var EXCHANGE_OP_IO_CONTROL}

exchange.SetRate exchange.Log