वास्तविक डिस्क पर चल रहे समय में कीमतों को कैसे सीमित करें

लेखक:ज़ेन, बनाया गयाः 2019-11-02 15:00:19, अद्यतन किया गयाः

प्रश्न, हाल ही में वास्तविक समय में चलती घटनाओं में अक्सर त्रुटियों का सामना करना पड़ता है, शायद मेरे द्वारा उपयोग किए जाने वाले एक्सचेंज मूल्य केवल एक अंश हैं, संकेत के लिए पूछें实盘运行时, 如何限定价格的小数位


अधिक जानकारी

आविष्कारक मात्रा https://www.fmz.com/api#setprecision

घासपहले आप रणनीति बनाने में जल्दबाजी न करें और मंच पर दिए गए ट्यूटोरियल को देखें।

घासपहले आप रणनीति बनाने में जल्दबाजी न करें और मंच पर दिए गए ट्यूटोरियल को देखें।

घासविनिमय.खरीदें(_N(खरीदेंमूल्य,2),_N(खरीदेंराशि,3))

घाससार्वजनिक नीतियां आमतौर पर सटीकता के लिए कोई विशेष सीमा नहीं रखती हैं, विभिन्न मुद्राओं के लिए स्वयं को मैन्युअल रूप से सेट करें

घास_N(2.312,1)

ज़ेनमूल रूप से सार्वजनिक रणनीतियों में से कई में यह समस्या है, और मैंने कई कोशिश की है, कीमत एक अंश के लिए एक पूर्णांक है, और सौदे भी होंगे, अक्सर गलतियां होंगी, जो कि निष्पादित नहीं होंगे, रणनीति पूरी तरह से अपेक्षित परिणाम नहीं देगी।

ज़ेनअच्छा।

ज़ेनअतिरिक्त कोड कहां है उदाहरण के लिए, इस तरह की चोरी की रणनीति। 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)) { नींद (अंतराल); } } } } } function updateProfit ((accountInit, accountNow, टिकर) { 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 - स्लाइड प्राइस; // लाभ गायब अगर {SellPrice - BuyPrice) <= MaxDiff) { CancelPendingOrders (((); return; } .. var cancelType = null; .. if (LastBuyPrice > 0 && (ticker.Buy - LastBuyPrice) > स्लाइड प्राइस) { 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 ordres[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 ordres[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); लॉग (InitAccount); SetErrorFilter (("502: 503: 502: 503: 502: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: 503: exchange.SetRate ((1); LoopInterval = Math.max ((LoopInterval, 1)); Lot = Math.max ((MinStock, Lot); while (true) { onTick ((); Sleep ((लूपइंटरवल * 1000); } }