API lanjutan platform FMZ Quant Trading baru-baru ini telah dinaik taraf, dan peningkatan ini menyokong mod akses langsung, supaya isyarat amaran TradingView dapat dengan mudah dihantar ke bot di FMZ untuk perdagangan automatik.
Pautan bahagian yang berkaitan dalam dokumentasi FMZ API
Fungsi utama API yang diperluaskan adalah untuk menyediakan antara muka untuk pelbagai fungsi di platform perdagangan FMZ Quant, untuk operasi programatik, seperti bot permulaan batch secara serentak, permulaan bot masa dan berhenti, membaca butiran maklumat bot, dll. Kami menggunakan API diperluaskan FMZ untuk melaksanakan perdagangan isyarat amaran TradingView. Permintaan ini hanya perlu menggunakanCommandRobot(RobotId, Cmd)
antara muka dalam API yang dilanjutkan. Antara muka ini boleh menghantar arahan interaktif kepada bot dengan ID yang ditentukan, dan bot boleh melakukan operasi yang sesuai (seperti meletakkan pesanan untuk membeli atau menjual, dll.)
Untuk menggunakan API lanjutan, anda perlu membuat akaun anda sendiriAPI KEY
di FMZ:
API KEY
terdiri daripada:access key
dansecret key
; API KEY
adalah kunci untuk mengoperasikan platform FMZ Quant Trading secara berprogram, jadi pastikan untuk menyimpannya dengan betul dan jangan mendedahkannya.API KEY
, anda boleh menentukan keizinan. Sebagai contoh, gambar di atas hanya memberikanAPI KEY
kebenaran untuk mengaksesCommandRobot(RobotId, Cmd)
Dalam contoh ini, atas sebab keselamatan, sila hanya memberikan kebenaran aksesCommandRobot(RobotId, Cmd)
antara muka ke FMZ diperluaskanAPI KEY
.
Mod akses langsung menunjukkan langsung menulisAPI KEY
dalam pertanyaan URL; contohnya, URL yang mengakses API lanjutan platform FMZ Quant boleh ditulis sebagai:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
Antara mereka,https://www.fmz.com/api/v1
adalah alamat antara muka;?
diikuti denganQuery
; parameteraccess_key
adalah, sebagai contoh, diwakili oleh xxx (apabila menggunakan, isi akses_key akaun FMZ anda sendiri); parametersecret_key
diwakili oleh yyyy (apabila menggunakan, isi dalam akaun anda sendiri rahsia_kunci); parametermethod
adalah nama khusus antara muka API yang diperluaskan yang akan diakses, danargs
ialah parametermethod
antara muka yang akan dipanggil.
Kami menggunakan TradingView sebagai sumber isyarat untuk menghantar perintah perdagangan kepada bot FMZ.CommandRobot
interface.
Pertama sekali, anda perlu mempunyai akaun TradingView Pro. Tahap asas tidak boleh menggunakan fungsi WebHood dalam amaran.
Tambah satu penunjuk kepada carta, dan algoritma skrip lain juga boleh digunakan.MACD
penunjuk, dan kemudian menetapkan tempoh garis K kepada 1 minit (untuk membuat isyarat mencetuskan lebih cepat dan memudahkan demonstrasi).
Klik kanan pada carta dan pilih
SetWebHook
Pada ketika ini, anda tidak perlu risau tentang menetapkannya. Mari mula-mula menjalankan bot yang memantau isyarat di platform perdagangan FMZ Quant.
Kod sumber strategi:
// global variable
var BUY = "buy" // Note: the command used for spot
var SELL = "sell" // the command used for futures
var LONG = "long" // the command used for futures
var SHORT = "short" // the command used for futures
var COVER_LONG = "cover_long" // the command used for futures
var COVER_SHORT = "cover_short" // the command used for futures
function main() {
// Empty the logs; delete, if not needed
LogReset(1)
// Set the precision
exchange.SetPrecision(QuotePrecision, BasePrecision)
// Judge whether it is spot or futures
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("The added platform is a futures platform:", eName, "#FF0000")
eType = 1
if (Ct == "") {
throw "Ct contract set to null"
} else {
Log(exchange.SetContractType(Ct), "Set contract:", Ct, "#FF0000")
}
} else {
Log("The added platform is a spot platform:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// Detect the interactive command
lastMsg = "Command:" + cmd + "Time:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("Wrong cmd information:", cmd, "#FF0000")
continue
}
var action = arr[0]
var amount = parseFloat(arr[1])
if (eType == 0) {
if (action == BUY) {
var buyInfo = IsMarketOrder ? exchange.Buy(-1, amount) : $.Buy(amount)
Log("buyInfo:", buyInfo)
} else if (action == SELL) {
var sellInfo = IsMarketOrder ? exchange.Sell(-1, amount) : $.Sell(amount)
Log("sellInfo:", sellInfo)
} else {
Log("Spot trading platforms are not supported!", "#FF0000")
}
} else if (eType == 1) {
var tradeInfo = null
var ticker = _C(exchange.GetTicker)
if (action == LONG) {
exchange.SetDirection("buy")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else if (action == SHORT) {
exchange.SetDirection("sell")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_LONG) {
exchange.SetDirection("closebuy")
tradeInfo = IsMarketOrder ? exchange.Sell(-1, amount) : exchange.Sell(ticker.Buy, amount)
} else if (action == COVER_SHORT) {
exchange.SetDirection("closesell")
tradeInfo = IsMarketOrder ? exchange.Buy(-1, amount) : exchange.Buy(ticker.Sell, amount)
} else {
Log("Futures trading platforms are not supported!", "#FF0000")
}
if (tradeInfo) {
Log("tradeInfo:", tradeInfo)
}
} else {
throw "eType error, eType:" + eType
}
acc = _C(exchange.GetAccount)
}
var tbl = {
type : "table",
title : "Status information",
cols : ["Data"],
rows : []
}
// tbl.rows.push([JSON.stringify(acc)]) // Used during testing
LogStatus(_D(), eName, "The command received last time:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
Kod ini sangat mudah. Ia mengesan nilai pulanganGetCommand
Apabila ada mesej interaktif yang dihantar ke program strategi,GetCommand
akan mengembalikan mesej ini, dan kemudian program strategi akan membuat operasi dagangan yang sepadan berdasarkan kandungan mesej. butang interaksi telah ditetapkan pada strategi, yang boleh menguji fungsi interaktif. contohnya, apabila strategi dikendalikan, bot dikonfigurasi dengan platform simulasiWexApp
dari platform dagangan FMZ Quant.
Klik butang interaksi untuk menguji keupayaan bot untuk menerima perintah untuk membeli.
Kita boleh lihat rentetan arahan yang diterima oleh bot adalah:buy:0.01
.
Kita hanya perlu membuat parameter dibawa menjadibuy:0.01
semasa mengaksesCommandRobot
antara muka FMZ Quant API lanjutan dalam URL permintaan WebHook, apabila amaran TradingView dicetuskan.
Kembali ke TradingView, kita mengisi URL WebHook.API KEY
dalamaccess_key
dansecret_key
parameter.method
adalah tetap, kita hanya perlu mengakses API yang dilanjutkanCommandRobot
;args
parameter adalah dalam bentuk[robot ID, command string]
, kita boleh mendapatkan ID robot secara langsung melalui halaman bot, seperti yang ditunjukkan dalam gambar:
Kali ini apabila kita mencetuskan isyarat, membeli 0.02 syiling, dan rentetan arahan adalah:"buy:0.02"
. Itu melengkapkan URL WebHook.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[443999,"buy:0.02"]
Tetapkan pada TradingView:
Tunggu isyarat akan diaktifkan. Apabila bot menerima isyarat, anda boleh melihat isyarat amaran di sebelah kanan atas halaman, dan log pencetus di sebelah kanan bawah halaman.
Bot menerima isyarat:
Dengan cara ini, anda boleh menggunakan fungsi carta yang kaya dan algoritma penunjuk pada TradingView untuk bekerjasama dengan bot strategi FMZ Quant untuk merealisasikan perdagangan automatik yang anda mahukan.
Kod strategi