重修vn.py笔记 之 四 : 绘图
vnpy 提供了一个比较实用的绘图,可以动态绘制出K线图。
根据这个工具,可以将策略的信号以及指标绘制出来。
from datetime import datetime
from vnpy.trader.ui import create_qapp, QtCore
from vnpy.trader.constant import Exchange, Interval
from vnpy.trader.database import get_database
from vnpy.chart import ChartWidget, VolumeItem, CandleItem
if __name__ == "__main__":
app = create_qapp()
database = get_database()
bars = database.load_bar_data(
"IF888",
Exchange.CFFEX,
interval=Interval.MINUTE,
start=datetime(2025,12 , 15),
end=datetime(2025, 12, 25)
)
widget = ChartWidget()
widget.add_plot("candle", hide_x_axis=True)
widget.add_plot("volume", maximum_height=200)
widget.add_item(CandleItem, "candle", "candle")
widget.add_item(VolumeItem, "volume", "volume")
widget.add_cursor()
n = 1000
history = bars[:n]
new_data = bars[n:]
widget.update_history(history)
def update_bar() -> None:
# 如果new_data为空,不更新
if not new_data:
return
bar = new_data.pop(0)
widget.update_bar(bar)
timer = QtCore.QTimer()
timer.timeout.connect(update_bar)
timer.start(100)
widget.show()
app.exec()
构建一个QWidget: Must construct a QApplication before a QWidget
所以,app = create_qapp() 不能少, 这用到了Qt 图形包,也用了Qt 的Timer, 通过事件触发器,让图形动起来。 用他写一个观察信号的工具很方便。
浙公网安备 33010602011771号