Tài nguyên đang được tải lên... tải...

Giao diện API mở rộng

FMZ Quant đã mở giao diện API mở rộng của nền tảng để hỗ trợ các cuộc gọi theo chương trình đến các chức năng khác nhau của nền tảng giao dịch FMZ Quant.

Tạo ApiKey

Nền tảng giao dịch lượng tử FMZ hỗ trợ quản lý giấy phép của giao diện API mở rộng, và quyền củaAPI KEYcó thể được thiết lập. Trên API giao diện tùy chọn trên Account settings (https://www.fmz.com/m/account) trang của nền tảng, nhấp vào Create nút ApiKey mới để tạo phần mở rộngAPI KEY.

Bạn có thể chỉnh sửa hộp nhập API Permission khi tạo mộtAPI KEY, và nhập vào*biểu tượng để cho phép tất cảGiao diện API mở rộngquyền. Nếu bạn muốn xác định quyền giao diện cụ thể, bạn cần nhập tên hàm API mở rộng tương ứng. Sử dụng dấu phẩy để tách, ví dụ:GetRobotDetail,DeleteRobotĐiều này cho thấyAPI KEYsự cho phép gọiNhận thông tin chi tiết về giao dịch trực tiếpgiao diện vàXóa giao dịch trực tiếp interface.

CácAPI KEYtrang quản lý cũng cho phép bạnsửa đổi, vô hiệu, xóaNhững người được tạo raAPI KEY.

Mã trả về giao diện API mở rộng

Một ví dụ về cấu trúc được trả về bởi giao diện API mở rộng là như sau:

    "code":0,
    "data":{
        // ...
    }
}

Cáccodetrường is: Mã trạng thái kết quả cuộc gọi được trả về khi gọi giao diện API mở rộng.

Mô tả
Hoạt động thành công 0
KEY API sai 1
Chữ ký sai 2
Lỗi nonce 3
Phương pháp sai 4
Parameter không chính xác 5
Lỗi không rõ bên trong 6

Mã giao dịch trực tiếp

CácGetRobotListgiao diện,GetRobotDetailgiao diện, vàGetRobotLogsgiao diện trả về dữ liệu trongstatustrường cho: mã trạng thái giao dịch trực tiếp.

  • Khởi động bình thường
    Tình trạng
    Không hoạt động 0
    Trong hoạt động 1
    Ngừng 2
    Được ký kết 3
    Ngừng 4
    Chiến lược có lỗi. 5
  • Không bình thường
    Tình trạng
    Chiến lược đã hết hạn, và xin vui lòng liên hệ với nhà văn để mua lại nó -1
    Không tìm thấy docker -2
    Lỗi biên dịch chiến lược -3
    Giao dịch trực tiếp đã được chạy -4
    Số dư không đủ -5
    Số chiến lược đồng thời vượt quá giới hạn -6

Phương pháp xác minh

Có hai phương pháp xác minh khi gọi giao diện API mở rộng, hỗ trợtokenxác minh và xác minh trực tiếp.

xác minh token

Sử dụngmd5phương pháp mã hóa để xác minh, ví dụ vềPython, Golangtiếng gọi:

#!/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)
}

Kiểm tra trực tiếp

Nó hỗ trợ xác minh mà không cầntoken(trượt)secret_keytrực tiếp), bạn có thể tạo ra một URL có thể được truy cập trực tiếp. ví dụ, URL trực tiếp cung cấp các hướng dẫn tương tác để giao dịch trực tiếp, có thể được sử dụng đểTradingViewhoặcWebHookcho các trường hợp khác.CommandRobot(RobotId, Cmd)chức năng, tham sốnoncekhông cần xác minh, và tần suất truy cập và Thời gian truy cập giao diện không bị giới hạn.

Ví dụ:AccessKeycủa phần mở rộng được tạoAPI KEYlà:xxxSecretKeylà:yyy. Xem liên kết sau để gửi một thông báo lệnh tương tác đến giao dịch trực tiếp với ID giao dịch trực tiếp186515, thông điệp content là một chuỗi:"ok12345".


https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,"ok12345"]

Trong trường hợp xác minh trực tiếp được hỗ trợ, chỉCommandRobotgiao diện được hỗ trợ để có đượcBodyVí dụ, các cài đặt trongWebHook URLcủaTradingView:


https://www.fmz.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,+""]

Chú ý để thiết lập theo định dạng sau:args=[130350,+""], trong đó130350là giao dịch trực tiếpIDcủa FMZ Quant Trading Platform.

Đặt trong hộp tin nhắn củaTrading View(các Cơ quan yêu cầu Dữ liệu cần gửi):

  • Định dạng JSON:

    https://www.fmz.comimg

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

    Các giao dịch trực tiếp vớiIDcủa186515có thể nhận chuỗi lệnh tương tác:{"close": 39773.75, "name": "aaa"}.

  • Định dạng văn bản:

    https://www.fmz.comimg

    BTCUSDTPERP Crossing 39700.00 close: {{close}}
    

    Các giao dịch trực tiếp vớiIDcủa186515có thể nhận chuỗi lệnh tương tác:BTCUSDTPERP Crossing 39700.00 close: 39739.4.

Ví dụ:Python & GolangGọi ngôn ngữ:

#!/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)
}

Sử dụng API mở rộng trên FMZ Quant để nhận ra cảnh báo TradingView giao dịch tín hiệu

Giải thích về giao diện API mở rộng

  • Giao diện API mở rộng của FMZ Quant Trading Platform Thêm các tham số truy vấn (loại biệt bởi?) của yêu cầu ngay sau khihttps://www.fmz.com/api/v1Sau đây là các tham số yêu cầu được thể hiện bằng cách sử dụngPython:

    {
        "version"   : "1.0",
        "access_key": "xxx",
        "method"    : "GetNodeList",
        "args"      : [],
        "nonce"     : 1516292399361,
        "sign"      : "085b63456c93hfb243a757366600f9c2"
    }
    
    Vùng đất Hướng dẫn
    phiên bản Số phiên bản.
    access_key AccessKey, xin nó trên trang quản lý tài khoản.
    phương pháp Phương pháp gọi cụ thể.
    args Danh sách tham số của phương thức cụ thể được gọi.
    nonce Mẫu thời gian, bằng millisecond, cho phép một lỗi 1 giờ từ dấu thời gian tiêu chuẩn. Nonce phải lớn hơn giá trị nonce của lần truy cập cuối cùng.
    ký hiệu Signature.

    Mỗi tên tham số được tách bởi ký tự&, và các tên và giá trị tham số được kết nối với biểu tượng=. URL yêu cầu đầy đủmethod=GetNodeListví dụ:

    https://www.fmz.com/api/v1?access_key=xxx&nonce=1516292399361&args=%5B%5D&sign=085b63456c93hfb243a757366600f9c2&version=1.0&method=GetNodeList
    

    Lưu ý rằng không cósecret_keytham số trong số các tham số yêu cầu.

  • Phương pháp ký hiệu Cácsigntham số trong tham số yêu cầu được mã hóa như sau, theo định dạng:

    version + "|" + method + "|" + args + "|" + nonce + "|" + secretKey
    

    Sau khi kết nối chuỗi, sử dụngMD5thuật toán mã hóa để mã hóa chuỗi và chuyển đổi nó thành một giá trị chuỗi dữ liệu thập phân, được gọi là giá trị của tham sốsignĐối với phần chữ ký, hãy tham khảoPythongiao diện API mở rộng mãPhương pháp xác minh :

    # 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()
    
  • Lỗi dịch vụ giao diện:

    • Các thông số không đủ:
      {
          "code":0,
          "data":{
              "result":null,
              "error":"Params length incorrect"
          }
      }
      

GetNodeList

CácGetNodeListphương pháp được sử dụng để có được danh sách các dockers theo tài khoản nền tảng giao dịch lượng tử FMZ tương ứng vớiAPI KEYtrong yêu cầu.

{
    "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
    }
}

Mô tả các trường giá trị trả về (ý nghĩa theo nghĩa đen là hiển nhiên và sẽ không được lặp lại):

  • tất cả: Số lượng nhân viên cảng liên quan đến tài khoản vãng lai.
  • các nút: ghi lại chi tiết các nút dock.
    • xây dựng: số phiên bản.
    • Thành phố: Thành phố mà bạn đang định vị.
    • is_owner: true chỉ ra một docker riêng, false chỉ ra một docker công cộng.
    • tải: tải, số lượng các trường hợp chiến lược.
    • công cộng: 0 chỉ ra một docker riêng, 1 chỉ ra một docker công cộng.
    • khu vực: Vị trí địa lý.
    • phiên bản: Thông tin chi tiết về phiên bản của dock.
    • wd: Có phải bật báo động ngoại tuyến, 0 có nghĩa là không bật. Các trường bắt đầu với các tiền tốecs_unit_, ghi lại các thông tin liên quan của máy chủ docker triển khai một nhấp chuột (tên nhà điều hành, cấu hình, trạng thái, vv), chu kỳ thanh toán, giá và các thông tin khác, sẽ không được lặp lại ở đây.

Không có tham số

GetRobotGroupList

GetRobotGroupList()trả về danh sách nhóm giao dịch trực tiếp của tài khoản FMZ Quant Trading Platform tương ứngAPI KEYtrong yêu cầu.

{
    "code": 0,
    "data": {
        "result": {
            "items": [{
                "id": 3417,
                "name": "Test"
            }, {
                "id": 3608,
                "name": "Live trading demo"
            }]
        },
        "error": null
    }
}
  • Các mục: Thông tin nhóm giao dịch trực tiếp.
    • ID: Nhóm giao dịch trực tiếp ID.
    • Tên: Tên nhóm giao dịch trực tiếp. Cácitemstrường chỉ ghi lại các nhóm mới được tạo.items.

Không có tham số

GetPlatformList

GetPlatformList()trả về danh sách các sàn giao dịch có đã được thêm bởi các tài khoản FMZ Quant Trading Platform tương ứng đếnAPI KEYtrong yêu cầu.

{
    "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
    }
}
  • tất cả: Số lượng đối tượng trao đổi được thêm vào / cấu hình.
  • nền tảng: Thông tin liên quan đến trao đổi.
    • eid: ID của sàn giao dịch trên nền tảng giao dịch lượng tử FMZ,eidsẽ được sử dụng trong một số cấu hình và tham số.

Không có tham số

GetRobotList

CácGetRobotListphương pháp được sử dụng để có được danh sách của trực tiếp giao dịch theo tài khoản nền tảng giao dịch FMZ Quant tương ứng vớiAPI KEYtrong yêu cầu.

{
    "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
    }
}
  • robot: Thông tin giao dịch trực tiếp
    • group_id: ID nhóm giao dịch trực tiếp. Nếu chiến lược giao dịch trực tiếp nằm trong nhóm mặc định, không cógroup_id field.

Cài đặt chuyển hướng truy vấn. bù đắp sai số Cài đặt chiều dài truy vấn tìm kiếm. chiều dài sai số Xác định trạng thái giao dịch trực tiếp được truy vấn, tham khảo giao diện API mở rộngMã giao dịch trực tiếp, vượt qua-1để có được tất cả các giao dịch trực tiếp. robotStatus sai số Xác định nhãn tùy chỉnh của giao dịch trực tiếp mà bạn muốn truy vấn, và bạn có thể lọc tất cả các giao dịch trực tiếp của nhãn này. nhãn sai chuỗi Tìm kiếm từ khóa. keyWord sai chuỗi

Hãy lấyPythongiao diện API mở rộng của languagesPhương pháp xác minhví dụ:print(api('GetRobotList'))Nhận tất cả thông tin giao dịch trực tiếp.print(api('GetRobotList', 'member2')): in thông tin của tất cả các giao dịch trực tiếp với thành viên nhãn tùy chỉnh2.print(api('GetRobotList', 0, 5, -1, 'member2')): các trang từ 0 đến 5 và liệt kê tối đa 5 robot được dán nhãn với member2.

CommandRobot

CácCommandRobotphương pháp được sử dụng để gửi một tương tác lệnh giao dịch trực tiếp theo nền tảng giao dịch lượng tử FMZ tài khoản tương ứng vớiAPI KEYtrong yêu cầu. của giao dịch trực tiếp nhận lệnh tương tác là trực tiếp ID giao dịch được chỉ định bởirobotIdtham số, và lệnh tương tác được trả về bởiGetCommand()chức năng gọi trong chiến lược để bắt nó.

{
    "code":0,
    "data":{
        "result":true,
        "error":null
    }
}
  • kết quả: Liệu lệnh tương tác có được gửi thành công hay không; khi gửi lệnh đến giao dịch trực tiếp không đang chạy, kết quả trong dữ liệu được trả về là sai.

Các thông sốrobotIdđược sử dụng để xác định ID của giao dịch trực tiếp nhận lệnh tương tác. bạn có thể sử dụng cácGetRobotListphương pháp để có được thông tin của cuộc sống giao dịch dưới tài khoản, chứa ID giao dịch trực tiếp.

robotId đúng số Các thông sốcmdlà lệnh tương tác được gửi đến bot; lệnh sẽ được chụp bởi hàmGetCommand(), kích hoạt logic tương tác trong chiến lược.GetCommand()chức năng trongFMZ Quant Trading Platform API Manual.

cmd đúng chuỗi

Chiến lược giao dịch trực tiếp, giả sử rằng chiến lược này đang hoạt động, ID giao dịch trực tiếp là 123:

function main() {
    while (true) {
        var cmd = GetCommand()
        if (cmd) {
            Log(cmd)
        }
        Sleep(2000)
    }
}

Nếu chúng ta sử dụng kịch bản thử nghiệm Python trong chương này, truy cập vào API mở rộng của nền tảng giao dịch lượng tử FMZ:api("CommandRobot", 123, "test command"). Giao dịch trực tiếp với ID 123 sẽ nhận được lệnh tương tác:test command, và sau đó in nó ra thông qua đầu ra hàm Log.

StopRobot

StopRobot(RobotId)được sử dụng để yêu cầuAPI KEYtương ứng với giao dịch trực tiếp của FMZ Quant Trading Tài khoản nền tảng. ID giao dịch trực tiếp để ngừng chạy là ID giao dịch được chỉ định bởirobotId parameter.

{
    "code":0,
    "data":{
        "result":2,
        "error":null
    }
}
  • Kết quả: Mã trạng thái giao dịch trực tiếp là 2, có nghĩa là dừng.

Các thông sốrobotIdđược sử dụng để xác định ID của giao dịch trực tiếp để được dừng lại.GetRobotListphương pháp để có được thông tin về giao dịch trực tiếp theo tài khoản, chứa ID giao dịch trực tiếp.

robotId đúng số

Khởi động lạiRobot

CácRestartRobotphương pháp được sử dụng để khởi động lại giao dịch trực tiếp theoAPI KEYID của giao dịch trực tiếp được khởi động lại là ID giao dịch trực tiếp được chỉ định bởirobotId parameter.

{
    "code":0,
    "data":{
        "result":1,
        "error":null
    }
}
  • Kết quả: Mã trạng thái giao dịch trực tiếp, 1 có nghĩa là đang chạy.

CácrobotIdtham số được sử dụng để chỉ định Id của giao dịch trực tiếp để được khởi động lại.GetRobotListphương pháp để có được thông tin về giao dịch trực tiếp theo tài khoản, chứa ID giao dịch trực tiếp.

robotId đúng số Các thông số cấu hình giao dịch trực tiếp, các thông sốsettingsđịnh dạng như sau:

{
    "appid":"test",
    "args":[],
    "exchanges":[
        {"pair":"SOL_USDT","pid":123},
        {"pair":"ETH_USDT","pid":456}
    ],
    "name":"test",
    "node":123,
    "period":60,
    "strategy":123
}
  • appid: Các trường tùy chỉnh Các thẻ có thể được định nghĩa.
  • args: Cài đặt tham số chiến lược Cấu trúc là một mảng, mỗi phần tử là một tham số.Interval, và bạn muốn thiết lậpIntervalđến 500 khi khởi động lại chiến lược, sau đóargschứa:["Interval", 500], đó là:"args": [["Interval", 500]].
  • trao đổi: cấu hình đối tượng trao đổi để ràng buộc giao dịch trực tiếp Cấu trúc là một mảng, trong đó mỗi phần tử là một cấu hình đối tượng trao đổi.
    • Nó có thể liên kết với đối tượng trao đổi đã được cấu hình trên nền tảng Đó là, sử dụngpidcấu hình:{"pair":"SOL_USDT","pid":123}; pidcó thể được truy vấn thông quaGetPlatformListgiao diện, vàidtrường trong dữ liệu được trả về là trao đổipid.
    • Chúng ta có thể trực tiếp truyền thông tin cấu hình và liên kết các đối tượng trao đổi Đó là, sử dụngeidcấu hình:{"eid":"Huobi","label":"test Huobi","meta":{"AccessKey":"123","SecretKey":"123"},"pair":"BCH_BTC"}; thông tin nhạy cảm như:API KEYkhông được lưu trữ bởi nền tảng giao dịch FMZ Quant, và các dữ liệu này được chuyển tiếp trực tiếp đến chương trình docker. Nếu sử dụng kiểu cấu hình này, thông tin phải được cấu hình mỗi khi một giao dịch trực tiếp được tạo hoặc khởi động lại.
    • Nó có thể liên kếtGiao thức hải quanđối tượng trao đổi Nó có thể truyền thông tin cấu hình:{"eid":"Exchange","label":"test exchange","pair":"BTC_USDT","meta":{"AccessKey":"123","SecretKey":"123","Front":"http://127.0.0.1:6666/test"}}. labelthuộc tính là để thiết lập một nhãn cho đối tượng trao đổi truy cập bởi các hiện tạiGiao thức hải quan, có thể thu được bằng cáchexchange.GetLabel()trong chiến lược.
  • Tên: Tên chiến lược
  • nút: Docker ID Xác định docker nào để chạy trên. Nếu thuộc tính này không được đặt, docker sẽ được gán để chạy tự động.
  • Thời gian: Thời gian K-line mặc định K-line period parameter, 60 nghĩa là 60 giây.
  • Chiến lược: ID chiến lược Nó có thể được lấy bằng cách sử dụngGetStrategyList method.

cài đặt sai Đối tượng JSON

Nếu giao dịch trực tiếp được tạo bởi API mở rộng, API mở rộngRestartRobot (RobotId, Settings)phải được sử dụng để khởi động lại, vàsettingsCác giao dịch trực tiếp được tạo trên trang nền tảng có thể được khởi động lại thông qua API mở rộng hoặc bằng cách nhấp vào nút trên trang.settingsNếu bạn chỉ vượt qua cácRobotIdtham số, bắt đầu giao dịch trực tiếp theo cài đặt giao dịch trực tiếp hiện tại.

GetRobotDetail

CácGetRobotDetailphương pháp được sử dụng để có được chi tiết của giao dịch trực tiếp dưới tài khoản FMZ Quant Trading Platform tương ứng vớiAPI KEYID của giao dịch trực tiếp được truy xuất là ID giao dịch trực tiếp được chỉ định bởirobotId 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: Thời gian khấu trừ tiếp theo là thời gian hết hạn hiệu quả sau khi khấu trừ hiện tại.
  • Lưu ý: Thời gian đã qua.
  • tiêu thụ: Số lượng tiêu thụ (0,125 USD = 12500000 / 1e8).
  • Ngày: Ngày tạo ra.
  • fixed_id: Docker ID được gán khi giao dịch trực tiếp đang chạy. Nếu tự động, giá trị là -1.
  • is_manager: Bạn có quyền quản lý giao dịch trực tiếp này không.
  • is_sandbox: Cho dù đó là một giao dịch mô phỏng.
  • Tên: Tên của giao dịch trực tiếp.
  • node_id: Docker ID.
  • pexchanges: Đối tượng trao đổi của giao dịch trực tiếp, 123 là pid, và Futures_OKCoin là tên trao đổi.
  • plabels: Thông tin thẻ của đối tượng trao đổi được cấu hình trong giao dịch trực tiếp.
  • Lợi nhuận: Dữ liệu về lợi nhuận giao dịch trực tiếp.
  • công khai: liệu giao dịch trực tiếp có công khai hay không.
  • cập nhật: Thời gian hoạt động cuối cùng.
  • strategy_exchange_pairs: Đối tượng trao đổi được cấu hình, đặt thông tin cặp giao dịch.
  • wd: Cho dù để bật báo động ngoại tuyến.

CácrobotIdCác tham số được sử dụng để chỉ định ID của giao dịch trực tiếp mà các chi tiết được thu thập.GetRobotListphương pháp để thu thập thông tin về giao dịch trực tiếp dưới tài khoản, chứa ID giao dịch trực tiếp.

robotId đúng số

Mô tả thuộc tính củastrategy_exchange_pairs, lấy ví dụ các dữ liệu sau:

"[60,[44314,42960,15445,14703],[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]]"

Dữ liệu đầu tiên60đại diện cho bộ thời gian K-line mặc định bằng cách giao dịch trực tiếp là 1 phút, cụ thể là 60 giây.

[44314,42960,15445,14703]là đối tượng trao đổipidđược cấu hình để giao dịch trực tiếp (theo lệnh bổ sung).

[\"BTC_USDT\",\"BTC_USDT\",\"ETH_USDT\",\"ETH_USDT\"]là Đặt cặp giao dịch cho đối tượng trao đổi được cấu hình bởi live giao dịch (theo thứ tự cộng và trong thư từ một đến một vớipid).

GetAccount

CácGetAccountphương pháp được sử dụng để có được thông tin tài khoản tương ứng vớiAPI KEYtrong yêu cầu của tài khoản nền tảng giao dịch FMZ Quant.

{
    "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
    }
}
  • số dư: số dư tài khoản Giá trị ở đây là một số nguyên do điều khiển chính xác. Để chuyển đổi nó thành một giá trị thực tế, bạn cần phải chia nó cho 1e8 (tức là 10 lên bậc 8). Giá trị thực tế ở đây là: 229.44702436

GetExchangeList

CácGetExchangeListphương pháp được sử dụng để có được danh sách các sàn giao dịch và thông tin cấu hình cần thiết được hỗ trợ bởi FMZ Quant Trading Platform.

KhiisSummarytham số làfalse, dữ liệu được trả về là:

{
    "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
    }
}

KhiisSummarytham số làtrue, dữ liệu được trả về là:

{
    "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
    }
}
  • meta: trao đổi siêu dữ liệu cấu hình.

CácisSummarytham số được sử dụng để xác định liệu dữ liệu được trả về là thông tin tóm tắt.

isTóm tắt đúng bool

DeleteNode

CácDeleteNode(Nid)phương pháp được sử dụng để xóa các nút docker tương ứng vớiAPI KEYtrong yêu cầu tài khoản nền tảng giao dịch FMZ Quant. ID nút docker bị xóa là ID nút docker được chỉ định bởinid parameter.

{
    "code":0,
    "data":{
        "result":true,
        "error":null
    }
}
  • kết quả: Cho dù chương trình docker liên quan được xóa thành công.

Cácnidbạn có thể sử dụngGetNodeListphương pháp để có được thông tin về các dockers của tài khoản.

không đúng số

DeleteRobot

CácDeleteRobot(RobotId, DeleteLogs)phương pháp được sử dụng để xóa giao dịch trực tiếp tương ứng vớiAPI KEYtrong yêu cầu dưới tài khoản nền tảng giao dịch FMZ Quant.robotId parameter.

{
    "code":0,
    "data":{
        "result":0,
        "error":null
    }
}
  • Kết quả: Kết quả phản hồi của hoạt động xóa giao dịch trực tiếp. 0: Xóa bình thường. -2: Việc xóa đã thành công, nhưng docker liên quan đến giao dịch trực tiếp không thể được liên lạc. Xin xóa tập tin 123.db3 bằng tay!

Các thông sốrobotIdđược sử dụng để xác định ID của giao dịch trực tiếp để được xóa.GetRobotListphương pháp để có được thông tin về giao dịch trực tiếp theo tài khoản, chứa ID giao dịch trực tiếp.

robotId đúng số CácdeleteLogstham số được sử dụng để thiết lập xem có nên xóa nhật ký giao dịch trực tiếp hay không, nếu thông qua một giá trị thực (ví dụ:true), nhật ký giao dịch trực tiếp sẽ bị xóa.

deleteLogs đúng bool

GetStrategyList

CácGetStrategyListphương pháp được sử dụng để thu thập thông tin chiến lược nền tảng.

{
    "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
    }
}
  • tất cả: Tổng số chiến lược được tìm thấy bởi truy vấn bộ lọc.
  • chiến lược: Thông tin cụ thể về chiến lược được truy vấn.

Cácoffsettham số được sử dụng để thiết lập sự dịch chuyển khi truy vấn.

dỡ bỏ đúng số Cáclengththam số được sử dụng để thiết lập chiều dài của truy vấn.

chiều dài đúng số CácstrategyTypetham số được sử dụng để thiết lập loại chiến lược được truy vấn.

  • strategyTypethiết lập tham số0: tất cả các chiến lược.
  • strategyTypethiết lập tham số1: Chiến lược là công khai.
  • strategyTypethiết lập tham số2: chiến lược phải được xem xét lại.

chiến lược đúng số Cáccategorytham số được sử dụng để thiết lập danh mục chiến lược được truy vấn.

  • categorythiết lập tham số-1: tất cả các chiến lược.
  • categorythiết lập tham số0Chiến lược tùy chỉnh.

Nhóm đúng số CácneedArgstham số được sử dụng để thiết lập liệu chiến lược được truy vấn có tham số hay không.

  • needArgsthiết lập tham số0: tất cả các chiến lược.

cầnArgs đúng số Cáclanguagetham số được sử dụng để thiết lập ngôn ngữ lập trình của chiến lược được truy vấn.

  • languagecài đặt tham số0: Ngôn ngữ JavaScript.
  • languagecài đặt tham số1: Ngôn ngữ Python.
  • languagecài đặt tham số2: Ngôn ngữ C++.
  • languagecài đặt tham số3: Chiến lược trực quan hóa.
  • languagecài đặt tham số4Ngôn ngữ của tôi.
  • languagecài đặt tham số5: Ngôn ngữ Pine.

ngôn ngữ đúng số Cáckwtham số được sử dụng để thiết lập từ khóa của chiến lược được truy vấn.

  • Thiết lập một chuỗi trống có nghĩa là không sử dụng lọc từ khóa.

kw đúng chuỗi

NewRobot

CácNewRobotphương pháp được sử dụng để tạo ra một giao dịch trực tiếp theoAPI KEYtương ứng với tài khoản nền tảng giao dịch lượng tử FMZ trong yêu cầu.

{
    "code":0,
    "data":{
        "result":591988,
        "error":null
    }
}
  • Kết quả: Việc tạo thành công và ID giao dịch trực tiếp được trả về.

Các thông số cấu hình giao dịch trực tiếp,settingsđịnh dạng tham số là như sau:

{
    "appid":"test",
    "args":[],
    "exchanges":[
        {"pair":"SOL_USDT","pid":123}
    ],
    "group":123,
    "name":"test",
    "node":123,
    "period":60,
    "strategy":123
}
  • Nhóm: Xác định nhóm giao dịch trực tiếp.
  • args: Các tham số chiến lược, hoặc một mảng trống nếu chiến lược không có tham số.
  • trao đổi: Đối với cấu hình đối tượng trao đổi, vui lòng tham khảoRestartRobot interface.

cài đặt đúng Đối tượng JSON

Trong cấu hình củaeidtrongsettingstham số,"meta":{"AccessKey": "123", "SecretKey": "123"}thông tin nhạy cảm này không được lưu trữ bởi nền tảng giao dịch FMZ Quant. Dữ liệu này được chuyển tiếp trực tiếp đến chương trình docker, vì vậy thông tin này phải được cấu hình mỗi khi một giao dịch trực tiếp được tạo hoặc khởi động lại.

Nếu chúng ta tạo ra một đối tượng trao đổi giao dịch trực tiếp bằng cách sử dụng giao thức tùy chỉnh, khi cấu hìnhsettingstham số, chúng ta có thể sử dụng các thiết lập sau đây choexchangesthuộc tính:

{
    "eid": "Exchange",
    "label": "test",
    "pair": "ETH_BTC",
    "meta": {
        "AccessKey": "123",
        "SecretKey": "123",
        "Front": "http://127.0.0.1:6666/test"
    }
}

labelthuộc tính là để thiết lập một nhãn cho đối tượng trao đổi truy cập bởi các giao thức tùy chỉnh hiện tại, có thể được thu thập bởi cácexchange.GetLabel()trong chiến lược.

PluginRun

CácPluginRunphương pháp được sử dụng để gọicông cụ debugchức năng của nền tảng giao dịch FMZ Quant; Chỉ có ngôn ngữ JavaScript được hỗ trợ.

{
    "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
    }
}
  • kết quả: Công cụ gỡ lỗi trả về dữ liệu kết quả thử nghiệm sau khi thực hiện mã JavaScript đã được truyền thành công.

Các thông số cài đặt trong công cụ gỡ lỗi,settingscấu hình, bao gồm mã thử nghiệm trongsourcethuộc tính.settingsđịnh dạng tham số là như sau:

{
    "exchanges":[{"pair":"SOL_USDT","pid":123}],
    "node":123,
    "period":60,
    "source":"function main() {Log(\"Hello FMZ\")}"
}
  • nguồn: Mã cần gỡ lỗi.
  • node: Docker ID, bạn có thể chỉ định docker nào để chạy giao dịch trực tiếp. Nếu giá trị là -1, điều đó có nghĩa là phân bổ tự động.
  • trao đổi: Đối với cấu hình đối tượng trao đổi, vui lòng tham khảoRestartRobot interface.

cài đặt đúng Đối tượng JSON

{"eid": "OKEX", "pair": "ETH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}} {"eid": "Huobi", "pair": "BCH_BTC", "meta" :{"AccessKey": "123", "SecretKey": "123"}}

Đối vớiexchangesthuộc tính trongsettings, chỉ cần một thiết lập khi gọiPluginRunmethod (chỉ một đối tượng trao đổi được hỗ trợ khi sử dụng trong trang công cụ gỡ lỗi). Không có lỗi sẽ được báo cáo khi bạn đặt 2 đối tượng trao đổi trongsettings, nhưng một lỗi sẽ được báo cáo khi đối tượng trao đổi thứ hai được truy cập trong mã.

GetRobotLogs

CácGetRobotLogsphương pháp được sử dụng để có được thông tin nhật ký giao dịch trực tiếp dưới tài khoản FMZ Quant Trading Platform tương ứng vớiAPI KEYID của nền tảng giao dịch trực tiếp được lấy là ID nền tảng giao dịch trực tiếp được chỉ định bởirobotId 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
    }
}
  • logs: Thông tin nhật ký: Một số mục dữ liệu nhật ký được tìm thấy trong trường Arr. Cấu trúc dữ liệu đầu tiên trong nhật ký là bản ghi nhật ký trong bảng nhật ký chiến lược trong cơ sở dữ liệu giao dịch trực tiếp. Cấu trúc dữ liệu thứ hai trong nhật ký là bản ghi nhật ký trong bảng nhật ký chiến lược trong cơ sở dữ liệu giao dịch trực tiếp. Cấu trúc dữ liệu thứ ba trong nhật ký là bản ghi nhật ký trong bảng nhật ký chiến lược trong cơ sở dữ liệu giao dịch trực tiếp.
  • Tóm tắt: Dữ liệu thanh trạng thái giao dịch trực tiếp.

CácrobotIdtham số được sử dụng để chỉ định Id của giao dịch trực tiếp mà thông tin nhật ký phải được thu thập. Bạn có thể sử dụngGetRobotListphương pháp để thu thập thông tin về giao dịch trực tiếp dưới tài khoản, trong đó có ID giao dịch trực tiếp.

robotId đúng số CáclogMinIdtham số được sử dụng để chỉ định ID tối thiểu của Log.

logMinId đúng số CáclogMaxIdtham số được sử dụng để xác định Id tối đa của Log.

logMaxId đúng số CáclogOffsettham số được sử dụng để thiết lập sự dịch chuyển, sau khi xác định phạm vi bằnglogMinIdlogMaxId, bù dựa trênlogOffsetBắt đầu như là vị trí khởi đầu để lấy dữ liệu.

LogOffset đúng số Các thông sốlogLimitđược sử dụng để thiết lập số lượng bản ghi dữ liệu được chọn sau khi xác định vị trí khởi đầu.

logLimit đúng số CácprofitMinIdtham số được sử dụng để thiết lập ID tối thiểu của nhật ký lợi nhuận.

Lợi nhuận đúng số Các thông sốprofitMaxIdđược sử dụng để thiết lập ID tối đa của nhật ký lợi nhuận.

lợi nhuậnMaxId đúng số Các thông sốprofitOffsetđược sử dụng để thiết lập độ dịch chuyển (số lượng bản ghi được bỏ qua) như vị trí bắt đầu.

Lợi nhuận đúng số Các thông sốprofitLimitđược sử dụng để thiết lập số lượng bản ghi dữ liệu được chọn sau khi xác định vị trí khởi đầu.

Lợi nhuận đúng số Các thông sốchartMinIdđược sử dụng để thiết lập ID tối thiểu của bản ghi dữ liệu biểu đồ.

biểu đồMinId đúng số Các thông sốchartMaxIdđược sử dụng để thiết lập ID tối đa của bản ghi dữ liệu biểu đồ.

biểu đồMaxId đúng số Các thông sốchartOffsetđược sử dụng để thiết lập độ dịch chuyển.

biểu đồOffset đúng số Các thông sốchartLimitđược sử dụng để thiết lập số lượng hồ sơ để có được.

chartLimit đúng số Các thông sốchartUpdateBaseIdđược sử dụng để thiết lập ID cơ sở sau khi truy vấn được cập nhật.

chartUpdateBaseId đúng số Các thông sốchartUpdateDateđược sử dụng để thiết lập dữ liệu ghi lại cập nhật thời gian, và nó sẽ lọc ra các bản ghi lớn hơn hơn là dấu thời gian này.

chartUpdateDate đúng số Các thông sốsummaryLimitđược sử dụng để thiết lập số lượng Byte của dữ liệu thanh trạng thái để được truy vấn. kiểu số nguyên để truy vấn dữ liệu thanh trạng thái của live giao dịch. Thiết lập 0 có nghĩa là không cần phải truy vấn thanh trạng thái thông tin, và thiết lập cho số không phải là 0 cho thấy số của bytes của thông tin thanh trạng thái để được truy vấn (the giao diện không giới hạn số lượng dữ liệu, vì vậy bạn có thể chỉ định một lớn hơnsummaryLimittham số để có được tất cả thanh trạng thái dữ liệu thanh trạng thái được lưu trữ trong dữ liệu trả vềsummary.

Tóm lại đúng số

  • Bảng nhật ký chiến lược trong cơ sở dữ liệu CácArrgiá trị thuộc tính trong phần tử đầu tiên củaLogsGiá trị thuộc tính (cấu trúc mảng) trong dữ liệu trả về (dữ liệu nhật ký) được mô tả như sau:

    "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, "", ""]
    ],
    
    id logType eid Đặt hàng giá cả số tiền thêm ngày hợp đồngLoại hướng
    3977 3 Tương lai_OKCoin "" 0 0 Bán ((688.9, 2): 20016 1526954372591 "" ""
    3976 5 "" "" 0 0 OKCoin:this_week too many positions, long: 2 1526954372410 "" ""

    extralà thông báo đính kèm của nhật ký in.

    Các loại gỗ cụ thể được đại diện bởilogTypeCác giá trị được mô tả như sau:

    logType: 0 1 2 3 4 5 6
    Ý nghĩa của logType: Mua Bán hàng RETRACT ERROR Lợi nhuận Thông điệp Bắt đầu lại
  • Bảng nhật ký biểu đồ lợi nhuận trong cơ sở dữ liệu Dữ liệu trong bảng ghi nhật ký biểu đồ phù hợp với nhật ký lợi nhuận trong bảng ghi nhật ký chiến lược.

    "Arr": [
        [202, 2515.44, 1575896700315],
        [201, 1415.44, 1575896341568]
    ]
    

    Lấy một trong các dữ liệu nhật ký như một ví dụ:

    [202, 2515.44, 1575896700315]
    

    202là logID; 2515.44là giá trị lợi nhuận;1575896700315là dấu thời gian.

  • Bảng nhật ký biểu đồ trong cơ sở dữ liệu

    "Arr": [
        [23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
        [23636, 5, "{\"x\":1575960300000,\"y\":3.0735}"]
    ]
    

    Lấy một trong các dữ liệu nhật ký như một ví dụ:

    [23637, 0, "{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"],
    

    23637là nhật kýID, 0là chỉ số của chuỗi dữ liệu biểu đồ, và dữ liệu cuối cùng"{\"close\":648,\"high\":650.5,\"low\":647,\"open\":650,\"x\":1575960300000}"là dữ liệu nhật ký; Dữ liệu này là dữ liệu đường K trên biểu đồ.

Thư viện tích hợp Địa điểm giao dịch