옵션 정량 거래에 적합한 데리빗 선물 API를 개조합니다

저자:작은 꿈, 2019-10-29 14:57:54, 업데이트: 2023-10-17 21:20:50

img

디지털 화폐 선물 거래소는 이미 많이 있지만, 선물 파생물, 디지털 화폐 옵션 거래로 현재 시장에 있는 거래소는 거의 없습니다. 옵션 거래를 지원하는 거래소는 Deribit, BitMEX입니다. 양적 거래 분야에서 옵션 거래는 또한 다양한 전략을 가지고 있습니다. 예를 들어 검색에 일부 자료에 언급 된 옵션 전략:

유형
인도적 전략: 유가증권 구매 파산 옵션 판매 황소 시장에서 오리온 가격이 낮다 쇠시장 부진
파산 옵션 구매 파인옵션 판매 곰 시장은 오리온 가격의 부진을 보았습니다. 곰 시장의 부진
유동성 전략: 파는 스프레스 파는 넓은 스핀 들 횡단선 구매 폭넓은 범위를 구입
헤드리지 전략: 준비해 보세요 기하급수 보호용 비둘기 보호적 부진
다목적 이중적 공허한 양쪽 경계

이 문서는연결

옵션 거래 전략을 작성하기 위해서는 기본 주문, 시장 획득, 주문 철회, 보유 등의 작업에 익숙해야 한다. 전략 작성에는 여전히 발명자의 양적 거래 플랫폼을 사용한다. 비록 발명자의 양적 거래 플랫폼은 현재 디지털 통화 양적 거래 분야에 대한 지원이 주로 동전 거래, 계약 거래, 레버리지 거래이다. 옵션 거래에 대한 관련 정보는 많지 않다. 아래의 "데리빗" 거래소를 예로, 발명자의 양적 거래 플랫폼을 사용하여 디지털 통화 옵션 거래를하는 방법을 소개한다.

데리비트 관련 자료

API 문서:https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument모형 디스크:https://docs.deribit.com/v2/?javascript#public-get_last_settlements_by_instrument

아날로그 디스크 웹사이트에서 계정을 등록하고, API KEY를 열고, API KEY에 액세스할 수 있다.img

옵션 거래에 대해 이해해야 할 네 가지 기본 개념은 다음과 같습니다.img

  • 권한의 날: 옵션의 상용자 양측이 그 날짜에 옵션 계약을 완료하는 날이다.
  • 승권 가격: 승권 당일, 승권 가격으로 승권 계약의 양측이 승권 계약을 완료한다.
  • 권리금: 즉, 옵션의 가격, 현장 선물과 마찬가지로 구매 가격과 판매 가격을 제안합니다. 주목할 점은 옵션의 유동성이 일반적으로 선물과 현금보다 떨어지기 때문에 사매 가격의 차이는 매우 클 수 있다는 점입니다. 특히 주목해야 합니다! 거래 후 거래 가격은 옵션 다중체의 비용이며, 이 때 다중체는 권리를 얻습니다 (옵션 권리를 행사합니다); 옵션의 공백자는 권리 수수료로 그 쪽에 의무를 추가하고, 다중체가 권리를 행사하기를 요청하면 공백자는 협력해야합니다.
  • (Call) (Put) 옵션: 파우치 옵션이란 옵션 다중주자가 특정 거래일에, 특정 거래 가격에, 옵션 무장주인에게 정해진 비트코인을 구매할 권리를 요구하고, 무장주인은 여러 가지 협력 의무를 가지고 있는 것을 말한다. 반면, 파우치 옵션은 옵션 다중주자가 특정 거래일에, 특정 거래 가격에, 무장주인에게 정해진 비트코인을 판매할 권리를 요구하고, 무장주인은 여러 가지 협력 의무를 가지고 있는 것을 말한다.

가처분

데리빗 거래소의 API 문서를 보면, 데리빗 시장 인터페이스는 선물 또는 옵션 시장에 접근하기 위해 입력된 것입니다.instrument_name매개 변수가 다르지만 (instrument_name는 SetContractType 함수를 통해 설정된) 기본적으로 시장을 얻는 인터페이스를 따라 사용할 수 있습니다.GetTicker이 자금에 대해 많은 사람들이 알고 있습니다.

물론, 발명자의 양자 거래 플랫폼 패키지는 기본적으로 Deribit 거래소의 실제 디스크입니다. 먼저 다음 코드를 사용하여 아날로그 디스크로 전환합니다:

exchange.IO("base", "https://test.deribit.com")

그리고 우리는 현재 옵션 계약으로 설정합니다.BTC-27DEC19-7000-P[중고] 이것은 27DEC19의 승권 날짜이며, 승권 가격은 7000입니다.

exchange.SetContractType("BTC-27DEC19-7000-P")

그리고 우리는 함께 작성하고 코드를 실행하여 이 옵션 계약을 얻는 방법을 테스트합니다.

function main () {
    exchange.IO("base", "https://test.deribit.com")
    exchange.SetContractType("BTC-27DEC19-7000-P")
    var ticker = exchange.GetTicker()
    Log(ticker)
}

이 사이트는 Google의 웹 사이트입니다. 이 사이트는 Google의 웹 사이트입니다img이 비디오는 이 비디오에서 볼 수 있는 것과 비슷합니다.img

다른 산업의 인터페이스 호출 방식은 동일하며, 여기에 더 이상 설명되지 않습니다. 옵션 거래는 매우 활발하지 않으며, 거래소에서는 때때로 결제 또는 판매 명령이 없는 상황이 발생할 수 있습니다. 이 경우 발명가는 거래소 바닥을 정량화하여 0의 숫자를 감지하고 오류를 나타냅니다.SetErrorFilter("Invalid ticker")이 오류를 무시하고,GetRawJSON이 함수는 시장의 원시 정보 포장을 얻을 수 있습니다.

function init() {
    SetErrorFilter("Invalid ticker")
}

$.GetTicker = function(e) {
    var ticker = e.GetTicker()
    if (!ticker) {
        try {
            var ret = JSON.parse(e.GetRawJSON())
            return {
                Info : ret,
                High : ret.result.stats.high,
                Low : ret.result.stats.low, 
                Buy : ret.result.best_bid_price,
                Sell : ret.result.best_ask_price,
                Last : ret.result.last_price, 
                Volume : ret.result.stats.volume,
                OpenInterest : 0,
                Time : new Date().getTime()
            }
        } catch (err) {
            Log(err)
        }
    }
    
    return ticker
}

이 글은 "이번 전화는Log($.GetTicker(exchange))

아래 목록

아래와 같은 동작은 매우 간단하며, 선물 거래에 비해 두 방향으로만 구매 및 판매가 가능합니다.Sell,Buy이 함수들은 다음과 같습니다:

function main () {
    exchange.IO("base", "https://test.deribit.com")
    exchange.SetContractType("BTC-27DEC19-7000-P")
    
    var id = exchange.Buy(0.017, 1)
    Log(exchange.GetOrder(id))
}

img

이 엑스페라에는 이미 주문한 상품이 등장합니다.img

그리고exchange.GetOrder(id)주문 정보를 확인하세요.

철회

이 방법은CancelOrder퓨처스 거래에서 환불하는 것과 같은 함수.img

사용 가능한 재산을 취득합니다

계좌 사용 가능한 자산은 선물 거래에서와 마찬가지로 바로 호출합니다.GetAccount이 함수들은 다음과 같습니다.

모의 거래소 페이지에서 표시img

실행 코드 획득:img

재고 정보를 얻으세요

하지만, 이 모든 것들은 단지 소매에만 적용되는 것이 아닙니다.GetPosition이 함수는 기본으로 거래되는 데리빗 거래가 옵션 거래가 아닌 선물 거래이기 때문에 선물 보유를 얻을 수 있습니다. 그래서 이것은 우리가 직접 선택권을 보유하는 함수를 포장해야 할 것입니다.

API 문서에 저장된 함수 인터페이스를 가져옵니다:img

$.GetPosition = function(e) {
    // /private/get_positions
    // currency  , kind 
    
    var positions = [] 
    var currency = e.GetCurrency()
    var arr = currency.split("_")
    var baseCurrency = arr[0]
    
    try {
        var ret = e.IO("api", "GET", "/api/v2/private/get_positions", "currency=" + baseCurrency + "&kind=option")
        for (var i in ret.result) {
            if (ret.result[i].size == 0 || ret.result[i].direction == "zero") {
                continue    
            } 
            
            var pos = {
                Info : ret.result[i], 
                Amount : ret.result[i].size,
                FrozenAmount : 0,
                Price : ret.result[i].average_price,
                Profit : ret.result[i].floating_profit_loss,
                MarginLevel : 0,
                Margin : 0,
                ContractType : ret.result[i].instrument_name,
                Type : ret.result[i].direction == "buy" ? ORDER_TYPE_BUY : ORDER_TYPE_SELL,
            }
            
            positions.push(pos)
        }
    } catch (err) {
        Log(err)
        positions = null
    }
    
    return positions
}

전화Log($.GetPosition(exchange))이 자료를 인쇄할 수도 있습니다.img img

이렇게 하면 기본 동작이 모두 실현되고 나머지는 옵션 거래 전략을 연구할 수 있습니다.


관련

더 많은