مثال کے طور ایکسچینج: ETH_BTC ایکسچینج بی: ETH_USDT ایکسچینج سی (اصل میں ایکسچینج بی کے لئے ایک اور ٹریڈنگ جوڑی ہے، جو منطقی طور پر C سمجھا جاتا ہے): BTC_USDT
بی۔ سی۔ ایکسچینج ٹریڈنگ کا جوڑا ETH_BTC اور اے۔ ایکسچینج ہیجنگ کو یکجا کرتا ہے۔ اس طرح بی۔ سی۔ اصل میں ایک ایکسچینج اکاؤنٹ ہے۔
// 交易对以 ETH_BTC , ETH_USDT , BTC_USDT 为例 // 教学策略,还有很大优化空间,例如:币平衡模块,根据手续费率控制对冲差价,硬搬砖等等。 function main () { if (exchanges[0].GetQuoteCurrency() != exchanges[2].GetCurrency().split("_")[0] || exchanges[0].GetCurrency().split("_")[0] != exchanges[1].GetCurrency().split("_")[0]) { throw "交易所 交易对 配置错误。" } var marketSlideRate = 1 // 1.02 var hedgeDiff = 0.0007 var hedgeAmount = 0.1 var isFirst = true var concurrenter = function (funcName, isWait, tasks, amounts) { for (var i = 0 ; i < exchanges.length; i++) { if (isFirst) { exchanges[i].acc = _C(exchanges[i].GetAccount) exchanges[i].initAcc = exchanges[i].acc } if (isWait) { var a = funcName == "GetTicker" ? exchanges[i].ticker = exchanges[i].tiR.wait() : exchanges[i].id = exchanges[i].trR.wait() if (funcName == "trade") { exchanges[i].acc = _C(exchanges[i].GetAccount) } } else { var b = funcName == "GetTicker" ? exchanges[i].tiR = exchanges[i].Go(funcName) : exchanges[i].trR = exchanges[i].Go(tasks[i], -1, amounts[i], exchanges[i].GetCurrency()) } } if (funcName == "trade" && isWait) { Log("BTC:", exchange.BTC = exchanges[0].acc.Balance + exchanges[2].acc.Stocks, "ETH:", exchange.ETH = exchanges[0].acc.Stocks + exchanges[1].acc.Stocks, "USDT:", exchange.USDT = exchanges[1].acc.Balance + exchanges[2].acc.Balance, "#FF0000") LogProfit(exchange.USDT - (exchanges[1].initAcc.Balance + exchanges[2].initAcc.Balance) - (exchanges[0].initAcc.Balance + exchanges[2].initAcc.Stocks - exchange.BTC) * exchanges[2].ticker.Last - (exchanges[0].initAcc.Stocks + exchanges[1].initAcc.Stocks - exchange.ETH) * exchanges[1].ticker.Last) } isFirst = false } while (1) { concurrenter("GetTicker", false) concurrenter("GetTicker", true) var tickerA = exchanges[0].ticker var tickerB = exchanges[1].ticker var tickerC = exchanges[2].ticker var tickerBC = { Buy : tickerB.Buy / tickerC.Sell, Sell : tickerB.Sell / tickerC.Buy, } if (tickerA.Buy - tickerBC.Sell > hedgeDiff && exchanges[0].acc.Stocks > 0.2 && exchanges[1].acc.Balance > 500 && exchanges[2].acc.Stocks > 0.03) { // Sell A , Buy BC (Buy B Sell C) concurrenter("trade", false, ["Sell", "Buy", "Sell"], [hedgeAmount, marketSlideRate * tickerB.Sell * hedgeAmount, tickerB.Sell * hedgeAmount / tickerC.Buy]) concurrenter("trade", true) } if (tickerBC.Buy - tickerA.Sell > hedgeDiff && exchanges[0].acc.Balance > 0.03 && exchanges[1].acc.Stocks > 0.2 && exchanges[2].acc.Balance > 500) { // Buy A , Sell BC (...) concurrenter("trade", false, ["Buy", "Sell", "Buy"], [marketSlideRate * hedgeAmount * tickerA.Sell, hedgeAmount, marketSlideRate * hedgeAmount * tickerA.Sell * tickerC.Sell]) concurrenter("trade", true) } Sleep(500) } }
بی این ایم بی این ایمپرو: TypeError: اہم میں null کی جائیداد 'Sell' نہیں پڑھ سکتا (__FILE__:45) پرو: GetTicker: 429: {"msg":"درخواستیں بہت کثرت سے.","کوڈ":"50011"}
بی این ایم بی این ایمہیلو، یہ تین سککوں کے ساتھ چلتا ہے، یا USDT کے ساتھ چلتا ہے.
بی این ایم بی این ایمکیوں نہیں بھاگتے؟
fmzeroتعلیم کی ویڈیو کہاں ہے؟
ایجاد کاروں کی مقدار - خوابتین سکے درکار ہیں۔
ایجاد کاروں کی مقدار - خواببہت کثرت سے درخواستیں!
بی این ایم بی این ایمہیلو، یہ تین سککوں کے ساتھ چلتا ہے، یا USDT کے ساتھ چلتا ہے.
بی این ایم بی این ایمکیا آپ 0.03 پر ٹریڈنگ کی مقدار مقرر کر سکتے ہیں؟ 0.007 اور 1/1.02 کا کیا مطلب ہے؟
بی این ایم بی این ایمٹھیک ہے، میں پھر دوڑتا ہوں
ایجاد کاروں کی مقدار - خوابیہاں غلطی کی اطلاع بھیجیں یا ایف ایم زیڈ کے سرکاری گروپ @ dreamback پر جائیں۔
بی این ایم بی این ایمکیا آپ اپنا ویکی میسج نیچے کر سکتے ہیں؟
ایجاد کاروں کی مقدار - خوابہم آپ کو بتاتے ہیں کہ ہم کس طرح کام کر رہے ہیں ، ہم آپ کو بتاتے ہیں کہ ہم کیا کر رہے ہیں۔
بی این ایم بی این ایمکیا میں آپ کو ویکی میسج کر سکتا ہوں؟
ایجاد کاروں کی مقدار - خوابیہ ایک فوری حکمت عملی ہے ، اگر کوئی مسئلہ ہے تو ، مخصوص سوالات بھیجنے کی ضرورت ہے۔