25
25
from vnpy .trader .setting import SETTINGS
26
26
27
27
28
- db = PeeweePostgresqlDatabase (
28
+ db : PeeweePostgresqlDatabase = PeeweePostgresqlDatabase (
29
29
database = SETTINGS ["database.database" ],
30
30
user = SETTINGS ["database.user" ],
31
31
password = SETTINGS ["database.password" ],
38
38
class DbBarData (Model ):
39
39
"""K线数据表映射对象"""
40
40
41
- id = AutoField ()
41
+ id : AutoField = AutoField ()
42
42
43
43
symbol : str = CharField ()
44
44
exchange : str = CharField ()
@@ -54,14 +54,14 @@ class DbBarData(Model):
54
54
close_price : float = FloatField ()
55
55
56
56
class Meta :
57
- database = db
58
- indexes = ((("symbol" , "exchange" , "interval" , "datetime" ), True ),)
57
+ database : PeeweePostgresqlDatabase = db
58
+ indexes : tuple = ((("symbol" , "exchange" , "interval" , "datetime" ), True ),)
59
59
60
60
61
61
class DbTickData (Model ):
62
62
"""TICK数据表映射对象"""
63
63
64
- id = AutoField ()
64
+ id : AutoField = AutoField ()
65
65
66
66
symbol : str = CharField ()
67
67
exchange : str = CharField ()
@@ -108,14 +108,14 @@ class DbTickData(Model):
108
108
localtime : datetime = DateTimeField (null = True )
109
109
110
110
class Meta :
111
- database = db
112
- indexes = ((("symbol" , "exchange" , "datetime" ), True ),)
111
+ database : PeeweePostgresqlDatabase = db
112
+ indexes : tuple = ((("symbol" , "exchange" , "datetime" ), True ),)
113
113
114
114
115
115
class DbBarOverview (Model ):
116
116
"""K线汇总数据表映射对象"""
117
117
118
- id = AutoField ()
118
+ id : AutoField = AutoField ()
119
119
120
120
symbol : str = CharField ()
121
121
exchange : str = CharField ()
@@ -125,8 +125,8 @@ class DbBarOverview(Model):
125
125
end : datetime = DateTimeField ()
126
126
127
127
class Meta :
128
- database = db
129
- indexes = ((("symbol" , "exchange" , "interval" ), True ),)
128
+ database : PeeweePostgresqlDatabase = db
129
+ indexes : tuple = ((("symbol" , "exchange" , "interval" ), True ),)
130
130
131
131
132
132
class DbTickOverview (Model ):
@@ -150,25 +150,25 @@ class PostgresqlDatabase(BaseDatabase):
150
150
151
151
def __init__ (self ) -> None :
152
152
""""""
153
- self .db = db
153
+ self .db : PeeweePostgresqlDatabase = db
154
154
self .db .connect ()
155
155
self .db .create_tables ([DbBarData , DbTickData , DbBarOverview , DbTickOverview ])
156
156
157
157
def save_bar_data (self , bars : List [BarData ], stream : bool = False ) -> bool :
158
158
"""保存K线数据"""
159
159
# 读取主键参数
160
- bar = bars [0 ]
161
- symbol = bar .symbol
162
- exchange = bar .exchange
163
- interval = bar .interval
160
+ bar : BarData = bars [0 ]
161
+ symbol : str = bar .symbol
162
+ exchange : Exchange = bar .exchange
163
+ interval : Interval = bar .interval
164
164
165
165
# 将BarData数据转换为字典,并调整时区
166
- data = []
166
+ data : list = []
167
167
168
168
for bar in bars :
169
169
bar .datetime = convert_tz (bar .datetime )
170
170
171
- d = bar .__dict__
171
+ d : dict = bar .__dict__
172
172
d ["exchange" ] = d ["exchange" ].value
173
173
d ["interval" ] = d ["interval" ].value
174
174
d .pop ("gateway_name" )
@@ -229,12 +229,12 @@ def save_tick_data(self, ticks: List[TickData], stream: bool = False) -> bool:
229
229
exchange : Exchange = tick .exchange
230
230
231
231
# 将TickData数据转换为字典,并调整时区
232
- data = []
232
+ data : list = []
233
233
234
234
for tick in ticks :
235
235
tick .datetime = convert_tz (tick .datetime )
236
236
237
- d = tick .__dict__
237
+ d : dict = tick .__dict__
238
238
d ["exchange" ] = d ["exchange" ].value
239
239
d .pop ("gateway_name" )
240
240
d .pop ("vt_symbol" )
@@ -303,7 +303,7 @@ def load_bar_data(
303
303
304
304
bars : List [BarData ] = []
305
305
for db_bar in s :
306
- bar = BarData (
306
+ bar : BarData = BarData (
307
307
symbol = db_bar .symbol ,
308
308
exchange = Exchange (db_bar .exchange ),
309
309
datetime = datetime .fromtimestamp (db_bar .datetime .timestamp (), DB_TZ ),
@@ -340,7 +340,7 @@ def load_tick_data(
340
340
341
341
ticks : List [TickData ] = []
342
342
for db_tick in s :
343
- tick = TickData (
343
+ tick : TickData = TickData (
344
344
symbol = db_tick .symbol ,
345
345
exchange = Exchange (db_tick .exchange ),
346
346
datetime = datetime .fromtimestamp (db_tick .datetime .timestamp (), DB_TZ ),
@@ -395,7 +395,7 @@ def delete_bar_data(
395
395
& (DbBarData .exchange == exchange .value )
396
396
& (DbBarData .interval == interval .value )
397
397
)
398
- count = d .execute ()
398
+ count : int = d .execute ()
399
399
400
400
# 删除K线汇总数据
401
401
d2 : ModelDelete = DbBarOverview .delete ().where (
@@ -416,7 +416,7 @@ def delete_tick_data(
416
416
(DbTickData .symbol == symbol )
417
417
& (DbTickData .exchange == exchange .value )
418
418
)
419
- count = d .execute ()
419
+ count : int = d .execute ()
420
420
421
421
# 删除Tick汇总数据
422
422
d2 : ModelDelete = DbTickOverview .delete ().where (
@@ -430,13 +430,13 @@ def delete_tick_data(
430
430
def get_bar_overview (self ) -> List [BarOverview ]:
431
431
"""查询数据库中的K线汇总信息"""
432
432
# 如果已有K线,但缺失汇总信息,则执行初始化
433
- data_count = DbBarData .select ().count ()
434
- overview_count = DbBarOverview .select ().count ()
433
+ data_count : int = DbBarData .select ().count ()
434
+ overview_count : int = DbBarOverview .select ().count ()
435
435
if data_count and not overview_count :
436
436
self .init_bar_overview ()
437
437
438
438
s : ModelSelect = DbBarOverview .select ()
439
- overviews = []
439
+ overviews : List [ BarOverview ] = []
440
440
for overview in s :
441
441
overview .exchange = Exchange (overview .exchange )
442
442
overview .interval = Interval (overview .interval )
@@ -468,7 +468,7 @@ def init_bar_overview(self) -> None:
468
468
)
469
469
470
470
for data in s :
471
- overview = DbBarOverview ()
471
+ overview : DbBarOverview = DbBarOverview ()
472
472
overview .symbol = data .symbol
473
473
overview .exchange = data .exchange
474
474
overview .interval = data .interval
0 commit comments