支持不使用token
验证(直接传secret_key
验证),可以生成一个用来直接访问的URL。例如直接给实盘发交互指令的URL,
可以用于Trading View
或其它场景的WebHook
回调。
对于扩展API接口CommandRobot()
函数,不进行nonce
校验,不限制该接口的访问频率、访问次数。
例如创建的扩展API KEY
中的AccessKey
为:xxx
,SecretKey
为:yyy
,
访问以下链接即可向实盘Id为186515
的实盘发送交互指令消息,消息内容为字符串:"ok12345"
。
https://www.youquant.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,"ok12345"]
支持直接验证方式下,获取请求中的Body
数据,仅支持CommandRobot
接口。例如在Trading View
的WebHook URL
中设置:
https://www.youquant.com/api/v1?access_key=xxx&secret_key=yyy&method=CommandRobot&args=[186515,+""]
注意需要按照此格式设置:args=[186515,+""]
,186515
是优宽量化交易平台的实盘Id。
Trading View
消息框中设置(要发送的请求中的Body数据):
JSON格式:
{"close": {{close}}, "name": "aaa"}
Id
为186515
的实盘即可收到交互命令:{"close": 39773.75, "name": "aaa"}
。
文本格式:
XXXUSDTPERP 穿过(Crossing) 39700.00 close: {{close}}
Id
为186515
的实盘即可收到交互命令:XXXUSDTPERP 穿过(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.youquant.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'))
# 如果APIKEY 没有该接口权限,调用 print(api('RestartRobot', 130350)) 会失败,返回数据:{'code': 4, 'data': None}
# print(api('RestartRobot', 130350))
# 打印ID为:130350的实盘详细信息
print(api('GetRobotDetail', 130350))
package main
import (
"fmt"
"encoding/json"
"net/http"
"io/ioutil"
"net/url"
)
// 填写自己的优宽量化交易平台账号的api key
var apiKey string = "your access_key"
// 填写自己的优宽量化交易平台账号的secret key
var secretKey string = "your secret_key"
var baseApi string = "https://www.youquant.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("调用接口:", method)
ret := api(method, 130350)
fmt.Println("main ret:", ret)
}
使用优宽量化交易平台扩展API实现TradingView报警信号交易 使用优宽量化交易平台扩展API实现TradingView报警信号交易,B站视频链接
token验证 扩展API接口详解