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()
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
}
}
No hay parámetro
ElGetRobotList
El método se utiliza para obtener la lista de operaciones en vivo bajo la cuenta de la plataforma de negociación FMZ Quant correspondiente a laAPI KEY
en la solicitud.
{
"code": 0,
"data": {
"result": {
"all": 53,
"robots": [{
"date": "2017-12-25 09:29:27",
"end_time": "2017-12-28 17:44:21",
"id": 66054,
// If the value is 1, the live trading is a virtual platform live trading
"is_sandbox": 1,
"name": "C++ test strategy",
"node_guid": "705d9aaaaaaaa93b49baaaaa787581cb087",
"profit": 0,
"public": 0,
"refresh": 151345645647000,
"start_time": "2017-12-28 17:44:15",
"status": 3,
"strategy_id": 65365,
"strategy_isowner": true,
"strategy_name": "C++ Version Docker API Test Strategy(cryptocurrency futures and spot markets)",
"wd": 0
}, ...
]
},
"error": null
}
}
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
Tome elPython
Interfaz API extendida del lenguajeMétodos de verificaciónPor ejemplo:print(api('GetRobotList', 'member2'))
: imprimir la información de todas las operaciones en vivo con la etiqueta personalizadamember2
. print(api('GetRobotList', 0, 5, -1, 'member2'))
: páginas de 0 a 5 y una lista de hasta 5 robots etiquetados conmember2
.
ElCommandRobot
el método se utiliza para enviar una orden de interacción a la operació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 recibe el comando de interacción es el ID de la operación en vivo especificado por elrobotId
Parámetro, y el comando de interacción es devuelto por elGetCommand()
función llamada en la estrategia para capturarlo.
{
// The API request was successfully executed
"code": 0,
"data": {
// However, sending a command to live trading that is not running returns failure
"result": false,
"error": null
}
}
El parámetrorobotId
Se utiliza para especificar el ID de la negociación en vivo que recibe el comando interactivo.GetRobotList
método para obtener la información de la negociación en vivo en la cuenta, que contiene el ID de negociación en vivo.
El robot
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- ¿ Por qué?
el CMD
verdadero
la cuerda
StopRobot(RobotId)
se utiliza para solicitar elAPI KEY
El ID de negociación en vivo para dejar de funcionar es el ID de negociación en vivo especificado por la plataforma de negociación FMZ Quant.robotId
parameter.
{
"code": 0,
"data": {
// 2 means stopping
"result": 2,
"error": null
}
}
El parámetrorobotId
Se utiliza para especificar el ID de la negociación en vivo para ser detenido.GetRobotList
método para obtener la información de la negociación en vivo en la cuenta, que contiene el ID de negociación en vivo.
El robot
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": {
// 1 means running
"result": 1,
"error": null
}
}
ElrobotId
El parámetro se utiliza para especificar el ID de la negociación en vivo a reiniciar.GetRobotList
método para obtener la información de la negociación en vivo en la cuenta, que contiene el ID de negociación en vivo.
El robot
verdadero
Número
Los parámetros de configuración de operaciones en vivo, los parámetrossettings
el formato es el siguiente:
{
"name": "hedge test",
// Strategy parameter
"args": [["Interval", 500]],
// Strategy ID, which can be obtained with "GetStrategyList" method
"strategy": 25189,
// K-line period parameter, "60" means 60 seconds
"period": 60,
// Specify on which docker to run; if the attribute is not written, it will be automatically assigned to run
"node" : 51924,
// Custom field
"appid": "member2",
"exchanges": [
// ZB; "pid" can be obtained by "GetPlatformList" method
{"pid": 15445, "pair": "ETH_BTC"},
// OKX; 2 exchange objects are configured
{"pid": 13802, "pair": "BCH_BTC"},
// In addition to the platforms ("pid" identification) configured by the FMZ dashboard, you can also set exchange configuration information that has not been configured to operate live trading
{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}},
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}}
]
}
Cuando utiliza la información confidencial, como la plataformaAPI KEY
, incluidos"meta":{"AccessKey":"xxx","SecretKey":"yyy"}
en la configuración deeid
, usted debe saber que FMZ no almacena los datos. Los datos serán enviados directamente al programa docker, por lo que esta información debe configurarse cada vez que se crea o reinicia el comercio en vivo.
Para reiniciar el comercio en vivo que utiliza el complemento para apoyar el intercambio, al configurar elsettings
Parámetro, debe hacer las siguientes configuraciones para elexchanges
el atributo:
{"eid": "Exchange", "label" : "testXXX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "1234", "Front" : "http://127.0.0.1:6666/XXX"}}
label
atributo es establecer una etiqueta para el objeto de intercambio accesado por el actualProtocolo general, que puede obtenerse mediante elexchange.GetLabel()
El objetivo de la estrategia es:
ajustes falsos Objeto JSON
Si el comercio en vivo se crea mediante la API extendida, 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": {
// Next payment time, namely the effective cut-off time after the current payment
"charge_time": 1561992608,
// Elapsed Time
"charged": 3600,
// Amount consumed (0.125 CNY = 12500000 / 1e8)
"consumed": 12500000,
"date": "2019-07-01 21:50:08",
"debug": "{\"Nano\":1561989722431145193,\"Stderr\":\"\",\"Stdout\":\"\"}",
// Stop time
"end_time": "2019-07-01 22:02:02",
// The docker ID assigned when live trading is running; if it is automatic, the value is -1
"fixed_id": 85960,
"id": 150288,
"is_deleted": 0,
// Whether it has the permission to manage live trading
"is_manager": true,
// Whether it is a simulation trading
"is_sandbox": 0,
// Live trading name
"name": "Spread monitoring2",
// Docker ID
"node_id": 85960,
// The exchange objects configured by live trading
"pexchanges": {
// 14703 is pid, and "GateIO" is exchange name
"14703": "GateIO",
"15445": "ZB",
"42960": "OKEX",
"44314": "Huobi"
},
// label information of the exchange object configured by live trading
"plabels": {
"14703": "Gate.IO (old name: BTER)",
"15445": "ZB",
"42960": "OKEX spot V3 test",
"44314": "Huobi - newest test"
},
"profit": 0,
// Whether to show public
"public": 0,
// Recent active time
"refresh": 1561989724000,
"robot_args": "[[\"TickInterval\",500],[\"StrOnePair\",\"spot:Huobi:spot;spot:OKEX:spot;false;60;5;0;0\"],[\"StrTwoPair\",\"spot:ZB:spot;spot:GateIO:spot;false;60;5;0;0\"],[\"StrThreePair\",\"null\"],[\"StrFourPair\",\"null\"],[\"StrSixPair\",\"null\"],[\"StrFivePair\",\"null\"],[\"ResetChart\",false]]",
"start_time": "2019-07-01 22:00:54",
// Live trading status
"status": 4,
"strategy_args": "[[\"TickInterval\",\"Detection frequency (ms)\",\"This is millisecond. Don't set it too small.\",500],[\"StrOnePair\",\"Combination1\",\"Spread Combination\",\"spot:Huobi:spot;spot:OKCoin:spot;false;60;5;0;0\"],[\"StrTwoPair\",\"Combination2\",\"Spread Combination\",\"future:Futures_OKCoin:this_week;spot:OKCoin:spot;false;60;5;0;0\"],[\"StrThreePair\",\"Combination3\",\"Spread Combination\",\"future:Futures_OKCoin:this_week;future:Futures_OKCoin:quarter;true;60;5;0;0\"],[\"StrFourPair\",\"Combination4\",\"Spread Combination\",\"null\"],[\"StrSixPair\",\"Combination6\",\"Combination\",\"null\"],[\"StrFivePair\",\"Combination5\",\"Combination\",\"null\"],[\"ResetChart\",\"whether to clear the previous chart\",\"clear the previous chart\",false]]",
// Configured exchange objects, set trading pair information
"strategy_exchange_pairs": "[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]",
// Strategy ID
"strategy_id": 21337,
// Strategy's last modification time
"strategy_last_modified": "2018-11-29 12:07:58",
// Strategy name
"strategy_name": "Digital currency spread monitoring and analysis",
"summary": "Polling time consuming: 500ms\n`[{\"type\":\"table\",\"title\":\"pair basic data\",\"cols\":[\"ID\",\"NameA - NameB\",\"SymbolA - SymbolB\",\"UpdCycle\",\"isUSD\",\"Collect\"],\"rows\":[[\"0 \",\"Huobi/OKEX\",\"spot/spot\",60,false,\"612ms\"],[\"1 \",\"ZB/GateIO\",\"spot/spot\",60,false,\"501ms\"]]},{\"type\":\"table\",\"title\":\"pair ticker data\",\"cols\":[\"ID\",\"NameA - NameB\",\"SymbolA - SymbolB\",\"A_Bids1\",\"B_Asks1\",\"Plus\",\"A_Asks1\",\"B_Bids1\",\"Minus\"],\"rows\":[[\"0 \",\"Huobi/OKEX\",\"spot/spot\",10518.02,10525.1,-7.08,10520,10523,-3],[\"1 \",\"ZB/GateIO\",\"spot/spot\",285.68,286,-0.32,285.8,285.85,-0.05]]},{\"type\":\"table\",\"title\":\"pair statistical data\",\"cols\":[\"ID\",\"NameA - NameB\",\"SymbolA - SymbolB\",\"Maximum spread\",\"Minimum spread\",\"Mean positive premium\",\"Mean negative premium\"],\"rows\":[[\"0 \",\"Huobi/OKEX\",\"spot/spot\",0,-3,0,-1.47],[\"1 \",\"ZB/GateIO\",\"spot/spot\",0.03,-0.05,0.03,-0.05]]}]`\n",
// Whether to enable offline alert
"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.
El robot
verdadero
Número
Elsummary
atributo en los datos devueltos (información en la barra de estado del bot; almacenado en caché durante 10 segundos; no los datos más recientes) actualmente tiene un límite de cantidad de datos (datos almacenados en caché).
El límite de cantidad de datos es de 200KB, y el exceso de datos se truncará.GetRobotLogs
Interfaz para obtener (cuandoGetRobotLogs
Obtiene la información de la barra de estado, el camposummary
es el último dato).
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 período predeterminado de línea K establecido por la negociación 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 par de operaciones establecido para el objeto de intercambio configurado mediante operaciones en vivo (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": {
"username": "littlelittledream",
"level": 0,
"consumed": 3235500000,
"invitation_code": "1545967",
"points": 25,
// The value here, due to precision control, is expressed in integer. To convert it to actual value, you need to divide it by 1e8 (i.e. 10 to the 8th power), and the actual result here is: 65.421
"balance": 6542100000
},
"error": None
}
}
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.
{
"code": 0,
"data": {
"result": {
"exchanges": [{
"website": "https://www.huobi.pro/",
"name": "Huobi",
"priority": 1,
"meta": "[{"desc": "Access Key", "required": true, "type": "string", "name": "AccessKey", "label": "Access Key"}, {"encrypt": true, "name": "SecretKey", "required": true, "label": "Secret Key", "type": "password", "desc": "Secret Key"}]",
"eid": "Huobi",
"logo": "huobi.png",
"id": 1
}, {
"website": "https://www.kex.com/",
"name": "KEX",
"priority": -99,
"meta": "[{"desc": "Access Key", "required": true, "type": "string", "name": "AccessKey", "label": "Access Key"}, {"encrypt": true, "name": "SecretKey", "required": true, "label": "Secret Key", "type": "password", "desc": "Secret Key"}, {"encrypt": true, "required": true, "type": "password", "name": "Password", "label": "Trading Password"}]",
"eid": "KEX",
"logo": "",
"id": 43
},
...
]
},
"error": null
}
}
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.
// Return value after successful deletion
{
"code": 0,
"data": {
"result": 0,
"error": null
}
}
El parámetrorobotId
Se utiliza para especificar el ID de la negociación en vivo que se eliminará.GetRobotList
método para obtener la información de la negociación en vivo en la cuenta, que contiene el ID de negociación en vivo.
El robot
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 la información estratégica correspondiente a laAPI KEY
en la solicitud de la cuenta de la plataforma de negociación cuántica FMZ.
{
"code": 0,
"data": {
"result": {
"strategies": [{
"category": 0,
"username": "yifidslei",
"is_owner": true,
"name": "fmz simulation trading test strategy",
"language": 0,
"hasToken": false,
"args": "[]",
"is_buy": false,
"public": 0,
"last_modified": "2018-01-18 12:36:03",
"date": "2018-01-17 09:19:32",
"forked": 0,
"id": 63372
}, {
"category": 20,
"username": "bifndslez",
"is_owner": true,
"name": "Plot library",
"language": 0,
"hasToken": false,
"args": "[]",
"is_buy": false,
"public": 0,
"last_modified": "2017-05-08 09:44:18",
"date": "2017-04-19 10:38:14",
"forked": 0,
"id": 39677
},
...
],
"all": 20
},
"error": null
}
}
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.
// Create live trading successfully
{
"code": 0,
"data": {
"result": 74260,
"error": null
}
}
los parámetros de configuración de operaciones en vivo,settings
el formato de los parámetros es el siguiente:
{
"name": "hedge test",
/*
Strategy parameters; the order does not have to be in correspondence with the parameter order, but the name must be the same as the parameter name
Note: the second element in the parameter array ["MAType", 0, 75882] is an array including three elements,
in which the first one "MAType" is the parameter on the pattern referred by the live trading-binding strategy
The second one "0" is the specific value set by the parameter "MAType".
The third element, 75882, is the ID of the template to which the MAType parameter belongs, and is used to identify which template the parameter belongs to
*/
"args": [["Interval", 500], ["MAType", 0, 75882]],
// Strategy ID, which can be obtained by "GetStrategyList" method
"strategy": 25189,
// K-line period parameter; "60" indicates 60 seconds
"period": 60,
// It can be specified to run on which docker; no writing of the attribute will lead to automatic assignment
"node" : 52924,
// Custom field
"appid": "member2",
// Specify live trading group
"group": 1122,
"exchanges": [
// ZB; "pid" can be obtained by "GetPlatformList" method
{"pid": 15445, "pair": "ETH_BTC"},
// OKEX
{"pid": 13802, "pair": "BCH_BTC"},
// In addition to the exchanges configured by the FMZ dashboard (pid identification), you can also set exchange configuration information that has not been configured to operate the live trading
{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}},
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "xxx", "SecretKey": "yyy"}}
]
}
ajustes verdadero Objeto JSON
Cuando utiliza la información confidencial, como la plataformaAPI KEY
, incluidos"meta":{"AccessKey":"xxx","SecretKey":"yyy"}
en la configuración deeid
, usted debe saber FMZ no almacena los datos.
Los datos se enviarán directamente al programa docker, por lo que esta información debe configurarse cada vez que se cree o reinicie el comercio en vivo.
Si desea crear el comercio en vivo que utiliza el complemento para apoyar la plataforma, al configurar elsettings
Parámetro, debe hacer las siguientes configuraciones para elexchanges
el atributo:
{"eid": "Exchange", "label" : "testXXX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "1234", "Front" : "http://127.0.0.1:6666/XXX"}}
label
El atributo es establecer una etiqueta para el objeto de intercambio al que accede el protocolo general actual, que puede obtenerse 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 cuantitativa FMZ.
{
"code": 0,
"data": {
"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:
# K-line period parameter, "60" indicates 60 seconds
"period": 60,
"source": "function main() {Log("Hello FMZ")}",
# The docker ID can specify which docker to run the bot on; if the value is -1, it means automatic assignment
"node" : 54913,
"exchanges": [
{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123abc", "SecretKey": "123abc"}},
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "123abc", "SecretKey": "123abc"}}
]
} ```
settings
true
JSON object
```{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123abc", "SecretKey": "123abc"}}```
```{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "123abc", "SecretKey": "123abc"}}```
For the ```exchanges``` attribute in the ```settings```, the attribute only needs to be set to 1, when calling the ```PluginRun``` interface (for only one exchange object can be supported when you use the "Debug Tool" page).
No error will be reported when you set 2 exchange objects in ```settings```, but an error will be reported when the second exchange object is accessed in the code.
### GetRobotLogs
The ```GetRobotLogs``` method is used to get the log information of the live trading under the FMZ Quant Trading Platform account corresponding to the ```API KEY``` in the request. The Id of the live trading platform to be obtained is the live trading platform Id specified by the ```robotId``` parameter.
¿ Qué pasa?
// La segunda estructura de datos en los registros es los registros de registro en la tabla de registro de estrategia en la base de datos de operaciones en vivo
// La tercera estructura de datos en los registros es los registros de registro en la tabla de registro de estrategia en la base de datos de operaciones en vivo
The ```robotId``` parameter is used to specify the Id of the live trading for which the log information is to be obtained. You can use the ```GetRobotList``` method to obtain information about the live trading under the account, which contains the live trading Id.
robotId
true
number
The ```logMinId``` parameter is used to specify the minimum Id of the Log.
logMinId
true
number
The ```logMaxId``` parameter is used to specify the maximum Id of the Log.
logMaxId
true
number
The ```logOffset``` parameter is used to set the offset, after determining the range by ```logMinId``` and ```logMaxId```, offset based on the ```logOffset``` (how many records are skipped). Start as the starting position for fetching data.
logOffset
true
number
The parameter ```logLimit``` is used to set the number of data records to be selected after the starting position is determined.
logLimit
true
number
The ```profitMinId``` parameter is used to set the minimum Id of the profit log.
profitMinId
true
number
The parameter ```profitMaxId``` is used to set the maximum Id of the profit log.
profitMaxId
true
number
The parameter ```profitOffset``` is used to set the offset (how many records are skipped) as the starting position.
profitOffset
true
number
The parameter ```profitLimit``` is used to set the number of data records to be selected after the starting position is determined.
profitLimit
true
number
The parameter ```chartMinId``` is used to set the minimum Id of the chart data record.
chartMinId
true
number
The parameter ```chartMaxId``` is used to set the maximum Id of the chart data record.
chartMaxId
true
number
The parameter ```chartOffset``` is used to set the offset.
chartOffset
true
number
The parameter ```chartLimit``` is used to set the number of records to obtain.
chartLimit
true
number
The parameter ```chartUpdateBaseId``` is used to set the base Id after the query is updated.
chartUpdateBaseId
true
number
The parameter ```chartUpdateDate``` is used to set the data record update timestamp, and it will filter out records greater than this timestamp.
chartUpdateDate
true
number
The parameter ```summaryLimit``` is used to set the number of bytes of status bar data to be queried. The parameter is of integer type for querying the status bar data of the live trading.
Setting to "0" means there is no need to query the status bar information, and setting to non-zero number indicates the number of bytes of the status bar information to be queried (the interface does not limit the data quantity, so you can specify a larger ```summaryLimit``` parameter to get all status bar information). The status bar data is stored in the returned data ```summary```.
summaryLimit
true
number
- The strategy log table in the database
The ```Arr``` attribute value in the first element of the ```Logs``` attribute value (array structure) in the return data (log data) is described as follows:
¿Por qué no lo haces?
[3977, 3,
| id | logType | eid | orderId | price | amount | extra | date | contractType | direction |
| - | - | - | - | - | - | - | - | - | - |
| 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 | "" | "" |
```extra``` is the attached message of the printed log.
The specific log types represented by the ```logType``` values are described as follows:
| logType: | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| - | - | - | - | - | - | - | - |
| Meaning of logType: | BUY | SALE | RETRACT | ERROR | PROFIT | MESSAGE | RESTART |
- Log table of the profit chart in the database
The data in the chart's log table is consistent with the profit log in the strategy log table.
¿Por qué no lo haces? [202, 2515.44, 1575896700315], [201, 1415.44, 1575896341568] ¿Qué es lo que quiere decir? ¿ Por qué?
Take one of the log data as an example:
[202, 2515.44, 1575896700315]
```202``` is log ```ID```; ```2515.44``` is profit value; ```1575896700315``` is timestamp.
- Chart log table in the database
¿Por qué no lo haces?
[23637, 0,
Take one of the log data as an example:
[23637, 0,
```23637``` is the log ```ID```, ```0``` is the index of the chart data series, and the last data ```"{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"``` is the log data; This data is the K-line data on the chart.
Métodos de verificación
Terminal de negociación