Sumber daya yang dimuat... Pemuatan...

Antarmuka API yang diperluas

FMZ Quant telah membuka antarmuka API platform yang diperluas untuk mendukung panggilan programatis ke berbagai fungsi Platform Perdagangan FMZ Quant.

Buat ApiKey

Platform Perdagangan Kuantum FMZ mendukung manajemen izin dari diperluas antarmuka API, dan izin dariAPI KEYdapat diatur. Pada API interface pilihan pada Account setting (https://www.fmz.com/m/account) halaman platform, klik Create tombol ApiKey baru untuk membuat ekstensiAPI KEY.

Anda dapat mengedit kotak input API Permission saat membuatAPI KEY, dan masukkan*simbol untuk memungkinkan semuaAntarmuka API yang diperluasjika Anda ingin menentukan izin antarmuka tertentu, Anda perlu memasukkan nama fungsi API yang ditingkatkan. gunakan koma untuk memisahkan, misalnya:GetRobotDetail,DeleteRobotIni memberikan ini.API KEYizin untuk memanggilDapatkan informasi terperinci perdagangan langsunginterface danHapus perdagangan langsung interface.

PeraturanAPI KEYhalaman manajemen juga memungkinkan Anda untukmengubah, tidak aktif, hapusYang diciptakanAPI KEY.

Kode Pengembalian Antarmuka API yang diperluas

Contoh struktur yang dikembalikan oleh antarmuka API yang diperluas adalah sebagai berikut:

    "code":0,
    "data":{
        // ...
    }
}

Peraturancodefield is: Kode status hasil panggilan yang dikembalikan ketika antarmuka API diperpanjang dipanggil.

Deskripsi Kode
Eksekusi yang sukses 0
KEY API yang salah 1
Tanda tangan yang salah 2
Kesalahan nonce 3
Metode yang salah 4
Parameter yang salah 5
Kesalahan internal yang tidak diketahui 6

Kode Perdagangan Langsung

PeraturanGetRobotListantarmukaGetRobotDetailantarmuka danGetRobotLogsdata kembali antarmuka distatusbidang untuk: kode status perdagangan langsung.

  • Mulai normal
    Status Kode
    Tidak aktif 0
    Dalam operasi 1
    Berhenti 2
    Ditandatangani keluar 3
    Berhenti 4
    Strategi ini memiliki kesalahan. 5
  • Tidak normal
    Status Kode
    Strategi telah berakhir, dan silakan hubungi penulis untuk membelinya lagi -1
    Tidak ada docker yang ditemukan -2
    Kesalahan kompilasi strategi -3
    Perdagangan langsung sudah berjalan -4
    Saldo yang tidak cukup -5
    Jumlah strategi bersamaan melebihi batas -6

Cara Pemeriksaan

Ada dua metode verifikasi ketika memanggil antarmuka API diperpanjang, mendukungtokenverifikasi dan verifikasi langsung.

Verifikasi token

Penggunaanmd5metode enkripsi untuk memverifikasi, contohPython, Golangpanggilan bahasa:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
import json
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

try:
    import md5
    import urllib2
    from urllib import urlencode
except:
    import hashlib as md5
    import urllib.request as urllib2
    from urllib.parse import urlencode

accessKey = ''   # your API KEY
secretKey = ''   

def api(method, *args):
    d = {
        'version': '1.0',
        'access_key': accessKey,
        'method': method,
        'args': json.dumps(list(args)),
        'nonce': int(time.time() * 1000),
        }

    d['sign'] = md5.md5(('%s|%s|%s|%d|%s' % (d['version'], d['method'], d['args'], d['nonce'], secretKey)).encode('utf-8')).hexdigest()
    # Note: for the timeout problem of "urllib2.urlopen" function, you can set the timeout time; for example, urllib2.urlopen ('https://www.fmz.com/api/v1', urlencode(d).encode('utf-8'), timeout = 10), that is, set timeout for 10 seconds
    return json.loads(urllib2.urlopen('https://www.fmz.com/api/v1', urlencode(d).encode('utf-8')).read().decode('utf-8'))

# Return the docker list
print(api('GetNodeList'))
# Return the exchange list
print(api('GetPlatformList'))
# GetRobotList(offset, length, robotStatus, label), passing "-1" means obtaining all
print(api('GetRobotList', 0, 5, -1, 'member2'))
# CommandRobot(robotId, cmd) sends command to live trading
print(api('CommandRobot', 123, 'ok'))
# StopRobot(robotId) returns the live trading status code
print(api('StopRobot', 123))  
# RestartRobot(robotId) returns the live trading status code
print(api('RestartRobot', 123))
# GetRobotDetail(robotId) returns detailed live trading information
print(api('GetRobotDetail', 123))
package main

import (
    "fmt"
    "time"
    "encoding/json"
    "crypto/md5"
    "encoding/hex"
    "net/http"
    "io/ioutil"
    "strconv"
    "net/url"
)

// Fill in your own FMZ platform api key
var apiKey string = ""                                  
// Fill in your own FMZ platform secret key
var secretKey string = ""                               
var baseApi string = "https://www.fmz.com/api/v1"

func api(method string, args ... interface{}) (ret interface{}) {
    // Process args
    jsonStr, err := json.Marshal(args)
    if err != nil {
        panic(err)
    }

    params := map[string]string{
        "version" : "1.0", 
        "access_key" : apiKey,
        "method" : method,
        "args" : string(jsonStr),
        "nonce" : strconv.FormatInt(time.Now().UnixNano() / 1e6, 10),
    }    

    data := fmt.Sprintf("%s|%s|%s|%v|%s", params["version"], params["method"], params["args"], params["nonce"], secretKey)
    h := md5.New()
    h.Write([]byte(data))
    sign := h.Sum(nil)

    params["sign"] = hex.EncodeToString(sign)

    // http request 
    client := &http.Client{}

    // request 
    urlValue := url.Values{}
    for k, v := range params {
        urlValue.Add(k, v)
    }
    urlStr := urlValue.Encode()
    request, err := http.NewRequest("GET", baseApi + "?" + urlStr, nil)
    if err != nil {
        panic(err)
    }    

    resp, err := client.Do(request)
    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()

    b, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    ret = string(b)
    return 
}

func main() {
    settings := map[string]interface{}{
        "name": "hedge test",
        "strategy": 104150,                      
        // K-line period parameter, "60" means 60 seconds
        "period": 60,                           
        "node" : 73938,                         
        "appid": "member2",                
        "exchanges": []interface{}{
            map[string]interface{}{
                "eid": "Exchange", 
                "label" : "test_bjex", 
                "pair": "BTC_USDT", 
                "meta" : map[string]interface{}{
                    // Fill in the access key
                    "AccessKey": "",                                
                    // Fill in the secret key
                    "SecretKey": "",                                
                    "Front" : "http://127.0.0.1:6666/exchange",
                },
            },
        },
    }

    method := "RestartRobot"
    fmt.Println("Call interface:", method)
    ret := api(method, 124577, settings)
    fmt.Println("main ret:", ret)
}

Verifikasi Langsung

Ini mendukung verifikasi tanpatoken(lalu)secret_keylangsung), Anda dapat menghasilkan URL yang dapat diakses secara langsung. contoh, URL yang langsung memberikan instruksi interaktif untuk perdagangan langsung, yang dapat digunakan untukTradingViewatauWebHookuntuk kasus lain.CommandRobot(RobotId, Cmd)fungsi, parameternoncetidak memerlukan verifikasi, dan frekuensi akses dan waktu kunjungan antarmuka tidak terbatas.

Sebagai contoh,AccessKeydari ekstensi yang dibuatAPI KEYadalah:xxxdanSecretKeyadalah:yyy. Lihat tautan berikut untuk mengirim pesan perintah interaktif ke perdagangan langsung dengan ID perdagangan langsung186515, pesan content adalah string:"ok12345".


https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,"ok12345"]

Dalam keadaan bahwa verifikasi langsung didukung, hanyaCommandRobotantarmuka didukung untuk mendapatkanBodydata dalam permintaan.WebHook URLdariTradingView:


https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,+""]

Perhatikan pengaturan sesuai dengan format berikut:args=[130350,+""], di mana130350adalah perdagangan langsungIDdari FMZ Quant Trading Platform.

Setel di kotak pesan dariTrading View(yang diminta Badan data yang akan dikirim):

  • Format JSON

    https://www.fmz.comimg

    {"close": {{close}}, "name": "aaa"}
    

    Perdagangan langsung denganIDdari186515dapat menerima string perintah interaktif:{"close": 39773.75, "name": "aaa"}.

  • Format teks:

    https://www.fmz.comimg

    BTCUSDTPERP Crossing 39700.00 close: {{close}}
    

    Perdagangan langsung denganIDdari186515dapat menerima string perintah interaktif:BTCUSDTPERP Crossing 39700.00 close: 39739.4.

Contoh dariPython & Golangpanggilan bahasa:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import json
import ssl

ssl._create_default_https_context = ssl._create_unverified_context

try:
    import urllib2
except:
    import urllib.request as urllib2

accessKey = 'your accessKey'
secretKey = 'your secretKey'

def api(method, *args):
    return json.loads(urllib2.urlopen(('https://www.fmz.com/api/v1?access_key=%s&secret_key=%s&method=%s&args=%s' % (accessKey, secretKey, method, json.dumps(list(args)))).replace(' ', '')).read().decode('utf-8'))

# If APIKEY does not have the interface permission, the call to
print(api('RestartRobot', 186515)) will fail, and the returned data
is: {'code': 4, 'data': None}
# print(api('RestartRobot', 186515))

# Printed Id: the live trading details of 186515
print(api('GetRobotDetail', 186515))  
package main

import (
    "fmt"
    "encoding/json"
    "net/http"
    "io/ioutil"
    "net/url"
)

// Fill in your own FMZ platform api key
var apiKey string = "your access_key"

// Fill in your own FMZ platform secret key
var secretKey string = "your secret_key"
var baseApi string = "https://www.fmz.com/api/v1"

func api(method string, args ... interface{}) (ret interface{}) {
    jsonStr, err := json.Marshal(args)
    if err != nil {
        panic(err)
    }
    
    params := map[string]string{
        "access_key" : apiKey,
        "secret_key" : secretKey,
        "method" : method,
        "args" : string(jsonStr),
    }    

    // http request 
    client := &http.Client{}

    // request 
    urlValue := url.Values{}
    for k, v := range params {
        urlValue.Add(k, v)
    }
    urlStr := urlValue.Encode()
    request, err := http.NewRequest("GET", baseApi + "?" + urlStr, nil)
    if err != nil {
        panic(err)
    }    

    resp, err := client.Do(request)
    if err != nil {
        panic(err)
    }

    defer resp.Body.Close()

    b, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        panic(err)
    }

    ret = string(b)
    return 
}

func main() {
    method := "GetRobotDetail"
    fmt.Println("Call interface:", method)
    ret := api(method, 186515)
    fmt.Println("main ret:", ret)
}

Gunakan API diperpanjang pada FMZ Quant untuk mewujudkan TradingView peringatan perdagangan sinyal

Penjelasan Antarmuka API yang diperluas

  • Antarmuka API diperluas dari FMZ Quant Trading Platform Tambahkan parameter kueri (dipisahkan dengan?) langsung setelah permintaanhttps://www.fmz.com/api/v1Berikut adalah parameter permintaan yang dinyatakan menggunakanPython:

    {
        "version"   : "1.0",
        "access_key": "xxx",
        "method"    : "GetNodeList",
        "args"      : [],
        "nonce"     : 1516292399361,
        "sign"      : "085b63456c93hfb243a757366600f9c2"
    }
    
    Bidang Panduan
    versi Nomor versi.
    akses_key AccessKey, aplikasi untuk itu di halaman manajemen akun.
    metode Metode panggilan tertentu.
    args Daftar parameter dari metode tertentu yang dipanggil.
    nonce Stempel waktu, dalam milidetik, memungkinkan kesalahan 1 jam dari stempel waktu standar. Nonce harus lebih besar dari nilai nonce akses terakhir.
    tanda Signature.

    Setiap nama parameter dipisahkan oleh karakter&, dan nama parameter dan nilai yang terkait dengan simbol=. URL permintaan lengkap (mengambilmethod=GetNodeListsebagai contoh):

    https://www.fmz.com/api/v1?access_key=xxx&nonce=1516292399361&args=%5B%5D&sign=085b63456c93hfb243a757366600f9c2&version=1.0&method=GetNodeList
    

    Perhatikan bahwa tidak adasecret_keyparameter di antara parameter permintaan.

  • Metode tanda tangan Peraturansignparameter dalam parameter permintaan dienkripsi sebagai berikut, sesuai dengan format:

    version + "|" + method + "|" + args + "|" + nonce + "|" + secretKey
    

    Setelah mengikat string, gunakanMD5algoritma enkripsi untuk mengenkripsi string dan mengubahnya menjadi nilai string data heksadesimal, disebut nilai parametersignUntuk bagian tanda tangan, lihatPythonantarmuka API ekstensi kodeCara Pemeriksaan :

    # Parameter
    d = {
        'version': '1.0',
        'access_key': accessKey,
        'method': method,
        'args': json.dumps(list(args)),
        'nonce': int(time.time() * 1000),
    }
    
    # Calculate "sign" signature
    d['sign'] = md5.md5(('%s|%s|%s|%d|%s' % (d['version'], d['method'], d['args'], d['nonce'], secretKey)).encode('utf-8')).hexdigest()
    
  • Kesalahan layanan antarmuka:

    • Parameter yang tidak cukup:
      {
          "code":0,
          "data":{
              "result":null,
              "error":"Params length incorrect"
          }
      }
      

DapatkanNodeList

PeraturanGetNodeListmetode digunakan untuk mendapatkan daftar pelabuhan di akun Platform Perdagangan Kuantum FMZ yang sesuai denganAPI KEYdalam permintaan.

{
    "code": 0,
    "data": {
        "result": {
            "all": 1,
            "nodes": [{
                "build": "3.7",
                "city": "...",
                "created": "2024-11-08 09:21:08",
                "date": "2024-11-08 16:37:16",
                "forward": "...",
                "guid": "...",
                "host": "node.fmz.com:9902",
                "id": 123,
                "ip": "...",
                "is_owner": true,
                "loaded": 0,
                "name": "MacBook-Pro-2.local",
                "online": true,
                "os": "darwin/amd64",
                "peer": "...",
                "public": 0,
                "region": "...",
                "tunnel": false,
                "version": "...",
                "wd": 0
            }]
        },
        "error": null
    }
}

Deskripsi bidang nilai yang dikembalikan (arti harfiahnya jelas dan tidak akan diulang):

  • semua: Jumlah pelabuhan yang terkait dengan rekening arus.
  • node: Mencatat rincian node docker.
    • build: nomor versi.
    • Kota: Kota di mana Anda menemukan.
    • is_owner: true menunjukkan docker pribadi, false menunjukkan docker publik.
    • dimuat: beban, jumlah contoh strategi.
    • publik: 0 menunjukkan pelabuhan pribadi, 1 menunjukkan pelabuhan publik.
    • wilayah: Lokasi geografis.
    • versi: Informasi versi terperinci dari docker.
    • wd: Apakah untuk mengaktifkan alarm offline, 0 berarti tidak diaktifkan. Docker penyebaran satu klik berisi beberapa informasi tambahan.ecs_danunit_, yang mencatat informasi yang relevan dari server docker penyebaran satu klik (nama operator, konfigurasi, status, dll), siklus penagihan, harga dan informasi lainnya, yang tidak akan diulang di sini.

Tidak ada parameter

GetRobotGroupList

GetRobotGroupList()mengembalikan daftar pengelompokan perdagangan langsung dari akun FMZ Quant Trading Platform yang sesuai denganAPI KEYdalam permintaan.

{
    "code": 0,
    "data": {
        "result": {
            "items": [{
                "id": 3417,
                "name": "Test"
            }, {
                "id": 3608,
                "name": "Live trading demo"
            }]
        },
        "error": null
    }
}
  • Posisi: Informasi pengelompokan perdagangan langsung.
    • ID: Grup perdagangan langsung ID.
    • nama: nama kelompok perdagangan langsung. Peraturanitemsfield hanya mencatat kelompok yang baru dibuat.items.

Tidak ada parameter

GetPlatformList

GetPlatformList()mengembalikan daftar bursa yang memiliki telah ditambahkan oleh akun Platform Perdagangan Kuantum FMZ yang sesuai untukAPI KEYdalam permintaan.

{
    "code": 0,
    "data": {
        "result": {
            "all": 2,
            "platforms": [{
                "category": "加密货币||Crypto",
                "date": "2023-12-07 13:44:52",
                "eid": "Binance",
                "id": 123,
                "label": "Binance",
                "logo": "...",
                "name": "币安现货|Binance",
                "stocks": ["BTC_USDT", "LTC_USDT", "ETH_USDT", "ETC_USDT", "BTC_TUSD", "ETH_TUSD", "BNB_TUSD"],
                "website": "..."
            }, {
                "category": "通用协议|Custom Protocol",
                "date": "2020-11-09 11:23:48",
                "eid": "Exchange",
                "id": 123,
                "label": "XX Exchange REST Protocol",
                "logo": "...",
                "name": "通用协议|Custom Protocol",
                "stocks": ["BTC_USDT", "ETH_USDT"],
                "website": ""
            }]
        },
        "error": null
    }
}
  • all: Jumlah objek pertukaran yang ditambahkan/dikonfigurasi.
  • platform: Informasi yang berkaitan dengan pertukaran.
    • eid: ID dari bursa di Platform Perdagangan Kuantum FMZ,eidakan digunakan dalam beberapa konfigurasi dan parameter.

Tidak ada parameter

GetRobotList

PeraturanGetRobotListmetode digunakan untuk mendapatkan daftar hidup perdagangan di bawah akun Platform Perdagangan Quant FMZ yang sesuai denganAPI KEYdalam permintaan.

{
    "code": 0,
    "data": {
        "result": {
            "all": 1,
            "concurrent": 0,
            "robots": [{
                "charge_time": 1731654846,
                "date": "2024-11-12 14:05:29",
                "end_time": "2024-11-15 14:56:32",
                "fixed_id": 4509153,
                "id": 591026,
                "is_sandbox": 0,
                "name": "test",
                "node_guid": "45891bcf3d57f99b08a43dff76ee1ea1",
                "node_id": 4519153,
                "node_public": 0,
                "profit": 0,
                "public": 0,
                "refresh": 1731651257000,
                "start_time": "2024-11-15 14:56:30",
                "status": 3,
                "strategy_id": 411670,
                "strategy_isowner": true,
                "strategy_language": 0,
                "strategy_name": "test",
                "strategy_public": 0,
                "uid": "105ed6e511cc977921610fdbb7e2a1d6",
                "wd": 0
            }]
        },
        "error": null
    }
}
  • robot: Informasi perdagangan langsung
    • group_id: ID kelompok perdagangan langsung. Jika strategi perdagangan langsung berada dalam kelompok default, tidak adagroup_id field.

Pengaturan penghapusan permintaan panggilan. penghapusan palsu nomor Pengaturan panjang pertanyaan paging. panjang palsu nomor Tentukan status perdagangan langsung yang akan ditanyakan, lihat antarmuka API yang diperluasKode Perdagangan Langsung, lulus-1untuk mendapatkan semua perdagangan hidup. robotStatus palsu nomor Tentukan label khusus dari perdagangan langsung yang ingin Anda kueri, dan Anda dapat menyaring semua perdagangan langsung dari label ini. label palsu string Cari kata kunci. Kata Kunci palsu string

AmbilPythonLanguages diperluas antarmuka APICara Pemeriksaansebagai contoh:print(api('GetRobotList'))Dapatkan semua informasi perdagangan langsung.print(api('GetRobotList', 'member2')): cetak informasi dari semua perdagangan langsung dengan anggota label khusus2.print(api('GetRobotList', 0, 5, -1, 'member2')): halaman dari 0 sampai 5 dan daftar hingga 5 robot berlabel dengan member2.

CommandRobot

PeraturanCommandRobotmetode digunakan untuk mengirim interaksi perintah untuk perdagangan langsung di bawah Platform Perdagangan Kuantum FMZ rekening yang sesuai denganAPI KEYDalam permintaan. dari perdagangan hidup menerima perintah interaksi adalah hidup trading Id yang ditentukan olehrobotIdparameter, dan perintah interaksi dikembalikan olehGetCommand()fungsi disebut dalam strategi untuk menangkapnya.

{
    "code":0,
    "data":{
        "result":true,
        "error":null
    }
}
  • hasil: Apakah perintah interaktif dikirim dengan sukses; ketika mengirim perintah ke perdagangan langsung yang tidak berjalan, hasilnya dalam data yang dikembalikan adalah salah.

ParameterrobotIddigunakan untuk menentukan Id dari trading yang menerima perintah interaktif. yangGetRobotListmetode untuk mendapatkan informasi dari hidup perdagangan di bawah akun, yang berisi ID perdagangan langsung.

robotId benar Nomor Parametercmdadalah perintah interaktif yang dikirim ke bot; perintah akan ditangkap oleh fungsiGetCommand(), yang memicu logika interaktif dalam strategi. Untuk implementasi spesifik logika interaksi dalam kode strategi, silakan lihatGetCommand()Fungsi dalamFMZ Quant Trading Platform API Manual.

cmd benar string

Strategi perdagangan langsung, dengan asumsi bahwa strategi ini beroperasi, ID perdagangan langsung adalah 123:

function main() {
    while (true) {
        var cmd = GetCommand()
        if (cmd) {
            Log(cmd)
        }
        Sleep(2000)
    }
}

Jika kita menggunakan skrip pengujian Python dalam bab ini, akses API diperluas dari FMZ Quant Trading Platform:api("CommandRobot", 123, "test command")Perdagangan langsung dengan ID 123 akan menerima perintah interaktif:test command, dan kemudian cetak keluar melalui log output fungsi.

StopRobot

StopRobot(RobotId)digunakan untuk memintaAPI KEYyang sesuai dengan perdagangan langsung FMZ Quant Trading akun platform. id perdagangan hidup untuk berhenti berjalan adalah hidup trading Id yang ditentukan olehrobotId parameter.

{
    "code":0,
    "data":{
        "result":2,
        "error":null
    }
}
  • Hasil: Kode status perdagangan langsung adalah 2, yang berarti berhenti.

ParameterrobotIddigunakan untuk menentukan Id dari Anda dapat menggunakanGetRobotListmetode untuk mendapatkan informasi dari perdagangan langsung di bawah akun, yang berisi ID perdagangan langsung.

robotId benar Nomor

RestartRobot

PeraturanRestartRobotmetode ini digunakan untuk memulai kembali perdagangan langsung di bawahAPI KEYID perdagangan langsung yang dimulainya kembali adalah ID perdagangan langsung yang ditentukan olehrobotId parameter.

{
    "code":0,
    "data":{
        "result":1,
        "error":null
    }
}
  • Hasil: kode status perdagangan langsung, 1 berarti berjalan.

PeraturanrobotIdparameter digunakan untuk menentukan Id dari Anda dapat menggunakanGetRobotListmetode untuk mendapatkan informasi dari perdagangan langsung di bawah akun, yang berisi ID perdagangan langsung.

robotId benar Nomor Parameter konfigurasi perdagangan langsung, parametersettingsformatnya adalah sebagai berikut:

{
    "appid":"test",
    "args":[],
    "exchanges":[
        {"pair":"SOL_USDT","pid":123},
        {"pair":"ETH_USDT","pid":456}
    ],
    "name":"test",
    "node":123,
    "period":60,
    "strategy":123
}
  • appid: Bidang khusus Tag dapat didefinisikan.
  • args: pengaturan parameter strategi Struktur adalah array, setiap elemen adalah parameter.Interval, dan Anda ingin mengaturIntervalke 500 saat memulai kembali strategi, makaargsmengandung:["Interval", 500], yaitu:"args": [["Interval", 500]].
  • Bursa: Konfigurasi objek bursa untuk mengikat perdagangan langsung Struktur adalah array, di mana setiap elemen adalah konfigurasi objek pertukaran.
    • Hal ini dapat mengikat ke objek pertukaran yang telah dikonfigurasi pada platform Artinya, gunakanpidkonfigurasi:{"pair":"SOL_USDT","pid":123}; piddapat ditanyakan melaluiGetPlatformListantarmuka, danidbidang dalam data yang dikembalikan adalah pertukaranpid.
    • Kita bisa langsung melewati informasi konfigurasi dan mengikat objek pertukaran Artinya, gunakaneidkonfigurasi:{"eid":"Huobi","label":"test Huobi","meta":{"AccessKey":"123","SecretKey":"123"},"pair":"BCH_BTC"}; informasi sensitif sepertiAPI KEYJika jenis konfigurasi ini digunakan, informasi harus dikonfigurasi setiap kali perdagangan langsung dibuat atau dihidupkan kembali.
    • Bisa mengikatProtokol Bea Cukaiobjek pertukaran Ini dapat melewati informasi konfigurasi:{"eid":"Exchange","label":"test exchange","pair":"BTC_USDT","meta":{"AccessKey":"123","SecretKey":"123","Front":"http://127.0.0.1:6666/test"}}. labelAtribut ini adalah untuk mengatur label untuk objek pertukaran diakses olehProtokol Bea Cukai, yang dapat diperoleh denganexchange.GetLabel()fungsi dalam strategi.
  • nama: nama strategi
  • node: Docker ID Menentukan docker mana yang akan dijalankan. Jika atribut ini tidak ditetapkan, docker akan ditugaskan untuk dijalankan secara otomatis.
  • Periode: Periode K-line default Parameter periode garis K, 60 berarti 60 detik.
  • Strategi: ID Strategi Hal ini dapat diperoleh dengan menggunakanGetStrategyList method.

pengaturan palsu Objek JSON

Jika perdagangan langsung dibuat oleh API diperluas, API diperluasRestartRobot (RobotId, Settings)harus digunakan untuk memulai kembali, dansettingsparameter harus dilewatkan. Perdagangan langsung yang dibuat di halaman platform dapat di-restart melalui API yang diperluas atau dengan mengklik tombol di halaman. Anda dapat melewati atau tidak melewatisettingsJika Anda hanya melewatiRobotIdparameter, memulai perdagangan langsung sesuai dengan pengaturan perdagangan langsung saat ini.

GetRobotDetail

PeraturanGetRobotDetailmetode ini digunakan untuk mendapatkan rincian perdagangan langsung di bawah akun FMZ Quant Trading Platform yang sesuai denganAPI KEYID perdagangan langsung yang akan diambil adalah ID perdagangan langsung yang ditentukan olehrobotId parameter.

{
    "code": 0,
    "data": {
        "result": {
            "robot": {
                "charge_time": 1732246539,
                "charged": 5850000,
                "consumed": 5375000000,
                "date": "2018-12-28 14:34:51",
                "favorite": {
                    "added": false,
                    "type": "R"
                },
                "fixed_id": 123,
                "hits": 1,
                "id": 123,
                "is_deleted": 0,
                "is_manager": true,
                "is_sandbox": 0,
                "name": "test",
                "node_id": 123,
                "pexchanges": {
                    "123": "Futures_OKCoin"
                },
                "phash": {
                    "123": "ca1aca74b9cf7d8624f2af2dac01e36d"
                },
                "plabels": {
                    "123": "OKEX futures V5"
                },
                "priority": 0,
                "profit": 0,
                "public": 0,
                "refresh": 1732244453000,
                "robot_args": "[]",
                "start_time": "2024-11-22 11:00:48",
                "status": 1,
                "strategy_args": "[]",
                "strategy_exchange_pairs": "[60,[123],[\"ETH_USDT\"]]",
                "strategy_id": 123,
                "strategy_last_modified": "2024-11-21 16:49:25",
                "strategy_name": "test",
                "strategy_public": "0",
                "uid": "105ed6e51bcc17792a610fdbb7e2a1d6",
                "username": "abc",
                "wd": 0
            }
        },
        "error": null
    }
}
  • charge_time: Waktu pemotongan berikutnya adalah waktu kedaluwarsa efektif setelah pemotongan saat ini.
  • waktu yang sudah habis.
  • Konsumsi: Jumlah yang dikonsumsi (0,125 USD = 12500000 / 1e8).
  • tanggal: tanggal penciptaan.
  • fixed_id: ID docker yang ditugaskan saat perdagangan langsung berjalan. Jika otomatis, nilainya adalah -1.
  • is_manager: Apakah Anda memiliki wewenang untuk mengelola perdagangan langsung ini.
  • is_sandbox: Apakah itu adalah perdagangan simulasi.
  • nama: nama perdagangan langsung.
  • node_id: Docker ID.
  • pexchanges: Objek pertukaran perdagangan langsung, 123 adalah pid, dan Futures_OKCoin adalah nama pertukaran.
  • plabels: Informasi tag dari objek pertukaran yang dikonfigurasi dalam perdagangan langsung.
  • laba: data laba perdagangan langsung.
  • publik: Apakah perdagangan langsung bersifat publik.
  • refresh: waktu aktif terakhir.
  • strategi_exchange_pairs: Objek pertukaran yang dikonfigurasi, set informasi pasangan perdagangan.
  • wd: Apakah untuk mengaktifkan alarm offline.

PeraturanrobotIdparameter digunakan untuk menentukan ID dari perdagangan langsung yang rincian harus diperoleh.GetRobotListmetode untuk mendapatkan informasi tentang perdagangan langsung di bawah akun, yang berisi ID perdagangan langsung.

robotId benar Nomor

Deskripsi atribut daristrategy_exchange_pairs, contoh data berikut:

"[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]"

Data pertama60mewakili set periode K-line default dengan perdagangan langsung adalah 1 menit, yaitu 60 detik.

[44314,42960,15445,14703]adalah objek pertukaranpiddikonfigurasi untuk perdagangan langsung (sesuai dengan urutan penambahan).

[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]adalah set pasangan perdagangan untuk objek pertukaran yang dikonfigurasi oleh live perdagangan (dalam urutan penjumlahan dan dalam korespondensi satu ke satu denganpid).

DapatkanAkun

PeraturanGetAccountmetode digunakan untuk memperoleh informasi akun yang sesuai denganAPI KEYdalam permintaan akun Platform Perdagangan Quant FMZ.

{
    "code":0,
    "data":{
        "result":{
            "balance":22944702436,
            "concurrent":0,
            "consumed":211092719653,
            "currency":"USD",
            "email":"123@qq.com",
            "openai":false,
            "settings":null,
            "sns":{"wechat":true},
            "uid":"105ea6e51bcc177926a10fdbb7e2a1d6",
            "username":"abc"
        },
        "error":null
    }
}
  • saldo: saldo rekening Nilai di sini adalah bilangan bulat karena kontrol presisi. Untuk mengubahnya menjadi nilai aktual, Anda perlu membaginya dengan 1e8 (yaitu 10 pangkat ke-8). Nilai aktual di sini adalah: 229.44702436

GetExchangeList

PeraturanGetExchangeListmetode ini digunakan untuk memperoleh daftar bursa dan informasi konfigurasi yang diperlukan yang didukung oleh FMZ Quant Trading Platform.

KetikaisSummaryparameter adalahfalse, data yang dikembalikan adalah:

{
    "code": 0,
    "data": {
        "result": {
            "exchanges": [{
                "category": "加密货币||Crypto",
                "eid": "Futures_Binance",
                "id": 74,
                "logo": "/upload/asset/d8d84b23e573e9326b99.svg",
                "meta": "[{\"desc\": \"Access Key\", \"qr\":\"apiKey\",\"required\": true, \"type\": \"string\", \"name\": \"AccessKey\", \"label\": \"Access Key\"}, {\"encrypt\": true, \"qr\":\"secretKey\",\"name\": \"SecretKey\", \"required\": true, \"label\": \"Secret Key\", \"type\": \"password\", \"desc\": \"Secret Key\"}]",
                "name": "币安期货|Futures_Binance",
                "priority": 200,
                "stocks": "BTC_USDT,ETH_USDT,ETH_USD",
                "website": "https://accounts.binance.com/zh-TC/register?ref=45110270"
            }]
        },
        "error": null
    }
}

KetikaisSummaryparameter adalahtrue, data yang dikembalikan adalah:

{
    "code": 0,
    "data": {
        "result": {
            "exchanges": [{
                "category": "加密货币||Crypto",
                "eid": "Futures_Binance",
                "id": 74,
                "logo": "/upload/asset/d8d84b23e573e9326b99.svg",
                "name": "币安期货|Futures_Binance",
                "priority": 200,
                "website": "https://accounts.binance.com/zh-TC/register?ref=45110270"
            }]
        },
        "error": null
    }
}
  • meta: Bertukar metadata konfigurasi.

PeraturanisSummaryParameter digunakan untuk menentukan apakah data yang dikembalikan adalah informasi ringkasan.

adalahSimpel benar bool

DeleteNode

PeraturanDeleteNode(Nid)metode digunakan untuk menghapus node docker yang sesuai denganAPI KEYID node docker yang dihapus adalah ID docker yang ditentukan olehnid parameter.

{
    "code":0,
    "data":{
        "result":true,
        "error":null
    }
}
  • hasil: Apakah program docker terkait dihapus dengan sukses.

Peraturannidparameter digunakan untuk menentukan ID dari docker yang akan dihapus.GetNodeListmetode untuk mendapatkan informasi tentang pelabuhan dari akun.

tidak benar Nomor

HapusRobot

PeraturanDeleteRobot(RobotId, DeleteLogs)metode digunakan untuk menghapus perdagangan langsung yang sesuai denganAPI KEYID perdagangan langsung yang dihapus adalah ID perdagangan langsung yang ditentukan olehrobotId parameter.

{
    "code":0,
    "data":{
        "result":0,
        "error":null
    }
}
  • Hasil: Hasil dari umpan balik operasi penghapusan perdagangan langsung. 0: Hapus secara normal. -2: Penghapusan berhasil, tetapi docker yang terkait dengan perdagangan langsung tidak dapat dihubungi. Silakan hapus file 123.db3 secara manual!

ParameterrobotIddigunakan untuk menentukan Id dari Anda dapat menggunakanGetRobotListmetode untuk mendapatkan informasi dari perdagangan langsung di bawah akun, yang berisi ID perdagangan langsung.

robotId benar Nomor PeraturandeleteLogsParameter digunakan untuk mengatur apakah akan menghapus log perdagangan langsung, jika melewati nilai benar (misalnya:true), log perdagangan langsung dihapus.

deleteLogs benar bool

GetStrategyList

PeraturanGetStrategyListmetode digunakan untuk memperoleh informasi strategi platform.

{
    "code": 0,
    "data": {
        "result": {
            "all": 123,
            "strategies": [{
                "category": 9,
                "date": "2024-11-10 20:40:04",
                "description": "",
                "forked": 0,
                "hits": 0,
                "id": 123,
                "is_buy": false,
                "is_owner": false,
                "language": 2,
                "last_modified": "2024-11-11 17:23:52",
                "name": "HedgeGridStrategy",
                "profile": {
                    "avatar": "...",
                    "nickname": "abc",
                    "uid": "4ed225440db1eda23fe05ed10184113e"
                },
                "public": 0,
                "tags": "",
                "uid": "4ed225440db1eda23fe05ed10184113e",
                "username": "abc"
            }]
        },
        "error": null
    }
}
  • all: Jumlah total strategi yang ditemukan oleh query filter.
  • Strategi: Informasi strategi spesifik yang ditanyakan.

PeraturanoffsetParameter digunakan untuk mengatur offset saat query.

penghapusan benar Nomor PeraturanlengthParameter digunakan untuk mengatur panjang kueri.

panjang benar Nomor PeraturanstrategyTypeParameter digunakan untuk mengatur jenis strategi yang akan ditanyakan.

  • strategyTypepengaturan parameter0: semua strategi.
  • strategyTypepengaturan parameter1: Strategi ini bersifat publik.
  • strategyTypepengaturan parameter2: strategi yang harus ditinjau.

strategiJenis benar Nomor PeraturancategoryParameter digunakan untuk mengatur kategori strategi yang akan ditanyakan.

  • categorypengaturan parameter-1: semua strategi.
  • categorypengaturan parameter0Strategi khusus.

kategori benar Nomor PeraturanneedArgsparameter digunakan untuk mengatur apakah strategi yang akan ditanyakan memiliki parameter.

  • needArgspengaturan parameter0: semua strategi.

perluArgs benar Nomor PeraturanlanguageParameter digunakan untuk mengatur bahasa pemrograman strategi yang akan ditanyakan.

  • languagepengaturan parameter0: Bahasa JavaScript.
  • languagepengaturan parameter1Bahasa Python.
  • languagepengaturan parameter2: Bahasa C ++.
  • languagepengaturan parameter3: Strategi visualisasi.
  • languagepengaturan parameter4Bahasa saya.
  • languagepengaturan parameter5: bahasa pinus.

bahasa benar Nomor Peraturankwparameter digunakan untuk mengatur kata kunci dari strategi yang akan ditanyakan.

  • Menetapkan string kosong berarti tidak ada penyaringan kata kunci yang digunakan.

kW benar string

NewRobot

PeraturanNewRobotmetode ini digunakan untuk membuat perdagangan langsung di bawahAPI KEYyang sesuai dengan akun Platform Perdagangan Kuantum FMZ dalam permintaan.

{
    "code":0,
    "data":{
        "result":591988,
        "error":null
    }
}
  • Hasil: Penciptaan berhasil dan ID perdagangan langsung dikembalikan.

Parameter konfigurasi perdagangan langsung,settingsformat parameter adalah sebagai berikut:

{
    "appid":"test",
    "args":[],
    "exchanges":[
        {"pair":"SOL_USDT","pid":123}
    ],
    "group":123,
    "name":"test",
    "node":123,
    "period":60,
    "strategy":123
}
  • kelompok: Tentukan kelompok perdagangan langsung.
  • args: Parameter strategi, atau array kosong jika strategi tidak memiliki parameter.
  • pertukaran: Untuk konfigurasi objek pertukaran, silakan lihatRestartRobot interface.

pengaturan benar Objek JSON

Dalam konfigurasieiddalamsettingsparameter,"meta":{"AccessKey": "123", "SecretKey": "123"}informasi sensitif ini tidak disimpan oleh FMZ Quant Trading Platform. data ini diteruskan ke program docker secara langsung, sehingga informasi ini harus dikonfigurasi setiap kali perdagangan langsung dibuat atau dimulai kembali.

Jika kita membuat obyek pertukaran perdagangan hidup menggunakan protokol kustom, ketika mengkonfigurasisettingsparameter, kita dapat menggunakan pengaturan berikut untukexchangesatribut:

{
    "eid": "Exchange",
    "label": "test",
    "pair": "ETH_BTC",
    "meta": {
        "AccessKey": "123",
        "SecretKey": "123",
        "Front": "http://127.0.0.1:6666/test"
    }
}

labelAtribut adalah untuk mengatur label untuk objek pertukaran diakses oleh protokol kustom saat ini, yang dapat diperoleh olehexchange.GetLabel()fungsi dalam strategi.

PluginRun

PeraturanPluginRunmetode digunakan untuk memanggilalat debugfungsi dari FMZ Quant Trading Platform; Hanya bahasa JavaScript yang didukung.

{
    "code": 0,
    "data": {
        "result": "{\"logs\":[{\"PlatformId\":\"\",\"OrderId\":\"0\",\"LogType\":5,\"Price\":0,\"Amount\":0,\"Extra\":\"Hello FMZ\",\"Currency\":\"\",\"Instrument\":\"\",\"Direction\":\"\",\"Time\":1732267473108}],\"result\":\"\"}",
        "error": null
    }
}
  • Hasil: Alat debugging mengembalikan data hasil tes setelah menjalankan kode JavaScript yang dilewatkan dengan sukses.

Parameter pengaturan dalam alat debugging,settingskonfigurasi, termasuk kode uji dalamsourceAtribut.settingsFormat parameter adalah sebagai berikut:

{
    "exchanges":[{"pair":"SOL_USDT","pid":123}],
    "node":123,
    "period":60,
    "source":"function main() {Log(\"Hello FMZ\")}"
}
  • sumber: kode yang perlu debugging.
  • node: Docker ID, Anda dapat menentukan yang docker untuk menjalankan perdagangan hidup pada. jika nilai adalah -1, itu berarti alokasi otomatis.
  • pertukaran: Untuk konfigurasi objek pertukaran, silakan lihatRestartRobot interface.

pengaturan benar Objek JSON

{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}} {"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}}

Untukexchangesatribut dalamsettings, hanya satu yang perlu diatur saat memanggilPluginRunmetode (hanya satu objek pertukaran yang didukung ketika digunakan di halaman alat debug). Tidak ada kesalahan yang akan dilaporkan ketika Anda mengatur 2 objek pertukaran disettings, tetapi kesalahan akan dilaporkan ketika objek pertukaran kedua diakses dalam kode.

GetRobotLogs

PeraturanGetRobotLogsmetode digunakan untuk mendapatkan informasi log perdagangan langsung di bawah akun FMZ Quant Trading Platform yang sesuai denganAPI KEYID platform perdagangan langsung yang harus diperoleh adalah ID platform perdagangan langsung yang ditentukan olehrobotId parameter.

{
    "code": 0,
    "data": {
        "result": {
            "chart": "",
            "chartTime": 0,
            "logs": [{
                "Total": 20,
                "Max": 20,
                "Min": 1,
                "Arr": []
            }, {
                "Total": 0,
                "Max": 0,
                "Min": 0,
                "Arr": []
            }, {
                "Total": 0,
                "Max": 0,
                "Min": 0,
                "Arr": []
            }],
            "node_id": 123,
            "online": true,
            "refresh": 1732201544000,
            "status": 4,
            "summary": "...",
            "updateTime": 1732201532636,
            "wd": 0
        },
        "error": null
    }
}
  • log: Informasi log: Beberapa item data log ditemukan di bidang Arr. Struktur data pertama dalam log adalah catatan log dalam tabel log strategi dalam basis data perdagangan langsung. Struktur data kedua dalam log adalah catatan log dalam tabel log strategi dalam database perdagangan langsung. Struktur data ketiga dalam log adalah catatan log dalam tabel log strategi dalam basis data perdagangan langsung.
  • Ringkasan: Data bar status perdagangan langsung.

PeraturanrobotIdparameter digunakan untuk menentukan Id dari perdagangan langsung yang informasi lognya harus diperoleh. Anda bisa menggunakanGetRobotListmetode untuk memperoleh informasi tentang perdagangan langsung di bawah akun, yang berisi ID perdagangan langsung.

robotId benar Nomor PeraturanlogMinIdParameter digunakan untuk menentukan ID minimum Log.

logMinId benar Nomor PeraturanlogMaxIdParameter digunakan untuk menentukan Id maksimum Log.

logMaxId benar Nomor PeraturanlogOffsetparameter digunakan untuk mengatur offset, setelah menentukan kisaran denganlogMinIddanlogMaxId, diimbangi berdasarkanlogOffsetMulai sebagai posisi awal untuk mengambil data.

LogOffset benar Nomor ParameterlogLimitdigunakan untuk menetapkan jumlah catatan data yang akan dipilih setelah posisi awal ditentukan.

logLimit benar Nomor PeraturanprofitMinIdParameter digunakan untuk mengatur ID minimum dari catatan laba.

keuntungan MinId benar Nomor ParameterprofitMaxIddigunakan untuk mengatur ID maksimum dari log laba.

profitMaxId benar Nomor ParameterprofitOffsetdigunakan untuk mengatur offset (berapa banyak catatan yang dilewatkan) sebagai posisi awal.

profitOffset benar Nomor ParameterprofitLimitdigunakan untuk menetapkan jumlah catatan data yang akan dipilih setelah posisi awal ditentukan.

profitLimit benar Nomor ParameterchartMinIddigunakan untuk mengatur ID minimum dari catatan data grafik.

grafik MinId benar Nomor ParameterchartMaxIddigunakan untuk mengatur Id maksimum dari catatan data grafik.

grafikMaxId benar Nomor ParameterchartOffsetdigunakan untuk mengatur offset.

chartOffset benar Nomor ParameterchartLimitdigunakan untuk mengatur jumlah catatan untuk mendapatkan.

chartLimit benar Nomor ParameterchartUpdateBaseIddigunakan untuk mengatur ID dasar setelah query diperbarui.

chartUpdateBaseId benar Nomor ParameterchartUpdateDatedigunakan untuk mengatur data Catat pembaruan timestamp, dan itu akan menyaring catatan lebih besar daripada cap waktu ini.

chartUpdate Tanggal benar Nomor ParametersummaryLimitdigunakan untuk mengatur jumlah byte dari data bar status untuk ditanyakan. jenis integer untuk menanyakan data bar status dari live perdagangan. Mengatur ke 0 berarti tidak perlu menanyakan bilah status informasi, dan pengaturan ke nomor non-nol menunjukkan jumlah dari byte dari informasi bar status yang akan ditanyakan (the antarmuka tidak membatasi jumlah data, sehingga Anda dapat menentukan lebih besarsummaryLimitparameter untuk mendapatkan semua status bar Data bar status disimpan dalam data yang dikembalikansummary.

Ringkasan Batas benar Nomor

  • Tabel log strategi dalam database PeraturanArrnilai atribut dalam elemen pertama dariLogsnilai atribut (struktur array) dalam data yang dikembalikan (data log) dijelaskan sebagai berikut:

    "Arr": [
        [3977, 3, "Futures_OKCoin", "", 0, 0, "Sell(688.9, 2): 20016", 1526954372591, "", ""],
        [3976, 5, "", "", 0, 0, "OKCoin:this_week too many positions, long: 2", 1526954372410, "", ""]
    ],
    
    id logType eid Perintah harga jumlah tambahan tanggal kontrakJenis arah
    3977 3 Futures_OKCoin "" 0 0 Menjual ((688.9, 2): 20016 1526954372591 "" ""
    3976 5 "" "" 0 0 OKCoin:minggu ini_terlalu banyak posisi, panjang: 2 1526954372410 "" ""

    extraadalah pesan yang terlampir dari log yang dicetak.

    Jenis log khusus yang diwakili olehlogTypenilai dijelaskan sebagai berikut:

    logType: 0 1 2 3 4 5 6
    Arti logType: Membeli Penjualan Keluar Kesalahan Keuntungan Pesan Memulai kembali
  • Tabel log grafik laba dalam database Data dalam tabel log grafik konsisten dengan log laba dalam tabel log strategi.

    "Arr": [
        [202, 2515.44, 1575896700315],
        [201, 1415.44, 1575896341568]
    ]
    

    Ambil salah satu data log sebagai contoh:

    [202, 2515.44, 1575896700315]
    

    202adalah logID; 2515.44adalah nilai laba;1575896700315adalah timestamp.

  • Tabel log grafik di database

    "Arr": [
        [23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
        [23636, 5, "{\"x\":1575960300000,\"y\":3.0735}"]
    ]
    

    Ambil salah satu data log sebagai contoh:

    [23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
    

    23637adalah logID, 0adalah indeks dari seri data grafik, dan data terakhir"{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"adalah data log; data ini adalah data K-line pada grafik.

Perpustakaan Bawah Tanah Terminal Perdagangan