늦은 공유: 2014년 매일 5%의 수익을 내는 비트코인 고주파 로봇

저자:리디아, 창작: 2023-01-17 16:12:15, 업데이트: 2023-09-20 09:27:14

img

늦은 공유: 2014년 매일 5%의 수익을 내는 비트코인 고주파 로봇

전략의 도입

이 전략은 다음과 같이 공유되었습니다.https://www.fmz.com/strategy/1088이 전략은 내가 디지털 화폐를 시작한 이래로 나의 주요 전략이다. 지속적인 개선과 수정 후, 그것은 더 복잡해졌지만, 주요 아이디어는 변하지 않았다. 공유 버전은 명백한 버그가 없는 원래 버전이다. 그것은 가장 간단하고 명확하다. 위치 관리가 없다. 모든 거래가 가득하고, 다시 시작이 없다. 하지만 문제를 설명하기에 충분하다. 전략은 2014 년 8 월부터 올해 초까지 거래소 요금이 발생했을 때 실행되었습니다. 기간 동안 운영은 상당히 좋았고 손실 시간은 매우 적었습니다. 자본은 200 위안에서 80 비트코인으로 증가했습니다. 구체적인 과정은 다음과 같이 볼 수 있습니다.가상화폐의 자동화 거래 방식의 기사 시리즈샤오카오의 시나 블로그- 그래요 다음 그림은 내가 특별히 세운 OKcoin 플랫폼의 수익곡선입니다. 초기 자본은 1000 위안입니다. 초기 자본이 꾸준히 증가 한 것을 볼 수 있습니다. 중간선은 내 전략이 멈췄다는 것입니다. 나중에 전략이 통화 수익 전략으로 변경되었기 때문에 인화 수익률이 급격히 변동합니다. 구체적인 과정은 전략 거래의 2 년 간 요약 기사에서 설명됩니다.

img

다음 그래프는 통화로 전환된 총 자산의 곡선을 보여줍니다.

img

왜 이 전략을 공유할까요?

  1. 거래소가 충전된 후 거의 모든 고주파 전략이 죽었습니다. 제 전략도 예외가 아닙니다. 하지만 전략을 바꾸는 것은 여전히 효과가 있을 수 있습니다.
  2. 저는 오랫동안 아무것도 공유하지 않았습니다. 저는 오랫동안 이 기사를 쓰고 싶었습니다.
  3. 여러분들과 소통하고 배우고 싶습니다.

전략 원칙

이 전략의 원리는 매우 간단합니다. 그것은 거의 높은 주파수 시장 제작 전략으로 이해할 수 있습니다. 당신은 그것을 읽은 후 사람들을 타고 싶어 할 수 있습니다, 돈을 벌 수 있습니까?! 그 당시, 거의 모든 사람이 그것을 쓸 수있었습니다. 나는 처음에 그렇게 효과적이라고 기대하지 않았습니다. 우리는 생각을 가진 즉시 연습에주의를 기울여야한다는 것을 볼 수 있습니다. 2014 년, 비트코인 로봇이 처음 등장했을 때, 돈을 벌기위한 전략을 작성하는 것이 너무 쉬웠습니다. 모든 고주파 전략과 마찬가지로 이 전략도 주문록을 기반으로 합니다. 아래 그림은 전형적인 비트코인 거래소의 주문 분포를 보여줍니다.

img

우리는 왼쪽에서 구매 주문을 볼 수 있으며, 다른 가격에 주문의 수를 표시하고 오른쪽에는 판매 주문이 있습니다. 누군가가 비트코인을 구매하고 싶다면, 주문을 대기하고 기다리지 않으려면 주문을 선택 할 수 있다고 상상할 수 있습니다. 많은 수의 주문을 가지고 있다면, 많은 수의 거래가 주문과 목록을 판매하게 될 것입니다. 가격에 영향을 미칠 것입니다. 그러나이 영향은 계속되지 않습니다. 어떤 사람들은 주문을 받고 판매하고 싶어하며 가격이 매우 짧은 시간에 회복 될 것입니다. 반대로, 누군가가 코인을 판매하고 싶어한다는 것을 이해하는 것과 비슷합니다. 예를 들어 그림의 대기 주문을 들어보자. 만약 당신이 5개의 동전을 직접 구매하고 싶다면 가격은 10377에 도달할 것이다. 이 시점에서 누군가가 5개의 동전을 직접 판매하고 싶다면 가격은 10348에 도달할 것이다. 가격 차이는 이익 마진이다. 전략은 10377보다 약간 낮은 가격으로 주문을 대기하고 10376.99와 같이 10348보다 약간 높은 가격으로 구매할 것이다. 왜냐하면 상황이 그냥 일어났다면, 차이는 분명히 벌어질 것이기 때문이다. 비록 매번 그렇게 완벽하지는 않지만 실제로 확률을 감안하면 돈을 벌 수 있는 확률은 엄청나게 높기 때문이다. 현재 전략의 매개 변수와 함께 특정 동작을 설명합니다. 이 매개 변수는 물론 설명하기 위해서만 사용할 수 없습니다. 8개의 동전의 축적된 금액을 가진 가격을 검색합니다. 여기 10377입니다. 그러면 이 때 판매 가격은 0.01을 빼고 값입니다. 마찬가지로, 8개의 동전의 축적된 금액을 검색합니다. 여기 10348입니다. 그러면 이 때 판매 가격은 10348.01입니다. 그리고 이 때 구매 및 판매 가격의 차이는 10376.99-10348.01=28.98입니다. 이는 1.5의 미리 설정된 가격 차이보다 크므로, 이 두 가격의 거래를 기다리는 주문을 찾을 것입니다. 가격 차이는 1.5 미만인 경우, 또한 오픈 가격 더스 또는 마이너스 10과 같은 주문을 기다리는 가격을 찾을 것입니다. 그리고 더 기다립니다. 또한, 이 전략은 현재 진행 중인 딥 텐딩 오더에만 관련되어 있으며, 역사적인 시장과 자신의 역사적인 거래에 대해 신경 쓰지 않는다는 점에 주목한다. 이 전략은 또한 단일 손실의 개념을 가지고 있지 않다. 사실, 단일 거래의 승률은 매우 높다.

추가 설명

    1. 돈이나 화폐가 부족하면 어떻게 해야 합니까? 이 상황은 내가 돈이 적을 때 매우 일반적입니다. 대부분의 경우, 나는 주문의 한쪽만 대기하지만 큰 문제가 아닙니다. 사실, 우리는 통화와 돈을 균형 잡는 논리를 추가 할 수 있지만 균형 과정에서 잃는 것은 불가피합니다. 결국 모든 거래는 확률의 문제입니다. 나는 한쪽에서 거래를 기다리는 것을 선택합니다. 물론 이것은 다른 쪽에서 거래 기회를 낭비합니다.
    1. 어떻게 직장을 관리합니까? 처음에는 모두 매매를 할 수 있었습니다. 나중에 서로 다른 매개 변수에 따라 다른 그룹으로 나뉘었고, 한 번에 완전히 폐쇄되지 않았습니다.
    1. 스톱-러스가 있나요? 전략은 구매 및 판매 주문의 완전한 논리를 가지고 있습니다. 나는 손실을 중지 할 필요가 없다고 생각합니다 (논할 수 있습니다), 그리고 확률의 선호도도 있습니다. 거래는 기회이며 손실을 중지하는 것은 유감입니다.
    1. 어떻게 돈을 벌기 위한 전략에 적응할 수 있을까요? 이 때 매개 변수들은 대칭적이기 때문에, 8동전 상향의 누적 판매 주문과 8동전 하향의 누적 구매 주문이 약간 불균형되어 있다. 예를 들어, 15동전 상향의 누적 판매 주문은 판매 기회를 더 어렵게 만들고, 더 낮은 가격으로 반환될 가능성이 더 높으며, 이로 인해 화폐를 만들어 돈을 벌게 된다. 사실, 초기 전략은 화폐와 화폐가 증가할 정도로 효과적이다.
    1. 어떻게 부동 손실을 처리 할 수 있습니까? 물론 매매 후 화폐 가격 상승과 매입 후 화폐 가격 하락과 같은 단 한 거래에서 손실이 있을 것이다. 이러한 부동 손실은 거래가 빈번하고 매일 수천 번 이상 정상이기 때문에 처리할 필요가 없다. 수익 가능성이 더 높을 때 부동 손실은 정상이다.
    1. 검은 백조 를 예방 하는 방법 비트코인은 블랙 스완 시간이 많고, 때로는 완전히 하락하고, 판매할 기회가 없습니다. 이 상황은 너무 걱정해서는 안 됩니다. 블랙 스완 시간이 종종 높은 변동성을 가져오기 때문에 전략은 정확히 이 부분을 돈으로 만들고 손실은 또한 빠르게 다시 얻을 수 있습니다.

코드 설명

전체 코드는 내 전략 공유에서 볼 수 있습니다www.fmz.com. 여기서, 핵심 논리 기능만 설명됩니다. 어떤 변화도 없이, botvs와 함께 오는 시뮬레이션 봇은 실제로 완벽하게 작동합니다. 이것은 3 년 이상 전에 전략이며, 플랫폼은 여전히 그것을 지원합니다. 그것은 매우 감동적입니다. 우선, 입찰-수요 가격 함수 GetPrice (() 를 얻기 위해서는 주문 깊이 정보를 얻어야 합니다. 각 플랫폼의 주문 깊이 정보 길이가 다르며, 모든 주문이 통과되더라도 여전히 필요한 양이 없습니다 (이 상황은 후기 단계에서 많은 0.01 그리드 주문으로 인해 발생할 것입니다). 호출은 구매 가격을 얻는 GetPrice (Buy) 입니다.

function GetPrice(Type) {
   //_C() is the fault-tolerant function of the platform
    var depth=_C(exchange.GetDepth);
    var amountBids=0;
    var amountAsks=0;
    //Calculate the buy price and get the cumulative depth to a preset price
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //The parameter floatamountbuy is the preset accumulated depth
           if (amountBids>floatamountbuy){
               //Add 0.01 to make the order in the front
              return depth.Bids[i].Price+0.01;}
        }
    }
    //Calculate the selling price similarly
    if(Type=="Sell"){
       for(var j=0; j<20; j++){
    	   amountAsks+=depth.Asks[j].Amount;
            if (amountAsks>floatamountsell){
            return depth.Asks[j].Price-0.01;}
        }
    }
    //After traversing the full depth but still not meeting the demand, a price is returned to avoid bugs
    return depth.Asks[0].Price
}

각 루프의 주요 기능은 onTick입니다. 여기서 설정된 루프 시간은 3.5s입니다. 각 루프는 원래 명령을 취소하고 명령을 재중계합니다. 간단할수록 버그가 적습니다.

function onTick() {
    var buyPrice = GetPrice("Buy");
    var sellPrice= GetPrice("Sell");
    //diffprice is the preset spread, if the bid/ask spread is less than the preset spread, it will pend a relatively deeper price.
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //Cancel all the original orders. In fact, the new price is often the same as the price of the order. At this time, it is not necessary to cancel.
    CancelPendingOrders() 
    //Get account information to determine how much money and how many currencies are currently in the account.
    var account=_C(exchange.GetAccount);
    //The amount of Bitcoins that can be bought, _N() is the precision function of the platform.
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //The amount of Bitcoin that can be sold, note that there is no position limit, buy and sell as much as you can, as I had very little money at the time.
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //Sleep and enter the next loop
    Sleep(sleeptime);
}

전체 프로그램은 40 라인 이상으로 매우 간단해 보이지만, 그 당시에는 botvs 플랫폼에서 1 주 이상 걸렸습니다. 가장 큰 장점은 일찍 시작했다는 것입니다. 2014 년 시장은 움직이는 벽돌에 의해 지배되었으며, 그리드 및 재고 포획의 고주파 전략은 너무 많지 않았으며, 이는 전략을 물 속의 물고기와 같이 만들었습니다. 나중에 경쟁이 점점 격렬해졌고, 더 많은 돈이 있었고 많은 도전에 직면했습니다. 그것을 처리하기 위해 두 번마다 큰 변경을 해야했지만 일반적으로 원활했습니다. 거래 플랫폼이 요금을 부과하지 않는 조건 하에서는 프로그래밍 거래의 천국입니다. 소매 투자자가 요금이 없으면 운영하는 경향이 있기 때문에 고주파 및 중재 수수료의 기회를 제공합니다. 이 모든 것은 기본적으로 0.1-0.2%의 두 가지 방식의 요금으로 끝납니다. 그것은 단지 문제뿐만 아니라 전체 시장 활동의 감소입니다. 그러나 여전히 고주파량 수치 전략에 대한 많은 여지가 있습니다.


관련

더 많은