FMZ Quant ha abierto la interfaz API extendida de la plataforma para soportar llamadas programáticas a varias funciones de la plataforma de negociación FMZ Quant.
La plataforma de negociación cuántica de FMZ admite la gestión de permisos de los
la interfaz API extendida, y el permiso deAPI KEY
En la opción de interfaz API KEY
.
Puede editar el cuadro de entrada API KEY
, y entrar en el*
símbolo para permitir que todosInterfaz API extendidapermisos. Si desea especificar permisos específicos de interfaz, debe introducir el nombre de la función API extendida correspondiente. Use comas para separar, por ejemplo:GetRobotDetail,DeleteRobot
Esto da esto.API KEY
el permiso para llamar a laObtenga información detallada sobre el comercio en vivoInterfaz y elEliminar las operaciones en vivo interface.
ElAPI KEY
la página de administración también le permitemodificado,
Deshabilitar, borrarel creadoAPI KEY
.
Un ejemplo de la estructura devuelta por la interfaz API extendida es la siguiente:
"code":0,
"data":{
// ...
}
}
Elcode
campo is: El código de estado del resultado de la llamada devuelto cuando se llama la interfaz API extendida.
Descripción | Código |
---|---|
Ejecución exitosa | 0 |
La clave de API equivocada | 1 |
Firma equivocada. | 2 |
Error de no uso | 3 |
Método incorrecto | 4 |
Parámetro incorrecto | 5 |
Error interno desconocido | 6 |
ElGetRobotList
la interfaz, elGetRobotDetail
interfaz,
y elGetRobotLogs
datos de retorno de interfaz en elstatus
campo para: el código del estado de negociación en vivo.
Estatus de las personas | Código |
---|---|
En inactividad | 0 |
En funcionamiento | 1 |
Paración | 2 |
Se ha firmado. | 3 |
Se detiene. | 4 |
La estrategia tiene errores. | 5 |
Estatus de las personas | Código |
---|---|
La estrategia ha expirado, y por favor póngase en contacto con el escritor para comprarlo de nuevo | -1 |
No se ha encontrado ningún docker | -2 |
Error de compilación de la estrategia | -3 |
El comercio en vivo ya está funcionando | -4 |
Saldo insuficiente | -5 |
El número de estrategias concurrentes excede el límite | -6 |
Hay dos métodos de verificación cuando se llama a la interfaz API extendida, apoyandotoken
la verificación y la verificación directa.
Utilizaciónmd5
método de cifrado para verificar, ejemplo dePython
, Golang
Llamado por idioma:
#!/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)
}
Apoya la verificación sintoken
(pasado)secret_key
directos), puede generar una URL a la que se puede acceder directamente.
Por ejemplo, la URL que da directamente instrucciones interactivas para
el comercio en vivo, que puede utilizarse paraTradingView
o elWebHook
En otros casos, la solicitud de devolución deCommandRobot(RobotId, Cmd)
función, el parámetrononce
no requiere verificación, y la frecuencia de acceso y
Los tiempos de visita de la interfaz no están limitados.
Por ejemplo, elAccessKey
de la extensión creadaAPI KEY
es:xxx
y elSecretKey
es:yyy
Ver el siguiente enlace para enviar un mensaje de comando interactivo a
la negociación en vivo con el ID de negociación en vivo186515
, el mensaje
el contenido es una cadena:"ok12345"
.
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,"ok12345"]
En la circunstancia de que la verificación directa es apoyada,
SóloCommandRobot
Interfaz es compatible para obtener elBody
Por ejemplo, las configuraciones en elWebHook URL
de lasTradingView
:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,+""]
Preste atención a la configuración de acuerdo con el siguiente formato:args=[130350,+""]
, en el que130350
es el comercio en vivoID
de la Plataforma de Comercio Cuántico FMZ.
Establecer en el cuadro de mensaje deTrading View
(el organismo solicitado)
datos que deben enviarse):
El formato JSON:
{"close": {{close}}, "name": "aaa"}
El comercio en vivo conID
de las186515
puede recibir la cadena de comandos interactiva:{"close": 39773.75, "name": "aaa"}
.
Formato de texto:
BTCUSDTPERP Crossing 39700.00 close: {{close}}
El comercio en vivo conID
de las186515
puede recibir la cadena de comandos interactiva:BTCUSDTPERP Crossing 39700.00 close: 39739.4
.
Ejemplos dePython
& Golang
Llamadas por idioma:
#!/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)
}
Utilice la API extendida en FMZ Quant para realizar la alerta
La interfaz API ampliada de la plataforma de negociación cuántica FMZ
Añadir los parámetros de la consulta (separados por?
) de la solicitud inmediatamente despuéshttps://www.fmz.com/api/v1
Los siguientes son los parámetros de solicitud expresados utilizandoPython
:
{
"version" : "1.0",
"access_key": "xxx",
"method" : "GetNodeList",
"args" : [],
"nonce" : 1516292399361,
"sign" : "085b63456c93hfb243a757366600f9c2"
}
Campos | Direcciones |
---|---|
versión | Número de versión. |
acceso_clave | AccessKey, solicítalo en la página de administración de cuentas. |
Método | El método específico de llamada. |
las | La lista de parámetros del método específico llamado. |
No es | La marca de tiempo, en milisegundos, permite un error de 1 hora desde la marca de tiempo estándar. |
el signo | Signature. |
Cada nombre de parámetro está separado por el carácter&
, y los nombres y valores de los parámetros están relacionados con el símbolo=
. La URL completa de la solicitud (tomandomethod=GetNodeList
por ejemplo):
https://www.fmz.com/api/v1?access_key=xxx&nonce=1516292399361&args=%5B%5D&sign=085b63456c93hfb243a757366600f9c2&version=1.0&method=GetNodeList
Tenga en cuenta quesecret_key
Parámetro entre los parámetros de solicitud.
Método de firma
Elsign
el parámetro del parámetro de solicitud se cifrará de la siguiente manera, de acuerdo con el formato:
version + "|" + method + "|" + args + "|" + nonce + "|" + secretKey
Después de concatenar las cadenas, useMD5
algoritmo de cifrado para cifrar la cadena y convertirla en un valor de cadena de datos hexadecimal, referido como el valor del parámetrosign
Para la parte de la firma, véase elPython
Interfaz de API de extensión de códigoMétodos de verificación :
# 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()
Error del servicio de interfaz:
{
"code":0,
"data":{
"result":null,
"error":"Params length incorrect"
}
}
ElGetNodeList
El método se utiliza para obtener la lista de los trabajadores portuarios
en la cuenta de la Plataforma de Comercio Cuántico FMZ correspondiente a laAPI KEY
en la solicitud.
{
"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
}
}
Descripción de los campos de valor devuelto (el significado literal es obvio y no se repetirá):
ecs_
yunit_
, que registra la información pertinente del servidor docker de implementación de un solo clic (nombre del operador, configuración, estado, etc.), ciclo de facturación, precio y otra información, que no se repetirá aquí.No hay parámetro
GetRobotGroupList()
devuelve la lista de agrupación de operaciones en vivo
de la cuenta de la Plataforma de Comercio Quant FMZ correspondiente a laAPI KEY
en la solicitud.
{
"code": 0,
"data": {
"result": {
"items": [{
"id": 3417,
"name": "Test"
}, {
"id": 3608,
"name": "Live trading demo"
}]
},
"error": null
}
}
items
El campo sólo registra los grupos recién creados.items
.No hay parámetro
GetPlatformList()
devuelve la lista de los intercambios que han
se ha añadido por la cuenta de la Plataforma de Comercio Cuántico FMZ correspondiente
a laAPI KEY
en la solicitud.
{
"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
Se utilizará en algunas configuraciones y parámetros.No hay parámetro
ElGetRobotList
El método se utiliza para obtener la lista de
operaciones realizadas bajo la cuenta de la plataforma de negociación FMZ Quant
correspondiente a laAPI KEY
en la solicitud.
{
"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.El ajuste de desplazamiento de la consulta de búsqueda.
de desplazamiento
falsos
Número
El ajuste de la longitud de la consulta de búsqueda.
longitud
falsos
Número
Especificar el estado de la negociación en vivo a consultar, consultar la interfaz API extendidaCódigo de negociación en vivo, pase-1
para obtener todos los intercambios en vivo.
robotEstado
falsos
Número
Especifique la etiqueta personalizada del comercio en vivo que desea consultar, y puede filtrar todas las operaciones en vivo de esta etiqueta.
etiqueta
falsos
la cuerda
Busca palabras clave.
Palabra clave
falsos
la cuerda
Tome elPython
Interfaz API extendida del lenguajeMétodos de verificaciónPor ejemplo:print(api('GetRobotList'))
Obtener toda la información de comercio en vivo.print(api('GetRobotList', 'member2'))
: imprimir la información de todas las operaciones en vivo con el miembro de la etiqueta personalizada2.print(api('GetRobotList', 0, 5, -1, 'member2'))
: páginas de 0 a 5 y una lista de hasta 5 robots etiquetados con member2.
ElCommandRobot
método se utiliza para enviar una interacción
el comando de la negociación en vivo en la plataforma de negociación de FMZ Quant
cuenta correspondiente a laAPI KEY
en la solicitud.
de la negociación en vivo que recibe el comando de interacción es la
Identificador de negociación especificado por elrobotId
Parámetro, y el
la orden de interacción es devuelta por elGetCommand()
Función
llamó a la estrategia para capturarlo.
{
"code":0,
"data":{
"result":true,
"error":null
}
}
El parámetrorobotId
Se utiliza para especificar el ID de la
el que recibe el comando interactivo.
ElGetRobotList
método para obtener la información de la vida
la operación se realiza bajo la cuenta, que contiene el ID de operación en vivo.
- ¿Qué quieres?
verdadero
Número
El parámetrocmd
es el comando interactivo enviado al bot; el comando será capturado por la funciónGetCommand()
, que activa la lógica interactiva en la estrategia.GetCommand()
La función en elManual de la API de la plataforma de negociación cuántica FMZ.
el CMD verdadero la cuerda
Estrategia de negociación en tiempo real, suponiendo que esta estrategia esté en funcionamiento, el ID de negociación en tiempo real es 123:
function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}
Si utilizamos el script de prueba de Python en este capítulo, acceder a la API extendida de la plataforma de comercio de FMZ Quant:api("CommandRobot", 123, "test command")
El comercio en vivo con ID 123 recibirá el comando interactivo:test command
, y luego imprimirlo a través de la salida de la función Log.
StopRobot(RobotId)
se utiliza para solicitar elAPI KEY
correspondiente a la negociación en vivo de la FMZ Quant Trading
La cuenta de la plataforma.
Identificador de negociación especificado por elrobotId
parameter.
{
"code":0,
"data":{
"result":2,
"error":null
}
}
El parámetrorobotId
Se utiliza para especificar el ID de la
El comercio en vivo para ser detenido.GetRobotList
El método de obtención de la información de las operaciones en vivo bajo el
cuenta, que contiene el ID de negociación en vivo.
- ¿Qué quieres? verdadero Número
ElRestartRobot
el método se utiliza para reiniciar la negociación en vivo bajo elAPI KEY
El ID de la negociación en vivo reiniciada es el ID de negociación en vivo especificado por elrobotId
parameter.
{
"code":0,
"data":{
"result":1,
"error":null
}
}
ElrobotId
El parámetro se utiliza para especificar el ID de la
El comercio en vivo puede ser reiniciado.GetRobotList
El método de obtención de la información de las operaciones en vivo bajo el
cuenta, que contiene el ID de negociación en vivo.
- ¿Qué quieres?
verdadero
Número
Los parámetros de configuración de operaciones en vivo, los parámetrossettings
el formato es el siguiente:
{
"appid":"test",
"args":[],
"exchanges":[
{"pair":"SOL_USDT","pid":123},
{"pair":"ETH_USDT","pid":456}
],
"name":"test",
"node":123,
"period":60,
"strategy":123
}
Interval
, y usted quiere establecerInterval
a 500 al reiniciar la estrategia, entoncesargs
contiene:["Interval", 500]
, es decir:"args": [["Interval", 500]]
.pid
Configuración:{"pair":"SOL_USDT","pid":123}
; pid
Se puede consultar a través de laGetPlatformList
interfaz, y elid
campo en los datos devueltos es el intercambiopid
.eid
Configuración:{"eid":"Huobi","label":"test Huobi","meta":{"AccessKey":"123","SecretKey":"123"},"pair":"BCH_BTC"}
Información sensible como:API KEY
Si se utiliza este tipo de configuración, la información debe configurarse cada vez que se crea o reinicia una negociación en vivo.{"eid":"Exchange","label":"test exchange","pair":"BTC_USDT","meta":{"AccessKey":"123","SecretKey":"123","Front":"http://127.0.0.1:6666/test"}}
.
label
atributo es establecer una etiqueta para el objeto de intercambio accesado por el actualProtocolo aduanero, que puede obtenerse mediante elexchange.GetLabel()
El objetivo de la estrategia es:GetStrategyList
method.ajustes falsos Objeto JSON
Si la API extendida crea una operación en vivo, la API extendidaRestartRobot (RobotId, Settings)
Se debe utilizar para reiniciar, y elsettings
El comercio en vivo creado en la página de la plataforma se puede reiniciar a través de la API extendida o haciendo clic en el botón de la página.settings
Parámetro. Si sólo pasa elRobotId
Parámetro, iniciar la negociación en vivo de acuerdo con la configuración actual de negociación en vivo.
ElGetRobotDetail
El método se utiliza para obtener los detalles de la negociación en vivo bajo la cuenta de la plataforma de negociación FMZ Quant correspondiente a laAPI KEY
El ID de la operación en vivo que se desea recuperar es el ID de la operación en vivo especificado por elrobotId
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
}
}
ElrobotId
El parámetro se utiliza para especificar el ID de la negociación en vivo para la que se deben obtener los detalles.GetRobotList
método para obtener información sobre la negociación en vivo en la cuenta, que contiene el ID de negociación en vivo.
- ¿Qué quieres? verdadero Número
La descripción del atributo destrategy_exchange_pairs
, por ejemplo, los siguientes datos:
"[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]"
Los primeros datos60
representa el conjunto predeterminado de períodos de la línea K
por el comercio en vivo es de 1 minuto, es decir, 60 segundos.
[44314,42960,15445,14703]
es el objeto de intercambiopid
configurado para operaciones en vivo (según la orden de adición).
[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]
es el
conjunto de pares de operaciones para el objeto de intercambio configurado por live
comercio (en orden de suma y en correspondencia uno a uno)
conpid
).
ElGetAccount
El método se utiliza para obtener la información de la cuenta correspondiente a laAPI KEY
en la solicitud de la cuenta de la plataforma de negociación cuántica 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
}
}
ElGetExchangeList
El método se utiliza para obtener la lista de intercambios y la información de configuración requerida soportada por la plataforma de negociación de FMZ Quant.
Cuando elisSummary
el parámetro esfalse
, los datos devueltos son:
{
"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
}
}
Cuando elisSummary
el parámetro estrue
, los datos devueltos son:
{
"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
}
}
ElisSummary
El parámetro se utiliza para especificar si los datos devueltos son información resumida.
esResumen verdadero - ¿ Qué?
ElDeleteNode(Nid)
método se utiliza para eliminar el nodo de docker correspondiente a laAPI KEY
en la solicitud de la cuenta de la plataforma de negociación FMZ Quant.nid
parameter.
{
"code":0,
"data":{
"result":true,
"error":null
}
}
Elnid
El parámetro se utiliza para especificar el ID del docker a eliminar.GetNodeList
método para obtener información sobre los doctores de la cuenta.
Ni siquiera verdadero Número
ElDeleteRobot(RobotId, DeleteLogs)
El método se utiliza para eliminar el comercio en vivo correspondiente a laAPI KEY
en la solicitud de la cuenta de la plataforma de negociación FMZ Quant.robotId
parameter.
{
"code":0,
"data":{
"result":0,
"error":null
}
}
El parámetrorobotId
Se utiliza para especificar el ID de la
Las transacciones en vivo se borrarán.GetRobotList
El método de obtención de la información de las operaciones en vivo bajo el
cuenta, que contiene el ID de negociación en vivo.
- ¿Qué quieres?
verdadero
Número
EldeleteLogs
El parámetro se utiliza para establecer si se elimina el registro de operaciones en vivo, si se pasa un valor verdadero (por ejemplo:true
), se suprime el registro de operaciones en vivo.
Descargar registros verdadero - ¿ Qué?
ElGetStrategyList
el método se utiliza para obtener información sobre la estrategia de la plataforma.
{
"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
}
}
Eloffset
El parámetro se utiliza para establecer el desplazamiento al hacer la consulta.
de desplazamiento
verdadero
Número
Ellength
Parámetro se utiliza para establecer la longitud de la consulta.
longitud
verdadero
Número
ElstrategyType
El parámetro se utiliza para establecer el tipo de estrategia a consultar.
strategyType
ajuste de parámetros0
: todas las estrategias.strategyType
ajuste de parámetros1
: La estrategia es pública.strategyType
ajuste de parámetros2
: la estrategia debe revisarse.Estrategia Tipo
verdadero
Número
Elcategory
El parámetro se utiliza para establecer la categoría de estrategia a consultar.
category
ajuste de parámetros-1
: todas las estrategias.category
ajuste de parámetros0
Estrategia personalizada.Categoría
verdadero
Número
ElneedArgs
Parámetro se utiliza para establecer si la estrategia a consultar tiene parámetros.
needArgs
ajuste de parámetros0
: todas las estrategias.NecesidadArgs
verdadero
Número
Ellanguage
Parámetro se utiliza para establecer el lenguaje de programación de la estrategia a consultar.
language
ajustes de parámetros0
: lenguaje JavaScript.language
ajustes de parámetros1
El lenguaje Python.language
ajustes de parámetros2
: lenguaje C ++.language
ajustes de parámetros3
Estrategia de visualización.language
ajustes de parámetros4
Mi lenguaje.language
ajustes de parámetros5
: lenguaje PINE.lenguaje
verdadero
Número
Elkw
El parámetro se utiliza para establecer la palabra clave de la estrategia a consultar.
el peso verdadero la cuerda
ElNewRobot
el método se utiliza para crear una negociación en vivo bajo elAPI KEY
correspondiente a la cuenta de la plataforma de negociación cuántica FMZ en la solicitud.
{
"code":0,
"data":{
"result":591988,
"error":null
}
}
los parámetros de configuración de operaciones en vivo,settings
el formato de los parámetros es el siguiente:
{
"appid":"test",
"args":[],
"exchanges":[
{"pair":"SOL_USDT","pid":123}
],
"group":123,
"name":"test",
"node":123,
"period":60,
"strategy":123
}
RestartRobot
interface.ajustes verdadero Objeto JSON
En la configuración deeid
En elsettings
Parámetro"meta":{"AccessKey": "123", "SecretKey": "123"}
Esta información sensible no es almacenada por la plataforma de negociación FMZ Quant. Estos datos se envían directamente al programa docker, por lo que esta información debe configurarse cada vez que se crea o reinicia una negociación en vivo.
Si creamos un objeto de intercambio de comercio en vivo utilizando el protocolo personalizado, al configurar elsettings
Parámetro, podemos utilizar las siguientes configuraciones para elexchanges
el atributo:
{
"eid": "Exchange",
"label": "test",
"pair": "ETH_BTC",
"meta": {
"AccessKey": "123",
"SecretKey": "123",
"Front": "http://127.0.0.1:6666/test"
}
}
label
atributo es establecer una etiqueta para el objeto de intercambio al que accede el protocolo personalizado actual, que se puede obtener mediante elexchange.GetLabel()
El objetivo de la estrategia es:
ElPluginRun
El método se utiliza para llamar elherramienta de depuraciónFunción de la plataforma de negociación de FMZ Quant; sólo se admite el lenguaje JavaScript.
{
"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
}
}
Los parámetros de configuración en la herramienta de depuración,settings
Configuración, incluye el código de ensayo en elsource
el atributo.settings
el formato del parámetro es el siguiente:
{
"exchanges":[{"pair":"SOL_USDT","pid":123}],
"node":123,
"period":60,
"source":"function main() {Log(\"Hello FMZ\")}"
}
RestartRobot
interface.ajustes verdadero Objeto JSON
{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}}
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}}
Para elexchanges
atributo ensettings
, sólo uno necesita ser configurado al llamar a laPluginRun
método (sólo se admite un objeto de intercambio cuando se utiliza en la página de la herramienta de depuración). No se reportará ningún error cuando se establezcan 2 objetos de intercambio ensettings
, pero se informará de un error cuando se acceda al segundo objeto de intercambio en el código.
ElGetRobotLogs
El método se utiliza para obtener la información del registro de las operaciones en vivo bajo la cuenta de la plataforma de negociación FMZ Quant correspondiente a laAPI KEY
El ID de la plataforma de negociación en vivo a obtener es el ID de la plataforma de negociación en vivo especificado por elrobotId
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
}
}
ElrobotId
El parámetro se utiliza para especificar el ID de la
las operaciones en vivo para las que se deba obtener la información del registro.
Puedes usar elGetRobotList
método para obtener información
sobre la negociación en vivo bajo la cuenta, que contiene el
Identificación de operaciones en vivo.
- ¿Qué quieres?
verdadero
Número
EllogMinId
el parámetro se utiliza para especificar el ID mínimo del registro.
LogMinId
verdadero
Número
EllogMaxId
el parámetro se utiliza para especificar el Id máximo del Log.
LogMaxId
verdadero
Número
EllogOffset
el parámetro se utiliza para establecer el desplazamiento, después de determinar el rango porlogMinId
ylogMaxId
, compensado en función de lalogOffset
(cuántos registros se saltan). Comience como la posición de partida para recuperar datos.
LogOffset (descenso de registro)
verdadero
Número
El parámetrologLimit
se utiliza para establecer el número de registros de datos que se seleccionarán una vez determinada la posición de partida.
LogLimit (Límite de registro)
verdadero
Número
ElprofitMinId
El parámetro se utiliza para establecer el ID mínimo del registro de beneficios.
Profitos
verdadero
Número
El parámetroprofitMaxId
Se utiliza para establecer el ID máximo del registro de beneficios.
gananciaMaxId
verdadero
Número
El parámetroprofitOffset
se utiliza para establecer el desplazamiento (cuántos registros se saltan) como posición de partida.
ProfitOffset
verdadero
Número
El parámetroprofitLimit
se utiliza para establecer el número de registros de datos que se seleccionarán una vez determinada la posición de partida.
ProfitLimit
verdadero
Número
El parámetrochartMinId
se utiliza para establecer el ID mínimo del registro de datos del gráfico.
Cuadro
verdadero
Número
El parámetrochartMaxId
se utiliza para establecer el ID máximo del registro de datos del gráfico.
gráfico MaxId
verdadero
Número
El parámetrochartOffset
se utiliza para establecer el desplazamiento.
gráficoOffset
verdadero
Número
El parámetrochartLimit
se utiliza para establecer el número de
los registros a obtener.
el gráfico límite
verdadero
Número
El parámetrochartUpdateBaseId
se utiliza para establecer el ID de base
después de actualizar la consulta.
Diagrama actualizaciónBaseId
verdadero
Número
El parámetrochartUpdateDate
se utiliza para establecer los datos
registro de actualización de la marca de tiempo, y se filtrará los registros más grandes
que esta marca de tiempo.
Diagrama actualización fecha
verdadero
Número
El parámetrosummaryLimit
se utiliza para establecer el número de
El parámetro es de
Tipo de entero para consultar los datos de la barra de estado de la
el comercio.
Establecer summaryLimit
Parámetro para obtener toda la barra de estado
Los datos de la barra de estado se almacenan en los datos devueltossummary
.
Resumen Limitación verdadero Número
La tabla de registro de estrategias en la base de datos
ElArr
valor de atributo en el primer elemento delLogs
el valor del atributo (estructura de matriz) en los datos de retorno (datos de registro) se describe de la siguiente manera:
"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, "", ""]
],
el número de | Tipo de registro | el día | ordenado | precio | cantidad | extra | fecha | ContratoTipo | Dirección |
---|---|---|---|---|---|---|---|---|---|
3977 | 3 | "" | 0 | 0 | 1526954372591 | "" | "" | ||
3976 | 5 | "" | "" | 0 | 0 | 1526954372410 | "" | "" |
extra
es el mensaje adjunto del registro impreso.
Los tipos específicos de troncos representados por ellogType
los valores se describen de la siguiente manera:
Tipo de registro: | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
Significado de logType: | Comprar | VENTA | Se retirará | Error de registro | Profitos | El mensaje | Reinicio |
Tabla de registro del gráfico de beneficios en la base de datos Los datos de la tabla de registro del gráfico son consistentes con el registro de ganancias de la tabla de registro de la estrategia.
"Arr": [
[202, 2515.44, 1575896700315],
[201, 1415.44, 1575896341568]
]
Tomemos como ejemplo uno de los datos de registro:
[202, 2515.44, 1575896700315]
202
es logID
; 2515.44
es el valor del beneficio;1575896700315
es el sello de tiempo.
Tabla de registro de gráficos en la base de datos
"Arr": [
[23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
[23636, 5, "{\"x\":1575960300000,\"y\":3.0735}"]
]
Tomemos como ejemplo uno de los datos de registro:
[23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
23637
es el registroID
, 0
es el índice de la serie de datos del gráfico, y los últimos datos"{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"
es los datos de registro; estos datos son los datos de la línea K en el gráfico.