PluginRun
在托管者上执行一段JavaScript代码并返回结果,不创建实盘、不计费,单次执行最长5分钟;代码可以真实下单。
示例
在托管者123上执行一段代码,取回日志和返回值。
python
# api() 见「签名验证」页面的Python示例
import json
settings = {
"source": "function main() {Log(\"Hello FMZ\")}",
"node": 123,
"period": 60,
"exchanges": [{"pid": 123, "pair": "SOL_USDT"}]
}
r = api('PluginRun', settings)
out = json.loads(r['data']['result'])
print(out['logs'], out['result'])返回值
| 类型 | 描述 |
string |
|
参数
| 名称 | 类型 | 必填 | 描述 |
settings | object | 是 | 执行配置,字段见下方属性表。 |
属性
| 名称 | 类型 | 描述 |
settings.source | string | 要执行的代码,入口为 |
settings.strategy | number | 不传 |
settings.node | number | 执行代码的托管者Id;不写或为 |
settings.exchanges | array | 交易所对象配置,写法同 |
备注
与开发工具中的「调试工具」、交易终端插件使用同一种执行机制,见插件原理与编写。
exchanges也可以不引用平台上的交易所账户,直接传入交易所配置,例如{"eid": "Binance", "pair": "ETH_BTC", "meta": {"AccessKey": "...", "SecretKey": "..."}},meta的字段名见GetExchangeList返回的meta。exchanges中通常只设置一个交易所对象(调试工具页面也只支持一个);设置两个不会报错,但代码中访问第二个交易所对象时会报错。
返回示例
json
{
"code": 0,
"data": {
"result": "{\"logs\": [...], \"result\": \"\"}",
"error": null
}
}
其中result解析后为:
json
{
"logs": [{
"PlatformId": "", "OrderId": "0", "LogType": 5, "Price": 0, "Amount": 0,
"Extra": "Hello FMZ", "Currency": "", "Instrument": "", "Direction": "",
"Time": 1732267473108
}],
"result": ""
}