Sumber daya yang dimuat... Pemuatan...

Menggunakan API diperluas pada FMZ Quant Trading Platform untuk mewujudkan TradingView trading sinyal peringatan

Penulis:FMZ~Lydia, Dibuat: 2022-12-14 13:42:41, Diperbarui: 2023-09-20 10:17:53

img

Menggunakan API diperluas pada FMZ Quant Trading Platform untuk mewujudkan TradingView trading sinyal peringatan

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.

API diperluas pada Platform Perdagangan Kuantum FMZ

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 KEYuntuk akun FMZ Anda sendiri terlebih dahulu:

img

Kunci rahasia dariAPI KEYterdiri dariaccess keydansecret key. API KEYadalah kunci untuk mengukur FMZ Quant Trading Platform dari operasi program, sehingga harus disimpan dengan benar dan tidak diungkapkan.API KEYdi FMZ, Anda dapat menentukan izin. Misalnya, gambar di atas hanya memberikanAPI KEYizin untuk mengaksesCommandRobot(RobotId, Cmd)Untuk contoh ini, berdasarkan pertimbangan keamanan, silakan hanya memberikanAPI KEYtentang izin FMZ untuk mengaksesCommandRobot(RobotId, Cmd) interface.

Mode akses langsung dari API diperluas

Modus akses langsung berarti bahwaAPI KEYmisalnya 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/v1adalah alamat antarmuka,?diikuti olehQuery, parameteraccess_keykunci rahasia diwakili oleh xxx misalnya (isi akses_key akun FMZ Anda sendiri ketika Anda menggunakannya). Parametersecret_keydiwakili oleh yyyy (isi dalam akun Anda sendiri secret_key ketika Anda menggunakannya). Parametermethodadalah nama spesifik antarmuka API diperluas yang akan diakses, danargsadalah parameter darimethodantarmuka yang akan dipanggil.

Kami menggunakan TradingView sebagai sumber sinyal untuk mengirim perintah transaksi ke robot FMZ Quant Trading Platform.CommandRobot interface.

TradingView

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.MACDindikator, dan kemudian kita mengatur periode K-line ke 1 menit (untuk pemicu sinyal lebih cepat dan demonstrasi mudah).

Klik kanan pada grafik dan pilih Tambahkan Alert dari menu pop-up.

SetWebHookPada titik ini, kita dapat menjalankan robot sinyal pemantauan di FMZ Quant Trading Platform pertama.img

Robot pemesanan sinyal pemantauan

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.GetCommandKetika pesan interaktif dikirim ke program strategi,GetCommandfungsi 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 mengaksesCommandRobotantarmuka dari FMZ Quant Trading Platform diperluas API, parameter yang dibawa adalahbuy:0.01.

Setel WebHook dari TradingView

Kembali ke TradingView, kita mengisi URL dari WebHook.access_key, secret_key.methodKita hanya perlu mengaksesCommandRobotInterface API diperpanjang.argsadalah dalam bentuk[Robot ID, Command String]Kita bisa mendapatkan robot ID melalui halaman robot, langsung seperti yang ditunjukkan pada gambar:

img

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:

img

Tunggu sinyal untuk memicu... Tunggu sinyal untuk memicu... Tunggu sinyal untuk memicu... Aku tidak tahu.

img

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.

robot untuk menempatkan pesanan dengan memantau sinyal hanya untuk pembelajaran dan penelitian. Penggunaan pada bot nyata perlu dioptimalkan sendiri dan disesuaikan untuk mendukung futures. Disarankan untuk mengaturnya ke mode pesanan harga pasar. Lihat parameter kode strategi untuk rincian. Jika Anda memiliki pertanyaan atau saran, jangan ragu untuk meninggalkan pesan.


Berkaitan

Lebih banyak