VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 11
声望: 1

首先,使用PySide6,创建窗口应用程序,加载一个 WebEngineView
Web加载使用 KLineChart

加载本地HTML文件

        url = os.getcwd() + os.path.sep + "\\test\\basic.html"

        self.ui.webEngineView.load(QUrl.fromLocalFile(url))
        self.ui.webEngineView.show()

订阅Tick数据,生成1分钟K线,通过JS调用把数据刷新过去
当然,可以改造一下BarGenerator,每一个Tick来之后都回调一下on_bar,这样在图表上就会实时的显示
不然的话,只会一分钟才显示一根K线

    def on_bar(self, bar: BarData):

        js: str = "var newdata = {{close:{close}, high: {high}, low: {low}, open: {open}, timestamp: new Date(\"{timestamp}\").getTime(), volume: {volume} }};chart.updateData(newdata);".format(
            close=bar.close_price,
            high=bar.high_price,
            low=bar.low_price,
            open=bar.open_price,
            timestamp=bar.datetime,
            volume=bar.volume
        )

        self.ui.webEngineView.page().runJavaScript(js)

    def process_tick_event(self, event: Event) -> None:
        """处理行情数据"""
        tick: TickData = event.data
        self.bg.update_tick(tick)

效果如图
description

basic.html

<!DOCTYPE html>
<html lang="en" style="background: #FFFFFF;height: 100%">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <meta
    name="description"
    content="KLineChart example"/>
  <title>KLineChart + js</title>
  <script type="text/javascript" src="file:///e:/klinecharts.min.js"></script>
  </head>
<body style="margin: 0;height: 100%">
<div id="chart" style="height: 100%"></div>
<script>

    // 初始化图表
    var chart = klinecharts.init('chart')

    window.onload = function () {

        // 创建一个主图技术指标
        chart.createTechnicalIndicator('MA', false, { id: 'candle_pane' })
        // 创建一个副图技术指标VOL
        chart.createTechnicalIndicator('VOL')
        // 创建一个副图技术指标MACD
        chart.createTechnicalIndicator('MACD')


    }
</script>
</body>
</html>

库js下载地址

注意放的位置,我放在E盘根目录下,所以 是 file:///e:/klinecharts.min.js

Member
avatar
加入于:
帖子: 1472
声望: 105

wow,感谢分享!

Member
avatar
加入于:
帖子: 7
声望: 0

谢谢分享!

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】