FMZ Quant открыл расширенный интерфейс API платформы для поддержки программных вызовов к различным функциям FMZ Quant Trading Platform.
FMZ Quant Trading Platform поддерживает управление разрешениями
расширенный интерфейс API, и разрешениеAPI KEY
В опции API KEY
.
Вы можете редактировать поле ввода API KEY
, и ввести*
символ, чтобы позволить всемРасширенный интерфейс APIЕсли вы хотите указать определенные разрешения интерфейса, вам нужно ввести соответствующее расширенное имя функции API. Используйте запятые для разделения, например:GetRobotDetail,DeleteRobot
Это дает этоAPI KEY
разрешение на вызовПолучите подробную информацию о торговле в режиме реального времениИнтерфейс иУдалить прямую торговлю interface.
ВAPI KEY
Страница управления также позволяетизменять,
отключить, УдалитьсотворенноеAPI KEY
.
Пример структуры, возвращаемой расширенным интерфейсом API, выглядит следующим образом:
"code":0,
"data":{
// ...
}
}
Вcode
поле is: Код состояния результата вызова, возвращаемый при вызове расширенного интерфейса API.
Описание | Код |
---|---|
Успешное исполнение | 0 |
Неправильный ключ API | 1 |
Неправильная подпись. | 2 |
Ошибка Nonce | 3 |
Неправильный метод | 4 |
Неправильный параметр | 5 |
Внутренняя неизвестная ошибка | 6 |
ВGetRobotList
интерфейс,GetRobotDetail
интерфейс,
иGetRobotLogs
интерфейс возвращает данные вstatus
поле для: код состояния торговли в режиме реального времени.
Статус | Код |
---|---|
Недействительный | 0 |
В эксплуатации | 1 |
Прекращение | 2 |
Выписано. | 3 |
Прекращено. | 4 |
В стратегии есть ошибки. | 5 |
Статус | Код |
---|---|
Стратегия истекла, и пожалуйста, свяжитесь с автором, чтобы купить его снова | -1 |
Докер не найден | -2 |
Ошибка компиляции стратегии | -3 |
Торговля в режиме реального времени уже началась. | -4 |
Недостаточный баланс | -5 |
Количество одновременных стратегий превышает предел | -6 |
Существует два метода проверки при вызове расширенного интерфейса API, поддерживающихtoken
проверка и прямая проверка.
Использованиеmd5
метод шифрования для проверки, примерPython
, Golang
Языковой вызов:
#!/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)
}
Он поддерживает проверку безtoken
(пропуск)secret_key
Вы можете генерировать URL-адрес, к которому можно получить прямой доступ.
Например, URL, который напрямую дает интерактивные инструкции для
Торговля в реальном времени, которая может быть использована дляTradingView
илиWebHook
в других случаях.CommandRobot(RobotId, Cmd)
функция, параметрnonce
не нуждается в проверке, а частота и
Время посещения интерфейса не ограничено.
Например,AccessKey
созданного расширенияAPI KEY
является:xxx
иSecretKey
является:yyy
. Посмотрите следующую ссылку для отправки интерактивного командного сообщения на
торговать в режиме реального времени с идентификатором торговли в режиме реального времени186515
, сообщение
content - это строка:"ok12345"
.
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,"ok12345"]
При условии, что прямая проверка поддерживается,
толькоCommandRobot
интерфейс поддерживается для полученияBody
Например, настройки вWebHook URL
изTradingView
:
https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,+""]
Обратите внимание на настройку в соответствии со следующим форматом:args=[130350,+""]
, в котором130350
- это прямая торговля.ID
Платформы FMZ Quant Trading.
Установите в поле сообщенияTrading View
(запрошенный
Формат JSON:
{"close": {{close}}, "name": "aaa"}
Торговля в прямом эфире сID
из186515
может принимать интерактивную строку команд:{"close": 39773.75, "name": "aaa"}
.
Формат текста:
BTCUSDTPERP Crossing 39700.00 close: {{close}}
Торговля в прямом эфире сID
из186515
может принимать интерактивную строку команд:BTCUSDTPERP Crossing 39700.00 close: 39739.4
.
ПримерыPython
& Golang
языковые вызовы:
#!/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)
}
Расширенный интерфейс API платформы FMZ Quant Trading
Добавить параметры запроса (отделены?
) запроса непосредственно послеhttps://www.fmz.com/api/v1
Ниже приведены параметры запроса, выраженные с использованиемPython
:
{
"version" : "1.0",
"access_key": "xxx",
"method" : "GetNodeList",
"args" : [],
"nonce" : 1516292399361,
"sign" : "085b63456c93hfb243a757366600f9c2"
}
Поля | Руководство |
---|---|
версия | Номер версии. |
access_key (ключ доступа) | AccessKey, подать заявку на странице управления аккаунтом. |
метод | Конкретный метод вызова. |
арги | Список параметров конкретного вызванного метода. |
несуществующий | Временная метка, в миллисекундах, позволяет ошибку в 1 час от стандартной метки времени. |
знак | Signature. |
Каждое имя параметра разделено символом&
, а названия и значения параметров связаны с символом=
. Полный URL запроса (принимаяmethod=GetNodeList
в качестве примера):
https://www.fmz.com/api/v1?access_key=xxx&nonce=1516292399361&args=%5B%5D&sign=085b63456c93hfb243a757366600f9c2&version=1.0&method=GetNodeList
Обратите внимание, что нетsecret_key
параметр среди параметров запроса.
Метод подписи
Вsign
параметр в параметре запроса шифруется следующим образом в соответствии с форматом:
version + "|" + method + "|" + args + "|" + nonce + "|" + secretKey
После соединения струн используйтеMD5
алгоритм шифрования для шифрования строки и преобразования ее в шестнадцатизначное значение строки данных, обозначаемое значением параметраsign
Для части подписи см.Python
интерфейс API для расширения кодаСпособы проверки :
# 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()
Ошибка обслуживания интерфейса:
{
"code":0,
"data":{
"result":null,
"error":"Params length incorrect"
}
}
ВGetNodeList
Метод используется для получения списка докеров
по счету FMZ Quant Trading Platform, соответствующемуAPI KEY
в запросе.
{
"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
}
}
Описание полей возвращенных значений (буквальное значение очевидно и не будет повторяться):
ecs_
иunit_
, который записывает соответствующую информацию о сервере докера развертывания с одним щелчком мыши (имя оператора, конфигурация, статус и т. д.), цикл выставления счетов, цены и другую информацию, которая здесь не будет повторяться.Нет параметра
GetRobotGroupList()
возвращает перечень группировок прямых торгов
счета FMZ Quant Trading Platform, соответствующегоAPI KEY
в запросе.
{
"code": 0,
"data": {
"result": {
"items": [{
"id": 3417,
"name": "Test"
}, {
"id": 3608,
"name": "Live trading demo"
}]
},
"error": null
}
}
items
Поле записывает только недавно созданные группы.items
.Нет параметра
GetPlatformList()
возвращает список бирж, которые имеют
был добавлен счетом FMZ Quant Trading Platform, соответствующим
кAPI KEY
в запросе.
{
"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
будет использоваться в некоторых конфигурациях и параметрах.Нет параметра
ВGetRobotList
Метод используется для получения списка живых
торговля по счету FMZ Quant Trading Platform
соответствуетAPI KEY
в запросе.
{
"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.Настройка сдвига запроса.
сдвиг
ложное
Номер
Настройка длины запроса.
длина
ложное
Номер
Укажите статус торгового процесса, который будет запрошен, обратитесь к расширенному интерфейсу APIКод торговли в режиме реального времениПройдите.-1
чтобы получить все прямые транзакции.
роботСтатус
ложное
Номер
Укажите пользовательский ярлык живой торговли, которую вы хотите запросить, и вы можете отфильтровать все живой торговли этого ярлика.
маркировка
ложное
строка
Поиск по ключевым словам.
ключевое слово
ложное
строка
ВозьмиPython
Languageprint(api('GetRobotList'))
Получите всю информацию о торговле.print(api('GetRobotList', 'member2'))
: напечатать информацию о всех торговых операциях в режиме реального времени с пользовательской маркировкой участника2.print(api('GetRobotList', 0, 5, -1, 'member2'))
: страницы от 0 до 5 и список до 5 роботов, обозначенных членом2.
ВCommandRobot
метод используется для отправки взаимодействия
команду на прямую торговлю в рамках платформы Quant Trading FMZ
счета, соответствующегоAPI KEY
Идентификатор
в режиме реального времени, получающей команду взаимодействия,
Идентификатор торговли, указанныйrobotId
параметр, и
команда взаимодействия возвращаетсяGetCommand()
Функция
Вызвали стратегию, чтобы захватить его.
{
"code":0,
"data":{
"result":true,
"error":null
}
}
ПараметрrobotId
Используется для указания идентификатора
Live trading, который получает интерактивную команду
- Да.GetRobotList
Метод получения информации о живых
торговля по счету, на котором содержится идентификатор активной торговли.
robotId
неправда
Номер
Параметрcmd
является интерактивной командой, отправленной боту; команда будет захвачена функциейGetCommand()
Для конкретной реализации логики взаимодействия в кодексе стратегии обратитесь кGetCommand()
Функция вРуководство по API квантовой торговой платформы FMZ.
CMD неправда строка
Стратегия торговли в режиме реального времени, при условии, что эта стратегия работает, идентификатор торговли в режиме реального времени равен 123:
function main() {
while (true) {
var cmd = GetCommand()
if (cmd) {
Log(cmd)
}
Sleep(2000)
}
}
Если мы используем тестовый скрипт Python в этой главе, получите доступ к расширенному API FMZ Quant Trading Platform:api("CommandRobot", 123, "test command")
. Торговля в режиме реального времени с ID 123 получит интерактивную команду:test command
, а затем распечатать его через выход функции Log.
StopRobot(RobotId)
используется для запросаAPI KEY
соответствующая торговой сети FMZ Quant Trading
Платформа аккаунт.
Идентификатор торговли, указанныйrobotId
parameter.
{
"code":0,
"data":{
"result":2,
"error":null
}
}
ПараметрrobotId
Используется для указания идентификатора
Вы можете использоватьGetRobotList
С другой стороны, если вы хотите получить информацию о торговле в режиме реального времени в рамках
счёт, на котором содержится идентификатор реальной торговли.
robotId неправда Номер
ВRestartRobot
При этом, в случае, если данный метод используется для возобновления торговли в режиме реального времени в соответствии сAPI KEY
Идентификатор возобновляемой реальной торговли - это идентификатор реальной торговли, указанный в заявке.robotId
parameter.
{
"code":0,
"data":{
"result":1,
"error":null
}
}
ВrobotId
Параметр используется для указания
Вы можете воспользоватьсяGetRobotList
С другой стороны, если вы хотите получить информацию о торговле в режиме реального времени в рамках
счёт, на котором содержится идентификатор реальной торговли.
robotId
неправда
Номер
Параметры конфигурации торговли в реальном времени, параметрыsettings
формат следующий:
{
"appid":"test",
"args":[],
"exchanges":[
{"pair":"SOL_USDT","pid":123},
{"pair":"ETH_USDT","pid":456}
],
"name":"test",
"node":123,
"period":60,
"strategy":123
}
Interval
, и вы хотите установитьInterval
500 при перезагрузке стратегии, затемargs
содержит:["Interval", 500]
, то есть:"args": [["Interval", 500]]
.pid
Конфигурация:{"pair":"SOL_USDT","pid":123}
; pid
может быть запрошен черезGetPlatformList
интерфейс, иid
Поле в возвращенных данных является обменpid
.eid
Конфигурация:{"eid":"Huobi","label":"test Huobi","meta":{"AccessKey":"123","SecretKey":"123"},"pair":"BCH_BTC"}
; конфиденциальная информация, например:API KEY
Если используется такая конфигурация, информация должна быть настроена каждый раз, когда создается или перезапускается живая торговля.{"eid":"Exchange","label":"test exchange","pair":"BTC_USDT","meta":{"AccessKey":"123","SecretKey":"123","Front":"http://127.0.0.1:6666/test"}}
.
label
атрибут - это установить этикетку для обмена объекта, доступ к которому имеет текущийТаможенный протокол, которые могут быть полученыexchange.GetLabel()
в стратегию.GetStrategyList
method.настройки ложное Объект JSON
Если прямая торговля создается расширенным API, расширенный APIRestartRobot (RobotId, Settings)
должен быть использован для перезагрузки, иsettings
Вы можете перейти или не перейти к параметру.settings
Параметр. Если вы только пройтиRobotId
параметр, запустить прямую торговлю в соответствии с текущими настройками прямой торговли.
ВGetRobotDetail
Этот метод используется для получения подробной информации о торговле в режиме реального времени по счету FMZ Quant Trading Platform, соответствующейAPI KEY
Идентификатор торговой сделки в режиме реального времени, который должен быть получен, является идентификатором торговой сделки в режиме реального времени, указаннымrobotId
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
}
}
ВrobotId
Параметр используется для указания идентификатора торговли в режиме реального времени, для которой необходимо получить данные.GetRobotList
метод получения информации о торговле в режиме реального времени по счету, который содержит идентификатор торговли в режиме реального времени.
robotId неправда Номер
Описание атрибутаstrategy_exchange_pairs
В качестве примера можно привести следующие данные:
"[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]"
Первые данные60
представляет собой установленный по умолчанию набор периодов линии K
в режиме реального времени - 1 минута, то есть 60 секунд.
[44314,42960,15445,14703]
является объектом обменаpid
конфигурированы для торговли в режиме реального времени (в соответствии с порядком добавления).
[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]
Это...
набор торговых пар для обменного объекта, сконфигурированный live
торговля (в порядке сложения и в соответствии с
сpid
).
ВGetAccount
Метод используется для получения информации о счете, соответствующейAPI KEY
в запросе счета квантовой торговой платформы 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
}
}
ВGetExchangeList
Метод используется для получения списка бирж и требуемой конфигурационной информации, поддерживаемой платформой FMZ Quant Trading.
КогдаisSummary
параметр:false
, возвращенные данные:
{
"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
}
}
КогдаisSummary
параметр:true
, возвращенные данные:
{
"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
}
}
ВisSummary
параметр используется для указания, являются ли возвращенные данные краткой информацией.
isОбзор неправда Буль
ВDeleteNode(Nid)
Метод используется для удаления узла докера, соответствующегоAPI KEY
Идентификатор удаленного узла докера - это идентификатор докера, указанныйnid
parameter.
{
"code":0,
"data":{
"result":true,
"error":null
}
}
Вnid
параметр используется для указания идентификатора докера, который будет удален.GetNodeList
метод получения информации о докерах счета.
нид неправда Номер
ВDeleteRobot(RobotId, DeleteLogs)
Метод используется для удаления торгов на живом экране, соответствующейAPI KEY
Удалённый идентификатор реального торговли - это идентификатор реального торговли, указанныйrobotId
parameter.
{
"code":0,
"data":{
"result":0,
"error":null
}
}
ПараметрrobotId
Используется для указания идентификатора
Вы можете использоватьGetRobotList
С другой стороны, если вы хотите получить информацию о торговле в режиме реального времени в рамках
счёт, на котором содержится идентификатор реальной торговли.
robotId
неправда
Номер
ВdeleteLogs
параметр используется для установки необходимости удалять журнал торгов в режиме реального времени, если передано истинное значение (например:true
), журнал торговли в режиме реального времени исключается.
deleteLogs неправда Буль
ВGetStrategyList
метод используется для получения информации о стратегии платформы.
{
"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
}
}
Вoffset
Параметр используется для установки смещения при запросе.
сдвиг
неправда
Номер
Вlength
параметр используется для установки длины запроса.
длина
неправда
Номер
ВstrategyType
Параметр используется для настройки типа стратегии для запроса.
strategyType
параметры0
Все стратегии.strategyType
параметры1
: Стратегия публична.strategyType
параметры2
: пересмотреть стратегию.Стратегия тип
неправда
Номер
Вcategory
Параметр используется для установки категории стратегии, которая должна быть запрошена.
category
параметры-1
Все стратегии.category
параметры0
Стратегия на заказ.Категория
неправда
Номер
ВneedArgs
параметр используется для установки того, имеет ли стратегия, которую нужно запросить, параметры.
needArgs
параметры0
Все стратегии.needArgs
неправда
Номер
Вlanguage
Параметр используется для настройки языка программирования стратегии, которая будет запрошена.
language
параметры0
Язык JavaScript.language
параметры1
Язык Python.language
параметры2
Язык C++.language
параметры3
Стратегия визуализации.language
параметры4
Мой язык.language
параметры5
: язык сосны.язык
неправда
Номер
Вkw
Параметр используется для установки ключевого слова стратегии, которая будет запрошена.
КВ неправда строка
ВNewRobot
метод используется для создания торговли в режиме реального времени в рамкахAPI KEY
соответствующий счету Quant Trading Platform FMZ в запросе.
{
"code":0,
"data":{
"result":591988,
"error":null
}
}
параметры конфигурации торговли в режиме реального времени,settings
Формат параметров следующий:
{
"appid":"test",
"args":[],
"exchanges":[
{"pair":"SOL_USDT","pid":123}
],
"group":123,
"name":"test",
"node":123,
"period":60,
"strategy":123
}
RestartRobot
interface.настройки неправда Объект JSON
В конфигурацииeid
вsettings
параметр,"meta":{"AccessKey": "123", "SecretKey": "123"}
Эти данные передаются непосредственно в программу докера, поэтому эта информация должна быть настроена каждый раз, когда создается или возобновляется реальная торговля.
Если мы создаем живой обменный торговый объект с использованием пользовательского протокола, при настройкеsettings
параметр, мы можем использовать следующие настройки дляexchanges
атрибут:
{
"eid": "Exchange",
"label": "test",
"pair": "ETH_BTC",
"meta": {
"AccessKey": "123",
"SecretKey": "123",
"Front": "http://127.0.0.1:6666/test"
}
}
label
атрибут - это установить этикетку для обмена объекта, доступ к которому осуществляется текущим пользовательским протоколом, который может быть получен с помощьюexchange.GetLabel()
в стратегию.
ВPluginRun
Метод используется для вызоваинструмент отладкифункция FMZ Quant Trading Platform; поддерживается только язык 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
}
}
Параметры настроек в инструменте отладки,settings
конфигурации, включать код испытания вsource
атрибут.settings
Формат параметра следующий:
{
"exchanges":[{"pair":"SOL_USDT","pid":123}],
"node":123,
"period":60,
"source":"function main() {Log(\"Hello FMZ\")}"
}
RestartRobot
interface.настройки неправда Объект JSON
{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}}
{"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}}
Дляexchanges
атрибут вsettings
, только один должен быть установлен при вызовеPluginRun
method (только один объект обмена поддерживается при использовании на странице инструмента для отладки).settings
, но будет сообщена ошибка при доступе ко второму объекту обмена в коде.
ВGetRobotLogs
Метод используется для получения информации о дневнике торгов в режиме реального времени по счету FMZ Quant Trading Platform, соответствующейAPI KEY
Идентификатор торговой платформы в режиме реального времени, который должен быть получен, - это идентификатор торговой платформы в режиме реального времени, указанный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
}
}
ВrobotId
Параметр используется для указания
торговля в режиме реального времени, для которой должна быть получена информация о журнале.
Вы можете использоватьGetRobotList
метод получения информации
о живой торговли по счету, который содержит
Идентификатор торговли в реальном времени.
robotId
неправда
Номер
ВlogMinId
параметр используется для указания минимального ID журнала.
LogMinId
неправда
Номер
ВlogMaxId
параметр используется для указания максимального ID журнала.
logMaxId
неправда
Номер
ВlogOffset
параметр используется для установки смещения, после определения диапазонаlogMinId
иlogMaxId
, скомпенсирована на основеlogOffset
(сколько записей пропущено). Начните с отправной позиции для получения данных.
LogOffset
неправда
Номер
ПараметрlogLimit
используется для установки количества записей данных, которые должны быть выбраны после определения исходной позиции.
LogLimit
неправда
Номер
ВprofitMinId
параметр используется для установки минимального ID журнала прибыли.
Прибыль
неправда
Номер
ПараметрprofitMaxId
используется для установки максимального ID журнала прибыли.
прибыльMaxId
неправда
Номер
ПараметрprofitOffset
используется для установки смещения (сколько записей пропустили) в качестве исходной позиции.
ПрибыльОфсет
неправда
Номер
ПараметрprofitLimit
используется для установки количества записей данных, которые должны быть выбраны после определения исходной позиции.
ПрибыльОграничение
неправда
Номер
ПараметрchartMinId
используется для установки минимального ID записи данных диаграммы.
График
неправда
Номер
ПараметрchartMaxId
используется для установки максимального ID записи данных диаграммы.
диаграммаMaxId
неправда
Номер
ПараметрchartOffset
используется для установки смещения.
ГрафикОффсет
неправда
Номер
ПараметрchartLimit
используется для установки количества
Документы для получения.
графикОграничение
неправда
Номер
ПараметрchartUpdateBaseId
используется для установки базового ID
после обновления запроса.
chartUpdateBaseId
неправда
Номер
ПараметрchartUpdateDate
используется для установки данных
Запись обновления временной отметки, и он будет фильтровать записи больше
чем эта временная печать.
chartUpdateDate (Таблица обновления)
неправда
Номер
ПараметрsummaryLimit
используется для установки количества
Параметр является
Тип целого числа для запроса данных строки состояния
торговля.
Установка на summaryLimit
Параметр для получения всех строчек состояния
Данные строки состояния хранятся в возвращенных данныхsummary
.
Резюме неправда Номер
Таблица журнала стратегии в базе данных
ВArr
значение атрибута в первом элементеLogs
значение атрибута (структура массива) в возвращаемых данных (данные журнала) описывается следующим образом:
"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, "", ""]
],
Идентификатор | logType (тип журнала) | Еда | Упорядочен | цены | сумма | Дополнительная | дата | контракт Тип | направление |
---|---|---|---|---|---|---|---|---|---|
3977 | 3 | "" | 0 | 0 | 1526954372591 | "" | "" | ||
3976 | 5 | "" | "" | 0 | 0 | 1526954372410 | "" | "" |
extra
является прилагаемым сообщением напечатанного журнала.
Специфические типы бревен, представленныеlogType
значения описываются следующим образом:
Тип журнала: | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|
Значение logType: | Купить | Продажа | ПРЕДСТАВЛЯЕТ | Ошибка | Прибыль | Сообщение | Перезагрузить |
Таблица журнала графика прибыли в базе данных Данные, представленные в таблице графика, совпадают с отчетом о прибыли, представленным в таблице стратегии.
"Arr": [
[202, 2515.44, 1575896700315],
[201, 1415.44, 1575896341568]
]
Возьмем один из данных журнала в качестве примера:
[202, 2515.44, 1575896700315]
202
является logID
; 2515.44
является стоимостью прибыли;1575896700315
- это временная печать.
Таблица графика в базе данных
"Arr": [
[23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
[23636, 5, "{\"x\":1575960300000,\"y\":3.0735}"]
]
Возьмем один из данных журнала в качестве примера:
[23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
23637
является журналомID
, 0
является индексом серии данных диаграммы, а последними данными"{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"
является данными журнала; эти данные являются данными K-линии на графике.