极简比特币高频策略机器人

就是我刚开始编写比特币高频机器人的源代码,几乎没有改动,参数也是原来的参数。这个版本的程序有许多要改进的地方,但即便如此,它也当时表现除了惊人的盈利能力,在我本金很少时,不加杠杆平均天天盈利在5%左右。固然不管从哪一方面,它都不适应今天的市场。我同时也发了一篇文章在社区,你们能够看看。函数

这个策略原理极为简单,能够理解为准高频的作市策略,各位看了以后可能想打人,这都能赚钱,当时几乎谁都能写出来。我开始也没预料到它能这么有效,可见心中有想法要赶忙付出实践,说不必定有意外之喜。在比特币机器人初兴的2014年,写出赚钱的策略太容易了。spa

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

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

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();
    }
}
相关文章
相关标签/搜索