Skip to content

Commit 23747ad

Browse files
committed
[Mod] 采用chuncked批量插入tick数据
1 parent be4b81b commit 23747ad

File tree

1 file changed

+59
-11
lines changed

1 file changed

+59
-11
lines changed

vnpy_postgresql/postgresql_database.py

Lines changed: 59 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@
33

44
from peewee import (
55
AutoField,
6-
chunked,
76
CharField,
87
DateTimeField,
9-
FloatField, IntegerField,
8+
FloatField,
9+
IntegerField,
1010
Model,
1111
PostgresqlDatabase as PeeweePostgresqlDatabase,
1212
ModelSelect,
1313
ModelDelete,
14-
fn
14+
fn,
15+
chunked,
1516
)
1617

1718
from vnpy.trader.constant import Exchange, Interval
@@ -180,14 +181,15 @@ def save_bar_data(self, bars: List[BarData], stream: bool = False) -> bool:
180181
with self.db.atomic():
181182
for c in chunked(data, 100):
182183
DbBarData.insert_many(c).on_conflict(
183-
update={DbBarData.volume: DbBarData.volume,
184-
DbBarData.turnover: DbBarData.turnover,
185-
DbBarData.open_interest: DbBarData.open_interest,
186-
DbBarData.open_price: DbBarData.open_price,
187-
DbBarData.high_price: DbBarData.high_price,
188-
DbBarData.low_price: DbBarData.low_price,
189-
DbBarData.close_price: DbBarData.close_price
190-
},
184+
update={
185+
DbBarData.volume: DbBarData.volume,
186+
DbBarData.turnover: DbBarData.turnover,
187+
DbBarData.open_interest: DbBarData.open_interest,
188+
DbBarData.open_price: DbBarData.open_price,
189+
DbBarData.high_price: DbBarData.high_price,
190+
DbBarData.low_price: DbBarData.low_price,
191+
DbBarData.close_price: DbBarData.close_price
192+
},
191193
conflict_target=(
192194
DbBarData.symbol,
193195
DbBarData.exchange,
@@ -257,6 +259,52 @@ def save_tick_data(self, ticks: List[TickData], stream: bool = False) -> bool:
257259
DbTickData.symbol,
258260
DbTickData.exchange,
259261
DbTickData.datetime,
262+
263+
264+
),
265+
).execute()
266+
267+
for c in chunked(data, 100):
268+
DbTickData.insert_many(c).on_conflict(
269+
update={
270+
DbTickData.name: DbTickData.name,
271+
DbTickData.volume: DbTickData.volume,
272+
DbTickData.turnover: DbTickData.turnover,
273+
DbTickData.open_interest: DbTickData.open_interest,
274+
DbTickData.last_price: DbTickData.last_price,
275+
DbTickData.last_volume: DbTickData.last_volume,
276+
DbTickData.limit_up: DbTickData.limit_up,
277+
DbTickData.limit_down: DbTickData.limit_down,
278+
DbTickData.open_price: DbTickData.open_price,
279+
DbTickData.high_price: DbTickData.high_price,
280+
DbTickData.low_price: DbTickData.low_price,
281+
DbTickData.pre_close: DbTickData.pre_close,
282+
DbTickData.bid_price_1: DbTickData.bid_price_1,
283+
DbTickData.bid_price_2: DbTickData.bid_price_2,
284+
DbTickData.bid_price_3: DbTickData.bid_price_3,
285+
DbTickData.bid_price_4: DbTickData.bid_price_4,
286+
DbTickData.bid_price_5: DbTickData.bid_price_5,
287+
DbTickData.ask_price_1: DbTickData.ask_price_1,
288+
DbTickData.ask_price_2: DbTickData.ask_price_2,
289+
DbTickData.ask_price_3: DbTickData.ask_price_3,
290+
DbTickData.ask_price_4: DbTickData.ask_price_4,
291+
DbTickData.ask_price_5: DbTickData.ask_price_5,
292+
DbTickData.bid_volume_1: DbTickData.bid_volume_1,
293+
DbTickData.bid_volume_2: DbTickData.bid_volume_2,
294+
DbTickData.bid_volume_3: DbTickData.bid_volume_3,
295+
DbTickData.bid_volume_4: DbTickData.bid_volume_4,
296+
DbTickData.bid_volume_5: DbTickData.bid_volume_5,
297+
DbTickData.ask_volume_1: DbTickData.ask_volume_1,
298+
DbTickData.ask_volume_2: DbTickData.ask_volume_2,
299+
DbTickData.ask_volume_3: DbTickData.ask_volume_3,
300+
DbTickData.ask_volume_4: DbTickData.ask_volume_4,
301+
DbTickData.ask_volume_5: DbTickData.ask_volume_5,
302+
DbTickData.localtime: DbTickData.localtime,
303+
},
304+
conflict_target=(
305+
DbTickData.symbol,
306+
DbTickData.exchange,
307+
DbTickData.datetime,
260308
),
261309
).execute()
262310

0 commit comments

Comments
 (0)