資源の読み込みに... 荷物...

拡張された API インターフェース

FMZ Quantは,FMZ Quant トレーディングプラットフォームの様々な機能へのプログラムによる呼び出しをサポートするために,プラットフォームの拡張APIインターフェースを開設しました.

ApiKey を作成する

FMZ 量子取引プラットフォームは, 拡張された API インターフェース,およびAPI KEY設定できます. アカウント設定の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"APIインターフェイス"の"API"の"API"の"API"の"API"の"API"の"API"の"API"の"API"の"API"の"API"の"API (https://www.fmz.com/m/accountページをクリックします. 新しい ApiKey ボタンをクリックして拡張子を作成します.API KEY.

作成するときに入力ボックスを編集できます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
ノンセエラー 3
誤った方法 4
誤ったパラメータ 5
内部の未知のエラー 6

ライブ・トレードコード

についてGetRobotListインターフェース,GetRobotDetailインターフェース そしてGetRobotLogsインターフェースのデータ返信statusフィールド: ライブ取引状態コード

  • 正常スタート
    ステータス コード
    無効 0
    稼働中 1
    停止する 2
    終了しました 3
    停止しました 4
    戦略には誤りがある 5
  • 異常
    ステータス コード
    ストラテジーは期限切れです. また購入するには,ライターに連絡してください. -1
    ドッカーが見つかりませんでした. -2
    戦略のコンパイルエラー -3
    ライブ取引は既に実行されています. -4
    バランスが不十分 -5
    同期戦略の数が制限を上回る -6

検証方法

拡張 API インターフェースを呼び出すときに 2 つの検証方法があります.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インタラクティブなコマンドメッセージを送信するには,次のリンクを参照してください. ライブ取引IDのライブ取引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リアルタイム取引ですIDFMZ量子取引プラットフォームの

メッセージボックスに設定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)
}

TradingViewアラートを実現するために FMZ Quant の拡張 API を使用します シグナル取引

拡張 API インターフェイスの説明

  • FMZ 量子取引プラットフォームの拡張 API インターフェース クエリのパラメータを添付します.?) 要求の直後にhttps://www.fmz.com/api/v1要求のパラメータは以下の通りです.Python:

    {
        "version"   : "1.0",
        "access_key": "xxx",
        "method"    : "GetNodeList",
        "args"      : [],
        "nonce"     : 1516292399361,
        "sign"      : "085b63456c93hfb243a757366600f9c2"
    }
    
    フィールド 指示
    バージョン バージョン番号
    アクセス_キー アクセスキー,アカウント管理ページでそれを申請します.
    方法 特定の呼び出し方法
    アグス 呼び出された特定のメソッドのパラメータリスト.
    ノンセ タイムスタンプはミリ秒で,標準タイムスタンプから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 量子取引プラットフォームの口座で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
    }
}

返される値のフィールドの記述 (文字どおりの意味は明白で,繰り返さない):

  • すべて: 現金口座に関連付けられている港人数.
  • ノード:ドッカーノードの詳細を記録する.
    • バージョン番号
    • 都市: あなたが位置する都市.
    • is_owner: true はプライベートドッカー, false はパブリックドッカーを示します.
    • 負荷: 負荷,戦略インスタンスの数
    • public: 0 はプライベート・ドッカー,1 はパブリック・ドッカー
    • 地域:地理的位置
    • バージョン:ドッカーに関する詳細なバージョン情報.
    • wd:オフラインアラームを有効にするかどうか 0 は有効でないことを意味します. 1 クリックで展開するドーカーは,いくつかの追加の情報を含んでいます.フィールドは前置きで始まりますecs_そしてunit_ワンクリックデプロイドッカーサーバーの関連情報 (オペレーターの名前,構成,状態など),請求サイクル,価格,その他の情報などを記録します. ここで繰り返しません.

パラメーターなし

GetRobotグループリスト

GetRobotGroupList()ライブ取引グループリストを返します. FMZ Quant トレーディング プラットフォームの口座の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 量子取引プラットフォームアカウントで追加されました について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 量子取引プラットフォームの取引所のIDeidいくつかの構成やパラメータで使用されます.

パラメーターなし

GetRobotリスト

についてGetRobotListリストを取得するために使用されます. FMZ 量子取引プラットフォームの口座による取引 と一致する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: ライブ取引グループのID. 戦略 ライブ取引がデフォルトグループにある場合,group_id field.

パイジングクエリのオフセット オフセット 偽り 番号 パージングクエリの長さ設定 長さ 偽り 番号 問い合わせられるライブ取引のステータスを指定し,拡張された API インターフェースを参照してください.ライブ・トレードコード合格する-1リアルタイムで取引できる ロボット 状態 偽り 番号 このラベルのすべてのライブトレードをフィルターすることができます. ラベル 偽り 文字列 キーワードで検索する キーワード 偽り 文字列

やってみろPythonlanguageの拡張 API インターフェース検証方法例えば:print(api('GetRobotList'))リアルタイムで取引情報print(api('GetRobotList', 'member2')): カスタムラベルメンバー2ですべてのライブ取引の情報を印刷します.print(api('GetRobotList', 0, 5, -1, 'member2'))0から5までのページで,メンバー2でラベル付けされた最大5つのロボットをリストします.

コマンドロボット

についてCommandRobotインタラクションを送信するために使用されます. FMZ 量子取引プラットフォームのライブ取引へのコマンド 銀行口座API KEY要求書に インタラクションコマンドを受信しているライブ取引の 取引 ID は,robotIdパラメータと インタラクションコマンドは,GetCommand()機能 捕獲する戦略を 呼び出しました

{
    "code":0,
    "data":{
        "result":true,
        "error":null
    }
}
  • 結果: インタラクティブなコマンドがうまく送信されたかどうか;実行されていないライブ取引にコマンドを送信するときは,返されたデータの結果は偽である.

パラメータrobotIdID を指定するために使用されます. インタラクティブなコマンドを受け取ります. についてGetRobotList直接の情報を得る方法 取引 ID を含むアカウントで取引する.

ロボット 本当 番号 パラメーターcmdボットに送信されるインタラクティブなコマンドです.コマンドは関数によってキャプチャされます.GetCommand()戦略コードにおけるインタラクティブ・ロジックの具体的実施については,GetCommand()機能についてFMZ 量子取引プラットフォーム API マニュアル.

cmd 本当 文字列

ライブ・トレーディング・ストラテジーは,この戦略が実行されていると仮定すると,ライブ・トレーディング・IDは123です.

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

この章で Python テストスクリプトを使用すると, FMZ 量子取引プラットフォームの拡張 API にアクセスします.api("CommandRobot", 123, "test command")ID123のライブ取引は,インタラクティブなコマンドを受け取ります.test commandログ関数出力でプリントします

ストップロボット

StopRobot(RobotId)要求するために使用されます.API KEYFMZ Quant Tradingのライブ取引に対応する 実行を停止するライブ取引IDは,ライブです 取引 ID は,robotId parameter.

{
    "code":0,
    "data":{
        "result":2,
        "error":null
    }
}
  • 結果:ライブ取引のステータスコードは2で,停止を意味します.

パラメータrobotIdID を指定するために使用されます. 直接取引を停止することができます.GetRobotListオンライン取引の情報を取得するための方法 リアル取引 ID を含むアカウントです

ロボット 本当 番号

ロボットを再起動

についてRestartRobot直接取引を再開するために使用されます.API KEYFMZ Quant トレーディング プラットフォームのアカウントに対応するリニューアルされたライブ トレーディングのIDは,robotId parameter.

{
    "code":0,
    "data":{
        "result":1,
        "error":null
    }
}
  • 結果:ライブ取引状態コード,1は実行する.

についてrobotIdパラメータは,Idを指定するために使用されます リアルタイムで取引を再開できます.GetRobotListオンライン取引の情報を取得するための方法 リアル取引 ID を含むアカウントです

ロボット 本当 番号 パラメーター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設定したい場合は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 KEYFMZ 量子取引プラットフォームによって保存されず,これらのデータは直接ドッカープログラムに送信されます.このタイプの設定を使用する場合,ライブ取引が作成または再起動するたびに情報は設定する必要があります.
    • 結びつけられるカスタムプロトコル交換対象 構成情報を通すことができます:{"eid":"Exchange","label":"test exchange","pair":"BTC_USDT","meta":{"AccessKey":"123","SecretKey":"123","Front":"http://127.0.0.1:6666/test"}}. label交換オブジェクトのラベルを設定します.カスタムプロトコル取得することができる.exchange.GetLabel()戦略における役割です
  • 戦略名
  • ノード: ドッカー ID どのドーカーで実行するか指定する.この属性が設定されていない場合,ドーカーは自動的に実行するように割り当てられます.
  • 期間:デフォルトのK線期間 K線周期パラメータ 60は60秒です
  • 戦略: 戦略ID 試験用薬の試験用薬のGetStrategyList method.

設定 偽り JSON オブジェクト

拡張APIによって生動取引が作成された場合,拡張APIRestartRobot (RobotId, Settings)再起動するために使用する必要があります.settingsパラメータをパスする必要があります. プラットフォームのページで作成されたライブ取引は,拡張APIまたはページのボタンをクリックして再起動できます.settingsパラメーター.RobotIdパラメータ,現在のライブ取引設定に従ってライブ取引を開始します.

GetRobot詳細について

についてGetRobotDetailFMZ 量子取引プラットフォームの口座のライブ取引の詳細を取得するために使用されます.API KEY取得するライブ取引のIDは,ライブ取引のIDで指定される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: ライブ取引が実行されているときに割り当てられるドッカーID. 自動的に実行されている場合,値は -1.
  • is_manager: このライブ取引を管理する権限を持っているかどうか.
  • is_sandbox: シミュレーションされた取引かどうか.
  • 名前:ライブ取引の名前.
  • node_id: ドッカー ID。
  • pexchanges: ライブ取引の交換対象はPidで,取引所名はFutures_OKCoinです.
  • plabels: ライブ取引で設定された交換オブジェクトのタグ情報.
  • 利益: 直接取引の利益データ.
  • 公開: ライブ取引が公開されているかどうか.
  • 更新:最後のアクティブ時間
  • strategy_exchange_pairs: 設定された交換オブジェクト,設定された取引ペア情報.
  • wd:オフラインアラームを有効にするかどうか.

についてrobotIdパラメータは,詳細を取得するライブ取引のIDを指定するために使用されます.GetRobotList口座内のライブ取引に関する情報を入手するための方法,そのアカウントにはライブ取引IDが含まれます.

ロボット 本当 番号

属性の記述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で構成された交換オブジェクトのための取引ペアセット 取引 (加算順と1対1の対応) とpid).

アカウントを取得

についてGetAccount口座情報を取得するために使用されます.API KEYFMZ 量子取引プラットフォームの口座の要求に

{
    "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) で割らなければなりません.実際の値は: 229.44702436

GetExchangeList を取得する

についてGetExchangeListFMZ Quant Trading Platformによってサポートされる取引所のリストと必要な構成情報を取得するために使用されます.

その時に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パラメータは返されたデータが要約情報であるかどうかを指定するために使用されます.

概要 本当 ボール

削除Node

についてDeleteNode(Nid)この方法が,ドッカーノードを削除するAPI KEY削除されたドーカーノードIDは,ドーカーノードIDによって指定されたものです.nid parameter.

{
    "code":0,
    "data":{
        "result":true,
        "error":null
    }
}
  • 結果:関連ドッカープログラムが成功して削除されるかどうか.

についてnid削除するドーカーのIDを指定するために使用されます.GetNodeList口座のドーカーに関する情報を得る方法です.

ニード 本当 番号

削除Robot

についてDeleteRobot(RobotId, DeleteLogs)直接取引を削除するために使用されます.API KEYFMZ 量子取引プラットフォームアカウントの要求書に 削除されたライブ取引IDは,robotId parameter.

{
    "code":0,
    "data":{
        "result":0,
        "error":null
    }
}
  • 結果: ライブ取引の削除操作のフィードバックの結果. 0: 普通に消す. -2: 削除は成功しましたが,ライブ取引に関連するドッカーと連絡が取れませんでした. 123.db3 ファイルを手動で削除してください!

パラメータrobotIdID を指定するために使用されます. 削除されます.GetRobotListオンライン取引の情報を取得するための方法 リアル取引 ID を含むアカウントです

ロボット 本当 番号 についてdeleteLogsこのパラメータは,真値が表示された場合,ライブ取引ログを削除するかどうかを設定するために使用されます (例えば:true),ライブ取引日記は削除されます.

削除ログ 本当 ボール

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パイソン言語
  • languageパラメータ設定2C++ 言語
  • languageパラメータ設定3視覚化戦略
  • languageパラメータ設定4私の言語
  • languageパラメータ設定5: パイン言語

言語 本当 番号 についてkwこのパラメータは,クエリされる戦略のキーワードを設定するために使用されます.

  • キーワードフィルタリングが使用されないことを意味します

kw 本当 文字列

新ロボット

についてNewRobot直接取引を行うために使用されます.API KEYFMZ 量子取引プラットフォームの口座に対応する

{
    "code":0,
    "data":{
        "result":591988,
        "error":null
    }
}
  • 結果: 作成が成功し,ライブ取引IDが返されます.

ライブ・トレード設定のパラメータ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"}これらの機密情報は FMZ 量子取引プラットフォームに保存されません.これらのデータはドッカープログラムに直接転送されますので,この情報はライブ取引が作成または再起動するたびに設定する必要があります.

設定するときに,このプロトコルの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 量子取引プラットフォームの機能; 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呼び出すときに1つだけ設定する必要があります.PluginRun2つの交換オブジェクトを設定するとエラーが報告されません.settings, しかしコードで第2の交換オブジェクトにアクセスするとエラーが報告されます.

GetRobotLogs を取得する

についてGetRobotLogsFMZ 量子取引プラットフォームのアカウントの下でのライブ取引のログ情報を取得するために使用されます.API KEY取得するライブ取引プラットフォームのIDは,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 フィールドにはいくつかのログデータ項目が見つかりました. ログの最初のデータ構造は,ライブ取引データベースの戦略ログ表のログ記録です. ログの2番目のデータ構造は,ライブ取引データベースの戦略ログ表のログ記録です. ログの3番目のデータ構造は,ライブ取引データベースの戦略ログ表のログ記録です.
  • 概要: ライブ取引状態のバーデータ

についてrobotIdパラメータは,Idを指定するために使用されます ログ情報を取得するライブ取引. 薬剤師がやってくれるGetRobotList情報を得る方法 口座内のライブ取引について, ライブ・トレードID

ロボット 本当 番号 についてlogMinIdこのパラメータは,ログの最小IDを指定するために使用されます.

ログミント 本当 番号 についてlogMaxIdこのパラメータは,ログの最大Idを指定するために使用されます.

ログマックスId 本当 番号 についてlogOffsetこのパラメータは,範囲を決定した後,オフセットを設定するために使用されます.logMinIdそしてlogMaxId計算したlogOffsetデータを取得するための出発地点として開始します.

ログオフセット 本当 番号 パラメーターlogLimit開始位置が決定された後に選択されるデータレコードの数を設定するために使用されます.

ログリミット 本当 番号 についてprofitMinIdこのパラメータは,利益日記の最小IDを設定するために使用されます.

利益数 本当 番号 パラメーターprofitMaxId収益ログの最大Idを設定するために使用されます.

利益マックスId 本当 番号 パラメーターprofitOffsetオフセットを設定するために使用されます (何枚のレコードをスキップするか) スタート位置として.

利益 オフセット 本当 番号 パラメーターprofitLimit開始位置が決定された後に選択されるデータレコードの数を設定するために使用されます.

利益制限 本当 番号 パラメーターchartMinIdグラフデータ記録の最小IDを設定するために使用されます.

チャート 本当 番号 パラメーターchartMaxIdグラフデータ記録の最大Idを設定するために使用されます.

図 MaxId 本当 番号 パラメーターchartOffsetオフセットを設定するために使用されます.

グラフ オフセット 本当 番号 パラメーターchartLimit設定するために使用されます 取得する記録です

chartLimit について 本当 番号 パラメーターchartUpdateBaseIdベース Id を設定するために使用されます. クエリが更新された後です

chartUpdateBaseId について 本当 番号 パラメーターchartUpdateDateデータを設定するために使用されます 記録更新タイムスタンプ,それはより大きな記録をフィルタリングします このタイムスタンプより

chartUpdate日付 本当 番号 パラメーターsummaryLimit設定するために使用されます パラメータは,このパラメータを入力します. 状態バーのデータをクエリするための整数型 取引です 0 に設定すると,ステータスバーに問い合わせする必要がないことを意味します. 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, "", ""]
    ],
    
    id ログタイプ イード 命令された 価格 エクストラ 日付 契約型 方向性
    3977 3 フューチャー_OKCoin "" 0 0 売る (688.9,2): 20016 1526954372591 "" ""
    3976 5 "" "" 0 0 OKCoin:this_week too many positions, long: 2 この週,ポジションが多く,ロング: 2 1526954372410 "" ""

    extra印刷日記の付属メッセージです.

    特定のログの種類は,logType値は次のように記述される.

    ログタイプ: 0 1 2 3 4 5 6
    logType の意味: 購入する 販売 撤回する エラー 利益 メッセージ RESTART について
  • データベース内の利益グラフのログ表 グラフのログ表のデータは,戦略ログ表の利益ログと一致する.

    "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線データです

内蔵ライブラリ トレーディング・ターミナル