代码

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绘制图表的更多相关文章

  1. BotVS开发基础—2.5 绘制图表

    代码 import time import math def main(): chart = { # 用于初始化 图表的对象 'title': {'text': "line数值触发 plot ...

  2. BotVS开发基础—Python API

    代码 import json def main(): # python API列表 https://www.botvs.com/bbs-topic/443 #状态信息 LogStatus(" ...

  3. BotVS开发基础—2.5 策略交互

    一.代码部分 isOpen = False; # 是否 开仓 price = 0; # 全局变量 价格 amount = 0; # 全局变量 下单量 def exec_command(command) ...

  4. BotVS开发基础—2.1 账户、行情、K线、深度

    代码 import json def main(): Log("账号信息:", exchange.GetAccount()); # Log("K 线数据:", ...

  5. BotVS开发基础—2.7 指标MACD

    代码 def main(): while true: records = _C(exchange.GetRecords); # 获取K线数据 ,默认为策略界面设置的K线周期, _C 是一个容错的内置函 ...

  6. BotVS开发基础—2.7 指标MA

    代码 #计算一小时 MA5均线 # 时间 2017-06-29 00:00:00 -2017-06-30 00:00:00 1小时 实盘级Tick # 平台 OCKCoin BTC def main( ...

  7. BotVS开发基础—2.5 状态信息显示表格

    代码 import json def main(): #part 1 bol = True num = 10; # str = "ABC"; # 字符串 list = [1, 2, ...

  8. BotVS开发基础—2.4 获取订单、取消订单、获取未完成订单

    代码 RetryDelay = 1500; def CancelPendingOrders(exch, orderType): # 取消所有未完成的挂单, 参数1 交易所 参数2 类型 global ...

  9. BotVS开发基础—2.3 下市价单 交易

    代码 def main(): ticker = exchange.GetTicker(); Log("初始账户信息:", exchange.GetAccount()); # 用于对 ...

随机推荐

  1. 说说BroadcastReceiver和ContentProvider

    上一篇说了Activity,Fragment和Service,今天来说说四大组件中的另外两个吧. BroadcastReceiver: 广播在实际开发中非常有用,是各个组件间通讯的利器.广播接收器分为 ...

  2. 如何制作一个完美的全屏视频H5

    写在前面的话: 最近一波H5广告火爆整个互联网圈,身为圈内人,我们怎能     不! 知!道! :( 嘘!真不知道的也继续看下去,有收获 ↓ ) So,搞懂这个并不难. 这篇文章将带你从头到尾了解H5 ...

  3. 整合spring+mybatis遇到的问题01

    报错如下:No matching bean of type [com.mybaties.test.service.UserService] found for dependency: expected ...

  4. Centos7 安装keepalived实现高可用

    场景:尝试安装keepalived实现高可用,进而在suse环境中部署. 测试过程需要配合Nginx的相关知识:Centos7 Nginx安装 1 安装过程 问题 !!! OpenSSL is not ...

  5. HDOJ2008-数值统计

    Problem Description 统计给定的n个数中,负数.零和正数的个数.   Input 输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然 ...

  6. Keras Xception Multi loss 细粒度图像分类

    作者: 梦里茶 如果觉得我的工作对你有帮助,就点个star吧 关于 这是百度举办的一个关于狗的细粒度分类比赛,比赛链接: http://js.baidu.com/ 框架 Keras Tensorflo ...

  7. JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?

    前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...

  8. spring持久类po或者javabean为什么常常实现序列化?

    无论用hibernate或者mybatis结合spring做开发还是其他,系统里持久类往往要实现序列化, implements Serializable.我还是比较好奇,为什么要这样做呢?一直只知道个 ...

  9. ffmpeg编解码视频导致噪声增大的一种解决方法

    一.前言 ffmpeg在视音频编解码领域算是一个比较成熟的解决方案了.公司的一款视频编辑软件正是基于ffmpeg做了二次封装,并在此基础上进行音视频的编解码处理.然而,在观察编码后的视频质量时,发现图 ...

  10. Head First 设计模式目录

    这确实是本好书啊,看其他的书,都会有种看了就忘,看着看着就会有种昏昏欲睡的感脚,然而,这本书却能让我在看了之后记住自己看了些什么. 并且在本书的开头,作者也在一个劲的告诉你如何让自己来记住自己看了什么 ...