이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()
기능, 교환의 API 인터페이스를 이해하고 관련 문서를 먼저 확인하는 것이 필요합니다. 이것은 FMZ 플랫폼에 추가되지 않은 기능을 확장 할 수 있습니다.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);
}
그것은 완전한 url 매개 변수를 전달하는 것을 지원합니다.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 선물은 틱어 인터페이스에 대한 하나, 거래 인터페이스에 대한 다른 두 개의 주소를 가지고 있습니다. Bitfinex 선물은 개인 인터페이스 기본 주소를 사용하여 전환합니다.exchange.SetBase("xxx")
Bitfinex 선물은 공개 인터페이스 기본 주소를 사용exchange.IO("mbase", "xxx")
.
I. 암호화폐 중심의 거래소에서 다른 API 인터페이스 호출을 위해k
설정"api"
:
exchange.IO("api", httpMethod, resource, params, raw)
POST
, GET
, 등등URL
.이exchange.IO("api", httpMethod, resource, params, raw)
함수 호출은 교환 인터페이스에 액세스하고 호출이 실패하고 오류가 발생하면 null을 반환합니다.
오직 실제 거래는exchange.IO("api", httpMethod, resource, params, raw)
function.
II. 거래 쌍을 전환하는 경우k
설정되어 있습니다"currency"
:
exchange.IO("currency", currency)
currency: 매개 변수는 통일된 대문자 형식을 가진 문자열 타입이며,baseCurrency
에서quoteCurrency
, 예를 들어BTC_USDT
.
ETH_BTC
그냥 켜면 됩니다LTC_BTC
, 아니LTC_USDT
.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 통상 통화-화폐 모드로 전환합니다. |
게이트IO | 레버레이드 계정 모드는 포지션별로 포지션과 전체 포지션, 사용trade_margin 위치별로 위치로 전환, 사용trade_super_margin 전체 위치로 전환하려면, 사용trade_normal 통상 통화-화폐 모드로 전환합니다. |
AscendEx | 사용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}
exchange.SetRate exchange.Log