極簡比特幣高頻策略機器人


就是我剛開始編寫比特幣高頻機器人的源代碼,幾乎沒有改動,參數也是原來的參數。這個版本的程序有許多要改進的地方,但即使如此,它也當時表現除了驚人的盈利能力,在我本金不多時,不加杠桿平均每天盈利在5%左右。當然無論從哪一方面,它都不適應今天的市場。我同時也發了一篇文章在社區,大家可以看看。

這個策略原理極為簡單,可以理解為准高頻的做市策略,各位看了之后可能想打人,這都能賺錢,當時幾乎誰都能寫出來。我開始也沒預料到它能這么有效,可見心中有想法要趕緊付出實踐,說不一定有意外之喜。在比特幣機器人初興的2014年,寫出賺錢的策略太容易了。

策略源碼地址:https://www.fmz.com/strategy/1088

稍微改了一下,用了平台的容錯函數_C(),和精度函數_N().

function CancelPendingOrders() {
    var orders = _C(exchange.GetOrders);
    for (var j = 0; j < orders.length; j++) {
          exchange.CancelOrder(orders[j].Id, orders[j]);}
}

//計算將要下單的價格
function GetPrice(Type,depth) {
    var amountBids=0;
    var amountAsks=0;
    //計算買價,獲取累計深度達到預設的價格
    if(Type=="Buy"){
       for(var i=0;i<20;i++){
           amountBids+=depth.Bids[i].Amount;
           //floatamountbuy就是預設的累計買單深度
           if (amountBids>floatamountbuy){
               //稍微加0.01,使得訂單排在前面
              return depth.Bids[i].Price+0.01;}
        }
    }
    //同理計算賣價
    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;}
        }
    }
    //遍歷了全部深度仍未滿足需求,就返回一個價格,以免出現bug
    return depth.Asks[0].Price
}
 
function onTick() {
    var depth=_C(exchange.GetDepth);
    var buyPrice = GetPrice("Buy",depth);
    var sellPrice= GetPrice("Sell",depth);
    //買賣價差如果小於預設值diffprice,就會掛一個相對更深的價格
    if ((sellPrice - buyPrice) <= diffprice){
            buyPrice-=10;
            sellPrice+=10;}
    //把原有的單子全部撤銷,實際上經常出現新的價格和已掛單價格相同的情況,此時不需要撤銷
    CancelPendingOrders() 
    //獲取賬戶信息,確定目前賬戶存在多少錢和多少幣
    var account=_C(exchange.GetAccount);
    //可買的比特幣量
    var amountBuy = _N((account.Balance / buyPrice-0.1),2); 
    //可賣的比特幣量,注意到沒有倉位的限制,有多少就買賣多少,因為我當時的錢很少
    var amountSell = _N((account.Stocks),2); 
    if (amountSell > 0.02) {
        exchange.Sell(sellPrice,amountSell);}
    if (amountBuy > 0.02) {
        exchange.Buy(buyPrice, amountBuy);}
    //休眠,進入下一輪循環
    Sleep(sleeptime);
}
    
function main() {
    while (true) {
        onTick();
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM