from collections import Counter def GetAmountPrecision(): depth = _C(exchange.GetDepth) amountPrecisions = [] for ask in depth["Asks"]: i = ask["Amount"] amountPrecision = 0 if str(i).count('.') == 1: amountPrecision = len(str(i).split(".")[1]) amountPrecisions.append(amountPrecision) amountPrecision = max(amountPrecisions) return amountPrecision def GetPricePrecision(): depth = _C(exchange.GetDepth) pricePrecisions = [] for ask in depth["Asks"]: j = ask["Price"] pricePrecision = 0 if str(j).count('.') == 1: pricePrecision = len(str(j).split(".")[1]) pricePrecisions.append(pricePrecision) pricePrecision = Counter(pricePrecisions).most_common(1)[0][0] return pricePrecision
czruiq 花了个多钟才搞出来,没想到上来一查,早就有现成的了.....
77924998 有JS版本的吗
77924998 怎么用到策略里面呢
lcgs005 不错,从挂单量数据来得出小数位的方法,有没有直接用API取到最低价格,最高价格,步长数据后在实盘中对下单价格进行修正的示例?
gg50933064 这个是交易所打新策略吗
btcrobot function GetPrecision(){ if(IsVirtual()){ return {price:6, amount:6} } var precision = {price:0, amount:0} var depth = exchange.GetDepth() if(!depth){ throw '无法连接交易所行情,需要海外托管者' } for(var i=0;i<depth.Asks.length;i++){ var amountPrecision = depth.Asks[i].Amount.toString().indexOf('.') > -1 ? depth.Asks[i].Amount.toString().split('.')[1].length : 0 precision.amount = Math.max(precision.amount,amountPrecision) var pricePrecision = depth.Asks[i].Price.toString().indexOf('.') > -1 ? depth.Asks[i].Price.toString().split('.')[1].length : 0 precision.price = Math.max(precision.price,pricePrecision) } return precision }
陈皮 哈,多搜索下,挺多资源的
陈皮 有的,但是js的代码比较长,你加我,我私发给你
77924998 谢谢
陈皮 直接用函数就行了
陈皮 最低价格和最高价格好像是有一个固定的百分比的,是现价的10%还是5%忘记了,步长数据是不是就是价格精度?
陈皮 不好意思,没有呢。有现货策略和合约策略
gg50933064 有交易所打新策略吗
陈皮 不是呢,获取交易对的价格精度和下单量精度的函数,在开发策略中,经常用到的
韬奋量化 牛逼