0
집중하다
1
수행원

계약 헤지 전략을 통한 자산 이동에 대한 고찰

만든 날짜: 2020-10-20 16:48:32, 업데이트 날짜: 2023-09-26 20:59:29
comments   2
hits   2374

계약 헤지 전략을 통한 자산 이동에 대한 고찰

계약 헤지 전략을 통한 자산 이동에 대한 고찰

최근 암호화폐 업계에서 많은 소식이 전해지고 있으며, 거래소에 대한 소식도 곳곳에서 전해지고 있습니다. 한동안 모든 암호화폐 애호가들은 블록체인 자산의 안전성을 걱정하며 공황상태에 빠졌습니다. 다양한 암호화폐 그룹에는 유휴 중고 코인에 대해 10%~20% 할인을 제공하는 작은 광고가 많이 있습니다. “꾸준한 손실과 꾸준한 수익을 동시에 추구”하기 위해 다양한 전략을 모색하는 사람들이 많습니다. 많은 동전 친구들은 또한 “돈을 버는 안정적인 방법이 있다면, 돈을 잃는 안정적인 방법이 왜 필요하겠는가!“라고 농담을 했습니다. 실제로 꾸준히 돈을 벌고 꾸준히 돈을 잃는 일은money printer, 찾기가 쉽지 않아요. 제 영어 실력이 부족해서 죄송합니다.

하지만 계약 헤지 등을 통해 손실과 수익을 동시에 얻을 수 있는 등 여전히 불안정성은 존재합니다.

데모 전략

/*backtest
start: 2020-09-30 00:00:00
end: 2020-10-19 00:00:00
period: 1d
basePeriod: 1m
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD"},{"eid":"Futures_HuobiDM","currency":"BTC_USD"}]
*/

var step = 20    // 加仓价格步长

function main() {
    var pos1 = []
    var pos2 = []
    var ct = "quarter"                         // 例如用季度合约
    exchanges[0].SetContractType(ct)
    exchanges[1].SetContractType(ct)
    var diff = 0

    while (true) {
        var r1 = exchanges[0].Go("GetDepth")   // A交易所
        var r2 = exchanges[1].Go("GetDepth")   // B交易所
        var depth1 = r1.wait()
        var depth2 = r2.wait()

        if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff) {
            if(pos1.length == 0 && pos2.length == 0) {
                var info1 = $.OpenShort(exchanges[0], ct, 10)
                var info2 = $.OpenLong(exchanges[1], ct, 10)
                pos1 = _C(exchanges[0].GetPosition)
                pos2 = _C(exchanges[1].GetPosition)
                diff = depth1.Bids[0].Price - depth2.Asks[0].Price
            } else if(depth1.Bids[0].Price - depth2.Asks[0].Price > diff + step) {
                var info1 = $.OpenShort(exchanges[0], ct, 10)
                var info2 = $.OpenLong(exchanges[1], ct, 10)
                pos1 = _C(exchanges[0].GetPosition)
                pos2 = _C(exchanges[1].GetPosition)
                diff = depth1.Bids[0].Price - depth2.Asks[0].Price
            }
        }
        
        if(pos1.length != 0 && pos1[0].Profit < -0.001) {
            var info1 = $.CoverShort(exchanges[0], ct, pos1[0].Amount)
            var info2 = $.CoverLong(exchanges[1], ct, pos2[0].Amount)
            pos1 = _C(exchanges[0].GetPosition)
            pos2 = _C(exchanges[1].GetPosition)
            diff = 0
        }
        LogStatus(_D(), diff)
        Sleep(500)
    }
}

계약 헤지 전략을 통한 자산 이동에 대한 고찰

계약 헤지 전략을 통한 자산 이동에 대한 고찰

전략 논리: 이 전략은 위치 변수 pos1과 pos2를 빈 배열로 초기화하는 것으로 시작합니다. 전략은 메인 루프에 진입하고, 각 루프의 시작 부분에서 두 거래소의 계약에 대한 심도 데이터(주문장 데이터)를 얻고 가격 차이를 계산합니다. 가격 차이가 “마지막 가격 차이에 한 단계 더한 차이”를 넘어 계속 확대되는 경우, 헤지 전략을 계속 유지하고 포지션을 늘리세요. 포지션을 보유하는 경우, 첫 번째 거래 포지션의 손실이 특정 값(예: -0.001)을 초과하면 해당 포지션은 종료됩니다. 이 과정은 반복적으로 반복됩니다.

원리는 실제로 매우 간단합니다. 즉, 가격 차이가 크면 헤징이 반대됩니다. 돈을 잃을 것으로 예상하는 거래소가 손실을 유지할 때까지 기다렸다가 포지션을 종료합니다. 스프레드가 계속 확대되면 돈을 잃을 것으로 예상하는 거래소가 손실을 유지할 때까지 헤지하기 위해 포지션을 계속 늘립니다. 더 중요한 매개변수는 다음과 같습니다. 포지션을 마감하는 데 필요한 손실액, 포지션을 추가할 때의 가격 차이의 단계 크기, 헤지 금액입니다.

이 전략은 비교적 간단하며 아이디어를 검증하는 데만 사용됩니다. 실제 거래에는 적용할 수 없습니다. 실제 거래에서는 고려해야 할 사항이 아직 많습니다. 예를 들어, 거래할 계약이 통화 기반인지 U 기반인지, 거래소 A와 B의 여러 계약에 대한 승수가 동일한지 여부 등이 있습니다.

이런 방식으로, 한 거래소에서 손실을 입으면 손실 부분은 다른 거래소의 수익이 되는 셈입니다(가격 차이로 인해 헤지 손실이 발생할 수 있습니다. 즉, 손실이 수익보다 클 수 있습니다). 이 전략은 선물 거래 라이브러리를 활용합니다.$.CoverShort,$.OpenShort이것들은 템플릿의 인터페이스 함수입니다. 위의 DEMO를 백테스트하고 실행하려면 이 클래스 라이브러리를 참조해야 합니다.

위의 전략 프로토타입은 가장 간단한 탐색일 뿐입니다. 실제 운영에는 고려해야 할 세부 사항이 더 있을 수 있습니다. 예를 들어, 포지션 증가량은 점진적으로 설계할 수 있습니다. 이것은 단지 시작점일 뿐입니다. 유사한 전략은 더욱 최적화될 수 있어야 합니다. 전문가의 제안을 환영합니다.