एफएमजेड प्लेटफार्म एपीआई डॉक टेलीग्राम समूह में शामिल हों
www.fmz.com(पहले BotVs) एक मात्रात्मक रणनीति व्यापार मंच है जहां आप आसानी से सीख सकते हैं, लिख सकते हैं, साझा कर सकते हैं, और मात्रात्मक रणनीतियों का व्यापार कर सकते हैं।
FMZ (BOTVS) अब BitMEX पर सभी अनुबंधों का समर्थन करता है!
function main() {
exchange.IO("base", "https://testnet.bitmex.com")
}
var initAccount = null;
var nowAccount = null;
function main() {
LogReset(1);
Log("This is BitMEX test bot");
Log("Fee:", exchange.GetFee());
Log("Initial account:", initAccount = _C(exchange.GetAccount));
var info = exchange.SetContractType("XBTUSD"); // BitMEX : XBTUSD , OK : this_week
Log("XBTUSD info:", info);
Log("Use GetTicker to get ticker information:", _C(exchange.GetTicker))
Sleep(1000 * 10);
// make an order
exchange.SetDirection("sell"); // set order direction
var orderId = exchange.Sell(-1, 1); // sell at market price。
Sleep(6000);
// log positions
var positions = null;
Log(positions = _C(exchange.GetPosition));
Log("Account before changing leverage:", _C(exchange.GetAccount));
// change leverage
Log("Change leverage", _C(exchange.SetMarginLevel, positions[0].MarginLevel * 2));
Log("Account after changing leverage:", _C(exchange.GetAccount));
// test GetOrder
if (orderId) {
Log(_C(exchange.GetOrder, orderId));
}
Sleep(1000 * 10);
Log(_C(exchange.GetPosition));
// set direction to close
exchange.SetDirection("closesell");
var go_buy = exchange.Go("Buy", -1, 1);
var orderId2 = go_buy.wait();
Log(_C(exchange.GetOrder, orderId2));
Log("Current account:", nowAccount = _C(exchange.GetAccount));
Log(_C(exchange.GetPosition));
LogProfit(nowAccount.Stocks - initAccount.Stocks, " initAccount:", initAccount, " nowAccount:", nowAccount);
Sleep(1000 * 10);
var ticker = _C(exchange.GetTicker);
exchange.SetDirection("buy");
exchange.Buy(ticker.Last - 50, 1);
exchange.SetDirection("sell");
exchange.Sell(ticker.Last + 50, 1);
// GetOrders
Log("Test GetOrders:", _C(exchange.GetOrders));
var e = exchange;
while (true) {
var orders = _C(e.GetOrders);
if (orders.length === 0) {
break;
}
Sleep(500);
for (var j = 0; j < orders.length; j++) {
e.CancelOrder(orders[j].Id);
if (j < (orders.length - 1)) {
Sleep(500);
}
}
}
Log("Cancel order, test GetOrders again:", _C(exchange.GetOrders));
}
बोट द्वारा जानकारी लॉग, जो कि BitMEX पर के साथ एक ही है.
exchange.SetDirection("closesell");
var go_buy = exchange.Go("Buy", -1, 1);
var orderId2 = go_buy.wait();
Log(_C(exchange.GetOrder, orderId2));
Log("当前账户:", nowAccount = _C(exchange.GetAccount));
Log(_C(exchange.GetPosition));
LogProfit(nowAccount.Stocks - initAccount.Stocks, " initAccount:", initAccount, " nowAccount:", nowAccount);
var ticker = _C(exchange.GetTicker);
exchange.SetDirection("buy");
exchange.Buy(ticker.Last - 50, 1);
exchange.SetDirection("sell");
exchange.Sell(ticker.Last + 50, 1);
// GetOrders
Log("Test GetOrders:", _C(exchange.GetOrders));
var e = exchange;
while (true) {
var orders = _C(e.GetOrders);
if (orders.length === 0) {
break;
}
Sleep(500);
for (var j = 0; j < orders.length; j++) {
e.CancelOrder(orders[j].Id);
if (j < (orders.length - 1)) {
Sleep(500);
}
}
}
Log("orders have been canceled. Now check orders again, order array is empty. GetOrders:", _C(exchange.GetOrders));
The pending orders
information. (अवतरित आदेशों की जानकारी)
[{"Id":4,"Amount":1,"Price":1679.6,"DealAmount":0,"AvgPrice":0,"Status":0,"Type":1,"ContractType":"XBTUSD"},
{"Id":3,"Amount":1,"Price":1579.6,"DealAmount":0,"AvgPrice":0,"Status":0,"Type":0,"ContractType":"XBTUSD"}]
नवीनतम होस्टिंग का उपयोग करके, अंतर्निहित स्वचालित रूप से के-लाइन का संश्लेषण कर सकता है, और कुछ के-लाइन चक्र डेटा जो बीआईटीएमईएक्स द्वारा समर्थित नहीं हैं, को भी संश्लेषित किया जा सकता है, इसलिए जब आप के-लाइन चक्र सेट करते हैं तो यह अब सीमित नहीं होता है।1分钟、5分钟、1小时、1天
इन चक्रों को, सभी चक्रों को सेट किया जा सकता है.
LogReset(1);
var info = exchange.SetContractType("XBTUSD");
exchange.SetDirection("sell");
var orderId = exchange.Sell(-1, 1);
Log(_C(exchange.GetPosition));
Sleep(1000*6);
exchange.SetDirection("buy");
var orderId2 = exchange.Buy(-1, 1);
Log(_C(exchange.GetPosition));
exchange.SetDirection("closesell");
var orderId3 = exchange.Buy(-1, 1);
Log(_C(exchange.GetPosition));
// exchange.IO example
exchange.SetContractType("XBTUSD");
Log(exchange.IO("api", "POST", "position/leverage", "symbol=XBTUSD&leverage=4"));
Log(exchange.IO("api", "GET", "user"));
The raw information of position/leverage API (प्रत्यक्ष रूप से एक्सचेंज एपीआई को कॉल करें)
{"homeNotional":0,
"sessionMargin":0,
"bankruptPrice":null,
"initMarginReq":0.25,
"execBuyQty":2,
"execComm":184,
"unrealisedCost":0,
"commission":0.00075,
"leverage":4,
"posLoss":0,
"posMargin":0,
"posMaint":0,
"liquidationPrice":null,
"maintMarginReq":0.005,
"grossExecCost":0,
"execCost":7,
"currentTimestamp":"2017-05-08T10:51:20.576Z",
"markValue":0,
"unrealisedGrossPnl":0,
"taxBase":7720,
"unrealisedPnlPcnt":0,
"prevUnrealisedPnl":0,
"openOrderSellCost":0,
"deleveragePercentile":null,
"openingComm":31588,
"openOrderBuyCost":0,
"posCross":0,
"taxableMargin":0,
"simpleCost":0,
"underlying":"XBT",
"quoteCurrency":"USD",
"execBuyCost":122613,
"execSellCost":122620,
"execQty":0,
"realisedCost":-7720,
"unrealisedPnl":0,
"openingQty":0,
"openOrderBuyQty":0,
"initMargin":0,
"unrealisedTax":0,
"simpleQty":0,
"avgCostPrice":null,
"rebalancedPnl":24052,
"openingTimestamp":"2017-05-08T10:00:00.000Z",
"unrealisedRoePcnt":0,
"posCost":0,
"posInit":0,
"posComm":0,
"realisedTax":0,
"indicativeTax":0,
"breakEvenPrice":null,
"isOpen":false,
"riskValue":0,
"posState":"",
"varMargin":0,
"realisedGrossPnl":7720,
"timestamp":"2017-05-08T10:51:20.576Z",
"account":25992,
"foreignNotional":0,
"openOrderSellPremium":0,
"simpleValue":0,
"lastValue":0,
"riskLimit":20000000000,
"openOrderSellQty":0,
"grossOpenPremium":0,
"marginCallPrice":null,
"prevClosePrice":1562.74,
"openOrderBuyPremium":0,
"currentQty":0,
"currentCost":-7720,
"currentComm":31772,
"markPrice":null,
"posCost2":0,
"realisedPnl":-24052,
"prevRealisedPnl":-95,
"execSellQty":2,
"shortBankrupt":0,
"simplePnl":0,
"simplePnlPcnt":0,
"lastPrice":null,
"posAllowance":0,
"targetExcessMargin":0,
"indicativeTaxRate":0,
"grossOpenCost":0,
"maintMargin":0,
"crossMargin":false,
"openingCost":-7727,
"longBankrupt":0,
"avgEntryPrice":null,
"symbol":"XBTUSD",
"currency":"XBt"}
q25459768धन्यवाद.
कूंगकृपया अपने स्थानीय होस्ट के साथ वीपीएन खोलें, shadowsocks, वैश्विक, bitmex वेबपेज का उपयोग करें, लेकिन प्रोग्राम नहीं चल रहा है। अमेरिकी सार्वजनिक सर्वर चुनें, कोई समस्या नहीं है, आप बेंचमार्क कर सकते हैं। मदद के लिए पूछें कि इसे कैसे हल किया जाए, क्या आपको एक अमेरिकी सर्वर खरीदना चाहिए ताकि आप चल सकें?
फूल खिलते हैंकृपया पूछें कि क्या botvs bitmex के लिए सीमांत मूल्य पर निर्भरता का समर्थन करता है, जो कि bitmex में ऑर्डर करते समय टंकण पर टैप करने के समान है।
बोबो188getrecords के साथ, bitmex केवल 100 डेटा वापस करता है, लेकिन bitmex अधिकतम 500 का समर्थन करता है, आप और अधिक कैसे प्राप्त कर सकते हैं? धन्यवाद
मुहब्बतGetAccount द्वारा प्राप्त डेटा गलत है। {"स्टॉक्स": 0.00841059, "फ्रोजन स्टॉक्स": 0.0092248, "बालेंस": 0, "फ्रोजन बैलेंस": 0} FrozenStocks एक शून्य कम है, वास्तव में 0.092248 है।
बेलीवexchange.IO (("api", httpMethod, resource, params) का उपयोग करके bitmex के rest इंटरफ़ेस पर कॉल करने के लिए त्रुटि रिपोर्ट, कृपया यह कैसे हल करें? मैं प्राप्त bitmex के लिए इस यूआरएल चाहते हैंः https://www.bitmex.com/api/v1/orderBook/L2? symbol=XBT&depth=1, दस्तावेजों के अनुसार कोड का उपयोग कर def main (: depth = exchanges[0].IO (("api", "GET", "/api/v1/orderBook/L2","symbol=XBT&depth=1") लॉग ((depth) लॉग में त्रुटिः Futures_BitMEX त्रुटि Futures_OP 4: 401: {"त्रुटि":{"संदेश":"हस्ताक्षर मान्य नहीं है.","नाम":"HTTPError}} मेरा aksk ठीक है, क्योंकि अन्य एपीआई के माध्यम से बुलाया जा सकता है, यह देखने में मदद करें कि यह क्या कारण है?
विक्टर997हैलो, मैं ड्रॉकर नहीं जोड़ सकता, यह गलत पासवर्ड कहता है। मुझे सभी चरणों के साथ मदद की जरूरत है अगर यह संभव है, मैं केवल प्लेटफॉर्म जोड़ सकते हैं। धन्यवाद, विक्टर 997
आठ लोगों ने तेल डालाBitMEX कब websocekt मोड का समर्थन कर सकता है, अब 5 मिनट में 300 लेनदेन की आवृत्ति सीमा बहुत अधिक है
कज़जोhttps://dn-filebox.qbox.me/bf29e11e9f2d707808ccd006406bb3026a794876.png मैं Add Platforms में Bitmex क्यों नहीं देख रहा हूँ, स्क्रीनशॉट में Kraken भी नहीं?
इत्रेज़्क़नमस्कार, मैं बोटवीएस के लिए नया हूँ, मैं इसे बिटमेक्स के लिए कैसे उपयोग कर सकता हूँ?
लुइसलुकृपया पूछें कि क्या आपके प्लेटफॉर्म के पास बिटमेक्स के लिए कोई रीसेट सिस्टम है।
JBitMEX के GetRecords द्वारा लौटाए गए K-रेखा डेटा का अंतिम मान वास्तविक समय में नहीं है, जिससे वास्तविक समय में गणना करने में असमर्थता है। यह समस्या लंबे समय से चल रही है और BitMEX के अपने एपीआई में एक दोष है, जिसे हल नहीं किया गया है। क्या BotVS BitMEX से वास्तविक समय में डेटा एकत्र करता है, और क्या यह BitMEX के वास्तविक समय के डेटा को एकत्रित डेटा के साथ पूरक कर सकता है?
JBitMEX के लिए K-लाइन डेटा कैसे प्राप्त किया जाता है?
नींबूमैं एक समस्या का सामना कर रहा हूं, bitMEX ने विनिमय दर को युआन में सेट करने के बाद लेनदेन नहीं किया है ~ मुझे नहीं पता कि क्या समस्या है, कृपया मुझे बताएं ~
Jयह बहुत मोटा है, और यह लीवर के साथ काम कर सकता है
आविष्कारक मात्रा - छोटे सपनेshadowsocks वास्तव में वैश्विक एजेंट नहीं है, और यह सभी एजेंटों के कंप्यूटरों के लिए नेटवर्क एक्सेस नहीं है, वर्तमान में सबसे सरल एक सर्वर को अन्य क्षेत्रों में चलाने के लिए होस्टिंग है।
बोबो188कृपया, क्या आप मुझे एक उदाहरण दे सकते हैं, धन्यवाद! मैं छोटा हूँ
आविष्कारक मात्रा - छोटे सपनेHttpQuery का उपयोग करके सीधे एक्स्चेंज इंटरफ़ेस, पैरामीटर निर्दिष्ट करें, डेटा प्राप्त करें।
आविष्कारक मात्रा - छोटे सपनेअगर आप मेरे QQ: 359706687 को जोड़ते हैं, तो मैं आपकी मदद कर सकता हूं।
आविष्कारक मात्रा - छोटे सपनेहां, आप गहराई प्राप्त करने वाले इंटरफ़ेस को कॉल कर रहे हैं, जो बिना हस्ताक्षर के एन्क्रिप्टेड होना चाहिए. एन्क्रिप्टेड अनुरोध के लिए इंटरफ़ेस के लिए exchange.IO कॉल का उपयोग करें, बिना एन्क्रिप्टेड के लिए HttpQuery का उपयोग करें (python urlib लाइब्रेरी का उपयोग करता है), HttpQuery बिना एन्क्रिप्टेड इंटरफ़ेस अनुरोधों को संभालता है.
आविष्कारक मात्रा - छोटे सपनेआपके समर्थन के लिए धन्यवाद! मैं अपने सिस्टम के प्रकार है कि आप एक डॉकर चलाने के लिए चाहते हैं के बारे में कुछ जवाब मिल सकता है। BotVS समर्थित: - विंडोज 64बिट, 32बिट (CLI, इंटरफेस) - मैक ओएसएक्स (सीएमडी लाइन) - लिनक्स 64 बिट, 32 बिट (cmd लाइन) - एआरएम लिनक्स (सीएमडी लाइन) इसके बाद, मैं एक प्रक्रिया जो कदम से कदम जोड़ने के लिए एक डॉकर बना देंगे। आपके संदेश की प्रतीक्षा! ^^
आविष्कारक मात्रा - छोटे सपनेBITMEX के WS प्रोटोकॉल को अभी तक समर्थन नहीं मिला है।
कज़जोमैं ‖ ‖ सही है, मैं कर सकता हूँ।
आविष्कारक मात्रा - छोटे सपनेआउटडोर प्लेटफ़ॉर्म पर अभी तक कोई रीसेट डेटा नहीं है, समर्थन की योजना है. आपने एक नया ब्राउज़र परीक्षण किया, शायद ब्राउज़र, जिसके कारण ड्रॉपडाउन कंट्रोल दिखाई नहीं देता है.
आविष्कारक मात्रा - छोटे सपनेचरण का उपयोग करनाः 1,रोबोट नामक प्रोग्राम चलाएं, जहां इस स्थान पर डाउनलोड करने के लिएः https://dn-filebox.qbox.me/cfe3c7fab12e72b6dae4ca238dde150e5d8bcd56.png 2、प्लेटफ़ॉर्म जोड़ेंः विन्यास BitMEX `s एपीआई कुंजीः https://dn-filebox.qbox.me/5527bc725b11109774c5bdf152c80974542d59ed.png https://dn-filebox.qbox.me/c953a7570513cb6e5800a4775df67cbcbc9135b8.png https://dn-filebox.qbox.me/6a8077d08bae2ac3ba5c4f57eb88af5c0683e4f6.png 3、रोबोट और रोबोट के साथ बंधन रणनीति जोड़ें: https://dn-filebox.qbox.me/290a20859a186b27af4058019259134b6b48bda5.png https://dn-filebox.qbox.me/5e797e71b6c7c0bfda4860f7b1073aa69b499f64.png https://dn-filebox.qbox.me/74307cc14fa0039695e4608c955c2b7d71789b10.png
इत्रेज़्क़हाँ, लेकिन वेबसाइट पर BotVS पर BitMex का उपयोग करने के लिए क्या कदम हैं?
आविष्कारक मात्रा - छोटे सपनेBotVS का उपयोग करने के लिए धन्यवाद ^^, BotVS पहले से ही BitMEX का समर्थन करता है.
आविष्कारक मात्रा - छोटे सपनेनमस्ते, अभी तक, BitMEX के लिए परीक्षण प्रणाली का समर्थन नहीं किया गया है।
आविष्कारक मात्रा - छोटे सपनेआप एक push in को deep copy कर सकते हैं
Jधन्यवाद! तो मैं एक और चर के लिए धक्का देना चाहिए।
आविष्कारक मात्रा - छोटे सपनेJ बड़ा ~ यह GetRecords द्वारा प्राप्त किया गया सरणी संदर्भ के लिए पारित किया गया है, यदि आप push में जाते हैं तो अगली बार प्राप्त करने पर push का तत्व दिखाई देगा।
आविष्कारक मात्रा - छोटे सपनेमैं इसे परीक्षण करने जा रहा हूँ, थोड़ा इंतजार करो।
Jमैं वास्तव में इस अंतिम वास्तविक समय डेटा को जोड़ना चाहता था, लेकिन एक समस्या आई, कृपया मुझे यह देखने में मदद करें। exchange.SetContractType (('XBTUSD') // GetRecords के माध्यम से डेटा प्राप्त करें records = exchange.GetRecords ((() लॉग ((records) // और फिर अपने आप को अंतिम मान जोड़ें. records.push ((({ समयः रिकॉर्ड[records.length-1]. समय + 3600000, [records.length-1] }) लॉग ((records) // 10 सेकंड के लिए रुकें और GetRecords को पुनः कॉल करें Sleep ((10000) records = exchange.GetRecords ((() // पिछले बार जोड़ा गया डेटा अभी भी क्यों है? लॉग ((records)
आविष्कारक मात्रा - छोटे सपनेठीक है, धन्यवाद जे, मैं परीक्षण करने के लिए तैयार हूँ।
आविष्कारक मात्रा - छोटे सपनेहाँ, BITMEX, यह एक अनुबंध है।
Jयह स्पष्ट है कि पहले आप अपनी मुद्रा सेट करें। exchanges.SetContractType (('XBTUSD') records = exchanges.GetRecords ((()
आविष्कारक मात्रा - छोटे सपनेठीक है, चलो जाँच करते हैं।
नींबूओह, यह भी संभव है, मैं कोशिश करूँगा
आविष्कारक मात्रा - छोटे सपने_N का उपयोग करके कीमतों के अंशों को सीमित करने का परीक्षण किया जा सकता है, कई एक्सचेंजों ने बोली के अंशों को सीमित किया है, आमतौर पर 4 से अधिक अंशों से अधिक नहीं।
नींबूसपना हमेशा सुबह होता है, Sell ((12319.94890, 100.00000): 400: {"error":{"message":"Invalid price tickSize","name":"HTTPError"}}, महसूस होता है कि, कीमतों को डॉलर में परिवर्तित किए बिना रिपोर्ट किया जाता है, ताकि कीमत असामान्य रूप से विचलित हो जाए, और इसे लटकाया न जाए।
आविष्कारक मात्रा - छोटे सपनेठीक है, मैं इसे तुरंत परीक्षण करता हूं।