Bagaimana untuk mengehadkan bilangan kecil harga semasa disket berjalan?

Penulis:Zayne., Dicipta: 2019-11-02 15:00:19, Dikemas kini:

Soalan saya, dalam beberapa hari terakhir, terdapat banyak kesalahan dalam pergerakan sebenar, mungkin harga bursa yang saya gunakan hanya akan menjadi satu digit kecil, minta petunjukimg


Lebih lanjut

Pencipta Kuantiti https://www.fmz.com/api#setprecision

RumputJangan tergesa-gesa untuk menjalankan strategi, lihat tutorial di atas forum.

RumputJangan tergesa-gesa untuk menjalankan strategi, lihat tutorial di atas forum.

Rumputpertukaran.Beli ((_N(beliPrice,2),_N(beliJumlah,3))

RumputDasar awam biasanya tidak mempunyai batasan ketepatan yang khusus, untuk mata wang yang berbeza, anda boleh menetapkan_N sendiri secara manual

Rumput_N(2.312,1)

Zayne.Pada dasarnya, banyak strategi terbuka yang mempunyai masalah ini, banyak yang telah dicoba, harga kebetulan adalah bilangan bulat kecil, juga akan berurusan, sering melakukan kesalahan, yang dijalankan membeli dan menjual tidak akan dilaksanakan, strategi sama sekali tidak mencapai hasil yang diharapkan

Zayne.Bagus.

Zayne.Di mana kod tambahan? Sebagai contoh, strategi rampasan ini. 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++; {C:$0000FF} {C:$0000FF} } else { count = order.length; {C:$0000FF} if (count == 0) { Kembali; {C:$0000FF} 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); {C:$0000FF} {C:$0000FF} {C:$0000FF} {C:$0000FF} {C:$0000FF} 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); {C:$0000FF} var InitAccount = null; var LastBuyPrice = 0; var LastSellPrice = 0; fungsi on Tick (() { var ticker = _C ((exchange.GetTicker); var BuyPrice = ticker.Buy + SlidePrice; var SellPrice = ticker.Sell - SlidePrice; / Keuntungan hilang jika (Price Jual - Harga Beli) <= MaxDiff) { CancelPendingOrders (((); Kembali; {C:$0000FF} Pergilah. var cancelType = null; Pergilah. if (LastBuyPrice > 0 && (ticker.Buy - LastBuyPrice) > SlidePrice) { cancelType = ORDER_TYPE_BUY; {C:$0000FF} Pergilah. if (LastSellPrice > 0 && (LastSellPrice - ticker.Sell) > SlidePrice) { if (cancelType == null) { cancelType = ORDER_TYPE_SELL; } else { cancelType = -1; {C:$0000FF} {C:$0000FF} Pergilah. if (cancelType == -1) { CancelPendingOrders (((); } else if (cancelType!= null) { CancelPendingOrders ((cancelType); CancelPendingOrders (dalam bahasa Inggeris); CancelPendingOrders (dalam bahasa Inggeris)); {C:$0000FF} var orders = _C ((exchange.GetOrders); if (orders.length == 2) { Kembali; {C:$0000FF} var account = _C ((exchange.GetAccount); var amountBuy = _N ((Math.min ((account.Balance / BuyPrice, Lot)); var amountSell = Math.min ((account.Stocks, Lot); jika (jumlah Beli >= MinStock) { if (orders.length == 0 ordres[0].Type == ORDER_TYPE_SELL) { if (orders.length > 0) { updateProfit ((InitAccount, account, ticker); {C:$0000FF} exchange.Buy ((BuyPrice, amountBuy); LastBuyPrice = Harga Beli; {C:$0000FF} {C:$0000FF} if (amountSell >= MinStock) { if (orders.length == 0 ordres[0].Type == ORDER_TYPE_BUY) { if (orders.length > 0) { updateProfit ((InitAccount, account, ticker); {C:$0000FF} exchange.Sell ((SellPrice, amountSell); LastSellPrice = SellPrice; {C:$0000FF} {C:$0000FF} {C:$0000FF} fungsi onexit ((() { CancelPendingOrders (((); {C:$0000FF} fungsi utama (() { InitAccount = _C ((exchange.GetAccount); Log (InitAccount); SetErrorFilter (("502: Add 503: Set unexpected by network timeout by WSARecv by Connect by GetAddr by no such by reset by received by EOF"); exchange.SetRate ((1); LoopInterval = Math.max ((LoopInterval, 1); Lot = Math.max ((MinStock, Lot); while (true) { onTick (); Sleep ((LoopInterval * 1000); {C:$0000FF} {C:$0000FF}