From 0f293b55bb0176e25f21b99c6aa5cc96c71e5260 Mon Sep 17 00:00:00 2001 From: Lxy Date: Thu, 9 Jul 2026 00:42:59 +0800 Subject: [PATCH] =?UTF-8?q?tweak:=20=E7=A7=BB=E9=99=A4=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=86=85=E9=83=A8=E5=8E=BB=E9=87=8D=EF=BC=8C=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E4=B8=80=E6=AC=A1=E5=A7=94=E6=89=98=E5=88=86=E5=A4=9A=E6=AC=A1?= =?UTF-8?q?=E6=88=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/trade_parser.py | 7 ++----- data/futures_analysis.db | Bin 13225984 -> 13225984 bytes 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/services/trade_parser.py b/app/services/trade_parser.py index 5ac9229..d1bc05b 100644 --- a/app/services/trade_parser.py +++ b/app/services/trade_parser.py @@ -311,7 +311,6 @@ def save_to_db( existing_keys = _load_existing_dedup_keys(db, all_dates) records = [] - new_keys_in_batch = set() # 防止本次导入文件内部重复 skipped_details = [] # 记录被跳过的重复记录详情 # 处理期货记录 @@ -331,7 +330,7 @@ def save_to_db( price = safe_float(row.get('成交价')) dedup_key = _build_dedup_key(trade_date, variety, trade_time, price) - if dedup_key in existing_keys or dedup_key in new_keys_in_batch: + if dedup_key in existing_keys: futures_skipped += 1 skipped_details.append({ 'type': '期货', @@ -346,7 +345,6 @@ def save_to_db( if futures_parsed <= 3: logger.info(f"[去重校验] 期货记录 #{futures_parsed}: raw_date={raw_date!r}, trade_date={trade_date!r}, variety={variety!r}, time={trade_time!r}, price={price!r} => key={dedup_key!r}") - new_keys_in_batch.add(dedup_key) rec = TradeRecord( trade_type='期货', symbol=contract, @@ -383,7 +381,7 @@ def save_to_db( price = safe_float(row.get('权利金单价')) dedup_key = _build_dedup_key(trade_date, variety, trade_time, price) - if dedup_key in existing_keys or dedup_key in new_keys_in_batch: + if dedup_key in existing_keys: options_skipped += 1 skipped_details.append({ 'type': '期权', @@ -394,7 +392,6 @@ def save_to_db( }) continue - new_keys_in_batch.add(dedup_key) # 期权盈亏来自权利金(带正负号:卖为正,买为负) premium = safe_float(row.get('权利金')) rec = TradeRecord( diff --git a/data/futures_analysis.db b/data/futures_analysis.db index 669a23de630fe8c3bb005ae8cf2f3921ee026828..008498951bcdf755214d449eae260a67177994eb 100644 GIT binary patch delta 3092 zcmdVbYiv_>6aetPwz1y!-qjTtY`_YL8?tiyxP43>ZTIN9>NXw)ac-PFU_%}o4^g4I zO*n$6I7D_)QHKvUw#5GEo_LYR#3Fv1jsM-Z|Q zvJs{tJc=+4AqT;XFdczMupn3wYzTG)0l|UbL~tRv5poe8Lzsau6JZv@Yy=O27r}>+ zhmem@fKZ6wM<_xFAQU465gtc)0-*$<6rl`Z4#Hf7c?k0nLI?{G79u=}un6HPgmQ$Z z5h@TW5f&rR{Zt`TBh(<&A}m2zicp78kFX5k8HD8sD-c#9tU_o&Xhc|zum)i*!a9U! z5!NF-hwwbY3kVw!Hg-d}bMX}Q-g^nj;OYH|YwHRp*PYY@0Oic`pMpwj8<^CNGkgNE2x$E#zggiEJiFULjk^R`M#@ zMqVSYlQ+nA@+N5|JIGsPCwZIfB5gz@yU9D`UGg5;L*6GJkPk^a*-JhmACphWr(_@L zAf4nh@;TX04v>T75IIb`$Pw}d`H~zZ-Q*aN$Z>LloRkh->sg>t2bn!$()Au&hR&L%%ox&-D=<|=cEi83dd{mdS=lij$>6Umn9uJ?>%#InD7^i9?vt2QaEyw#DzJ9Btz zar`n6zbuMh`s0^{@ymkvWq$lJFSg9OJ=hoju{VC{k!ZI^)wj=>HryGzb0fw7yQAqM zN7Yk<+EWUylWXJBxI}gRZ0W>mEs|lK&;{m^*>V-t9bqW75|V* zVXQK6R)JxWJbvJ?{MbVSD|xZXz+t{2U+o=I@knjykyV`Znnn<^SJBbgf3!RkbNX2d#zoz7;l3HraqrLnq6f3v%4*&_Y?M74pgCn%@VKyhCR z$jKKfl9Si(?@NVpnpaXFr_w-vU&@n{FXWSx*YE91o-ILhg!GbAtYX>ms7Wk85;dA*uUxw& zm$#Z70`G9TpqNt_My8HbsghMmNhXuGG_ay!Rb9D@8eL-eL^MjrosL?H6J`tS|>zh8f&skkWeWT@p%D#cV(AxTjHS5ZqG?5n<_tIA7iKzoS?QVg0 zSNp{uCHYVedeSL&oV?TC>~7v_sVp3{H?Kc-D50XVW?Ja(Sjdu$*1$VnP-t2G) zcB=sS_jzq{qupf_D)Rh~v&jXNud;MRn2-XQS5Se*l)^<6Hm$ delta 1533 zcmb`{UrL%>Ix+iwr4s?GF{+Vo85t zRs@!N)vUIxpfcS4tk+~MDwURLnjU?s-fG4dA9$;We)!OgGr<${ozIywbI;6~Ip@qx zW%@%Y>5cl^`YIdzZCxPzL=h1nfR1ww0xkQXOk2s&WfVhyjh`5-zgqTgtAuc865|G!WMlHxM@xHxV}zw-C#SM&efD zHsW^T4q`cRC(%UQMchr?L#!a~B~}vm5%&`h5DyZ~#6!d?Lg%xZc$j#EXdxaY))0>o zt;AZQjd+}Rf>=kaCpHjCVk7Y+@f7hi@eI*UJWD)BJWq5Gn{sdlR>eb$Cd*%ZdR}?` z;Zd_aHm%ykCd*AGooY9gbnJ#b$!+F?%e0aH{f>8EscxwtKSNWOn>gvg4QX|AQ_i>$ICdG}z^q3_FXx@|vQC zpx1T8*&Lk_4G;RvLep%H+jW-D?lt?pia(rnVK-J&G`D;3gd;D=i_$46>5`XZvuqK{ z%hD}deVwdCZ0cyds_kwf0#iJ=w2K*Cz?mYf_~5VQyE zO*>ZR=XjkbhpJ8;&(H3jzlX}a=6{Cz1OKhdHRYF`_SMSw2dWd{w9gEfw5c#5d#l}U zx7bZqXZSa>MK7k_jYsk|?wUw`wq=c2Icu*uWc67ybF0@z!d^O>UmuJl>_(sY-5fXl zCSx|3R<|;ikGb`+e68D|nU)?c>u!wa<*7yeWJ8viBiGY7JTU?flxYSX(Z%pZR@wV|Sxg!}7gVU}ApT3G7#j1(;I Kmt%$6(tiQ?cuX4r