API diperpanjang di FMZ Quant Trading Platform telah ditingkatkan baru-baru ini untuk mendukung akses langsung, sehingga dapat dengan mudah mengirim sinyal peringatan TradingView ke robot FMZ Quant Trading Platform untuk perdagangan otomatis.
Beberapa tautan ke dokumentasi API di FMZ (https://www.fmz.com/api)
Fungsi utama API yang diperluas adalah untuk menyediakan antarmuka untuk berbagai fungsi di Platform Perdagangan FMZ Quant untuk operasi terprogram, seperti memulai robot dalam batch secara bersamaan, waktu robot untuk memulai dan berhenti, membaca rincian informasi robot, dll. Kami menggunakan API diperluas di Platform Perdagangan FMZ Quant untuk mewujudkan rencana permintaan perdagangan sinyal peringatan TradingView, yang hanya menggunakanCommandRobot(RobotId, Cmd)
Antarmuka ini dapat mengirim instruksi interaktif ke robot dengan ID yang ditentukan, dan robot dapat mengeksekusi operasi yang sesuai (seperti menempatkan pesanan untuk membeli, menjual, dll.) setelah menerima instruksi.
Untuk menggunakan API diperpanjang, Anda perlu membuatAPI KEY
untuk akun FMZ Anda sendiri terlebih dahulu:
Kunci rahasia dariAPI KEY
terdiri dariaccess key
dansecret key
. API KEY
adalah kunci untuk mengukur FMZ Quant Trading Platform dari operasi program, sehingga harus disimpan dengan benar dan tidak diungkapkan.API KEY
di FMZ, Anda dapat menentukan izin. Misalnya, gambar di atas hanya memberikanAPI KEY
izin untuk mengaksesCommandRobot(RobotId, Cmd)
Untuk contoh ini, berdasarkan pertimbangan keamanan, silakan hanya memberikanAPI KEY
tentang izin FMZ untuk mengaksesCommandRobot(RobotId, Cmd)
interface.
Modus akses langsung berarti bahwaAPI KEY
misalnya URL untuk mengakses API diperpanjang di FMZ Quant Trading Platform dapat 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 antarmuka,?
diikuti olehQuery
, parameteraccess_key
kunci rahasia diwakili oleh xxx misalnya (isi akses_key akun FMZ Anda sendiri ketika Anda menggunakannya). Parametersecret_key
diwakili oleh yyyy (isi dalam akun Anda sendiri secret_key ketika Anda menggunakannya). Parametermethod
adalah nama spesifik antarmuka API diperluas yang akan diakses, danargs
adalah parameter darimethod
antarmuka yang akan dipanggil.
Kami menggunakan TradingView sebagai sumber sinyal untuk mengirim perintah transaksi ke robot FMZ Quant Trading Platform.CommandRobot
interface.
Pertama, Anda harus memiliki akun tingkat TradingView Pro. Fungsi WebHood dalam peringatan tidak dapat digunakan pada tingkat Dasar.
Dalam grafik TradingView, Anda dapat menambahkan indikator ke grafik atau algoritma skrip lainnya.MACD
indikator, dan kemudian kita mengatur periode K-line ke 1 menit (untuk pemicu sinyal lebih cepat dan demonstrasi mudah).
Klik kanan pada grafik dan pilih
SetWebHook
Pada titik ini, kita dapat menjalankan robot sinyal pemantauan di FMZ Quant Trading Platform pertama.
Kode 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)
}
}
Kode sumber strategi (https://www.fmz.com/strategy/203063)
Kode strategi sangat sederhana.GetCommand
Ketika pesan interaktif dikirim ke program strategi,GetCommand
fungsi mengembalikan pesan, dan program strategi membuat operasi transaksi yang sesuai sesuai dengan isi pesan. tombol interaktif telah ditetapkan pada strategi ini untuk menguji fungsi interaktif. Misalnya, menjalankan strategi ini dan mengkonfigurasi robot denganWexApp
, sebuah bursa simulasi dari Platform Perdagangan Kuantum FMZ.
Kita mengklik tombol interaktif untuk menguji fungsi robot untuk menerima pesanan untuk membeli, maka kita dapat melihat bahwa string perintah yang diterima oleh robot adalah:buy:0.01
.
Kita hanya perlu membuat URL permintaan WebHook ketika peringatan TradingView dipicu untuk mengaksesCommandRobot
antarmuka dari FMZ Quant Trading Platform diperluas API, parameter yang dibawa adalahbuy:0.01
.
Kembali ke TradingView, kita mengisi URL dari WebHook.access_key
, secret_key
.method
Kita hanya perlu mengaksesCommandRobot
Interface API diperpanjang.args
adalah dalam bentuk[Robot ID, Command String]
Kita bisa mendapatkan robot ID melalui halaman robot, langsung seperti yang ditunjukkan pada gambar:
Kali ini, kita membiarkan sinyal memicu, membeli 0,02 koin, dan string perintah adalah:buy:0.02
. Kemudian URL WebHook selesai. Metode ini hanya mendukung menulis sinyal di URL. Jika Anda ingin mendapatkan isi pesan peringatan yang dapat dikirim oleh strategi TV itu sendiri, lihathttps://www.fmz.com/api#verifikasi langsung.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args= [191755,"buy:0.02"]
Setel pada TradingView:
Tunggu sinyal untuk memicu... Tunggu sinyal untuk memicu... Tunggu sinyal untuk memicu... Aku tidak tahu.
Kemudian robot akan menerima sinyal, dengan cara ini, kita dapat menggunakan berbagai fungsi grafik dan algoritma indikator di TradingView untuk bekerja sama dengan robot strategi dari FMZ Quant Trading Platform untuk mencapai perdagangan otomatis yang Anda inginkan.