首页
策略
文库
社区
API文档
登录
立即注册
Zayne
关注
私信
5
关注
2
关注者
社区
帮助
实盘运行时, 如何限定价格的小数位
实盘运行时, 如何限定价格的小数位
创建于: 2019-11-02 15:00:19, 更新于:
9
1193
如题,最近在实盘动作时,经常出现报错,可能我使用的交易所价格只能有一位小数,求指点
更多内容
Binance 错误 Futures_OP 4: 429: {"code":-1003,"msg":"Too much request weight used; current limit is 1200 request weight per 1 MINUTE.
fcoin 现货买卖如何指定交易区
bybit 期货交易所汇总
Fcoin交易所机器人挂单买入成功就显示获取订单信息失败,ID:,烦请大神指点
ok批量下单实例报错
Fcoin交易所连接api报错账户获取失败,求大神指点
合约可以同时持有双仓位吗
请问,何如分别获取MACD里的红绿柱子?以及其中的实心空心的红绿柱子
【求助梦总】FMZ平台如何实现机器人自动监控报错,如果一旦错误就通过扩展API来策略?
Exchange.IO 使用手册里面的例子报错
监测RSI数值代码应该怎么编写
eb888 苯乙烯 连接SimNow模拟市, 这个连续合约似乎不存在,返回Futures_OP 2: Instrument EB888 not found EB888 eb888 大小写都试过了
急!!无法创建托管者,有大佬帮忙看看什么问题吗?
新手上路,求指点组队
托管者更新 Version 3.5
exchange.IO 查询所有订单获取的json怎么解析为数组?
RSI 指标写法(求指导)
请增加支持麦语言的函数REFSIG_VOL(sig,N)
FMex交易所使用汇总
fmz bitz 合约交易 平仓报错-200
全部留言
发明者量化
https://www.fmz.com/api#setprecision
2019-11-06 17:27:23
小草
先别急着运行策略,把论坛置顶的教程大概看看吧
2019-11-02 15:50:49
小草
先别急着运行策略,把论坛置顶的教程大概看看吧
2019-11-02 15:50:48
小草
exchange.Buy(_N(buyPrice,2),_N(buyAmount,3))
2019-11-02 15:49:39
小草
公开的策略一般没有特别限制精度,对不同的币种自己手动用_N设置一下
2019-11-02 15:14:45
小草
_N(2.312,1)
2019-11-02 15:14:02
Zayne
基本上公开的策略好多都有这个问题,试了好几个都是这样,价格凑巧是一位小数的整数,也会成交,频繁报错,该执行买卖会执行不到位,策略完全达不到预期效果
2019-11-02 15:03:46
Zayne
好的
2019-11-02 15:52:16
Zayne
加代码在哪个位置 比如这个抢盘口策略 function CancelPendingOrders(orderType) { while (true) { var orders = _C(exchange.GetOrders); var count = 0; if (typeof(orderType) != 'undefined') { for (var i = 0; i < orders.length; i++) { if (orders[i].Type == orderType) { count++; } } } else { count = orders.length; } if (count == 0) { return; } for (var j = 0; j < orders.length; j++) { if (typeof(orderType) == 'undefined' || (orderType == orders[j].Type)) { exchange.CancelOrder(orders[j].Id, orders[j]); if (j < (orders.length-1)) { Sleep(Interval); } } } } } function updateProfit(accountInit, accountNow, ticker) { var netNow = accountNow.Balance + accountNow.FrozenBalance + ((accountNow.Stocks + accountNow.FrozenStocks) * ticker.Buy); var netInit = accountInit.Balance + accountInit.FrozenBalance + ((accountInit.Stocks + accountInit.FrozenStocks) * ticker.Buy); LogProfit(netNow - netInit); } var InitAccount = null; var LastBuyPrice = 0; var LastSellPrice = 0; function onTick() { var ticker = _C(exchange.GetTicker); var BuyPrice = ticker.Buy + SlidePrice; var SellPrice = ticker.Sell - SlidePrice; // 利润消失 if ((SellPrice - BuyPrice) <= MaxDiff) { CancelPendingOrders(); return; } var cancelType = null; if (LastBuyPrice > 0 && (ticker.Buy - LastBuyPrice) > SlidePrice) { cancelType = ORDER_TYPE_BUY; } if (LastSellPrice > 0 && (LastSellPrice - ticker.Sell) > SlidePrice) { if (cancelType == null) { cancelType = ORDER_TYPE_SELL; } else { cancelType = -1; } } if (cancelType == -1) { CancelPendingOrders(); } else if (cancelType != null) { CancelPendingOrders(cancelType); } var orders = _C(exchange.GetOrders); if (orders.length == 2) { return; } var account = _C(exchange.GetAccount); var amountBuy = _N(Math.min(account.Balance / BuyPrice, Lot)); var amountSell = Math.min(account.Stocks, Lot); if (amountBuy >= MinStock) { if (orders.length == 0 || orders[0].Type == ORDER_TYPE_SELL) { if (orders.length > 0) { updateProfit(InitAccount, account, ticker); } exchange.Buy(BuyPrice, amountBuy); LastBuyPrice = BuyPrice; } } if (amountSell >= MinStock) { if (orders.length == 0 || orders[0].Type == ORDER_TYPE_BUY) { if (orders.length > 0) { updateProfit(InitAccount, account, ticker); } exchange.Sell(SellPrice, amountSell); LastSellPrice = SellPrice; } } } function onexit() { CancelPendingOrders(); } function main() { InitAccount = _C(exchange.GetAccount); Log(InitAccount); SetErrorFilter("502:|503:|unexpected|network|timeout|WSARecv|Connect|GetAddr|no such|reset|received|EOF"); exchange.SetRate(1); LoopInterval = Math.max(LoopInterval, 1); Lot = Math.max(MinStock, Lot); while (true) { onTick(); Sleep(LoopInterval * 1000); } }
2019-11-02 15:20:45