使用UDF方式(通用数据反馈)实现k线
因为tradingview 图表自身会去自动调用接口数据,所以需要后端需要提供以下4个接口,而且接口名称必须保持一致(目前未在源码中找到在哪修改接口名字的地方)
本文不啰嗦那么多,想看详细解释和更多配置可以查看官方文档,此处仅对前后端数据交互进行概述
接口名称 /config,传参方式:get
Request:
GET /config
接口返回数据:
{
supports_search: true,//是否支持商品查询和人商品解析逻辑
supports_group_request: false,//只提供所有商品集合的完整信息,并且无法进行商品搜索或单个商品解析,并且supports_search和supports_group_request两者之中有只有一个可以为true。
supported_resolutions: ["1", "5", "15", "30", "60", "1D", "1W", "1M"],//支持的周期数组,周期可以是数字或字符串,例:[1, 15, 240, "D", "6M"],您将在周期中得到 "1 分钟, 15 分钟, 4 小时, 1 天, 6 个月" 。
supports_marks: false,//是否支持在K线上显示标记。
supports_time: true,//将此设置为true假如您的datafeed提供服务器时间(unix时间)。 它仅用于在价格刻度上显示倒计时。
}
接口名称 /symbols,传参方式:get,参数 symbol (
商品名称或者代码)
Request:
GET /symbols?symbol=
接口返回数据
{
"name":"AAPL",//商品名称。您的用户将看到它(作为一个字符串)
"exchange-traded":"NasdaqNM",//交易所。
"exchange-listed":"NasdaqNM",//交易所。
"timezone":"Asia/Shanghai",//交易所时区。
"minmov":1,//最小波动
"minmov2":0,//格式化复杂情况下的价格
"pointvalue":1,
"session":"0900-1100,1400-1500",//商品交易时间,如果全天交易
"has_intraday":false,//布尔值显示商品是否具有日内(分钟)历史数据
"has_no_volume":false,//商品是否拥有成交量数据
"description":"Apple Inc.",//商品说明。这个商品说明将被打印在图表的标题栏中。
"type":"stock",//仪表的可选类型。
"supported_resolutions":[
"D",
"2D",
"3D",
"W",
"3W",
"M",
"6M"
],//周期选择器
"pricescale":100,//价格精度,图表价格量表上的价格线之间的周期
"ticker":"AAPL",//商品的唯一标识符。如果您指定此属性,则其值将用于所有数据请求,未指定ticker时会发生错误。
}
Request:
GET /time
接口返回参数
纯数字,unix时间没有毫秒。 例: 1445324591
接口名称 /history,传参方式:get,
参数
symbol (商品名称或者代码)
from (时间区间 unix时间戳,例如1555224890)
to (时间区间 unix时间戳 ,例如1589439350)
resolution (时间刻度:5 --5分钟 ,D -- 一天,W -- 一周,等..)
GET /history?symbol=
&from= &to= &resolution=
接口返回参数
状态ok
{
s: "ok",//状态码。 预期值:ok|error|no_data
t: [1386493512, 1386493572, 1386493632, 1386493692],//K线时间. unix时间戳 (UTC)
c: [42.1, 43.4, 44.3, 42.8],//收盘价
o: [41.0, 42.9, 43.7, 44.5],//开盘价 (可选)
h: [43.0, 44.1, 44.8, 44.5],//最高价 (可选)
l: [40.4, 42.1, 42.8, 42.3],//最低价(可选)
v: [12000, 18500, 24000, 45000],//成交量 (可选)
}
状态no_data
{
s: "no_data",
nextTime: 1386493512,//下一个K线柱的时间 如果在请求期间无数据 (状态码为no_data)
}
状态error
{
s: "error",
errmsg: '商品错误提示信息',
}
基本的接口这四种即可,复杂的定制化参考官方文档