TradingView信号执行策略
假如我们希望TradingView推送消息时在Body中写一些变量信息。例如在TradingView上这样的消息内容:
trading view的消息设置
那么TradingView上是可以如图中设置这样,把消息写在请求的Body中发送给扩展API接口。那这个扩展API接口如何调用呢?
一系列扩展API接口中,我们要用到的是CommandRobot这个接口,通常是这样调用这个接口:
api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[186515,"ok12345"]
这个请求url的query中的access_key和secret_key就是平台的扩展API KEY,这里演示所以设置为xxx和yyyy。那这个KEY怎么创建呢?创建一个就可以,妥善保管,切勿泄露。
创建API KEY
回归正题,继续说CommandRobot接口的问题。如果需要访问的是CommandRobot接口,请求中的method就设置为:CommandRobot。CommandRobot这个接口的功能就是通过平台向某个ID的实盘发送一个交互消息,所以参数args中包含的就是实盘ID和消息,上面这个请求url例子就是向ID为186515的实盘程序,发送消息ok12345。
之前是用这种方式请求扩展API的CommandRobot接口,消息只能写死例如上面例子中的ok12345。如果消息在请求的Body中,就需要用另一种方式:
api/v1?access_key=xxx&secret_key=yyyy&method=CommandRobot&args=[130350,+""]
这样请求就可以通过平台,发送请求中Body的内容作为交互消息给ID为130350的实盘了。如果TradingView上的消息设置为:{"close": {{close}}, "name": "aaa"},那么ID为130350的实盘就会收到交互指令:{"close": 39773.75, "name": "aaa"}
为了让「TradingView信号执行策略」收到交互指令时能正确理解TradingView发送的这个指令,要提前约定一下消息格式:
{
Flag: "45M103Buy", // 标识,可随意指定
Exchange: 1, // 指定交易所交易对
Currency: "BTC_USDT", // 交易对
ContractType: "swap", // 合约类型,swap,quarter,next_quarter,现货填写spot
Price: "{{close}}", // 开仓或者平仓价格,-1为市价
Action: "buy", // 交易类型[ buy:现货买入 , sell:现货卖出 , long:期货做多 , short:期货做空 , closesell:期货买入平空 , closebuy:期货卖出平多]
Amount: "0", // 交易量
}
策略设计成了多交易所架构,所以可以在这个策略上配置多个交易所对象,也就是可以控制多个不同账户的下单操作。只用在信号结构中Exchange指定要操作的交易所即可,设置1就是要让这个信号操作第一个添加的交易所对象对应的交易所账户。如果要操作的是现货ContractType设置为spot,期货就写具体合约,例如永续合约写swap。市价单价格传-1就可以了。Action设置对于期货、现货、开仓、平仓都是有区别的,不能设置错。