Nền tảng FMZ API Doc Tham gia nhóm Telegram của chúng tôi.
www.fmz.com(trước đây là BotVs) là một nền tảng giao dịch chiến lược định lượng nơi bạn có thể dễ dàng học, viết, chia sẻ và giao dịch các chiến lược định lượng.
FMZ (BOTVS) hỗ trợ tất cả các hợp đồng trên 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));
}
Ghi lại thông tin bằng bot, tương tự như trên 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 (thông tin đặt hàng đang chờ được thu thập)
[{"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"}]
Sử dụng các nhà quản lý mới nhất, tầng dưới có thể tự động tổng hợp các K-line, và một số dữ liệu chu kỳ K-line không được hỗ trợ bởi BITMEX cũng có thể được tổng hợp, vì vậy khi thiết lập chu kỳ K-line, bạn không còn bị giới hạn trong việc tổng hợp các K-line.1分钟、5分钟、1小时、1天
Những chu kỳ này, tất cả các chu kỳ đều có thể được thiết lập.
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 (Dữ liệu được trả về từ API đặt vị trí/đòn bẩy trực tiếp):
{"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"}
q25459768Cảm ơn.
CooongXin vui lòng mở VPN với người quản lý cục bộ, sử dụng shadowsocks, toàn cầu, trang web bitmex có thể lên, nhưng chương trình không chạy.
Hoa nhỏ nởVui lòng hỏi botvs có hỗ trợ giao dịch giới hạn giá của bitmex không, tương tự như khi đặt hàng trong bitmex, chọn nút giao dịch thụ động
Bobo188Với getrecords, bitmex chỉ trả về 100 dữ liệu, nhưng bitmex hỗ trợ tối đa 500, làm thế nào để có được nhiều hơn nữa?
linh hồnGetAccount () đã lấy dữ liệu không chính xác. {"Stocks": 0.00841059, "FrozenStocks": 0.0092248, "Balance": 0, "FrozenBalance: 0} FrozenStocks giảm 0, thực tế là 0.92248.
BeleevBạn có thể tìm hiểu thông tin về một số vấn đề liên quan đến giao diện rest của bitmex bằng cách sử dụng exchange.IO (("api", httpMethod, resource, params)? Tôi muốn lấy URL của bitmex: https://www.bitmex.com/api/v1/orderBook/L2?symbol=XBT&depth=1, sử dụng mã sau đây theo tài liệu def main (: depth = exchanges[0].IO (("api", "GET", "/api/v1/orderBook/L2","symbol=XBT&depth=1") Log ((depth)) Một số người khác đã bị lỗi trong việc đăng nhập. Futures_BitMEX lỗi Futures_OP 4: 401: {"error":{ "message":"Signature not valid.","name":"HTTPError}} Tôi không có vấn đề gì với aksk, bởi vì các API khác có thể gọi qua, hãy giúp tôi xem lý do tại sao?
Victor997Xin chào, tôi không thể thêm Droker, nó nói mật khẩu sai. Tôi cần giúp đỡ với tất cả các bước nếu có thể, tôi chỉ có thể thêm nền tảng. Cảm ơn, Victor997.
Tám người làm dầuKhi nào BitMEX có thể hỗ trợ websocekt, giới hạn tần suất giao dịch 300 lần trong 5 phút là quá lớn
kejoTại sao tôi không thấy Bitmex trong các nền tảng được thêm vào, bao gồm cả Kraken trong hình ảnh chụp ảnh? Ngoài ra, có bao nhiêu nền tảng nước ngoài có thể được xem lại?
ytrezqXin chào, tôi mới sử dụng botvs, làm thế nào tôi có thể sử dụng nó cho bitmex?
LUISLUXin hỏi liệu nền tảng của bạn có hệ thống kiểm tra lại cho BitMex không?
JGiá trị cuối cùng của dữ liệu đường K mà GetRecords của BitMEX trả về không phải là thời gian thực, do đó không thể tính toán các chỉ số trong thời gian thực. Đây là một vấn đề đã tồn tại trong một thời gian dài và là một lỗi trong API của BitMEX và vẫn chưa được giải quyết. BotVS có thu thập dữ liệu BitMEX trong thời gian thực không, và liệu nó có thể bổ sung dữ liệu thực của BitMEX bằng dữ liệu thu thập được không?
JLàm thế nào để có được dữ liệu từ BitMEX?
Ông Ninh@mymumum, tôi thấy có một vấn đề, sau khi bitMEX đặt tỷ giá thành đồng nhân dân tệ, không thể giao dịch ~ không biết vấn đề gì, xin hãy hỏi @mymum
JNó là một con bò, và nó có thể điều khiển được.
Những nhà phát minh định lượng - những giấc mơ nhỏShadowsocks không phải là một đại lý toàn cầu thực sự, và không phải là toàn bộ đại lý máy tính truy cập mạng, hiện nay, việc đơn giản nhất là chạy một máy chủ ở một khu vực khác.
Bobo188Xin hãy cho tôi một ví dụ, cảm ơn! Tôi là một người da trắng.
Những nhà phát minh định lượng - những giấc mơ nhỏBạn có thể truy cập trực tiếp vào giao dịch, giao diện, chỉ định tham số, truy cập dữ liệu bằng HttpQuery.
Những nhà phát minh định lượng - những giấc mơ nhỏBạn có thể thêm vào QQ của tôi: 359706687, tôi sẽ giúp bạn xem.
Những nhà phát minh định lượng - những giấc mơ nhỏĐúng vậy, bạn đang gọi một giao diện lấy độ sâu, giao diện này nên được mã hóa không cần chữ ký. Để gọi giao diện yêu cầu mã hóa, hãy sử dụng cuộc gọi exchange.IO, để gọi giao diện không mã hóa, sử dụng HttpQuery (python sử dụng thư viện urlib), HttpQuery xử lý các yêu cầu giao diện không mã hóa.
Những nhà phát minh định lượng - những giấc mơ nhỏCảm ơn vì đã ủng hộ! Tôi có thể nhận được một số câu trả lời về những loại hệ thống của bạn mà bạn muốn chạy một docker. BotVS hỗ trợ: - windows 64bit, 32bit (CLI, Interface) - Mac OSX (cmd line) - Linux 64 bit, 32 bit (cmd line) - ARM Linux (cmd line) Sau đó, tôi sẽ thực hiện một quá trình mà từng bước thêm một docker. Đợi tin nhắn của anh! ^^
Những nhà phát minh định lượng - những giấc mơ nhỏBITMEX hiện không hỗ trợ giao thức WS.
kejoTôi Ơ Ơ Ồ Ồ Ồ Ồ Ồ ôi ôi ôi ôi ôi ôi
Những nhà phát minh định lượng - những giấc mơ nhỏNền tảng của đĩa ra không có dữ liệu kiểm tra lại trong thời gian hiện tại, đang được lên kế hoạch hỗ trợ. Bạn thay đổi trình duyệt thử nghiệm, có thể là trình duyệt gây ra điều khiển thả xuống không hiển thị.
Những nhà phát minh định lượng - những giấc mơ nhỏSử dụng bước: 1、Run chương trình có tên robot, nơi để tải về tại vị trí này: https://dn-filebox.qbox.me/cfe3c7fab12e72b6dae4ca238dde150e5d8bcd56.png 2、Thêm nền tảng: cấu hình BitMEX `s API KEY: https://dn-filebox.qbox.me/5527bc725b11109774c5bdf152c80974542d59ed.png https://dn-filebox.qbox.me/c953a7570513cb6e5800a4775df67cbcbc9135b8.png https://dn-filebox.qbox.me/6a8077d08bae2ac3ba5c4f57eb88af5c0683e4f6.png 3, Thêm robot và Binding chiến lược với robot: https://dn-filebox.qbox.me/290a20859a186b27af4058019259134b6b48bda5.png https://dn-filebox.qbox.me/5e797e71b6c7c0bfda4860f7b1073aa69b499f64.png https://dn-filebox.qbox.me/74307cc14fa0039695e4608c955c2b7d71789b10.png
ytrezqVâng, nhưng các bước trên trang web để sử dụng BitMex trên BotVS là gì?
Những nhà phát minh định lượng - những giấc mơ nhỏCảm ơn đã dùng BotVS ^^, BotVS đã hỗ trợ BitMEX.
Những nhà phát minh định lượng - những giấc mơ nhỏXin chào, hiện tại, hệ thống kiểm tra chưa hỗ trợ sàn giao dịch BitMEX. ^^
Những nhà phát minh định lượng - những giấc mơ nhỏBạn có thể sao chép sâu một push vào.
JCảm ơn bạn! Tôi đã đẩy đến một biến khác.
Những nhà phát minh định lượng - những giấc mơ nhỏJ lớn ~ Mảng GetRecords này được lấy là một tham chiếu được truyền, nếu push vào lần lấy tiếp theo sẽ xuất hiện các phần tử của push.
Những nhà phát minh định lượng - những giấc mơ nhỏTôi sẽ thử, chờ một chút.
JTôi muốn thêm vào dữ liệu thời gian thực cuối cùng này, nhưng tôi gặp một vấn đề.
exchange.SetContractType (('XBTUSD')
// lấy dữ liệu từ GetRecords
records = exchange.GetRecords
Log ((records)
// và sau đó tự thêm vào giá trị cuối cùng.
records.push ((({
Time:records[records.length-1].Time + 3600000,
Close:records[records.length-1].Close + 1
Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, cảm ơn ông J đã đề xuất, tôi sẽ thử, ghi lại báo cáo!
Những nhà phát minh định lượng - những giấc mơ nhỏCó, BITMEX, đây là hợp đồng.
JĐiều đó có nghĩa là chúng ta cần phải đặt tiền tệ. exchange.SetContractType (('XBTUSD') records = exchanges.GetRecords
Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, chúng ta hãy kiểm tra xem.
Ông NinhỒ, cũng có thể, tôi sẽ thử.
Những nhà phát minh định lượng - những giấc mơ nhỏBạn có thể thử nghiệm số nhỏ của giá bằng cách sử dụng N. Nhiều sàn giao dịch giới hạn số nhỏ của giá, thường không quá 4 số nhỏ.
Ông NinhNhững giấc mơ luôn sớm, Sell ((12319.94890, 100.00000): 400: {"error": { "message":" Invalid price tickSize","name":"HTTPError"}}, cảm giác là, không chuyển đổi giá thành đô la, báo cáo đã được đưa ra, do đó giá bất thường sai lệch, không được treo.
Những nhà phát minh định lượng - những giấc mơ nhỏĐược rồi, tôi sẽ thử ngay.