В процессе загрузки ресурсов... загрузка...

Расширенный интерфейс API

FMZ Quant открыл расширенный интерфейс API платформы для поддержки программных вызовов к различным функциям FMZ Quant Trading Platform.

Создать APIKey

FMZ Quant Trading Platform поддерживает управление разрешениями расширенный интерфейс API, и разрешениеAPI KEYВ опции API интерфейс в Установки учетной записи (https://www.fmz.com/m/account создать новая кнопка ApiKey для создания расширенияAPI KEY.

Вы можете редактировать поле ввода API Permission при созданииAPI KEY, и ввести*символ, чтобы позволить всемРасширенный интерфейс APIЕсли вы хотите указать определенные разрешения интерфейса, вам нужно ввести соответствующее расширенное имя функции API. Используйте запятые для разделения, например:GetRobotDetail,DeleteRobotЭто дает этоAPI KEYразрешение на вызовПолучите подробную информацию о торговле в режиме реального времениИнтерфейс иУдалить прямую торговлю interface.

ВAPI KEYСтраница управления также позволяетизменять, отключить, УдалитьсотворенноеAPI KEY.

Код возврата расширенного интерфейса API

Пример структуры, возвращаемой расширенным интерфейсом 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:

    https://www.fmz.comimg

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

    Торговля в прямом эфире сIDиз186515может принимать интерактивную строку команд:{"close": 39773.75, "name": "aaa"}.

  • Формат текста:

    https://www.fmz.comimg

    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 для реализации предупреждения TradingView торговля сигналами

Объяснение расширенного интерфейса API

  • Расширенный интерфейс 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

В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
    }
}

Описание полей возвращенных значений (буквальное значение очевидно и не будет повторяться):

  • все: количество докеров, связанных с текущим счетом.
  • узлы: записывает детали узла докера.
    • build: номер версии.
    • Город, в котором вы находитесь.
    • is_owner: true указывает на частный докер, false указывает на публичный докер.
    • загружен: загрузка, количество экземпляров стратегии.
    • public: 0 указывает на частный докер, 1 указывает на публичный докер.
    • Регион: географическое расположение.
    • версия: подробная информация о версии докера.
    • wd: включить или не включить сигнализацию в автономном режиме, 0 означает не включено. Поля начинаются с префиксовecs_иunit_, который записывает соответствующую информацию о сервере докера развертывания с одним щелчком мыши (имя оператора, конфигурация, статус и т. д.), цикл выставления счетов, цены и другую информацию, которая здесь не будет повторяться.

Нет параметра

GetRobotGroupList - список групп

GetRobotGroupList()возвращает перечень группировок прямых торгов счета FMZ Quant Trading Platform, соответствующегоAPI KEYв запросе.

{
    "code": 0,
    "data": {
        "result": {
            "items": [{
                "id": 3417,
                "name": "Test"
            }, {
                "id": 3608,
                "name": "Live trading demo"
            }]
        },
        "error": null
    }
}
  • Положения: Информация о группировке прямых торгов.
    • id: группа операций в режиме реального времени Id.
    • Наименование: название группы, осуществляющей прямую торговлю. ВitemsПоле записывает только недавно созданные группы.items.

Нет параметра

GetPlatformList (Список платформ)

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
    }
}
  • all: количество добавленных/конфигурированных объектов обмена.
  • Платформы: Информация, связанная с биржей.
    • eid: идентификатор биржи на квантовой торговой платформе FMZ,eidбудет использоваться в некоторых конфигурациях и параметрах.

Нет параметра

GetRobotСписок

В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: Идентификатор группы реального трейдинга. Если стратегия реального трейдинга в группе по умолчанию, нетgroup_id field.

Настройка сдвига запроса. сдвиг ложное Номер Настройка длины запроса. длина ложное Номер Укажите статус торгового процесса, который будет запрошен, обратитесь к расширенному интерфейсу APIКод торговли в режиме реального времениПройдите.-1чтобы получить все прямые транзакции. роботСтатус ложное Номер Укажите пользовательский ярлык живой торговли, которую вы хотите запросить, и вы можете отфильтровать все живой торговли этого ярлика. маркировка ложное строка Поиск по ключевым словам. ключевое слово ложное строка

ВозьмиPythonLanguages расширенный интерфейс APIСпособы проверкиНапример:print(api('GetRobotList'))Получите всю информацию о торговле.print(api('GetRobotList', 'member2')): напечатать информацию о всех торговых операциях в режиме реального времени с пользовательской маркировкой участника2.print(api('GetRobotList', 0, 5, -1, 'member2')): страницы от 0 до 5 и список до 5 роботов, обозначенных членом2.

CommandRobot (руководство робота)

В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
    }
}
  • Результат: код состояния торговли в режиме реального времени - 2, что означает остановку.

ПараметрrobotIdИспользуется для указания идентификатора Вы можете использоватьGetRobotListС другой стороны, если вы хотите получить информацию о торговле в режиме реального времени в рамках счёт, на котором содержится идентификатор реальной торговли.

robotId неправда Номер

ПерезагрузитьRobot

ВRestartRobotПри этом, в случае, если данный метод используется для возобновления торговли в режиме реального времени в соответствии сAPI KEYИдентификатор возобновляемой реальной торговли - это идентификатор реальной торговли, указанный в заявке.robotId parameter.

{
    "code":0,
    "data":{
        "result":1,
        "error":null
    }
}
  • Результат: код состояния торговли в режиме реального времени, 1 означает "работа".

В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
}
  • Appid: Поля по назначению Теги можно определить.
  • args: Настройки параметров стратегии Структура - это массив, каждый элемент - параметр.Interval, и вы хотите установитьInterval500 при перезагрузке стратегии, затем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()в стратегию.
  • название: название стратегии
  • узел: Docker ID Если этот атрибут не установлен, то докер будет автоматически запущен.
  • Период: Период K-линии по умолчанию Параметр периода K-линии, 60 означает 60 секунд.
  • Стратегия: Идентификация стратегии Он может быть получен с помощьюGetStrategyList method.

настройки ложное Объект JSON

Если прямая торговля создается расширенным API, расширенный APIRestartRobot (RobotId, Settings)должен быть использован для перезагрузки, иsettingsВы можете перейти или не перейти к параметру.settingsПараметр. Если вы только пройтиRobotIdпараметр, запустить прямую торговлю в соответствии с текущими настройками прямой торговли.

GetRobotDetail (Подробное описание)

В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
    }
}
  • charge_time: Следующее время вычета - фактическое время истечения срока действия после текущего вычета.
  • время уже истекло.
  • потребленная сумма: потребленная сумма (0,125 USD = 12500000 / 1e8).
  • дата: дата создания.
  • fixed_id: идентификатор докера, присвоенный при запуске реального торгового процесса. Если он автоматический, значение равен -1.
  • is_manager: есть ли у вас полномочия для управления этой торговлей в режиме реального времени.
  • is_sandbox: является ли это моделируемой торговлей.
  • Название: Название торгового объекта.
  • node_id: Docker ID.
  • pexchanges: Объект обмена в режиме реального времени, 123 - это pid, а Futures_OKCoin - это название биржи.
  • plabels: информация о тег-объекте биржи, настроенный в режиме реального времени.
  • Прибыль: данные о прибыли от торговли в режиме реального времени.
  • публичная: публичная ли торговля в режиме реального времени.
  • обновление: последнее активное время.
  • strategy_exchange_pairs: Конфигурированный объект обмена, информация о торговой паре.
  • wd: включить или не включить сигнализацию в автономном режиме

В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
    }
}
  • остаток: остаток счета Для того чтобы преобразовать его в реальное значение, нужно разделить его на 1e8 (т.е. 10 в 8-й степени).

ПолучитьExchangeList

В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Обзор неправда Буль

УдалитьNode

ВDeleteNode(Nid)Метод используется для удаления узла докера, соответствующегоAPI KEYИдентификатор удаленного узла докера - это идентификатор докера, указанныйnid parameter.

{
    "code":0,
    "data":{
        "result":true,
        "error":null
    }
}
  • Результат: удаляется ли соответствующая программа докера успешно.

Вnidпараметр используется для указания идентификатора докера, который будет удален.GetNodeListметод получения информации о докерах счета.

нид неправда Номер

УдалитьRobot

ВDeleteRobot(RobotId, DeleteLogs)Метод используется для удаления торгов на живом экране, соответствующейAPI KEYУдалённый идентификатор реального торговли - это идентификатор реального торговли, указанныйrobotId parameter.

{
    "code":0,
    "data":{
        "result":0,
        "error":null
    }
}
  • Результат: результат обратной связи операций по удалению прямых операций. 0: стирать нормально. -2: Удаление было успешным, но докер, связанный с живой торговлей, не мог быть связан. Пожалуйста, удалите файл 123.db3 вручную!

ПараметрrobotIdИспользуется для указания идентификатора Вы можете использоватьGetRobotListС другой стороны, если вы хотите получить информацию о торговле в режиме реального времени в рамках счёт, на котором содержится идентификатор реальной торговли.

robotId неправда Номер ВdeleteLogsпараметр используется для установки необходимости удалять журнал торгов в режиме реального времени, если передано истинное значение (например:true), журнал торговли в режиме реального времени исключается.

deleteLogs неправда Буль

GetStrategyList (Получить стратегию)

В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
    }
}
  • all: общее количество стратегий, найденных запросом фильтра.
  • Стратегии: запрошены конкретные стратегии.

В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
}
  • группа: укажите группу прямых торгов.
  • args: параметры стратегии, или пустой массив, если стратегия не имеет параметров.
  • обмены: для конфигурации обмена объекта, пожалуйста, см.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
    }
}
  • Результат: инструмент отладки возвращает данные о результатах теста после успешного выполнения прошедшего кода JavaScript.

Параметры настроек в инструменте отладки,settingsконфигурации, включать код испытания вsourceатрибут.settingsФормат параметра следующий:

{
    "exchanges":[{"pair":"SOL_USDT","pid":123}],
    "node":123,
    "period":60,
    "source":"function main() {Log(\"Hello FMZ\")}"
}
  • Источник: код, который требует отладки.
  • node: Docker ID, вы можете указать, на каком докере будет выполняться прямая торговля. Если значение -1, это означает автоматическое распределение.
  • обмены: для конфигурации обмена объекта, пожалуйста, см.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, только один должен быть установлен при вызовеPluginRunmethod (только один объект обмена поддерживается при использовании на странице инструмента для отладки).settings, но будет сообщена ошибка при доступе ко второму объекту обмена в коде.

GetRobotLogs

В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
    }
}
  • журналы: информация о журнале: в поле Arr найдено несколько элементов данных журнала. Первой структурой данных в журналах является запись журнала в таблице журнала стратегии в базе данных реального времени. Вторая структура данных в журналах - это запись журнала в таблице журнала стратегии в базе данных реального времени. Третья структура данных в журналах - это запись журнала в таблице журнала стратегии в базе данных реального времени.
  • резюме: данные строки состояния торговли в режиме реального времени.

В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используется для установки количества Параметр является Тип целого числа для запроса данных строки состояния торговля. Установка на 0 означает, что нет необходимости в запросе строки состояния информация, и установка на не нулевое число указывает на число В этом случае, если вы хотите получить информацию о состоянии, вы должны интерфейс не ограничивает количество данных, так что вы можете указать больше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 Фьючерсы_OKCoin "" 0 0 Продажа ((688.9, 2): 20016 1526954372591 "" ""
    3976 5 "" "" 0 0 OKCoin:this_week слишком много позиций, длинный: 2 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-линии на графике.

Встроенная библиотека Торговый терминал