API lanjutan di Platform Dagangan Kuantum FMZ telah dinaik taraf baru-baru ini untuk menyokong akses langsung, supaya ia dapat dengan mudah menghantar isyarat amaran TradingView ke robot Platform Dagangan Kuantum FMZ untuk perdagangan automatik.
Beberapa pautan ke dokumentasi API di FMZ (https://www.fmz.com/api)
Fungsi utama API yang diperluaskan adalah untuk menyediakan antara muka untuk pelbagai fungsi di Platform Dagangan Kuantum FMZ untuk operasi berprogram, seperti memulakan robot dalam batch secara serentak, masa robot untuk memulakan dan berhenti, membaca butiran maklumat robot, dll. Kami menggunakan API yang diperluaskan di Platform Dagangan Kuantum FMZ untuk merealisasikan rancangan permintaan perdagangan isyarat amaran TradingView, yang hanya menggunakanCommandRobot(RobotId, Cmd)
Antara muka ini boleh menghantar arahan interaktif kepada robot dengan ID yang ditentukan, dan robot boleh melaksanakan operasi yang sepadan (seperti meletakkan pesanan untuk membeli, menjual, dll.) selepas menerima arahan.
Untuk menggunakan API yang dilanjutkan, anda perlu membuatAPI KEY
untuk akaun FMZ anda sendiri terlebih dahulu:
Kunci rahsiaAPI KEY
terdiri daripada:access key
dansecret key
. API KEY
adalah kunci untuk mengukur FMZ Quant Trading Platform operasi programatik, jadi ia mesti disimpan dengan betul dan tidak didedahkan.API KEY
pada FMZ, anda boleh menentukan kebenaran. Sebagai contoh, angka di atas hanya memberikanAPI KEY
kebenaran untuk mengaksesCommandRobot(RobotId, Cmd)
Untuk contoh ini, berdasarkan pertimbangan keselamatan, sila hanya memberikan sambunganAPI KEY
mengenai kebenaran FMZ untuk mengaksesCommandRobot(RobotId, Cmd)
interface.
Mod akses langsung bermaksud bahawaAPI KEY
boleh ditulis secara langsung dalam URL Query. Sebagai contoh, URL untuk mengakses API lanjutan di FMZ Quant Trading Platform boleh ditulis sebagai:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
Di mana?https://www.fmz.com/api/v1
adalah alamat antara muka,?
diikuti denganQuery
, parameteraccess_key
kunci rahsia diwakili oleh xxx sebagai contoh (isi dalam akses_key akaun FMZ anda sendiri apabila anda menggunakannya). Parametersecret_key
diwakili oleh yyyy (isi dalam akaun anda sendiri rahsia_kunci apabila anda menggunakannya). 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 transaksi ke robot Platform Dagangan Kuantum FMZ.CommandRobot
interface.
Pertama, anda mesti mempunyai akaun peringkat TradingView Pro. Fungsi WebHood dalam amaran tidak boleh digunakan pada tahap asas.
Dalam carta TradingView, anda boleh menambah penunjuk kepada carta atau algoritma skrip lain.MACD
penunjuk, dan kemudian kita menetapkan tempoh K-garis untuk 1 minit (untuk pemicu isyarat yang lebih cepat dan mudah demonstrasi).
Klik kanan pada carta dan pilih
SetWebHook
Pada ketika ini, kita boleh menjalankan robot isyarat pemantauan di Platform Dagangan Kuantum FMZ terlebih dahulu.
Kod sumber strategi:
// Global variable
var BUY = "buy" // Note: The command used for spot
var SELL = "sell" // The command used for spot
var LONG = "long" // The command used for future
var SHORT = "short" // The command used for future
var COVER_LONG = "cover_long" // The command used for future
var COVER_SHORT = "cover_short" // The command used for future
function main() {
// Clear the log and delete it if not needed
LogReset(1)
// Set precision
exchange.SetPrecision(QuotePrecision, BasePrecision)
// Identify future or spot
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("The added exchange is a futures exchange:", 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 exchange is a spots exchange:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// Detect interactive commands
lastMsg = "command:" + cmd + "time:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("cmd incorrect 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("The spots exchange is 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("The futures exchange is 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)]) // Use it when testing
LogStatus(_D(), eName, "Last received command:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
Kod sumber strategi (https://www.fmz.com/strategy/203063)
Kod strategi adalah sangat mudah. Ia mengesan nilai pulanganGetCommand
Apabila mesej interaktif dihantar ke program strategi,GetCommand
fungsi mengembalikan mesej, dan program strategi membuat operasi transaksi yang sepadan mengikut kandungan mesej. butang interaktif telah ditetapkan pada strategi ini untuk menguji fungsi interaktif. Sebagai contoh, menjalankan strategi ini dan mengkonfigurasi robot denganWexApp
, pertukaran simulasi Platform Dagangan Kuantum FMZ.
Kita klik butang interaktif untuk menguji fungsi robot untuk menerima pesanan untuk membeli, maka kita dapat melihat bahawa rentetan arahan yang diterima oleh robot adalah:buy:0.01
.
Kami hanya perlu membuat URL permintaan WebHook apabila amaran TradingView dicetuskan untuk mengaksesCommandRobot
antara muka FMZ Quant Trading Platform diperluaskan API, parameter yang dibawa adalahbuy:0.01
.
Kembali di TradingView, kita mengisi URL WebHook. isi KEY API anda sendiri untuk parameteraccess_key
, secret_key
.method
Kita hanya perlu mengaksesCommandRobot
Antara muka API yang diperluaskan.args
adalah dalam bentuk[Robot ID, Command String]
. Kita boleh mendapatkan ID robot melalui halaman robot, terus seperti yang ditunjukkan dalam gambar:
Kali ini, kita biarkan isyarat mencetuskan, membeli 0.02 syiling, dan rentetan arahan adalah:buy:0.02
. Kemudian URL WebHook selesai. Kaedah ini hanya menyokong menulis isyarat dalam URL. Jika anda ingin mendapatkan kandungan mesej amaran yang boleh dihantar oleh strategi TV itu sendiri, merujuk kepadahttps://www.fmz.com/api#pengesahan langsung.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args= [191755,"buy:0.02"]
Tetapkan pada TradingView:
Tunggu isyarat untuk mencetuskan... Tunggu isyarat untuk mencetuskan... Tunggu isyarat untuk mencetuskan... ... yang penting.
Kemudian robot akan menerima isyarat, dengan cara ini, kita boleh menggunakan pelbagai fungsi carta dan algoritma penunjuk pada TradingView untuk bekerjasama dengan robot strategi Platform Dagangan Kuantum FMZ untuk mencapai perdagangan automatik yang anda mahukan.
Kod strategi