Skip to content

Commit

Permalink
Merge pull request #3 from noranhe/main
Browse files Browse the repository at this point in the history
[Add] 类型声明 + replace pytz + 更新版本号到1.0.3
  • Loading branch information
vnpy authored Aug 9, 2022
2 parents c52996a + e1cbb87 commit bc980c9
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 24 deletions.
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
# 1.0.3版本

1. 使用zoneinfo替换pytz库
2. 调整安装脚本setup.cfg,添加Python版本限制

# 1.0.2版本

1. 将模块的图标文件信息,改为完整路径字符串
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
</p>

<p align="center">
<img src ="https://img.shields.io/badge/version-1.0.2-blueviolet.svg"/>
<img src ="https://img.shields.io/badge/version-1.0.3-blueviolet.svg"/>
<img src ="https://img.shields.io/badge/platform-windows|linux|macos-yellow.svg"/>
<img src ="https://img.shields.io/badge/python-3.7|3.8|3.9|3.10-blue.svg" />
<img src ="https://img.shields.io/github/license/vnpy/vnpy.svg?color=orange"/>
Expand All @@ -17,7 +17,7 @@ ChartWizard是用于实时K线图表展示的功能模块,用户可以通过

## 安装

安装环境推荐基于3.0.0版本以上的【[**VeighNa Studio**](https://www.vnpy.com)】。
安装环境推荐基于3.3.0版本以上的【[**VeighNa Studio**](https://www.vnpy.com)】。

直接使用pip命令:

Expand Down
3 changes: 2 additions & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = vnpy_chartwizard
version = 1.0.2
version = 1.0.3
url = https://www.vnpy.com
license = MIT
author = Xiaoyou Chen
Expand Down Expand Up @@ -30,6 +30,7 @@ classifiers =
[options]
packages = find:
zip_safe = False
python_requires = >=3.7
install_requires =
pyqtgraph

Expand Down
12 changes: 6 additions & 6 deletions vnpy_chartwizard/engine.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from datetime import datetime
from threading import Thread
from typing import List
from typing import List, Optional

from vnpy.event import Event, EventEngine
from vnpy.trader.engine import BaseEngine, MainEngine
Expand All @@ -11,9 +11,9 @@
from vnpy.trader.datafeed import get_datafeed, BaseDatafeed


APP_NAME: str = "ChartWizard"
APP_NAME = "ChartWizard"

EVENT_CHART_HISTORY: str = "eChartHistory"
EVENT_CHART_HISTORY = "eChartHistory"


class ChartWizardEngine(BaseEngine):
Expand Down Expand Up @@ -60,12 +60,12 @@ def _query_history(
end=end
)

contract: ContractData = self.main_engine.get_contract(vt_symbol)
contract: Optional[ContractData] = self.main_engine.get_contract(vt_symbol)
if contract:
if contract.history_data:
data: List[BarData] = self.main_engine.query_history(req, contract.gateway_name)
data: Optional[List[BarData]] = self.main_engine.query_history(req, contract.gateway_name)
else:
data: List[BarData] = self.datafeed.query_bar_history(req)
data: Optional[List[BarData]] = self.datafeed.query_bar_history(req)
else:
data: List[BarData] = self.database.load_bar_data(
symbol,
Expand Down
30 changes: 15 additions & 15 deletions vnpy_chartwizard/ui/widget.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
from copy import copy
from typing import Dict, List
from typing import Dict, List, Optional
from datetime import datetime, timedelta
from tzlocal import get_localzone
from tzlocal import get_localzone_name

from vnpy.event import EventEngine, Event
from vnpy.chart import ChartWidget, CandleItem, VolumeItem
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import QtWidgets, QtCore
from vnpy.trader.event import EVENT_TICK
from vnpy.trader.object import ContractData, TickData, BarData, SubscribeRequest
from vnpy.trader.utility import BarGenerator
from vnpy.trader.utility import BarGenerator, ZoneInfo
from vnpy.trader.constant import Interval
from vnpy_spreadtrading.base import SpreadData, EVENT_SPREAD_DATA

Expand All @@ -19,9 +19,9 @@
class ChartWizardWidget(QtWidgets.QWidget):
""""""

signal_tick = QtCore.pyqtSignal(Event)
signal_spread = QtCore.pyqtSignal(Event)
signal_history = QtCore.pyqtSignal(Event)
signal_tick: QtCore.pyqtSignal = QtCore.pyqtSignal(Event)
signal_spread: QtCore.pyqtSignal = QtCore.pyqtSignal(Event)
signal_history: QtCore.pyqtSignal = QtCore.pyqtSignal(Event)

def __init__(self, main_engine: MainEngine, event_engine: EventEngine) -> None:
""""""
Expand All @@ -44,24 +44,24 @@ def init_ui(self) -> None:
self.tab: QtWidgets.QTabWidget = QtWidgets.QTabWidget()
self.symbol_line: QtWidgets.QLineEdit = QtWidgets.QLineEdit()

self.button = QtWidgets.QPushButton("新建图表")
self.button: QtWidgets.QPushButton = QtWidgets.QPushButton("新建图表")
self.button.clicked.connect(self.new_chart)

hbox = QtWidgets.QHBoxLayout()
hbox: QtWidgets.QHBoxLayout = QtWidgets.QHBoxLayout()
hbox.addWidget(QtWidgets.QLabel("本地代码"))
hbox.addWidget(self.symbol_line)
hbox.addWidget(self.button)
hbox.addStretch()

vbox = QtWidgets.QVBoxLayout()
vbox: QtWidgets.QVBoxLayout = QtWidgets.QVBoxLayout()
vbox.addLayout(hbox)
vbox.addWidget(self.tab)

self.setLayout(vbox)

def create_chart(self) -> ChartWidget:
""""""
chart = ChartWidget()
chart: ChartWidget = ChartWidget()
chart.add_plot("candle", hide_x_axis=True)
chart.add_plot("volume", maximum_height=200)
chart.add_item(CandleItem, "candle", "candle")
Expand All @@ -84,7 +84,7 @@ def new_chart(self) -> None:
return

if "LOCAL" not in vt_symbol:
contract: ContractData = self.main_engine.get_contract(vt_symbol)
contract: Optional[ContractData] = self.main_engine.get_contract(vt_symbol)
if not contract:
return

Expand All @@ -97,7 +97,7 @@ def new_chart(self) -> None:
self.tab.addTab(chart, vt_symbol)

# Query history data
end: datetime = datetime.now(get_localzone())
end: datetime = datetime.now(ZoneInfo(get_localzone_name()))
start: datetime = end - timedelta(days=5)

self.chart_engine.query_history(
Expand All @@ -120,7 +120,7 @@ def register_event(self) -> None:
def process_tick_event(self, event: Event) -> None:
""""""
tick: TickData = event.data
bg: BarGenerator = self.bgs.get(tick.vt_symbol, None)
bg: Optional[BarGenerator] = self.bgs.get(tick.vt_symbol, None)

if bg:
bg.update_tick(tick)
Expand All @@ -141,7 +141,7 @@ def process_history_event(self, event: Event) -> None:
chart.update_history(history)

# Subscribe following data update
contract: ContractData = self.main_engine.get_contract(bar.vt_symbol)
contract: Optional[ContractData] = self.main_engine.get_contract(bar.vt_symbol)
if contract:
req: SubscribeRequest = SubscribeRequest(
contract.symbol,
Expand All @@ -154,7 +154,7 @@ def process_spread_event(self, event: Event) -> None:
spread: SpreadData = event.data
tick: TickData = spread.to_tick()

bg: BarGenerator = self.bgs.get(tick.vt_symbol, None)
bg: Optional[BarGenerator] = self.bgs.get(tick.vt_symbol, None)
if bg:
bg.update_tick(tick)

Expand Down

0 comments on commit bc980c9

Please sign in to comment.