बाजार की रणनीति के रूप में, सबसे बुनियादी बाजार की रणनीति, एक खरीदें एक बेचें, एक खरीदें एक खरीदें, एक खरीदें एक बेचें।
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); } }
hans0621मुद्राओं का निर्धारण कैसे किया जाता है?
बीबीधन्यवाद साझा करने के लिए, जितना संभव हो उतना पढ़ रहा हूं, कुछ जगहें अभी भी बहुत कम समझ में आती हैं, कुछ टिप्पणियां, धन्यवाद साझा करने के लिए। https://dn-filebox.qbox.me/ae3dba6b345db61fdb04694f11f11f5a089969c523f.png https://dn-filebox.qbox.me/7425baf156815b000d4aeb26c74669b8f08dff04.png https://dn-filebox.qbox.me/ad115b10c27f20434f27f8eaa4dd319341abdbf3.png
रस्सीपेंगif (orders.length == 0 ordres[0].Type == ORDER_TYPE_SELL) { कृपया पूछें कि इस order[0].Type == ORDER_TYPE_SELL) पर निर्णय लेने की आवश्यकता क्यों है?
डानियाओरेनटिप्पणी के लिए धन्यवाद