代码

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. [luogu P1967][NOIp2013] 货车运输

    题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多 ...

  2. The request sent by the client was syntactically incorrect问题解决

    The request sent by the client was syntactically incorrect意思嘛,google翻译一下 通过日志不难看出,是由参数不匹配造成的. 所以对于Da ...

  3. 构建高并发&高可用&安全的IT系统-高并发部分

    什么是高并发? 狭义来讲就是你的网站/软件同一时间能承受的用户数量有多少 相关指标有 并发数:对网站/软件同时发起的请求数,一般也可代表实际的用户 每秒响应时间:常指一次请求到系统正确响的时间(以秒为 ...

  4. Collections 的 synchronized XXX方法

    摘要 static <T> Collection<T> synchronizedCollection(Collection<T> c) 返回指定 collectio ...

  5. oracle-plsql序列问题

    场景:用来汇总工作中数据库的异常问题! 1 问题 序列在会话中未定义 解决: 创建Sequence后直接查询它的当前值(CURRVAL)会出错,要先调用Sequence对象.NEXTVAL,才能查询当 ...

  6. Jvm垃圾收集器和垃圾回收算法

    概述: 目前内存的动态分配和内存的回收技术已经相当成熟,一切看起来都已经进入了“自动化”时代,为什么还要去了解GC和内存分配呢?原因很简单:当需要排查各种内存泄漏.内存溢出问题时,当垃圾收集器成为系统 ...

  7. ubuntu上安装nginx+mysql+php5-fpm(PHP5 - FastCGI Process Manager)

    题外话:由于近段时间测试环境ssh链路质量不大好,经常短线.故我把整个安装过程放到screen里去执行,以防止断线中断了安装过程.执行screen -S install,这样断线后,只要再执行scre ...

  8. rpm体系下的linux安装httpd+mysql+…

    一.安装apache 在rpm体系下,apache称为httpd. yum install httpd 即可! 二.安装mysql yum install mysql 三.安装mysql-server ...

  9. C++ STL map详解

    一.解释: p { margin-bottom: 0.25cm; direction: ltr; color: #00000a; line-height: 120%; text-align: just ...

  10. 如何使用Androidstudio创建一个新项目

    首先打开AS,然后 选择第一个选项Start a new Android Studio project 填写包名和项目名,点击next 选择项目类型,点击next 选择UI类型(都是死丢丢帮你生成的) ...