FMZ Quant hat die erweiterte API-Schnittstelle der Plattform eröffnet, um programmatische Aufrufe zu verschiedenen Funktionen der FMZ Quant Trading Platform zu unterstützen.
Die FMZ Quant Trading Plattform unterstützt das Berechtigungsmanagement der
die erweiterte API-Schnittstelle und die Berechtigung derAPI KEY
kann eingestellt werden. Auf der API KEY
.
Sie können das Eingabefeld API KEY
, und geben Sie die*
Symbol für alleErweiterte API-SchnittstelleBerechtigungen. Wenn Sie bestimmte Benutzeroberflächenberechtigungen angeben möchten, müssen Sie den entsprechenden erweiterten API-Funktionsnamen eingeben. Verwenden Sie Kommas, um zu trennen, zum Beispiel:GetRobotDetail,DeleteRobot
Das gibt uns dasAPI KEY
die Erlaubnis zur Anrufung derErhalten Sie detaillierte Informationen zum Live-HandelSchnittstelle undLive-Handel gelöscht interface.
DieAPI KEY
Die Verwaltungseite ermöglicht es Ihnen auch,Änderungen,
Ausfall, Löschendie erschaffen wurdenAPI KEY
.
Ein Beispiel für die Struktur, die durch die erweiterte API-Schnittstelle zurückgegeben wird, ist wie folgt:
"code":0,
"data":{
// ...
}
}
Diecode
Feld is: Der beim Aufruf der erweiterten API-Schnittstelle zurückgegebene Statuscode für das Ergebnis des Aufrufs.
Beschreibung | Code |
---|---|
Erfolgreiche Ausführung | 0 |
Falscher API-Schlüssel | 1 |
Falsche Unterschrift | 2 |
Nicht-Fehler | 3 |
Falsche Methode | 4 |
Falscher Parameter | 5 |
Interner unbekannter Fehler | 6 |
DieGetRobotList
SchnittstelleGetRobotDetail
Schnittstelle,
und derGetRobotLogs
Daten aus der Schnittstelle in diestatus
Feld für: Code für den Status des Live-Handels.
Status | Code |
---|---|
Inaktivität | 0 |
In Betrieb | 1 |
Aufhören | 2 |
Ausgeschrieben | 3 |
Aufgehalten | 4 |
Die Strategie hat Fehler. | 5 |
Status | Code |
---|---|
Die Strategie ist abgelaufen, und bitte kontaktieren Sie den Autor, um es wieder zu kaufen | -1 |
Kein Docker gefunden | -2 |
Fehler bei der Kompilierung der Strategie | -3 |
Der Live-Handel läuft bereits. | -4 |
Unzureichende Bilanz | -5 |
Die Anzahl der gleichzeitigen Strategien überschreitet die Grenze | -6 |
Es gibt zwei Verifizierungsmethoden beim Aufruf der erweiterten API-Schnittstelle, dietoken
Überprüfung und direkte Überprüfung.
Verwendungmd5
Verschlüsselungsmethode zur Überprüfung, BeispielPython
, Golang
Sprachruf:
#!/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)
}
Es unterstützt die Überprüfung ohnetoken
(übergeben)secret_key
Sie können eine URL generieren, die direkt zugänglich ist.
Beispiel: die URL, die direkt interaktive Anweisungen an
Live-Handel, der fürTradingView
oder derWebHook
In anderen Fällen wird ein Rückruf verlangt.CommandRobot(RobotId, Cmd)
Funktion, der Parameternonce
die Daten nicht überprüft werden müssen, und die Zugriffsfrequenz und
Die Besuchszeiten der Schnittstelle sind nicht begrenzt.
Zum BeispielAccessKey
der erstellten ErweiterungAPI KEY
ist:xxx
und derSecretKey
ist:yyy
. Senden Sie eine interaktive Befehlsnachricht an
der Live-Handel mit der Live-Handel-ID186515
, die Botschaft
Content ist eine Zeichenfolge:"ok12345"
.
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,"ok12345"]
Unter der Voraussetzung, dass die direkte Überprüfung unterstützt wird,
nurCommandRobot
Interface wird unterstützt, um dieBody
Die Daten in der Anfrage.WebHook URL
vonTradingView
:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,+""]
Achten Sie auf die Einstellung nach folgendem Format:args=[130350,+""]
, in denen130350
ist der Live-HandelID
der FMZ Quant Trading Plattform.
In der Nachrichtenbox vonTrading View
(die angeforderte
JSON-Format
{"close": {{close}}, "name": "aaa"}
Der Live-Handel mitID
von186515
kann die interaktive Befehlszeile empfangen:{"close": 39773.75, "name": "aaa"}
.
Textformat:
BTCUSDTPERP Crossing 39700.00 close: {{close}}
Der Live-Handel mitID
von186515
kann die interaktive Befehlszeile empfangen:BTCUSDTPERP Crossing 39700.00 close: 39739.4
.
Beispiele fürPython
& Golang
Sprachanrufe:
#!/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)
}
Verwenden Sie die erweiterte API auf FMZ Quant, um
Die erweiterte API-Schnittstelle der FMZ Quant Trading Platform
Anschließen der Abfrageparameter?
) des Antrags unmittelbarhttps://www.fmz.com/api/v1
Die folgenden Anforderungsparameter werden mitPython
:
{
"version" : "1.0",
"access_key": "xxx",
"method" : "GetNodeList",
"args" : [],
"nonce" : 1516292399361,
"sign" : "085b63456c93hfb243a757366600f9c2"
}
Felder | Anweisungen |
---|---|
Ausgabe | Versionnummer. |
Zugriff_Schlüssel | AccessKey, beantragen Sie es auf der Account-Management-Seite. |
Methode | Die spezifische Anrufmethode. |
Args | Die Parameterliste der bestimmten aufgerufenen Methode. |
nicht | Zeitstempel, in Millisekunden, erlaubt einen Fehler von 1 Stunde vom Standardzeitstempel. Nonce muss größer sein als der Nonce-Wert des letzten Zugriffs. |
Zeichen | Signature. |
Jeder Parametername wird durch das Zeichen getrennt&
, und die Parameternamen und -werte sind mit dem Symbol verbunden=
. Die vollständige Anfrage-URL (mitmethod=GetNodeList
zum Beispiel):
https://www.fmz.com/api/v1?access_key=xxx&nonce=1516292399361&args=%5B%5D&sign=085b63456c93hfb243a757366600f9c2&version=1.0&method=GetNodeList
Beachten Sie, dass es keinesecret_key
Parameter unter den Anforderungsparametern.
Signaturmethode
Diesign
Parameter im Anforderungsparameter wird entsprechend dem Format wie folgt verschlüsselt:
version + "|" + method + "|" + args + "|" + nonce + "|" + secretKey
Nachdem Sie die Zeichenketten verbunden haben, verwenden SieMD5
Verschlüsselungsalgorithmus zur Verschlüsselung der Zeichenfolge und Umwandlung in einen hexadezimalen Datenzeichenwert, der als Parameterwert bezeichnet wirdsign
- für den Unterschriftenteil siehePython
Code-Erweiterungs-API-SchnittstelleÜberprüfungsverfahren :
# 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()
Interface-Dienstfehler
{
"code":0,
"data":{
"result":null,
"error":"Params length incorrect"
}
}
DieGetNodeList
Verfahren wird verwendet, um die Liste der Hafenarbeiter zu erhalten
der FMZ Quant Trading Plattform, die demAPI KEY
in der Anfrage.
{
"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
}
}
Beschreibung der zurückgegebenen Wertfelder (die wörtliche Bedeutung ist offensichtlich und wird nicht wiederholt):
ecs_
undunit_
, die die relevanten Informationen des One-Click-Deployment-Docker-Servers (Betreibername, Konfiguration, Status usw.), Rechnungszyklus, Preis und andere Informationen, die hier nicht wiederholt werden, erfasst.Keine Parameter
GetRobotGroupList()
Gibt die Liste der Live-Handelsgruppen zurück
des FMZ Quant Trading Platform-Kontos, das demAPI KEY
in der Anfrage.
{
"code": 0,
"data": {
"result": {
"items": [{
"id": 3417,
"name": "Test"
}, {
"id": 3608,
"name": "Live trading demo"
}]
},
"error": null
}
}
items
Das Feld items
.Keine Parameter
GetPlatformList()
Gibt die Liste der Börsen zurück, die
wurde durch das entsprechende Konto der FMZ Quant Trading Platform hinzugefügt
DieAPI KEY
in der Anfrage.
{
"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
}
}
eid
wird in einigen Konfigurationen und Parametern verwendet.Keine Parameter
DieGetRobotList
Methode wird verwendet, um die Liste der live
Handelsgeschäfte auf dem Konto der FMZ Quant Trading Platform
die derAPI KEY
in der Anfrage.
{
"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
}
}
group_id
field.Die Auslagerung der Paging-Abfrage.
Verzögerung
falsche
Zahl
Die Längeneinstellung der Paging-Abfrage.
Länge
falsche
Zahl
Geben Sie den Status des zu abfragenden Live-Handels an, siehe erweiterte API-SchnittstelleLive-Handelskode- Gehen Sie durch.-1
um alle Live-Tradings zu bekommen.
RobotStatus
falsche
Zahl
Geben Sie das benutzerdefinierte Label des Live-Handels an, den Sie abfragen möchten, und Sie können alle Live-Handels von diesem Label filtern.
Etikett
falsche
String
Such nach Schlüsselwörtern.
Schlüsselwort
falsche
String
Nehmen Sie diePython
Spracheprint(api('GetRobotList'))
Erhalten Sie alle Informationen über den Live-Handel.print(api('GetRobotList', 'member2'))
: Drucken Sie die Informationen für alle Live-Handelsgeschäfte mit dem benutzerdefinierten Etikettmitglied2.print(api('GetRobotList', 0, 5, -1, 'member2'))
: Seiten von 0 bis 5 und Liste von bis zu 5 mit member2 gekennzeichneten Robotern.
DieCommandRobot
Methode wird verwendet, um eine Interaktion zu senden
Befehl zum Live-Handel auf der FMZ Quant Trading Platform
derAPI KEY
In der Anfrage.
der Live-Handel, der den Interaktionsbefehl erhält, ist der Live-Handel
Handels-ID, die von derrobotId
Parameter und die
Interaktionsbefehl wird von derGetCommand()
Funktion
Ich habe die Strategie genannt, es zu erfassen.
{
"code":0,
"data":{
"result":true,
"error":null
}
}
Der ParameterrobotId
wird verwendet, um die ID des
Sie können den Live-Handel, der den interaktiven Befehl empfängt.
DieGetRobotList
Methode zur Erfassung der Informationen der
Handel auf dem Konto, das die Live-Handelsinformant enthält.
RobotId
wahr
Zahl
Der Parametercmd
ist der interaktive Befehl, der an den Bot gesendet wird; der Befehl wird von der Funktion erfasstGetCommand()
, die die interaktive Logik in der Strategie auslöst.GetCommand()
Funktion imFMZ Quant Trading Plattform API Handbuch.
cmd wahr String
Live-Handelsstrategie, vorausgesetzt, dass diese Strategie in Betrieb ist, ist die Live-Handels-ID 123:
function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}
Wenn wir in diesem Kapitel das Python-Test-Skript verwenden, können wir auf die erweiterte API der FMZ Quant Trading Platform zugreifen:api("CommandRobot", 123, "test command")
Der Live-Handel mit ID 123 erhält den interaktiven Befehl:test command
, und dann ausdrucken Sie es durch die Log-Funktion Ausgabe.
StopRobot(RobotId)
wird verwendet, um dieAPI KEY
für den Live-Handel des FMZ Quant Trading
Die Live-Trading-ID, um zu stoppen, ist die Live-Trading-ID.
Handels-ID, die von derrobotId
parameter.
{
"code":0,
"data":{
"result":2,
"error":null
}
}
Der ParameterrobotId
wird verwendet, um die ID des
Sie können dieGetRobotList
Die Daten werden im Rahmen der
Konto, das die Live-Handels-ID enthält.
RobotId wahr Zahl
DieRestartRobot
Die Methode wird zur Wiederaufnahme des Live-Handels im Rahmen derAPI KEY
Die ID des wieder aufgenommenen Live-Handels ist die von der FMZ Quant Trading Platform angegebene Live-Handels-ID.robotId
parameter.
{
"code":0,
"data":{
"result":1,
"error":null
}
}
DierobotId
Der Parameter wird verwendet, um die Id des
Sie können dieGetRobotList
Die Daten werden im Rahmen der
Konto, das die Live-Handels-ID enthält.
RobotId
wahr
Zahl
Die Parameter der Live-Handelskonfiguration, die Parametersettings
Das Format ist wie folgt:
{
"appid":"test",
"args":[],
"exchanges":[
{"pair":"SOL_USDT","pid":123},
{"pair":"ETH_USDT","pid":456}
],
"name":"test",
"node":123,
"period":60,
"strategy":123
}
Interval
, und Sie wollen, um zu setzenInterval
500 bei Neustart der Strategie, dannargs
enthält:["Interval", 500]
, d. h.:"args": [["Interval", 500]]
.pid
Konfiguration:{"pair":"SOL_USDT","pid":123}
; pid
Sie können über dieGetPlatformList
Schnittstelle undid
Feld in den zurückgegebenen Daten ist der Austauschpid
.eid
Konfiguration:{"eid":"Huobi","label":"test Huobi","meta":{"AccessKey":"123","SecretKey":"123"},"pair":"BCH_BTC"}
; sensible Informationen wieAPI KEY
Bei der Verwendung dieser Konfiguration müssen die Informationen bei jeder Erstellung oder Neustartung eines Live-Handels konfiguriert werden.{"eid":"Exchange","label":"test exchange","pair":"BTC_USDT","meta":{"AccessKey":"123","SecretKey":"123","Front":"http://127.0.0.1:6666/test"}}
.
label
Attribut ist, um ein Etikett für das Exchange-Objekt zu setzen, auf das der aktuelleZollprotokoll, die durch dieexchange.GetLabel()
die Rolle der Kommission in der Strategie.GetStrategyList
method.Einstellungen falsche JSON-Objekt
Wenn ein Live-Handel durch die erweiterte API erstellt wird, wird die erweiterte APIRestartRobot (RobotId, Settings)
Die Anlage muss für den Neustart verwendet werden, und diesettings
Der auf der Plattformseite erstellte Live-Handel kann über die erweiterte API oder durch Klicken auf die Schaltfläche auf der Seite neu gestartet werden.settings
Wenn Sie nur dieRobotId
Parameter, starten Sie den Live-Handel gemäß den aktuellen Live-Handelseinstellungen.
DieGetRobotDetail
Die Methode wird verwendet, um die Einzelheiten des Live-Handels unter dem Konto der FMZ Quant Trading Platform zu erhalten, die demAPI KEY
Die zu abrufende ID des Live-Handels ist die von derrobotId
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
}
}
DierobotId
Der Parameter wird verwendet, um die ID des Live-Handels anzugeben, für den die Details zu erhalten sind.GetRobotList
Methode zur Erfassung von Informationen über den Live-Handel auf dem Konto, die die Live-Handel-ID enthält.
RobotId wahr Zahl
Die Attributbeschreibung vonstrategy_exchange_pairs
, nehmen wir beispielsweise folgende Daten:
"[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]"
Die ersten Daten60
stellt den Standard-K-Linien-Periodensatz dar
bei Live-Handel ist 1 Minute, also 60 Sekunden.
[44314,42960,15445,14703]
ist das Austauschobjektpid
für den Live-Handel konfiguriert (nach der Addition-Order).
[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]
ist die
Handelspaar für das von live konfigurierte Exchange-Objekt
Handel (in der Reihenfolge der Addition und in der Korrespondenz eins zu eins)
mitpid
).
DieGetAccount
Die Methode wird verwendet, um die Kontoinformationen zu erfassen, die derAPI KEY
in der Anfrage des Kontos der FMZ Quant Trading Platform.
{
"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
}
}
DieGetExchangeList
Diese Methode wird verwendet, um die Liste der Börsen und die erforderlichen Konfigurationsinformationen zu erhalten, die von der FMZ Quant Trading Platform unterstützt werden.
Wenn dieisSummary
Parameter istfalse
, sind die zurückgegebenen Daten:
{
"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
}
}
Wenn dieisSummary
Parameter isttrue
, sind die zurückgegebenen Daten:
{
"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
}
}
DieisSummary
Der Parameter wird verwendet, um anzugeben, ob die zurückgegebenen Daten zusammenfassende Informationen sind.
istZusammenfassung wahr Boole
DieDeleteNode(Nid)
Methode wird verwendet, um den Docker-Knoten zu löschen, der demAPI KEY
Die gelöschte Docker-Knoten-ID ist die von dernid
parameter.
{
"code":0,
"data":{
"result":true,
"error":null
}
}
Dienid
Sie können die Parameter für die Identifizierung des zu löschenden Dockers verwenden.GetNodeList
Die Kommission hat eine Reihe von Maßnahmen ergriffen.
Nied wahr Zahl
DieDeleteRobot(RobotId, DeleteLogs)
Die Methode wird verwendet, um den Live-Handel zu löschen, der demAPI KEY
Die gelöschte Live-Trading-ID ist die Live-Trading-ID, die vomrobotId
parameter.
{
"code":0,
"data":{
"result":0,
"error":null
}
}
Der ParameterrobotId
wird verwendet, um die ID des
Sie können dieGetRobotList
Die Daten werden im Rahmen der
Konto, das die Live-Handels-ID enthält.
RobotId
wahr
Zahl
DiedeleteLogs
Der Parameter wird verwendet, um festzulegen, ob das Live-Trading-Log gelöscht werden soll, wenn ein wahrer Wert übergeben wird (z. B.:true
), wird das Live-Handelsprotokoll gestrichen.
DeleteLogs wahr Boole
DieGetStrategyList
die Methode zur Erfassung von Informationen über die Plattformstrategie verwendet wird.
{
"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
}
}
Dieoffset
Parameter wird verwendet, um die Verschiebung beim Abfragen festzulegen.
Verzögerung
wahr
Zahl
Dielength
Parameter wird verwendet, um die Länge der Abfrage festzulegen.
Länge
wahr
Zahl
DiestrategyType
Der Parameter wird verwendet, um den zu abfragenden Strategietypen festzulegen.
strategyType
Einstellung der Parameter0
: alle Strategien.strategyType
Einstellung der Parameter1
: Die Strategie ist öffentlich.strategyType
Einstellung der Parameter2
: Strategie, die überprüft werden soll.Strategie
wahr
Zahl
Diecategory
Der Parameter wird verwendet, um die zu abfragende Strategiekategorie festzulegen.
category
Einstellung der Parameter-1
: alle Strategien.category
Einstellung der Parameter0
- eine individuelle Strategie.Kategorie
wahr
Zahl
DieneedArgs
Parameter wird verwendet, um festzulegen, ob die abzufragende Strategie Parameter hat.
needArgs
Einstellung der Parameter0
: alle Strategien.NeedsArgs
wahr
Zahl
Dielanguage
Parameter wird verwendet, um die Programmiersprache der zu abfragenden Strategie festzulegen.
language
Einstellungen der Parameter0
: JavaScript-Sprache.language
Einstellungen der Parameter1
Die Sprache Python.language
Einstellungen der Parameter2
: C++ Sprache.language
Einstellungen der Parameter3
: Visualisierungsstrategie.language
Einstellungen der Parameter4
Meine Sprache.language
Einstellungen der Parameter5
: PINE-SpracheSprache
wahr
Zahl
Diekw
Parameter wird verwendet, um das Schlüsselwort der zu abfragenden Strategie festzulegen.
kW wahr String
DieNewRobot
Die Methode wird verwendet, um einen Live-Handel im Rahmen derAPI KEY
dem im Antrag angegebenen Konto der FMZ Quant Trading Platform entspricht.
{
"code":0,
"data":{
"result":591988,
"error":null
}
}
Die Live-Handelskonfigurationsparameter,settings
Das Format der Parameter ist wie folgt:
{
"appid":"test",
"args":[],
"exchanges":[
{"pair":"SOL_USDT","pid":123}
],
"group":123,
"name":"test",
"node":123,
"period":60,
"strategy":123
}
RestartRobot
interface.Einstellungen wahr JSON-Objekt
In der Konfiguration voneid
in dersettings
Parameter,"meta":{"AccessKey": "123", "SecretKey": "123"}
Diese Daten werden direkt an das Dockerprogramm weitergeleitet, so dass diese Informationen jedes Mal konfiguriert werden müssen, wenn ein Live-Handel erstellt oder neu gestartet wird.
Wenn wir ein Live-Trading-Exchange-Objekt mit dem benutzerdefinierten Protokoll erstellen, wenn die Konfiguration dersettings
Parameter, können wir die folgenden Einstellungen für dieexchanges
Eigenschaft:
{
"eid": "Exchange",
"label": "test",
"pair": "ETH_BTC",
"meta": {
"AccessKey": "123",
"SecretKey": "123",
"Front": "http://127.0.0.1:6666/test"
}
}
label
Das Attribut ist ein Etikett für das Exchange-Objekt zu setzen, auf das das aktuelle benutzerdefinierte Protokoll zugreift.exchange.GetLabel()
die Rolle der Kommission in der Strategie.
DiePluginRun
Die Methode wird verwendet, um dieDebug-ToolFunktion der FMZ Quant Trading Plattform; nur die Sprache JavaScript wird unterstützt.
{
"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
}
}
Die Einstellungsparameter im Debugger,settings
die Prüfungskode in diesource
Das Attributsettings
Das Parameterformat ist wie folgt:
{
"exchanges":[{"pair":"SOL_USDT","pid":123}],
"node":123,
"period":60,
"source":"function main() {Log(\"Hello FMZ\")}"
}
RestartRobot
interface.Einstellungen wahr JSON-Objekt
{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}}
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}}
Für dieexchanges
Attribut insettings
, muss nur eine eingestellt werden, wenn diePluginRun
Methode (nur ein Austauschobjekt wird unterstützt, wenn es in der Debug-Tool-Seite verwendet wird).settings
, aber ein Fehler wird bei Zugriff auf das zweite Austauschobjekt im Code gemeldet.
DieGetRobotLogs
Die Methode wird verwendet, um die Protokollinformationen des Live-Handels unter dem Konto der FMZ Quant Trading Platform zu erhalten, die demAPI KEY
Die zu erhaltende ID der Live-Handelsplattform ist die von der Agentur angegebene Live-Handelsplattform-ID.robotId
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
}
}
DierobotId
Der Parameter wird verwendet, um die Id des
Live-Handel, für den die Protokollinformationen zu erhalten sind.
Sie können dieGetRobotList
Methode zur Beschaffung von Informationen
Über den Live-Handel auf dem Konto, das die
Live-Trading-ID.
RobotId
wahr
Zahl
DielogMinId
Der Parameter wird verwendet, um die Mindest-ID des Logs anzugeben.
LogMinId
wahr
Zahl
DielogMaxId
Der Parameter wird verwendet, um die maximale ID des Logs anzugeben.
LogMaxId
wahr
Zahl
DielogOffset
Der Parameter wird verwendet, um den Versatz festzulegen, nachdem der Bereich durchlogMinId
undlogMaxId
, auf der Grundlage derlogOffset
(wie viele Datensätze übersprungen werden).
LogOffset
wahr
Zahl
Der ParameterlogLimit
wird verwendet, um die Anzahl der zu wählenden Datensätze nach Feststellung der Ausgangsposition festzulegen.
LogLimit
wahr
Zahl
DieprofitMinId
Der Parameter wird verwendet, um die Mindest-ID des Gewinnprotokolls festzulegen.
Gewinn
wahr
Zahl
Der ParameterprofitMaxId
wird verwendet, um die maximale ID des Gewinnprotokolls festzulegen.
GewinnmaxId
wahr
Zahl
Der ParameterprofitOffset
wird verwendet, um den Versatz (wie viele Aufzeichnungen übersprungen werden) als Ausgangsposition festzulegen.
GewinnAusgleich
wahr
Zahl
Der ParameterprofitLimit
wird verwendet, um die Anzahl der zu wählenden Datensätze nach Feststellung der Ausgangsposition festzulegen.
Gewinngrenze
wahr
Zahl
Der ParameterchartMinId
wird verwendet, um die Mindest-ID des Chartdatenprotokolls festzulegen.
Abbildung
wahr
Zahl
Der ParameterchartMaxId
wird verwendet, um die maximale ID des Diagrammdatensatzes festzulegen.
Karte MaxId
wahr
Zahl
Der ParameterchartOffset
wird verwendet, um den Versatz einzusetzen.
Abbildung:
wahr
Zahl
Der ParameterchartLimit
wird verwendet, um die Anzahl der
Aufzeichnungen zu erhalten.
ChartLimit
wahr
Zahl
Der ParameterchartUpdateBaseId
wird verwendet, um die Basis-Id festzulegen
nach Aktualisierung der Abfrage.
ChartUpdateBaseId
wahr
Zahl
Der ParameterchartUpdateDate
wird verwendet, um die Daten festzulegen
Aufzeichnung Update Zeitstempel, und es wird Filter aus Aufzeichnungen größer
als dieses Zeitstempel.
TabelleAktualisierungDatum
wahr
Zahl
Der ParametersummaryLimit
wird verwendet, um die Anzahl der
Der Parameter ist von
Ganzzahlentyp für die Abfrage der Statusleiste
Handel.
Einstellung auf summaryLimit
Parameter, um alle Statusleiste zu erhalten
Die Daten der Statusleiste werden in den zurückgegebenen Daten gespeichertsummary
.
Zusammenfassung wahr Zahl
Strategieprotokolltabelle in der Datenbank
DieArr
Attributwert im ersten Element derLogs
Der Attributwert (Array-Struktur) in den zurückgegebenen Daten (Logdaten) wird wie folgt beschrieben:
"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, "", ""]
],
Identifizierung | LogTyp | Eid | Auftrag | Preis | Betrag | Zusätzlich | Datum | Vertrag Typ | Richtung |
---|---|---|---|---|---|---|---|---|---|
3977 | 3 | "" | 0 | 0 | 1526954372591 | "" | "" | ||
3976 | 5 | "" | "" | 0 | 0 | 1526954372410 | "" | "" |
extra
ist die beigefügte Meldung des gedruckten Protokolls.
Die spezifischen Bausteine, die durchlogType
Die Werte werden wie folgt beschrieben:
LogTyp: | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
Bedeutung von logType: | Kaufen | Verkauf | Rücktritt | Fehler | Gewinne | Nachricht | RESTART |
Log-Tabelle des Gewinndiagramms in der Datenbank Die Daten in der Diagrammtabelle stimmen mit dem Gewinnprotokoll in der Strategietabelle überein.
"Arr": [
[202, 2515.44, 1575896700315],
[201, 1415.44, 1575896341568]
]
Nehmen wir beispielsweise eine der Protokolldaten:
[202, 2515.44, 1575896700315]
202
ist logID
; 2515.44
ist der Gewinnwert;1575896700315
ist Zeitstempel.
Chart-Logtabelle in der Datenbank
"Arr": [
[23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
[23636, 5, "{\"x\":1575960300000,\"y\":3.0735}"]
]
Nehmen wir beispielsweise eine der Protokolldaten:
[23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
23637
ist das ProtokollID
, 0
ist der Index der Diagrammdatenreihe und die letzten Daten"{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"
ist die Logdaten; diese Daten sind die K-Liniendaten auf dem Diagramm.