리소스 로딩... 로딩...

FMZ 퀀트 API 업그레이드의 자세한 설명: 전략 설계 경험을 개선

저자:FMZ~리디아, 창작: 2024-07-05 09:44:08, 업데이트: 2024-07-25 15:15:03

[TOC]

img

FMZ 퀀트 API 업그레이드의 자세한 설명: 전략 설계 경험을 개선

전문

9 년의 기술적 반복 후, FMZ 양자 거래 플랫폼은 사용자가 그것을 알아차리지 못했지만 여러 번 재구성되었습니다. 지난 2 년 동안 플랫폼은 사용자 경험 측면에서 많은 최적화와 업그레이드를 수행했으며, UI 인터페이스의 포괄적 인 업그레이드, 일반적으로 사용되는 양적 거래 도구의 풍부화 및 더 많은 백테스팅 데이터 지원을 추가했습니다.

전략 설계가 더 편리하고, 거래 논리가 더 명확하고, 초보자가 쉽게 시작할 수 있도록 하기 위해, 플랫폼은 전략에 의해 사용되는 API 인터페이스를 업그레이드했습니다. 최신 버전을 사용하는 도커는 이러한 새로운 기능을 활성화 할 수 있습니다. 플랫폼은 여전히 오래된 인터페이스 호출과 최대 범위에서 호환됩니다. API 인터페이스의 새로운 기능에 대한 정보는 FMZ 퀀트 트레이딩 플랫폼의 API 문서에 업데이트되었습니다:

문법 안내:https://www.fmz.com/syntax-guide사용자 안내:https://www.fmz.com/user-guide

그래서 어떤 인터페이스가 업그레이드 되었는지, 그리고 어떤 변화가 필요한지 빠르게 살펴봅시다.

1. 새로운 API 인터페이스

추가 교환.GetTickers 기능

멀티 제품 전략과 완전한 시장 모니터링 전략을 설계하기 위해서는 집계된 시장 인터페이스가 필수적입니다. 전략을 개발하고 이벤트를 재발견하는 것을 피하기 위해 FMZ 퀀트 트레이딩 플랫폼은 이러한 유형의 교환 API를 포괄합니다.

만약 거래소가 이 인터페이스를 가지고 있지 않다면 (개인 거래소), 호출할 때exchange.GetTickers(), 오류 메시지가 표시됩니다: 지원되지 않습니다.

이 함수는 어떤 매개 변수도 없으며 거래소의 집계 시장 인터페이스에서 모든 품종의 실시간 시장 데이터를 반환합니다. 간단하게 이해 할 수 있습니다.

exchange.GetTickers()function는 전체 기능의 요청 버전입니다exchange.GetTicker()함수 (주의 깊게 보세요, 이 두 함수 이름의 차이점은 단수와 복수입니다.)

우리는 OKX 스팟 시뮬레이션 환경을 테스트를 위해 사용합니다.

function main() {
    exchange.IO("simulate", true)

    var tickers = exchange.GetTickers()
    if (!tickers) {
        throw "tickers error"
    }

    var tbl = {type: "table", title: "test tickers", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
    for (var i in tickers) {
        var ticker = tickers[i]
        tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
    }

    LogStatus("`" + JSON.stringify(tbl) +  "`")
    return tickers.length
}

img

추가 교환.CreateOrder 함수

새로 추가된exchange.CreateOrder()이 업그레이드의 중심입니다.exchange.CreateOrder()명령의 종류와 방향을 함수 매개 변수에서 직접 지정하는 것입니다. 이렇게하면 현재 거래 쌍, 계약 코드, 거래 방향 및 시스템의 다른 설정에 더 이상 의존하지 않습니다.

다종 거래 주문 배치 시나리오와 동시 시나리오에서 설계 복잡성은 크게 감소합니다.exchange.CreateOrder()함수들은symbol, side, price, amount.

OKX 선물 시뮬레이션 환경을 이용한 테스트:

function main() {
    exchange.IO("simulate", true)

    var id1 = exchange.CreateOrder("ETH_USDT.swap", "buy", 3300, 1)
    var id2 = exchange.CreateOrder("BTC_USDC.swap", "closebuy", 70000, 1)
    var id3 = exchange.CreateOrder("LTC_USDT.swap", "sell", 110, 1)

    Log("id1:", id1, ", id2:", id2, ", id3:", id3)
}

img

이렇게 하면 3명만exchange.CreateOrder()함수 호출은 다양한 종류와 방향의 세 개의 선물 주문을 배치하는 데 사용되었습니다.

추가 교환.GetHistoryOrders 함수

새로 추가된exchange.GetHistoryOrders()이 함수는 또한 교환 인터페이스의 지원을 필요로 합니다.

역사적인 주문을 검색하기 위해, 다양한 거래소에서 구현된 인터페이스는 크게 다릅니다.

  • 일부에서는 페이지화된 질의를 지원하고, 다른 일부는 지원하지 않습니다.
  • 일부 거래소는 질의 창 기간을 가지고 있습니다. 즉, N일보다 오래된 주문은 질의를 할 수 없습니다.
  • 대부분의 거래소는 특정 시간에 질의를 지원하지만 일부는 지원하지 않습니다. 이러한 인터페이스는 가장 높은 수준의 호환성으로 포괄되며 실제 사용에서는 전략의 요구와 기대에 부응하는지 여부에주의를 기울여야합니다.

자세한 함수 설명은 여기에 반복되지 않습니다, 당신은 API 문서의 문법 설명서를 참조할 수 있습니다:

https://www.fmz.com/syntax-guide#fun_exchange.gethistoryorders

바이낸스 스팟 거래 환경을 사용하여 테스트:

function main() {
    var orders = exchange.GetHistoryOrders("ETH_USDT")

    // Write to chart
    var tbl = {type: "table", title: "test GetHistoryOrders", cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}
    for (var order of orders) {
        tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
    }
    
    LogStatus("orders.length:", orders.length, "\n", "`" + JSON.stringify(tbl) +  "`")
}

img

추가 교환.GetPositions 함수

위치 데이터 획득 기능의 오래된 버전은exchange.GetPosition()이 업그레이드는 함수 명칭 의미와 더 잘 일치하도록 새로운 위치 획득 함수를 추가합니다:exchange.GetPositions(). 동시에, 그것은 여전히 GetPosition 기능과 호환 / 업그레이드 됩니다.

exchange.GetPositions()함수는 세 가지 호출 형태를 가지고 있습니다.

  • 교환.GetPositions() 매개 변수가 전달되지 않는 경우 현재 거래 쌍/계약 코드 설정을 기반으로 위치 데이터가 요청됩니다.
  • exchange.GetPositions ((ETH_USDT.swap) 특정 제품 정보를 지정할 때 (ETH_USDT.swap의 형식은 FMZ 플랫폼에 의해 정의됩니다.) 특정 제품의 위치 데이터를 요청합니다.
  • 교환.GetPositions("") 교환 위치 인터페이스에서 현재 위치 데이터의 모든 차원을 요청합니다. (교환 인터페이스 제품 차량에 따라 나뉘어) OKX 선물 시뮬레이션 환경을 이용한 테스트:
function main() {
    exchange.IO("simulate", true)

    exchange.SetCurrency("BTC_USDT")
    exchange.SetContractType("swap")

    var p1 = exchange.GetPositions()
    var p2 = exchange.GetPositions("")

    var tbls = []
    for (var positions of [p1, p2]) {
        var tbl = {type: "table", title: "test GetPosition/GetPositions", cols: ["Symbol", "Amount", "Price", "FrozenAmount", "Type", "Profit", "Margin", "ContractType", "MarginLevel"], rows: []}
        for (var p of positions) {
            tbl.rows.push([p.Symbol, p.Amount, p.Price, p.FrozenAmount, p.Type, p.Profit, p.Margin, p.ContractType, p.MarginLevel])
        } 
        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(tbls) +  "`")
}

img

매개 변수가exchange.GetPositions()함수는ETH_USDT.swap, ETH의 U 기반 영구 계약의 위치 데이터를 얻을 수 있습니다.

img

매개 변수가exchange.GetPositions()함수는 빈 문자열 이고, 모든 U 기반 계약의 위치 데이터를 얻을 수 있습니다. 편리하지 않나요?

2. API 인터페이스 업그레이드

업데이트 교환.GetTicker 함수

시장 기능의 주요 개선exchange.GetTicker()이 함수는 현재 거래 쌍과 계약 코드 없이 매개 변수에 의해 지정된 제품 정보에 따라 직접 시장 데이터를 요청할 수 있습니다. 이 함수는 코드 작성 프로세스를 단순화합니다. 동시에 매개 변수를 전달하지 않고 통화 방법과 여전히 호환되며, 오래된 플랫폼 전략과 최대 범위에서 호환됩니다.

매개 변수symbol거래 대상에 대한 포트/퓨처드의 다른 형식이 있습니다.exchange:

  • 스팟 교환 대상 형식은 다음과 같습니다.AAA_BBB, AAA는 baseCurrency, 즉 거래 통화, 그리고 BBB는 quoteCurrency, 즉 가격화폐를 나타냅니다. 통화 이름은 모두 대문자로 되어 있습니다. 예를 들어: BTC_USDT 현금 거래 쌍.
  • 선물 거래 대상 형식은 다음과 같습니다.AAA_BBB.XXX, AAA는 baseCurrency, 즉 거래 통화, BBB는 quoteCurrency, 즉 가격화, XXX는 영구 계약 교환과 같은 계약 코드를 나타냅니다. 통화 이름은 모두 대문자로 표시되며 계약 코드는 소문자로 표시됩니다. 예를 들어: BTC_USDT.swap, BTC의 U 기반 영구 계약. 바이낸스 선물 라이브 환경을 사용하여 테스트:
var symbols = ["BTC_USDT.swap", "BTC_USDT.quarter", "BTC_USD.swap", "BTC_USD.next_quarter", "ETH_USDT.swap"]

function main() {
    exchange.SetCurrency("ETH_USD")
    exchange.SetContractType("swap")

    var arr = []
    var t = exchange.GetTicker()
    arr.push(t)

    for (var symbol of symbols) {
        var ticker = exchange.GetTicker(symbol)
        arr.push(ticker)
    }

    var tbl = {type: "table", title: "test GetTicker", cols: ["Symbol", "High", "Open", "Low", "Last", "Buy", "Sell", "Time", "Volume"], rows: []}
    for (var ticker of arr) {
        tbl.rows.push([ticker.Symbol, ticker.High, ticker.Open, ticker.Low, ticker.Last, ticker.Buy, ticker.Sell, ticker.Time, ticker.Volume])
    }

    LogStatus("`" + JSON.stringify(tbl) +  "`")
    return arr
}

img

특정 기호에 대한 시장 데이터 팩을 요청하는 것은 훨씬 더 간단해졌습니다.

업데이트 교환.GetDepth 함수

GetTicker 함수와 비슷하게,exchange.GetDepth()함수 또한 기호 매개 변수를 추가합니다. 이것은 깊이 데이터를 요청할 때 기호를 직접 지정할 수 있습니다.

바이낸스 선물 라이브 환경을 사용하여 테스트:

function main() {
    exchange.SetCurrency("LTC_USD")
    exchange.SetContractType("swap")

    Log(exchange.GetDepth())
    Log(exchange.GetDepth("ETH_USDT.quarter"))
    Log(exchange.GetDepth("BTC_USD.swap"))
}

img

업데이트 교환.GetTrades 함수

GetTicker 함수와 비슷하게,exchange.GetTrades()이 함수는 또한 기호 매개 변수를 추가합니다. 이것은 시장 거래 데이터를 요청할 때 기호를 직접 지정할 수 있습니다.

바이낸스 선물 라이브 환경을 사용하여 테스트:

function main() {
    var arr = []
    var arrR = []
    var symbols = ["LTC_USDT.swap", "ETH_USDT.quarter", "BTC_USD.swap"]    

    for (var symbol of symbols) {
        var r = exchange.Go("GetTrades", symbol)
        arrR.push(r)
    }

    for (var r of arrR) {
        arr.push(r.wait())
    }
    
    var tbls = []
    for (var i = 0; i < arr.length; i++) {
        var trades = arr[i]
        var symbol = symbols[i]

        var tbl = {type: "table", title: symbol, cols: ["Time", "Amount", "Price", "Type", "Id"], rows: []}
        for (var trade of trades) {
            tbl.rows.push([trade.Time, trade.Amount, trade.Price, trade.Type, trade.Id])
        }

        tbls.push(tbl)
    }

    LogStatus("`" + JSON.stringify(tbls) +  "`")
}

img

이 업그레이드는 또한exchange.Go()플랫폼 API 인터페이스를 동시에 호출할 때 기능.

업데이트 교환.GetRecords 함수

이번엔 GetRecords 함수가 크게 조정되었다. 요청된 K-라인 데이터의 타입 정보를 직접 지정하기 위한 기호 매개 변수를 지원하는 것 외에도, K-라인 기간을 지정하기 위한 원래 기간 매개 변수는 유지되고, 요청할 때 예상되는 K-라인 길이를 지정하기 위한 한계 매개 변수는 추가된다. 동시에, 그것은 단지 기간 매개 변수에 통과하는 GetRecords 함수의 오래된 버전과도 호환된다.

호출 방법exchange.GetRecords()함수는:

  • 교환.GetRecords() 매개 변수가 지정되지 않으면 현재 거래 쌍/계약 코드에 해당하는 제품의 K-라인 데이터가 요청됩니다. K-라인 기간은 전략 백테스팅 인터페이스 또는 라이브 거래에서 설정된 기본 K-라인 기간입니다.
  • 교환.GetRecords ((60 * 15) K-라인 기간 매개 변수만 지정되면 현재 거래 쌍/계약 코드에 해당하는 상품의 K-라인 데이터를 요청합니다.
  • exchange.GetRecords (BTC_USDT.swap) 제품 정보만 지정되면 지정된 제품의 K-라인 데이터가 요청됩니다. K-라인 기간은 전략 백테스팅 인터페이스 또는 라이브 거래에서 설정된 기본 K-라인 기간입니다.
  • exchange.GetRecords ((BTC_USDT.swap, 60 * 60) 제품 정보와 특정 K-라인 기간을 지정하여 K-라인 데이터를 요청합니다.
  • exchange.GetRecords ((BTC_USDT.swap, 60, 1000) 제품 정보, 특정 K-라인 기간 및 K-라인 데이터를 요청하기 위해 예상되는 K-라인 길이를 지정하십시오. 제한 매개 변수가 교환에서 단일 요청의 최대 길이를 초과하면 페이징 요청이 생성된다는 점에 유의하십시오 (즉 교환 K-라인 인터페이스에 복수의 호출).

바이낸스 선물 라이브 환경을 사용하여 테스트:

function main() {
    exchange.SetCurrency("ETH_USDT")
    exchange.SetContractType("swap")
    
    var r1 = exchange.GetRecords()
    var r2 = exchange.GetRecords(60 * 60)
    var r3 = exchange.GetRecords("BTC_USDT.swap")
    var r4 = exchange.GetRecords("BTC_USDT.swap", 60)
    var r5 = exchange.GetRecords("LTC_USDT.swap", 60, 3000)

    Log("r1 time difference between adjacent bars:", r1[1].Time - r1[0].Time, "Milliseconds, Bar length:", r1.length)
    Log("r2 time difference between adjacent bars:", r2[1].Time - r2[0].Time, "Milliseconds, Bar length:", r2.length)
    Log("r3 time difference between adjacent bars:", r3[1].Time - r3[0].Time, "Milliseconds, Bar length:", r3.length)
    Log("r4 time difference between adjacent bars:", r4[1].Time - r4[0].Time, "Milliseconds, Bar length:", r4.length)
    Log("r5 time difference between adjacent bars:", r5[1].Time - r5[0].Time, "Milliseconds, Bar length:", r5.length)
}

img

업데이트 교환.GetOrders 함수

또한 GetOrders 함수는symbol매개 변수, 현재 미완성 주문의 유형을 지정할 수 있습니다. 또한 모든 미완성 주문 (종종에 관계없이) 의 질의를 지원합니다.

exchange.GetOrders()함수는 다음과 같은 방법으로 호출될 수 있습니다.

  • 교환.GetOrders() 현재 거래 쌍/계약 코드에 대한 모든 완료되지 않은 주문을 검색합니다.
  • 교환.GetOrders (BTC_USDT.swap) BTC에 대한 USDT 마진 상 상속 계약에 대한 모든 미수 주문을 검색합니다.
  • 교환.GetOrders("") 거래소의 현재 차원의 모든 미완성 주문을 쿼리합니다. (교류 API 인터페이스 차량에 따라 나니다.)

OKX 선물 시뮬레이션 환경을 이용한 테스트:

function main() {
    exchange.IO("simulate", true)

    exchange.SetCurrency("BTC_USDT")
    exchange.SetContractType("swap")

    // Write to chart
    var tbls = []
    for (var symbol of ["null", "ETH_USDT.swap", ""]) {
        var tbl = {type: "table", title: symbol, cols: ["Symbol", "Id", "Price", "Amount", "DealAmount", "AvgPrice", "Status", "Type", "Offset", "ContractType"], rows: []}

        var orders = null
        if (symbol == "null") {
            orders = exchange.GetOrders()
        } else {
            orders = exchange.GetOrders(symbol)
        }

        for (var order of orders) {
            tbl.rows.push([order.Symbol, order.Id, order.Price, order.Amount, order.DealAmount, order.AvgPrice, order.Status, order.Type, order.Offset, order.ContractType])
        }

        tbls.push(tbl)
    }
    
    LogStatus("`" + JSON.stringify(tbls) +  "`")
}

img

매개 변수가 전달되지 않을 경우, 기본 요청은 현재 BTC_USDT 거래 쌍 및 스 영구 계약의 모든 완료되지 않은 미결 주문입니다.

img

그 때ETH_USDT.swap이 매개 변수가 지정되면 ETH_USDT 거래 쌍의 영구 계약의 모든 미결 미뤄진 주문이 요청됩니다.

img

빈 문자열이""USDT 마진 계약의 모든 미완성 주문이 요청됩니다.

업데이트 교환.GetPosition 함수

그것은 여전히 오래된 위치 획득 함수 명칭과 호환되며, 또한 특정 요청된 위치 데이터의 타입 정보를 지정할 수 있는 기호 매개 변수를 추가합니다. 이 함수의 사용은exchange.GetPositions().

업데이트exchange.IO기능

에 대해exchange.IO("api", ...)함수 호출, 모든 교환 객체는 완전한 요청 주소를 직접 전달하는 것을 지원하도록 업그레이드되었습니다. 예를 들어, OKX 인터페이스를 호출하려면:

// GEThttps://www.okx.com/api/v5/account/max-withdrawal ccy: BTC

기본 주소로 직접 쓰기를 지원합니다https://www.okx.com먼저 기본 주소를 변경하고 IO 함수를 호출하지 않아도 됩니다.

OKX 선물 시뮬레이션 환경을 이용한 테스트:

function main() {
    exchange.IO("simulate", true)

    return exchange.IO("api", "GET", "https://www.okx.com/api/v5/account/max-withdrawal", "ccy=BTC")
}

img

3. API 인터페이스 영향

교환.GetOrder 기능에 영향을 미칩니다.

이 업그레이드는 주로 매개 변수에 영향을 미칩니다.idexchange.GetOrder(id)기능. id 매개 변수는 원래 교환 주문 id에서 거래 제품을 포함하는 문자열 형식으로 변경됩니다. FMZ 플랫폼의 모든 캡슐화된 주문 ID는 이 형식으로 되어 있습니다.

예를 들어:

  • 교환 명령에 정의된 교환의 원래 명령 Id는:123456이 업그레이드 전에, 당신이 GetOrder 함수를 호출하려면, 명령 Id가 전달되는123456.
  • 교환 명령에 정의된 거래소에서 지정된 제품 코드:BTC-USDT- 네 참고로 이것은 FMZ 플랫폼에 의해 정의된 거래 쌍이 아니라 거래소에서 지정된 거래 제품 코드입니다.

이 업그레이드 후, 패러미터 id의 형식은exchange.GetOrder(id)함수는 다음과 같이 조정됩니다.BTC-USDT,123456.

먼저 이 디자인이 왜 이루어졌는지 설명해 드리겠습니다. Because the CreateOrder function has been upgraded to specify the type of order directly (placed order type may be different from the currently set trading pair and contract code). 반환된 주문 ID가 유형 정보를 포함하지 않으면이 주문 ID는 사용할 수 없을 것입니다. 왜냐하면 주문을 확인 할 때 주문이 어떤 유형 (계약) 에 해당하는지 알 수 없기 때문입니다. 대부분의 거래소는 주문을 확인하고 취소 할 때 타입 코드를 설명하는 매개 변수를 지정해야합니다.

이 충격에 어떻게 대응할 수 있을까요? 이 약물을 사용하는 경우exchange.IO교환 주문 인터페이스를 직접 호출하여 주문을 할 수 있는 기능, 반환 값은 일반적으로 교환의 원래 기호 (제품 코드) 와 원래 주문 id를 포함합니다. 다음 영어 쉼표로 둘을 연결하면 FMZ 플랫폼의 정의에 맞는 주문 ID가됩니다. 마찬가지로, 당신이 FMZ 플랫폼 캡슐화 주문 인터페이스를 사용 하 여 주문을 할 경우, 주문 ID의 시작은 거래 제품 코드이기 때문에, 당신은 원래 주문 ID를 사용 해야 하는 경우, 그냥 제품 코드와 koma를 삭제 합니다.

교환에 영향을 미칩니다.

이 업그레이드의 영향exchange.CancelOrder()함수와 동일합니다exchange.GetOrder() function.

교환에 영향을 미칩니다. 구매 기능

이 업그레이드의 영향exchange.Buy()함수와 동일합니다exchange.GetOrder()기능. 주문 ID가 반환됩니다exchange.Buy()함수는 새로운 구조입니다. 예를 들어, OKX 거래소에 선물 주문을 할 때 반환되는 ID는:LTC-USDT-SWAP,1578360858053058560.

교환에 영향을 미칩니다. 판매 기능

이 업그레이드의 영향exchange.Sell()함수와 동일합니다exchange.GetOrder()기능. 주문 ID가 반환됩니다exchange.Sell()함수는 새로운 구조입니다. 예를 들어, OKX 거래소에 선물 주문을 할 때 반환되는 ID는:ETH-USDT-SWAP,1578360832820125696.

4. 구조적 조정

틱러 구조

이 업데이트는 현재 트커 구조의 시장 정보를 기록하는 트커 구조에 기호 필드를 추가합니다. 이 필드의 형식은 정확히 같은exchange.GetTicker() function.

순서 구조

이 업데이트는 Order 구조에 Symbol 필드를 추가합니다. 이 필드의 형식은exchange.GetTicker()기능. 이 업데이트는 또한 주문 구조의 ID 필드를 수정하여 제품 정보와 원래 주문 정보를 새로운 주문 ID 형식으로 기록합니다.exchange.GetOrder()그 기능을 여기서 반복하지 않겠습니다.

위치 구조

이 업데이트는 위치 구조에 기호 필드를 추가합니다. 이 필드의 형식은exchange.GetTicker() function.

5. 백테스팅 시스템

사용자의 요구를 충족시키기 위해, 이 업그레이드는 먼저 라이브 트레이딩과 호환되며, 백테스팅 시스템은 일주일 이내에 적응됩니다. 개별 전략 코드가 영향을 받으면 변경 및 적응을 위해 이 문서의 지침을 따르십시오.

추가적 업데이트

1. 계정 구조에서 새로운 필드 주식 및 UPnL

농장Account구조로 반환GetAccount미래에셋거래 대상의 구성원 기능이 확장되었습니다.

  • 자기자본 현재 마진 자산 화폐의 총 자금. 이 필드를 지원하지 않는 몇 가지 선물 거래소를 제외하고 대부분의 거래소가 이 필드를 지원합니다. 주로 실시간 계정 마진 이익과 손실을 계산하는 데 사용됩니다.

  • UPnL 현재 마진 자산 통화에 보유된 모든 포지션의 실현되지 않은 이익과 손실. 대부분의 선물 거래소는 이 분야를 지원합니다.

2. SetMarginLevel 함수는 기호 매개 변수를 지원하도록 업그레이드되었습니다.

선물 거래소 객체의 멤버 함수 SetMarginLevel가 업그레이드되었으며 매개 변수 기호가 추가되었습니다.

테스트 예제:

function main() {
    exchange.SetCurrency("ETH_USDT")
    exchange.SetContractType("swap")
    
    // The current trading pair is ETH_USDT, the contract code is swap, and the leverage value is set to 10
    exchange.SetMarginLevel(10)
    
    // Directly specify the trading pair BTC_USDT, contract code swap, and set the leverage value to 20
    exchange.SetMarginLevel("BTC_USDT.swap", 20)
}

더 많은