
API sambungan Platform Dagangan Kuantitatif Pencipta baru-baru ini dinaik taraf untuk menyokong mod akses langsung, yang memudahkan untuk menghantar isyarat penggera TradingView kepada robot Platform Dagangan Kuantitatif Pencipta untuk merealisasikan dagangan automatik. Jika anda masih tidak tahu apa itu API sambungan, izinkan saya menerangkannya secara terperinci.
Pautan ke bahagian dokumentasi API Inventor yang berkaitan
Fungsi utama API lanjutan adalah untuk menyediakan antara muka untuk pelbagai fungsi pada platform dagangan kuantitatif pencipta operasi program, seperti memulakan robot dalam kelompok pada masa yang sama, memulakan dan menghentikan robot pada masa yang dijadualkan, membaca butiran maklumat robot, dsb. Kami menggunakan API Sambungan Platform Dagangan Kuantitatif Pencipta untuk melaksanakan dagangan isyarat amaran TradingView Keperluan ini hanya memerlukan sambungan API.CommandRobot(RobotId, Cmd)Antara muka boleh menghantar arahan interaktif kepada robot dengan ID yang ditentukan Robot boleh melakukan operasi yang sepadan (seperti membuat pesanan untuk membeli atau menjual) selepas menerima arahan.
Untuk menggunakan API sambungan, anda perlu membuat akaun pencipta anda sendiri terlebih dahuluAPI KEY:
API KEYKuncinya ialahaccess keydansecret keykomposisi,API KEYIni adalah kunci kepada platform dagangan kuantitatif yang dicipta oleh operasi yang diprogramkan, jadi ia mesti disimpan dengan betul dan tidak pernah didedahkan. Mencipta sambungan FMZAPI KEYAnda boleh menentukan kebenaran apabila anda menggunakanAPI KEYBerikan AksesCommandRobot(RobotId, Cmd)Untuk contoh ini, atas sebab keselamatan, hanya berikan kebenaran kepada sambungan FMZ.API KEYWakafCommandRobot(RobotId, Cmd)Kebenaran akses untuk antara muka.
Mod akses terus bermaknaAPI KEYTulis terus dalam pertanyaan URL Contohnya, URL untuk mengakses API sambungan Platform Perdagangan Kuantitatif Pencipta boleh ditulis sebagai:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
dalam,https://www.fmz.com/api/v1ialah alamat antara muka,?Selepas ituQuery,parameteraccess_keyContoh utama diwakili oleh xxx (isi kunci akses akaun FMZ anda sendiri apabila menggunakan), parametersecret_keyKunci rahsia diwakili oleh yyyy (isi secret_key akaun anda sendiri apabila menggunakannya), parametermethodAdakah nama khusus antara muka API lanjutan untuk diakses.argsUntuk dipanggilmethodParameter antara muka.
Kami menggunakan TradingView sebagai sumber isyarat untuk menghantar arahan perdagangan kepada robot platform dagangan kuantitatif pencipta.CommandRobotAntara muka ini.
Pertama sekali, anda perlu mempunyai akaun TradingView Pro Ciri WebHood dalam penggera tidak tersedia pada peringkat Asas. Kami pergi ke carta di TradingView.

Menambah penunjuk pada carta, tetapi juga algoritma skrip lain. Di sini kami menggunakan yang paling biasa digunakanMACDPenunjuk, dan kemudian tetapkan tempoh K-line kepada 1 minit (untuk mencetus isyarat dengan lebih cepat dan memudahkan demonstrasi).

Klik kanan pada carta dan pilih Tambah Makluman daripada menu pop timbul.

Tetapkan dalam tetingkap pop timbul “Amaran”.WebHookPada langkah ini, anda tidak perlu tergesa-gesa untuk menyediakannya Mari kita jalankan robot yang memantau isyarat pada Platform Dagangan Kuantitatif Pencipta.
Kod sumber strategi:
// 全局变量
var BUY = "buy" // 注意:现货用的命令
var SELL = "sell" // 现货用的命令
var LONG = "long" // 期货用的命令
var SHORT = "short" // 期货用的命令
var COVER_LONG = "cover_long" // 期货用的命令
var COVER_SHORT = "cover_short" // 期货用的命令
function main() {
// 清空日志,如不需要,可以删除
LogReset(1)
// 设置精度
exchange.SetPrecision(QuotePrecision, BasePrecision)
// 识别期货还是现货
var eType = 0
var eName = exchange.GetName()
var patt = /Futures_/
if (patt.test(eName)) {
Log("添加的交易所为期货交易所:", eName, "#FF0000")
eType = 1
if (Ct == "") {
throw "Ct 合约设置为空"
} else {
Log(exchange.SetContractType(Ct), "设置合约:", Ct, "#FF0000")
}
} else {
Log("添加的交易所为现货交易所:", eName, "#32CD32")
}
var lastMsg = ""
var acc = _C(exchange.GetAccount)
while(true) {
var cmd = GetCommand()
if (cmd) {
// 检测交互命令
lastMsg = "命令:" + cmd + "时间:" + _D()
var arr = cmd.split(":")
if (arr.length != 2) {
Log("cmd信息有误:", 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("现货交易所不支持!", "#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("期货交易所不支持!", "#FF0000")
}
if (tradeInfo) {
Log("tradeInfo:", tradeInfo)
}
} else {
throw "eType error, eType:" + eType
}
acc = _C(exchange.GetAccount)
}
var tbl = {
type : "table",
title : "状态信息",
cols : ["数据"],
rows : []
}
// tbl.rows.push([JSON.stringify(acc)]) // 测试时使用
LogStatus(_D(), eName, "上次接收到的命令:", lastMsg, "\n", "`" + JSON.stringify(tbl) + "`")
Sleep(1000)
}
}
Kod strategi adalah sangat mudah, pengesananGetCommandNilai pulangan fungsi, apabila mesej interaktif dihantar ke program dasar,GetCommandFungsi akan mengembalikan mesej ini, dan kemudian program strategi akan membuat operasi perdagangan yang sepadan berdasarkan kandungan mesej. Butang interaktif telah disediakan pada strategi ini, yang boleh menguji fungsi interaktif Contohnya, jalankan strategi ini dan konfigurasikan robot dengan pertukaran simulasi Platform Dagangan Kuantitatif Pencipta.WexApp。

Klik butang interaksi untuk menguji keupayaan robot menerima arahan beli.

Anda boleh melihat bahawa rentetan arahan yang diterima oleh robot ialah:buy:0.01。
Kami hanya perlu membuat URL permintaan WebHook mengakses API Sambungan Platform Dagangan Kuantitatif Pencipta apabila amaran TradingView dicetuskan.CommandRobotApabila menggunakan antara muka, parameter yang dibawa ialahbuy:0.01Itu sahaja.
Kembali ke TradingView, kami mengisi URL WebHook. beriaccess_key、secret_keyIsikan parameter anda sendiriAPI KEY。methodDibetulkan, kita hanya perlu mengaksesCommandRobotAntara muka API lanjutan ini,argsParameternya ialah[机器人ID,命令字符串]Dalam bentuk, kita boleh terus mendapatkan ID robot melalui halaman robot, seperti yang ditunjukkan dalam rajah:
Kali ini kita membiarkan isyarat mencetuskan dan membeli 0.02 syiling Rentetan arahan ialah:"buy:0.02". Ini melengkapkan URL WebHook. Kaedah ini hanya menyokong penulisan isyarat dalam URL Jika anda ingin mendapatkan kandungan mesej amaran yang boleh dikeluarkan oleh strategi TV itu sendiri, rujuk https://www.fmz.com/api#%E7%9B. %B4%E6 %8E%A5%E9%AA%8C%E8%AF%81.
https://www.fmz.com/api/v1?access_key=e3809e173e23004821a9bfb6a468e308&secret_key=45a811e0009d91ad21154e79d4074bc6&method=CommandRobot&args=[191755,"buy:0.02"]
Menyediakan pada TradingView:

Menunggu isyarat untuk dicetuskan… Menunggu isyarat tercetus.. Menunggu isyarat untuk dicetuskan. …

Robot menerima isyarat:

Dengan cara ini, anda boleh menggunakan fungsi carta yang kaya dan algoritma penunjuk pada TradingView bersama dengan robot strategi Platform Dagangan Kuantitatif Inventor untuk mencapai dagangan automatik yang anda inginkan Berbanding dengan mengalihkan strategi pada TradingView ke dalam bahasa JavaScript dan Python, kesukaran sangat berkurangan.
Kod strategi “Robot Penempatan Pesanan Isyarat Pemantauan” adalah untuk pembelajaran dan penyelidikan sahaja. Ia perlu dioptimumkan dan dilaraskan sendiri untuk kegunaan sebenar. Ia menyokong niaga hadapan dan disyorkan untuk menetapkannya kepada mod pesanan pasaran parameter kod untuk butiran. Ini hanyalah titik permulaan Jika anda mempunyai sebarang soalan atau cadangan, sila tinggalkan mesej.