BotVS开发基础—2.11 API绘制图表
代码
import time
chart = {
'__isStock': True, # 标记是否为一般图表,有兴趣的可以改成 false 运行看看。
'tooltip': {'xDateFormat': '%Y-%m-%d %H:%M:%S, %A'}, # 缩放工具
'title': {'text': '差价分析图'}, # 标题
'rangeSelector': { # 选择范围
'buttons': [{'type': 'hour', 'count': 1, 'text': '1h'},
{'type': 'hour', 'count': 3, 'text': '3h'},
{'type': 'hour', 'count': 8, 'text': '8h'},
{'type': 'all', 'text': 'All'}],
'selected': 0,
'inputEnabled': False
},
'xAxis': { 'type': 'datetime'}, # 坐标轴横轴 即:x轴, 当前设置的类型是 :时间
'yAxis': { # 坐标轴纵轴 即:y轴, 默认数值随数据大小调整。
'title': {'text': '差价'}, # 标题
'opposite': False, # 是否启用右边纵轴
},
'series' : [ # 数据系列,该属性保存的是 各个 数据系列(线, K线图, 标签等..)
{'name' : "line1", 'id' : "线1, buy1Price", 'data' : []}, # 索引为0, data 数组内存放的是该索引系列的 数据
{'name' : "line2", 'id' : "线2, lastPrice", 'dashStyle' : 'shortdash', 'data' : []}, # 索引为1,设置了dashStyle : 'shortdash' 即:设置 虚线。
]
};
def main():
global chart
ObjChart = Chart(chart); # 调用 Chart 函数,初始化 图表。
ObjChart.reset(); # 清空
while(true):
nowTime = int(round(time.time() * 1000)) # 获取 毫秒 的时间戳 写入X轴。
Log(nowTime)
ticker = _C(exchange.GetTicker); # 获取行情数据
buy1Price = ticker.Buy; # 从行情数据的返回值取得 买一价
lastPrice = ticker.Last + 1; # 取得最后成交价,为了2条线不重合在一起 ,我们加1
ObjChart.add(0, [nowTime, buy1Price]); # 用时间戳作为X值, 买一价 作为Y值 传入 索引0 的数据序列。
ObjChart.add(1, [nowTime, lastPrice]); # 同上。
ObjChart.update(chart); # 更新图表以显示出来。
Sleep(1000 * 60 * 5);
效果

BotVS开发基础—2.11 API绘制图表的更多相关文章
- BotVS开发基础—2.5 绘制图表
代码 import time import math def main(): chart = { # 用于初始化 图表的对象 'title': {'text': "line数值触发 plot ...
- BotVS开发基础—Python API
代码 import json def main(): # python API列表 https://www.botvs.com/bbs-topic/443 #状态信息 LogStatus(" ...
- BotVS开发基础—2.5 策略交互
一.代码部分 isOpen = False; # 是否 开仓 price = 0; # 全局变量 价格 amount = 0; # 全局变量 下单量 def exec_command(command) ...
- BotVS开发基础—2.1 账户、行情、K线、深度
代码 import json def main(): Log("账号信息:", exchange.GetAccount()); # Log("K 线数据:", ...
- BotVS开发基础—2.7 指标MACD
代码 def main(): while true: records = _C(exchange.GetRecords); # 获取K线数据 ,默认为策略界面设置的K线周期, _C 是一个容错的内置函 ...
- BotVS开发基础—2.7 指标MA
代码 #计算一小时 MA5均线 # 时间 2017-06-29 00:00:00 -2017-06-30 00:00:00 1小时 实盘级Tick # 平台 OCKCoin BTC def main( ...
- BotVS开发基础—2.5 状态信息显示表格
代码 import json def main(): #part 1 bol = True num = 10; # str = "ABC"; # 字符串 list = [1, 2, ...
- BotVS开发基础—2.4 获取订单、取消订单、获取未完成订单
代码 RetryDelay = 1500; def CancelPendingOrders(exch, orderType): # 取消所有未完成的挂单, 参数1 交易所 参数2 类型 global ...
- BotVS开发基础—2.3 下市价单 交易
代码 def main(): ticker = exchange.GetTicker(); Log("初始账户信息:", exchange.GetAccount()); # 用于对 ...
随机推荐
- 字典的定义和操作 (Python)
字典是由key and value 构成,无序结构(不想列表那样有固体位置): note:key 是唯一的,没有重复: 字典可以多级嵌套: 定义: dict1 = { # 由等式构成 dict = { ...
- linux常用的监控命令
转自:http://www.cnblogs.com/huangxm/p/6278615.html 1. top 显示所有正在运行而且处于活动状态的实时进程, 而且会定期更新显示结果:它显示了CPU使 ...
- Ambari安装之部署3个节点的HA分布式集群
前期博客 Ambari安装之部署单节点集群 其实,按照这个步骤是一样的.只是按照好3个节点后,再做下HA即可. 部署3个节点的HA分布式集群 (1)添加机器 和添加服务的操作类似,如下图 之后的添加a ...
- Hibernate一对多实例
本文向大家介绍Hibernate实例一对多的情况,可能好多人还不了解Hibernate实例一对多,没有关系,下面通过一个实例来帮助您理解Hibernate实例一对多,希望本文能教会你更多东西. 先看由 ...
- Excel Countif函数用法
公式:=COUNTIF(范围,条件) 例1: 统计A1:A11当中,等于数字3的单元格,结果是4个. 例2:还可以进行大于(>),大于等于(>=),小于(<),小于等于(<=) ...
- jquery中防止冒泡事件
冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件. 下面是html代码部分: <body> <div id="content"> 外层div元素 ...
- JAVA多线程之Synchronized关键字--对象锁的特点
一,介绍 本文介绍JAVA多线程中的synchronized关键字作为对象锁的一些知识点. 所谓对象锁,就是就是synchronized 给某个对象 加锁.关于 对象锁 可参考:这篇文章 二,分析 s ...
- mybatis example使用 and和or联合查询(转)
这两天项目用到ibatis,碰到and or的联合查询,语句像这样的 select * from table where xxx = "xxx" and (xx1="xx ...
- mybatis 详解(四)------properties以及别名定义
上一篇博客我们介绍了mybatis的增删改查入门实例,我们发现在 mybatis-configuration.xml 的配置文件中,对数据库的配置都是硬编码在这个xml文件中,如下图,那么我们如何改进 ...
- Redis从单机到集群,一步步教你环境部署以及使用
Redis作为缓存系统来说还是很有价值的,在大数据方向里,也是需要有缓存系统的.一般可以考虑tachyon或者redis,由于redis安装以及使用更简单,所以还是优先考虑了它.那么在一些场景下为了保 ...