Làm thế nào để giới hạn số lượng nhỏ của giá trong khi chạy đĩa thực

Tác giả:Zayne., Tạo: 2019-11-02 15:00:19, Cập nhật:

Câu hỏi là, gần đây trong các hoạt động thực tế, thường xuyên có những báo cáo sai, có thể giá giao dịch mà tôi sử dụng chỉ có một số nhỏ, xin chỉ sốimg


Thêm nữa

Nhà phát minh định lượng https://www.fmz.com/api#setprecision

Cỏ nhỏĐừng vội chạy chiến thuật, hãy xem hướng dẫn trên diễn đàn.

Cỏ nhỏĐừng vội chạy chiến thuật, hãy xem hướng dẫn trên diễn đàn.

Cỏ nhỏgiao dịch.Buy(_N(buyPrice,2),_N(buyAmount,3))

Cỏ nhỏCác chính sách công khai thường không có giới hạn cụ thể về độ chính xác, bạn có thể tự đặt_N cho các loại tiền tệ khác nhau.

Cỏ nhỏ_N(2.312,1)

Zayne.Về cơ bản, nhiều chiến lược công khai đều có vấn đề này, và đã thử rất nhiều, giá chỉ là một số nguyên số nhỏ, cũng sẽ giao dịch, thường xuyên bị lỗi, việc thực hiện mua bán sẽ không được thực hiện, chiến lược hoàn toàn không đạt được kết quả mong đợi.

Zayne.Tốt lắm.

Zayne.Điều nào được mã hóa Ví dụ như chiến lược cướp bóc này. 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)) { Ngủ (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 on Tick ((() { var ticker = _C ((exchange.GetTicker); var BuyPrice = ticker.Buy + SlidePrice; var SellPrice = ticker.Sell - SlidePrice; / Lợi nhuận biến mất if (SellPrice - BuyPrice) <= MaxDiff) { CancelPendingOrders (tạm dịch: Hủy lệnh đang chờ) return; ♪ ♪ Không có gì đâu. var cancelType = null; Không có gì đâu. if (LastBuyPrice > 0 && (ticker.Buy - LastBuyPrice) > SlidePrice) { cancelType = ORDER_TYPE_BUY; ♪ ♪ Không có gì đâu. if (LastSellPrice > 0 && (LastSellPrice - ticker.Sell) > SlidePrice) { if (cancelType == null) { cancelType = ORDER_TYPE_SELL; } else { cancelType = -1; ♪ ♪ ♪ ♪ Không có gì đâu. if (cancelType == -1) { CancelPendingOrders (tạm dịch: Hủy lệnh đang chờ) } 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 = Giá mua; ♪ ♪ ♪ ♪ 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 = Giá bán; ♪ ♪ ♪ ♪ ♪ ♪ function onexit (()) { CancelPendingOrders (tạm dịch: Hủy lệnh đang chờ) ♪ ♪ function main (() { InitAccount = _C ((exchange.GetAccount); Log (InitAccount); SetErrorFilter (("502: 503: SetunnexpectednetworktimeoutWSARecvConnectGetAddrSetunno suchreset received byEOF"); SetErrorFilter ("502: 503: SetunnexpectednetworktimeoutWSARecvConnectGetAddrSetunnexpectednetworktimeoutGetAddrSetunnexpectednetworktimeoutWSARecvConnectGetAddrSetunnexpectednetworktimeoutGetAddrSetunnexpectednetworktimeout"); SetErrorFilter" (502: 503: SetunnexpectednetworktimeoutWSARecvConnectGetAddrSetunnexpectednetworktimeoutWSARecvConnectGetAddrSetno suchresetEEOF"); SetErrorFilter" (502: 503: SetunnexpectednetworktimeoutWSAReceivedEEOF)); SetErrorFilter" (502: SetAddrNo suchreset) SetErrorFilter" (503: Setunnexpect exchange.SetRate ((1); LoopInterval = Math.max ((LoopInterval, 1); Lot = Math.max ((MinStock, Lot); while (true) { onTick ((); Sleep (LoopInterval * 1000); ♪ ♪ ♪ ♪