La ocupación de comprar o vender es también una forma de envío lento, con un impacto menor en el mercado. Esta estrategia también tiene algunas mejoras, ya que se puede cambiar manualmente el volumen mínimo de operaciones o la precisión. Las compras:https://www.fmz.com/strategy/191582Se vende en:https://www.fmz.com/strategy/191730
El plugin se puede iniciar con un solo clic en el terminal de transacción, sin cobrar ninguna tarifa, para facilitar las transacciones manuales.https://www.fmz.com/digest-topic/5051
function GetPrecision(){ var precision = {price:0, amount:0} var depth = exchange.GetDepth() 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 } function main(){ var initAccount = exchange.GetAccount() if(!initAccount){return '无法获取账户信息'} var precision = GetPrecision() var sellPrice = 0 var lastId = 0 var done = false while(true){ var account = _C(exchange.GetAccount) var dealAmount = - account.Stocks + initAccount.Stocks var ticker = _C(exchange.GetTicker) if(SellAmount - dealAmount > 1/Math.pow(10,precision.amount) && ticker.Sell < sellPrice){ if(lastId){exchange.CancelOrder(lastId)} var id = exchange.Sell(ticker.Sell, _N(SellAmount - dealAmount,precision.amount)) if(id){ lastId = id }else{ done = true } } if(BuyAmount - dealAmount <= 1/Math.pow(10,precision.amount)){done = true} if(done){ var avgCost = (-initAccount.Balance + account.Balance)/dealAmount return 'order is done, avg cost is ' + avgCost // including fee cost } Sleep(Intervel*1000) } }