블록체인 양적 투자 시리즈 - 동적 균형 전략

저자:선함, 2019-03-26 11:52:11, 업데이트:

원본: FMZ 퀀트www.fmz.com

양적 거래의 진짜 물건은 당신이 진정으로 이익을 얻을 수 있는 장소입니다.

제1호

워렌 버핏의 멘토인 벤자민 그레이엄은 그의 책 <<지능적 투자자>에서 주식과 채권이 동적으로 균형을 이루는 거래 모델을 언급했습니다.img이 거래 모델은 매우 간단합니다.

자금의 50%는 주식 펀드에 투자되고 나머지 50%는 채권 펀드에 투자됩니다. 즉 주식과 채권은 각각 절반을 차지합니다.

고정된 간격이나 시장 변화에 기초한 자산 포지션 재균형은 주식 자산과 채권 자산의 비율을 초기 1:1로 회복시킵니다.

이것은 전체 전략의 전체 논리입니다. 언제 구매하고 판매하고 얼마나 구매하고 판매하는지를 포함합니다. 얼마나 간단하고 효과적입니다!

제2호

이 방법에서는 채권 펀드의 변동성은 실제로 주식 변동성보다 훨씬 낮습니다. 따라서 채권은 여기서 "반응 앵커"로 사용됩니다. 즉 채권이 주가가 너무 많이 상승하는지 너무 적게 상승하는지 측정하는 것입니다.

주식 가격이 상승하면 주식의 시장 가치는 채권의 시장 가치보다 커질 것입니다. 이 두 가지의 시장 가치 비율이 한 임계치의 세트를 초과하면 총 지위가 재조정되고 주식이 판매되고 채권이 매입되어 주식 가치와 채권 가치 비율이 초기 1:1로 회복됩니다.

반대로, 주식 가격이 떨어지면 주식의 시장 가치는 채권의 시장 가치보다 작을 것입니다. 이 두 가지의 시장 가치 비율이 한 임계 세트를 초과하면 총 지위가 재조정되고 주식이 구입되고 채권이 판매되어 채권 가치와 주식 가치의 시장 자본 비율이 초기 1:1로 회복됩니다.img이 방법으로, 주식과 채권의 동적 균형 사이의 비율은 주식 성장의 이익을 누리고 자산 변동성을 줄이기 위해 충분합니다. 가치 투자의 선구자로서, 그레이엄은 우리에게 멋진 아이디어를 제공했습니다.

이것이 완전하고 상호적인 전략이기 때문에, 왜 우리는 암호화폐 시장에서 그것을 사용하지 않을까요?

제3호

블록체인 자산 동적 균형 전략 BTC

전략 논리

BTC의 현재 가치에 따르면 계좌 잔액은 6400 달러 현금과 1 BTC로 유지됩니다. 즉, BTC 시장 가치에 대한 현금의 초기 비율은 1:1입니다.

만약 BTC의 가격이 7400달러로 상승하면, 즉 BTC의 시장 가치가 계좌 잔액보다 커지고 그 사이의 차이는 설정된 임계치를 초과하면 (7400-6400)/7400/2 동전이 판매됩니다.

BTC의 가격이 5400 달러로 떨어지면 즉 BTC 시장 가치가 계좌 잔액보다 작고 그 사이의 차이는 설정 한계를 초과하면 (6400-5400) / 5400/2 동전을 구입합니다. BTC가 절감되었음을 의미하며 BTC를 다시 구입해야합니다.

이 방법으로 BTC가 평가되거나 부가가치되는지 여부에 관계없이 계좌 잔액과 BTC의 시장 가치는 항상 동적으로 동일하게 유지됩니다. BTC가 부가가치되면 일부를 구입하고 다시 상승 할 때 판매합니다. 균형 척도와 마찬가지로.

제4호

어떻게 프로그래밍 코드로 구현할 수 있을까요?

예를 들어 FMZ 양적 거래 플랫폼을 들어보자. 먼저 전략적 틀을 살펴보자.

// strategy parameter
var threshold = 0.05; // Threshold
var LoopInterval = 60; // Polling interval(seconds)
var MinStock = 0.001; // Minimum transaction volume
var XPrecision = 4; // Quantity accuracy
var ZPrecision = 8; // Price accuracy

// Withdrawal order function
function CancelPendingOrders() {

}

// Placing Order function
function onTick() {

}

// Main function
function main() {
    // Filter non-critical information
    SetErrorFilter("GetRecords:|GetOrders:|GetDepth:|GetAccount|:Buy|Sell|timeout");
    while (true) { // Polling mode
        if (onTick()) { // Execute the onTick function
            CancelPendingOrders(); // Cancel unexecuted pending orders
        }
        Sleep(LoopInterval * 1000); // Sleep
    }
}

전체 전략 프레임워크는 실제로 매우 간단합니다. main 함수, onTick 주문 배치 함수, CancelPendingOrders 함수, 필요한 매개 변수.

NO.5

주문 모듈

// Placing Order function
function onTick() {
    var acc = _C(exchange.GetAccount); // Get account information
    var ticker = _C(exchange.GetTicker); // Get Tick data
    var spread = ticker.Sell - ticker.Buy; // Get the bid-ask spread of Tick data
    // 0.5 times the difference between the account balance and the current position value
    var diffAsset = (acc.Balance - (acc.Stocks * ticker.Sell)) / 2;
    var ratio = diffAsset / acc.Balance; // diffAsset / Account Balance
    LogStatus('ratio:', ratio, _D()); // Print ratio and current time
    if (Math.abs(ratio) < threshold) { // If the absolute value of ratio is less than the specified threshold
        return false; // return false
    }
    if (ratio > 0) { // If ratio is greater than 0
        var buyPrice = _N(ticker.Sell + spread, ZPrecision); // Calculate the order price
        var buyAmount = _N(diffAsset / buyPrice, XPrecision); // Calculate the order quantity
        if (buyAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
            return false; // return false
        }
        exchange.Buy(buyPrice, buyAmount, diffAsset, ratio); // Buy order
    } else {
        var sellPrice = _N(ticker.Buy - spread, ZPrecision); // Calculate the order price
        var sellAmount = _N(-diffAsset / sellPrice, XPrecision); // Calculate the order quantity
        if (sellAmount < MinStock) { // If the order quantity is less than the minimum transaction volume
            return false; // return false
        }
        exchange.Sell(sellPrice, sellAmount, diffAsset, ratio); // Sell order
    }
    return true; // return true
}

주문 트랜잭션의 논리는 명확하고 모든 코멘트가 코드에 기록되었습니다.

주요 과정은 다음과 같습니다.

계좌 정보를 얻어요

틱 데이터를 가져와

틱 데이터 사격 스프레드를 계산합니다.

계좌 잔액과 BTC 시장 가치 스프레드를 계산합니다.

거래의 트리거 조건, 주문 가격, 주문 양을 계산합니다.

주문을 하고 다시 돌려주세요.

NO.6

대기 주문 모듈을 취소

// Withdrawal order function
function CancelPendingOrders() {
    Sleep(1000); // Sleep 1 second
    var ret = false;
    while (true) {
        var orders = null;
        // Continue to get an array of unexecuted orders, if an exception is returned, continue to get
        while (!(orders = exchange.GetOrders())) {
            Sleep(1000); // Sleep 1 second
        }
        if (orders.length == 0) { // If the order array is empty
            return ret; // Return to withdrawal status
        }
        for (var j = 0; j < orders.length; j++) { // Traversing the array of unexecuted orders
            exchange.CancelOrder(orders[j].Id); // Cancel unexecuted orders one by one
            ret = true;
            if (j < (orders.length - 1)) {
                Sleep(1000); // Sleep 1 second
            }
        }
    }
}

취소 대기 주문 모듈은 더 간단합니다. 단계는 다음과 같습니다.

주문을 철회하기 전에 1초 기다립니다. 일부 거래소가 서버 지연을 겪을 수 있기 때문입니다.

실행되지 않은 명령어 배열을 계속 받습니다. 예외가 반환되면 성공할 때까지 계속 시도하세요.

실행되지 않은 명령어 배열이 비어있다면 즉시 철수 상태를 반환합니다.

실행되지 않은 명령이 있다면, 전체 배열을 탐색하고 명령 ID에 따라 명령을 취소합니다.

제7호

이 전략은 모든 프로그래밍 소스 코드입니다img imgFMZ 양적 거래 플랫폼에서 80 줄의 코드만으로 완전한 블록체인 BTC 동적 균형 전략이 성공적으로 구축되었습니다.

제8호

다음으로, 이 간단한 동적 균형 전략을 테스트하여 효과가 있는지 살펴봅시다. 다음은 BTC의 역사적 데이터에 대한 백테스트입니다.

백테스팅 환경img백테스트 성능img역 테스트 곡선img또 다른, 같은 기간 BTC 가격 차트img충격을 받았나요?

BTC는 8개월 연속 하락세를 이어가고 있으며 최대 하락률도 70%를 넘어서고 있어 많은 투자자들이 블록체인 자산에 대한 신뢰를 잃게 되었습니다.

이 전략의 누적 수익은 160%에 달하며 연간 리스크 수익률은 5을 초과합니다. 이렇게 간단한 거래 전략의 경우 투자 수익률은 대부분의 "All-in" 유형의 플레이어를 초과했습니다.

NO.9

이 균형 전략은 하나의 핵심 매개 변수 (약수 값) 만으로, 초과 수익을 추구하는 것이 아니라 탄탄한 이익을 추구하는 매우 간단한 투자 방법입니다.

트렌드 전략과는 달리 동적 균형 전략은 트렌드에 반대한다. 이 전략은 시장이 너무 뜨거울 때 위치를 줄이고 냉각시키는 것이다. 시장이 사막화되면, 그것은 거시경제 규제와 유사하게 숨겨질 것이다.

실제로 동적 균형 전략은 가격이 예측 불가능하며 동시에 가격 변동을 포착한다는 아이디어를 기반으로합니다. 동적 균형 전략의 핵심 핵심은 자산 할당 비율과 트리거 임계치를 설정하고 조정하는 것입니다.

기사의 길이를 고려할 때 기사가 모든 것에 대해 포괄적 인 것은 불가능합니다. 오래된 속담처럼 사람에게 물고기를 주면 하루 동안 먹일 수 있습니다. 사람에게 낚시를 가르치면 평생 먹일 수 있습니다.. 동적 균형 전략에서 가장 중요한 것은 투자 아이디어입니다. 이 기사에서 개별 BTC 자산을 블록체인 자산 포트폴리오의 바구니로 대체 할 수도 있습니다.img마지막으로, 이 기사를 벤자민 그레이엄의 유명한 책 <<지능적 투자자>>의 한 구절로 마무리하겠습니다.

주식 시장은 가치를 정확하게 측정하는 "중량 척도"가 아닙니다. 반대로, 그것은 "투표 기계"입니다. 수많은 사람들이 결정하는 결정은 합리적이고 정서적 인 도판입니다. 이러한 선택이 이루어지는 경우가 많습니다. 이성의 가치 판단과는 거리가 멀습니다. 투자의 비결은 가격이 본질적 가치보다 훨씬 낮을 때 투자하고 시장 추세가 상승 할 것이라고 믿는 것입니다.

  • 벤자민 그레이엄

직접 소스 코드를 복사하려면, 우리의 전략 광장을 방문하십시오:https://www.fmz.com/strategy/110900

많은 전략들이 있습니다. 공부하거나 다운로드하거나 임대하거나 구매할 수 있습니다.

NO.10

우리에 대해

이 웹사이트를 운영하는 이유는, 진짜 물건이 부족한 양적 거래 세계의 현재의 상태를 바꾸고, 많은 사기와 거의 깊은 커뮤니케이션을 가지고, 보다 순수한 양적 거래 학습 및 커뮤니케이션 플랫폼을 만드는 것입니다. 더 많은 정보를 위해, 우리의 웹사이트를 방문하십시오 (www.fmz.com)

여러분의 전달은 더 많은 진짜 물건을 계속 만들 수 있도록 우리를 지원하는 원동력이 될 것입니다! 이 기사가 여러분에게 도움이 된다고 생각한다면, 이 기사를 친구에게 전달하고 우리를 지원하시기 바랍니다. 공유는 또한 지혜의 일종입니다!

연락해 주세요

텔레그램: FMZ 퀀트

이메일:henry@fmz.com

웹사이트:www.fmz.com


더 많은