avatar of 小天才收割机 小天才收割机
집중하다 사신
3
집중하다
28
수행원

1998년생 대학생들의 암호화폐와 양적 투자 여정

만든 날짜: 2020-03-07 18:11:51, 업데이트 날짜: 2024-12-12 20:54:50
comments   11
hits   8714

1998년생 대학생들의 암호화폐와 양적 투자 여정

1998년생 대학생들의 암호화폐와 양적 투자 여정

1. 암호화폐 세계에 진입하세요

저는 1998년에 태어났고 현재 985학부 컴퓨터 과학 4학년입니다. 같은 학교에서 대학원 과정을 계속할 예정입니다.

저는 2017년 9월 1일에 처음으로 암호화폐 세계에 접했습니다. 네, 저는 이 날짜를 아주 선명하게 기억합니다. 3일 후에 암호화폐 세계를 뒤흔든 “94” 사건이 있었기 때문입니다. 중앙은행과 다른 5개 부처가 공동으로 문서를 발행했습니다. ICO 위험을 방지하기 위해 암호화폐 가격이 절반으로 낮아졌습니다.

9월 1일, 저는 위챗 공개 계정에서 비트코인을 소개하는 영상을 보았습니다(왕지루의 영상이었던 것 같습니다). 저는 이게 매우 궁금해서 후오비를 다운로드하고 100위안을 충전했습니다. 저는 비트코인 ​​가격을 보았습니다. , 30,000위안이 넘었는데, 겁이 나서 LTC를 좀 샀습니다. 그때는 LTC당 120위안 정도였던 것 같습니다. 저는 밤새도록 제 계좌에 있는 몇 센트와 1위안의 변동을 지켜보았습니다. 그리고 LTC 가격 상승. 여러 암호화폐 QQ 그룹에서 사람들이 채팅하는 것을 지켜보세요. 밤새도록 시청한 후, 그룹 내 친구들은 모두 가격이 올라갈 것이라고 말했지만, 저는 충분히 흥미롭지 않다고 느꼈기 때문에 몇 천 위안을 충전했습니다. 그 당시 Huobi는 여전히 은행 카드 충전을 사용했습니다. 오랜 시간 동안 돈이 내 계좌에 들어오지 않아서 당황했습니다. 그룹 친구들에게 도움을 요청하고 고객 서비스에 전화했습니다. 얼마 후 돈이 마침내 내 계좌에 들어왔고, 그런 다음 모든 LTC를 샀습니다. 다시.

9월 4일 중앙은행이 문서를 발행하자마자 화폐 가격이 폭락했습니다. 너무 무서워서 손실을 재빨리 팔고 시장을 떠났습니다. 그러고 나서 화폐 가격이 천천히 반으로 줄어드는 것을 지켜보았습니다. 그때 , 후오비 등 국내 거래소는 등록이 불가능했습니다. 국내와 해외 거래소 가격 차이가 엄청나서 벽돌을 옮기는 사람들이 늘어났습니다.

나중에 나는 돈을 인출하고 학교로 돌아갔고 바닥에서 서둘러 다시 사지 않았습니다(초보 투자자는 오르는 가격을 쫓아가고 떨어지는 가격을 파는 방법만 알고 있습니다).하지만 나는 여전히 암호화폐계의 추세에 주의를 기울였고 가끔씩 여러 QQ 그룹에서 사람들이 무슨 주제에 대해 이야기하고 있는지 확인했습니다. 12월, 강세장 중 가장 미친 달이었습니다. 바이낸스의 TRON은 수백 배나 증가했고, 다른 통화도 두 배로 증가했습니다. 50% 이하의 증가는 변동으로 간주되지 않았습니다. 저는 유혹을 받고 재충전했습니다. 몇 천 달러, 그리고 그런 다음 상승과 하락을 쫓는 온갖 이상한 작업을 하며 다양한 통화가 급등하는 것을 지켜보지만 돈을 벌지 못합니다.

2018년 1월, 호황을 누리던 강세장이 끝났습니다. 저는 OKCoin에 등록하고 계약으로 플레이를 시작했습니다. 정말 신나는 일이었습니다. 20배 레버리지, 더블링, 청산 등등. 저는 K라인을 응시했고 밤새 깨어 있었습니다.

거의 모든 계약 도박꾼과 마찬가지로 저도 결국 파산하고 말았습니다. 하지만 이 경험을 통해 많은 금융 지식을 배웠다고 말해야겠습니다. 전에는 K라인도 알아볼 수 없었습니다.

2. 양적

컴퓨터 과학을 전공하는 학생으로서, 시장을 지켜보며 잠 못 이루는 밤을 여러 번 보낸 후, 편안히 잠들 수 있도록 프로그램이 대신 거래를 하게 할 수 있는 방법이 있는지 궁금해졌습니다.

사실, 저는 fmz(당시에는 botvs라고 불렸음)를 발견했지만, 당시 저는 너무 초보였고, 오랫동안 이 플랫폼을 사용하는 방법을 알아낼 수 없어서 포기했습니다.

나중에, 나는 OK API(github: https://github.com/ccyanxyz/okex)에 연결하여 로봇을 쓰기 시작했고, 이중 이동 평균과 그리드와 같은 몇 가지 전략을 썼습니다. 많은 돈을 벌지는 못했지만, 또한 저는 양적 분석의 문을 두드리고, 다양한 기술적 지표에 대해 배우고, talib 라이브러리를 사용하는 방법을 배웠습니다. 나중에 학교 과제가 많아서 더 이상 하지 않게 되었고, 로봇도 멈추고 수동 보기 및 조작 모드로 돌아갔지만 그 빈도는 매우 낮아서 가끔 한두 번의 조작만 했습니다.

3. FMZ를 사용하세요

여러 차례 고민한 끝에 결국 fmz로 돌아왔지만, 이미 나만의 전략을 작성하는 경험이 있었기 때문에 이번에는 매우 빠르게 fmz를 시작할 수 있었습니다. fmz는 거의 모든 주요 거래소에 연결되어 있고 거래, 계좌 등의 운영을 통합한 것을 발견했습니다. 편리하고 사용하기 쉽습니다. 코드를 작성하고 어디서나 실행할 수 있습니다. 많은 시간을 보낸 사람에게 교환을 수동으로 캡슐화하려는 노력. API를 사용하는 사람들에게는 구세주를 찾은 것과 같습니다.

저는 GitHub에서 fmz 공개 전략 저장소를 찾았습니다(https://github.com/fmzquant/strategies). 보물을 찾은 것 같았습니다. 저는 모든 전략을 살펴보며 하룻밤이나 이틀을 보냈고, 복사하고 백테스트했습니다. 저는 다음을 읽었습니다. 전략 논리를 이해하고 개선하려고 노력했지만, 아직도 너무 초보라고 말해야겠습니다. 모든 전략을 읽은 후에도 여전히 “돈 인쇄기”를 쓰지 못했습니다.

나중에 나는 진정하고 신중하게 생각했다. 현재의 암호화폐 서클은 더 이상 2017년의 암호화폐 서클이 아니다. 2000위안에서 2000만 위안이라는 신화적인 이야기는 없을 것이다. 나 같은 가난한 학생에게는 이미 너무 어렵다. 암호화폐에 투자해서 큰돈을 벌겠다는 생각. 환상이었기에 화폐 가격을 지켜보고 오르락내리락하는 것을 포기했고, “돈 인쇄기”를 쓰려는 비현실적인 생각도 포기했다. 전략을 세우고 FMZ의 크라우드소싱 영역에 광고를 게시하기 시작했습니다. 주문을 받고 사람들이 전략을 쓰도록 돕고, 정직하게 힘들게 번 돈을 벌어보세요.

지금까지 저는 다른 사람들을 위해 많은 전략을 작성했습니다. 그 과정은 사실 매우 고통스럽습니다. 사람들은 종종 돈을 전혀 벌 수 없는 미숙한 아이디어나 전략을 가지고 저에게 찾아옵니다. 많은 사람들은 또한 자신의 필요를 명확하게 설명할 수 없고, 결국 After 전략을 반복해서 테스트해 본 결과, 수익이 나지 않았고 다른 사람들과 논쟁도 해야 했습니다. 그래서 광고를 아래와 같이 바꾸고 주문 접수에 대한 규칙과 기준을 정해 걱정을 덜었습니다.

원래 제 주문 빈도는 점점 낮아지고 있었습니다. 학교 일이 많아서 많은 사람을 거절했거든요. 하지만 2월에 fcoin이 도망가서 제 자산 대부분을 가져갔어요(하지만 제가 가진 건 많지 않았어요) 그래서 최근에는 모든 사람으로부터 주문을 받아서 돈을 벌어야 했습니다.

내 전략 라이브러리:

오늘 fmz를 탐색하던 중, 뭔가 말문이 막히는 것을 발견했습니다. 주문을 받는 어떤 “회사”가 제 주문 접수 광고를 표절하기도 했습니다. 다음은 그 회사의 광고입니다.

그래서 저는 “친숙도”를 “숙련도”로 바꾸고 시작 가격을 낮췄습니다(사나운 경쟁의 냄새가 났거든요).

왜 FMZ에 “능숙하다”고 말하지 않았을까요? “아무도 C++에 능숙할 수 없다”는 농담을 들어보셨는지 모르겠네요. 하하하, 그래서 저는 “익숙하다”고 쓰는 데 익숙합니다. 내 이력서와 기타 관련 기술 소개입니다.

4. 중재 아이디어

나는 최근 현물 헤지, 선물-현물 차익거래, 교차 기간 차익거래, 삼각 차익거래 등 몇 가지 차익거래 전략을 공부했습니다. 이틀 동안 나는 전에 본 적이 없는 차익거래 아이디어를 보았습니다(아마 내가 무지한 탓일 겁니다). 여기에 공유하고 싶습니다.

외환 시장에 다음과 같은 가격을 갖는 여러 거래 쌍이 있다고 가정해 보겠습니다.

USDollar/BritishPound 0.5
BritishPound/FrenchFranc 10.0
FrenchFranc/USDollar 0.21

이 경우, 거래 수수료를 무시하고, 원래 1달러가 있다면, 먼저 영국 파운드로 환전하고, 그다음 프랑스 프랑으로 환전하고, 그다음 미국 달러로 환전할 수 있습니다. 이 과정에서 1달러는 1x0.5x10.0x0.21=가 됩니다. 1.05 USD, 이익 0.05 USD.

위의 예에서는 차익거래 기회가 있지만, 다음 예에서는 기회가 없습니다.

USDollar/BritishPound 0.5
USDollar/FrenchFranc 4.9
BritishPound/FrenchFranc 10.0
BritishPound/USDollar 1.99
FrenchFranc/BritishPound 0.09
FrenchFranc/USDollar 0.19

그렇다면 이렇게 거대한 시장에서 어떻게 차익거래 기회가 있는지 판단할 수 있을까?

이 문제는 방향 그래프 최단 경로 문제로 추상화될 수 있습니다. 각 통화는 정점으로 사용되고, 환율은 에지 가중치로 사용되어 방향 그래프를 형성합니다. 그런 다음 정점(예: USD)에서 시작하여 다음을 찾습니다. 차익거래가 가능한 순환 경로.

위의 예는 OJ 문제(http://poj.org/problem?id=2240)에서 나온 것이며, 해결책은 여기에서 찾을 수 있습니다: http://hehejun.blogspot.com/2018/10/poj2240- arbitrage. HTML5.0은 HTML5.1보다 훨씬 더 강력합니다.

그래서 저는 최근에 아비트라지 기회를 포착하고 아비트라지를 수행하는 전략을 생각해 낼 수 있을지 궁금했습니다. 저는 GitHub에서 검색했고 이미 구현되어 있음을 발견했습니다: https://github.com/wardbradt/peregrine. 이 프로젝트는 이 아비트라지를 해결합니다. 문제. 음의 가중치 에지가 있는 방향 그래프의 최단 경로 문제로 추상화됩니다. 위에서 언급한 OJ 문제의 솔루션은 다릅니다. 음의 가중치 에지가 있는 방향 그래프의 최단 경로는 Bellman-Ford 알고리즘을 사용합니다. 관심이 있다면 공부할 수 있습니다. 조사해 보세요.

또한 OJ 문제의 해결책 아이디어를 참조하여 fmz에서 간단한 구현을 했습니다. 아직 완성되지 않았고 정확성을 보장할 수 없습니다. 토론을 자극하기 위해 여기에 게시합니다.

var coins = {
    EMPTY: 0,
};
var price = {};

function get_coins() {
    for(var i = 0; i < exchanges.length; ++i) {
        var base = _C(exchanges[i].GetCurrency);
        var quote = _C(exchanges[i].GetQuoteCurrency);
        var len = Object.keys(coins).length;
        if(!coins.hasOwnProperty(quote)) {
            coins[quote] = len;
            len += 1;
        }
        if(!coins.hasOwnProperty(base)) {
            coins[base] = len;
            len += 1;
        }
    }
}

function get_graph() {
    var graph = [];
    for(var i = 0; i < exchanges.length; ++i) {
        var ticker = _C(exchanges[i].GetTicker);
        var base = _C(exchanges[i].GetCurrency);
        var quote = _C(exchanges[i].GetQuoteCurrency);
        graph.push({
            from: coins[base],
            to: coins[quote],
            weight: ticker.Buy
        });
        price[base + quote] = ticker.Buy;
        graph.push({
            from: coins[quote],
            to: coins[base],
            weight: 1 / ticker.Sell
        });
        price[quote + base] = 1 / ticker.Sell;
    }
    return graph;
}

function bfm(graph, initAmount, feeRate) {
    var dist = [];
    var pre = [];
    var i;
    var j;
    var fee = 0;
    for(i = 0; i < Object.keys(coins).length; ++i) {
        dist.push(0);
        pre.push(-1);
    }
    dist[1] = initAmount;
    for(i = 0; i < Object.keys(coins).length - 1; ++i) {
        for(j = 0; j < graph.length; ++j) {
            var from = graph[j].from;
            var to = graph[j].to;
            var rate = graph[j].weight;
            if(dist[from] * rate > dist[to]) {
                dist[to] = dist[from] * rate;
                pre[to] = from;
            }
        }
    }
    if(dist[1] <= initAmount) {
        return false;
    }
    var path = [];
    var top = pre[1];
    var coin_keys = Object.keys(coins);
    path.push({
        from: coin_keys[top],
        to: coin_keys[1],
        rate: price[coin_keys[top] + coin_keys[1]]
    });
    while(top != 1) {
        var temp = top;
        top = pre[top];
        path.push({
            from: coin_keys[top],
            to: coin_keys[temp],
            rate: price[coin_keys[top] + coin_keys[temp]],
        });
    }
    path.reverse();
    
    fee = path.length * feeRate * initAmount;
    if(dist[1] - initAmount <= fee || path.length == 0) {
        return false;
    }
    return path;
}

function onTick() {
    var graph = get_graph();
    var account = _C(exchanges[0].GetAccount);
    var balance = account.Balance;
    
    var path = bfm(graph, balance, 0);
    if(!path) {
        return;
    }
    Log(path);
    
    // buy & sell follow the path 
    ...
}

function main() {
    get_coins();
    
    while(1) {
        onTick();
    }
}

5. 요약

요약하자면, fmz는 좋은 플랫폼이고, 사용하기 쉽고 신뢰할 수 있으며, 조용히 재산을 벌고 있습니다. fmz가 점점 더 좋아지기를 바랍니다. 저는 졸업 후 석사 학위를 위해 계속 공부할 것입니다(블록체인에서도 마찬가지입니다) 필드), 그리고 fmz에서 계속 일하세요. 용돈을 좀 벌어보세요.

(2020년 3월 7일 오후에 작성했습니다. 방금 누군가를 위해 전략을 작성하고 내 FMZ 잔액이 부족하다는 것을 알게 되었고, 로열티를 사기 위해 여기 왔습니다. 하하하하)

위챗: C790266922