自用策略初始提交
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+38
@@ -0,0 +1,38 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<TCStageLayout>
|
||||
<control note="控件">
|
||||
<variable note="控件">
|
||||
<item position="" bind="策略名称" value="xg雪球界面" note="策略名称" name="策略名称" type="intput" />
|
||||
<item position="" bind="标记" value="作者:索普量化,微信:xms_quants1" note="标记" name="标记" type="intput" />
|
||||
<item position="" bind="授权码" value="0xd5e814335dd5e19830fd29e14462070f4716b85fea8c34da8378dd0b707e1893607490ea1eeaba8b7c2304ebcccbae30bef3c42e3d262a04268b8894362d977f76f691526c8f11e49822b79974c3b1954b4182647597b76b29be63be246109cd57f60cf0c7d57c1ff80240e67b001f98c536dd06927ceda8d04b932055a49ff0abbd" note="授权码" name="授权码" type="intput" />
|
||||
<item position="" bind="cookie" value="cookiesu=981748929995104; device_id=487d5816161db8ba0d0e25b548cb1bc6; smidV2=20250603135319c1705e137be8f01771f8398c66777f9000ab5c0df92154fa0; s=be1jsjr8bl; bid=f1b5e01be977a7023f9ec859cdf24ad4_mbg66d09; __utmz=1.1748934057.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); u=1342909666; xq_is_login=1; aliyungf_tc=d6ee7c9ec93eec9f500ec34bbfddcb20013f165fe38f6b6b48a24e9e4d5aaa1b; xq_a_token=fe11e9427682896c9dc7a8a445086ef68d4d1dbd; xqat=fe11e9427682896c9dc7a8a445086ef68d4d1dbd; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOjEzNDI5MDk2NjYsImlzcyI6InVjIiwiZXhwIjoxNzYxNTcyNjM1LCJjdG0iOjE3NTg5ODA2MzU5NDMsImNpZCI6ImQ5ZDBuNEFadXAifQ.nqRzbWnv6K3_Juhh5Q53lF_UMJif-7NKBQln5dny13rbeqc5TBqwPTr9GU7NxIeJbDhDBskn-PLlS53_bT-pxO1MkbusPMNz98-BueB6-DZ5CJtZCqdtQUXhFJqXm4mLpNHK1wLCLJjjRxyU3-1logf1lDqQDCrDAar--G6aSugFK_ayxU1yXrT5BycS4SXfbVIIJt1CbUugT5Qs3CrgjHjcBqC24Q-owfzjFmHvJnxTs_2PYYNlMXT21B94k7dvNt-CrBKEKg01TklN5ihHcB99bbWsklL1P3j2DU-xvrRVo9WvLQ2tM5xkQr4UVBowpC-NhcFuSTMd6aGWZu3NUA; xq_r_token=f12d8baa95063cc9341d2a8ee5a78a45deefb9c0; Hm_lvt_1db88642e346389874251b5a1eded6e3=1758247622,1758265058,1758291885,1758980641; HMACCOUNT=184FA7E7147838B3; .thumbcache_f24b8bbe5a5934237bbc0eda20c1b6e7=GEF/cx00kxMXCqs58kwu08qLxljB/16JoBrmputnWbgjrZhh8AdSf68iBVp+h9EjFUc4ANkteyfQAwJ+957e6w%3D%3D; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1758980662; __utma=1.1154193993.1748934057.1754875149.1758980663.10; __utmc=1; __utmt=1; __utmb=1.2.10.1758980663" note="cookie" name="cookie" type="intput" />
|
||||
<item position="" bind="是否测试" value="否" note="是否测试" name="是否测试" type="intput" />
|
||||
<item position="" bind="测试长度" value="2" note="测试长度" name="测试长度" type="intput" />
|
||||
<item position="" bind="买入价格编码" value="4" note="买入价格编码" name="买入价格编码" type="intput" />
|
||||
<item position="" bind="卖出价格编码" value="6" note="卖出价格编码" name="卖出价格编码" type="intput" />
|
||||
<item position="" bind="买入黑名单" value="600031.SH,600111.SZ" note="买入黑名单" name="买入黑名单" type="intput" />
|
||||
<item position="" bind="卖出黑名单" value="600031.SH,600111.SZ" note="卖出黑名单" name="卖出黑名单" type="intput" />
|
||||
<item position="" bind="剔除代码" value="688,40" note="剔除代码" name="剔除代码" type="intput" />
|
||||
<item position="" bind="组合名称" value="西蒙斯测试1,西蒙斯测试2" note="组合名称" name="组合名称" type="intput" />
|
||||
<item position="" bind="组合代码" value="ZH3368671,ZH3310823" note="组合代码" name="组合代码" type="intput" />
|
||||
<item position="" bind="组合金额模式说明" value="总金额/自定义/比例" note="组合金额模式说明" name="组合金额模式说明" type="intput" />
|
||||
<item position="" bind="组合金额模式" value="自定义" note="组合金额模式" name="组合金额模式" type="intput" />
|
||||
<item position="" bind="组合比例" value="0.1,0.1" note="组合比例" name="组合比例" type="intput" />
|
||||
<item position="" bind="组合金额" value="50000,60000" note="组合金额" name="组合金额" type="intput" />
|
||||
<item position="" bind="不同组合间隔时间" value="1" note="不同组合间隔时间" name="不同组合间隔时间" type="intput" />
|
||||
<item position="" bind="不成交撤单时间" value="300" note="不成交撤单时间" name="不成交撤单时间" type="intput" />
|
||||
<item position="" bind="交易时间段" value="4" note="交易时间段" name="交易时间段" type="intput" />
|
||||
<item position="" bind="交易开始时间" value="9" note="交易开始时间" name="交易开始时间" type="intput" />
|
||||
<item position="" bind="交易结束时间" value="14" note="交易结束时间" name="交易结束时间" type="intput" />
|
||||
<item position="" bind="是否参加集合竞价" value="是" note="是否参加集合竞价" name="是否参加集合竞价" type="intput" />
|
||||
<item position="" bind="开始交易分钟" value="0" note="开始交易分钟" name="开始交易分钟" type="intput" />
|
||||
<item position="" bind="通知发送方式说明" value="QQ/企业微信/钉钉" note="通知发送方式说明" name="通知发送方式说明" type="intput" />
|
||||
<item position="" bind="通知发送方式" value="钉钉" note="通知发送方式" name="通知发送方式" type="intput" />
|
||||
<item position="" bind="发送QQ" value="1029762153@qq.com" note="发送QQ" name="发送QQ" type="intput" />
|
||||
<item position="" bind="接收QQ" value="1029762153@qq.com" note="接收QQ" name="接收QQ" type="intput" />
|
||||
<item position="" bind="QQ掩码" value="jjfgdhklgguebdje" note="QQ掩码" name="QQ掩码" type="intput" />
|
||||
<item position="" bind="企业微信token" value="1,1" note="企业微信token" name="企业微信token" type="intput" />
|
||||
<item position="" bind="钉钉token" value="1,1" note="钉钉token" name="钉钉token" type="intput" />
|
||||
</variable>
|
||||
</control>
|
||||
</TCStageLayout>
|
||||
@@ -0,0 +1,219 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import abc
|
||||
import datetime
|
||||
import re,json
|
||||
import time
|
||||
from typing import List
|
||||
import requests
|
||||
from log import logger
|
||||
from misc import parse_cookies_str
|
||||
|
||||
|
||||
class BaseFollower(metaclass=abc.ABCMeta):
|
||||
"""
|
||||
slippage: 滑点,取值范围为 [0, 1]
|
||||
"""
|
||||
|
||||
LOGIN_PAGE = ""
|
||||
LOGIN_API = ""
|
||||
TRANSACTION_API = ""
|
||||
CMD_CACHE_FILE = "cmd_cache.pk"
|
||||
WEB_REFERER = ""
|
||||
WEB_ORIGIN = ""
|
||||
|
||||
def __init__(self):
|
||||
#self.trade_queue = queue.Queue()
|
||||
#self.expired_cmds = set()
|
||||
|
||||
self.s = requests.Session()
|
||||
self.s.verify = False
|
||||
|
||||
self.slippage: float = 0.0
|
||||
|
||||
def login(self, user=None, password=None, **kwargs):
|
||||
"""
|
||||
雪球登陆, 需要设置 cookies
|
||||
:param cookies: 雪球登陆需要设置 cookies, 具体见
|
||||
https://smalltool.github.io/2016/08/02/cookie/
|
||||
:return:
|
||||
"""
|
||||
cookies = kwargs.get("cookies")
|
||||
|
||||
if cookies is None:
|
||||
raise TypeError(
|
||||
"雪球登陆需要设置 cookies, 具体见" "https://smalltool.github.io/2016/08/02/cookie/"
|
||||
)
|
||||
headers = self._generate_headers()
|
||||
self.s.headers.update(headers)
|
||||
|
||||
self.s.get(self.LOGIN_PAGE)
|
||||
|
||||
cookie_dict = parse_cookies_str(cookies)
|
||||
self.s.cookies.update(cookie_dict)
|
||||
#extract_strategy_name(self, 'ZH1332574')
|
||||
logger.info("登录成功")
|
||||
|
||||
def _generate_headers(self):
|
||||
headers = {
|
||||
"Accept": "application/json, text/javascript, */*; q=0.01",
|
||||
"Accept-Encoding": "gzip, deflate, br",
|
||||
"Accept-Language": "en-US,en;q=0.8",
|
||||
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) "
|
||||
"AppleWebKit/537.36 (KHTML, like Gecko) "
|
||||
"Chrome/54.0.2840.100 Safari/537.36",
|
||||
"Referer": self.WEB_REFERER,
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
"Origin": self.WEB_ORIGIN,
|
||||
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
}
|
||||
return headers
|
||||
|
||||
def check_login_success(self, rep):
|
||||
"""检查登录状态是否成功
|
||||
:param rep: post login 接口返回的 response 对象
|
||||
:raise 如果登录失败应该抛出 NotLoginError """
|
||||
pass
|
||||
|
||||
def create_login_params(self, user, password, **kwargs) -> dict:
|
||||
"""生成 post 登录接口的参数
|
||||
:param user: 用户名
|
||||
:param password: 密码
|
||||
:return dict 登录参数的字典
|
||||
"""
|
||||
return {}
|
||||
|
||||
|
||||
|
||||
def extract_strategy_name(self, strategy_url):
|
||||
"""
|
||||
抽取 策略名,主要用于日志打印,便于识别
|
||||
:param strategy_url:
|
||||
:return: str 策略名
|
||||
"""
|
||||
pass
|
||||
#新增
|
||||
def _query_zh_(self,userid):
|
||||
|
||||
url = 'https://im.xueqiu.com/im-comet/v2/sessions/1681984443-0/messages.json?user_id=%s&limit=%d' %(userid, 1)
|
||||
chat_history = self.s.get(url).json()
|
||||
for chat_record in chat_history:
|
||||
new=chat_record['messageId']#获取messageId
|
||||
messageType=chat_record['messageType']#获取messageId
|
||||
starte='1'
|
||||
if messageType=='VIEW':
|
||||
view1 = json.loads(chat_record['view'])#策略代号
|
||||
starte=view1['url'][21:] #策略代号
|
||||
time.sleep(1)
|
||||
|
||||
return new,starte
|
||||
|
||||
#非开盘时间调仓,补充
|
||||
def minutes_2(self, strategys, userid, assets,**kwargs):
|
||||
dayOfWeek = datetime.datetime.now().weekday()
|
||||
time_n=datetime.datetime.now()
|
||||
hour=str(time_n)[11:13]
|
||||
minute=int(str(time_n)[14:16])
|
||||
print(time_n)
|
||||
if dayOfWeek<=4 and ((hour=='09' and minute<32 and minute>=30) or (hour=='13' and minute<2)) :
|
||||
#if dayOfWeek<=6 or (hour=='11' or minute<=59):
|
||||
for j in range(0,len(strategys)):
|
||||
print('开盘自动监测中......',strategys[j])
|
||||
try:
|
||||
transactions = self.query_strategy_transaction(strategys[j], assets[j],**kwargs)
|
||||
if len(transactions)>0:
|
||||
return transactions
|
||||
except Exception as e:
|
||||
#logger.exception("无法获取策略 %s 调仓信息, 错误: %s, 跳过此次调仓查询", name, e)
|
||||
time.sleep(3)
|
||||
if j < len(strategys)-1:
|
||||
continue
|
||||
else:
|
||||
return []
|
||||
else:
|
||||
return []
|
||||
|
||||
def track_strategy_worker(self, strategys, userid,users, assets, interval=10, **kwargs):
|
||||
|
||||
"""跟踪下单worker
|
||||
:param strategy: 策略id
|
||||
:param name: 策略名字
|
||||
:param interval: 轮询策略的时间间隔,单位为秒"""
|
||||
old,starte=self._query_zh_(userid)
|
||||
|
||||
transactions=[]
|
||||
k=0
|
||||
while True:
|
||||
k=k+1
|
||||
print(k)
|
||||
if k>=100:
|
||||
return []
|
||||
|
||||
#前两分钟补充,非开盘调仓
|
||||
minutes_2_data=self.minutes_2( strategys, userid, assets,**kwargs)
|
||||
if not minutes_2_data is None and len(minutes_2_data)>0:
|
||||
return minutes_2_data
|
||||
|
||||
try:
|
||||
new,starte_n=self._query_zh_(userid)#新增
|
||||
except:
|
||||
time.sleep(5)
|
||||
|
||||
for j in range(0,len(strategys)):
|
||||
print('自动监测中......',strategys[j])
|
||||
if new != old and starte_n==strategys[j]:
|
||||
#if new == old:
|
||||
old=new
|
||||
try:
|
||||
transactions = self.query_strategy_transaction(strategys[j], assets[j],**kwargs)
|
||||
|
||||
if len(transactions)>0:
|
||||
k=5
|
||||
return transactions
|
||||
if k==5:
|
||||
break
|
||||
|
||||
except Exception as e:
|
||||
logger.exception("无法获取策略 %s 调仓信息, 错误: %s, 跳过此次调仓查询", e)
|
||||
time.sleep(3)
|
||||
continue
|
||||
|
||||
|
||||
|
||||
def query_strategy_transaction(self, strategy,assets, **kwargs):
|
||||
|
||||
params = self.create_query_transaction_params(strategy)
|
||||
|
||||
rep = self.s.get(self.TRANSACTION_API, params=params)
|
||||
|
||||
history = rep.json()
|
||||
|
||||
transactions = self.extract_transactions(history)
|
||||
|
||||
return self.project_transactions(transactions,assets, **kwargs)
|
||||
|
||||
|
||||
def extract_transactions(self, history) -> List[str]:
|
||||
"""
|
||||
抽取接口返回中的调仓记录列表
|
||||
:param history: 调仓接口返回信息的字典对象
|
||||
:return: [] 调参历史记录的列表
|
||||
"""
|
||||
return []
|
||||
|
||||
def create_query_transaction_params(self, strategy) -> dict:
|
||||
"""
|
||||
生成用于查询调参记录的参数
|
||||
:param strategy: 策略 id
|
||||
:return: dict 调参记录参数
|
||||
"""
|
||||
return {}
|
||||
|
||||
|
||||
def project_transactions(self, transactions, **kwargs):
|
||||
|
||||
"""
|
||||
修证调仓记录为内部使用的统一格式
|
||||
:param transactions: [] 调仓记录的列表
|
||||
:return: [] 修整后的调仓记录
|
||||
"""
|
||||
pass
|
||||
@@ -0,0 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger("easytrader")
|
||||
logger.setLevel(logging.INFO)
|
||||
logger.propagate = False
|
||||
|
||||
fmt = logging.Formatter(
|
||||
"%(asctime)s [%(levelname)s] %(filename)s %(lineno)s: %(message)s"
|
||||
)
|
||||
ch = logging.StreamHandler()
|
||||
|
||||
ch.setFormatter(fmt)
|
||||
logger.handlers.append(ch)
|
||||
@@ -0,0 +1,31 @@
|
||||
# coding:utf-8
|
||||
import json
|
||||
|
||||
|
||||
def parse_cookies_str(cookies):
|
||||
"""
|
||||
parse cookies str to dict
|
||||
:param cookies: cookies str
|
||||
:type cookies: str
|
||||
:return: cookie dict
|
||||
:rtype: dict
|
||||
"""
|
||||
cookie_dict = {}
|
||||
for record in cookies.split(";"):
|
||||
key, value = record.strip().split("=", 1)
|
||||
cookie_dict[key] = value
|
||||
return cookie_dict
|
||||
|
||||
|
||||
def file2dict(path):
|
||||
with open(path, encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
|
||||
|
||||
def grep_comma(num_str):
|
||||
return num_str.replace(",", "")
|
||||
|
||||
|
||||
def str2num(num_str, convert_type="float"):
|
||||
num = float(grep_comma(num_str))
|
||||
return num if convert_type == "float" else int(num)
|
||||
@@ -0,0 +1,7 @@
|
||||
cookies,"acw_tc=1a0c640d17531935616981938e006ef252a0559897fab0bba4f9d895a29e9a; cookiesu=511753193562165; device_id=5e4e14f7b544ff2991451c65d5126572; smidV2=202507222212422c69577824fd4da6831e70eaef7c9a0100997f287400fde20; s=aj11k1j1hi; __utma=1.531231151.1753193728.1753193728.1753193728.1; __utmz=1.1753193728.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=1.1.10.1753193728; Hm_lvt_1db88642e346389874251b5a1eded6e3=1753193563,1753193898; HMACCOUNT=D1422B20F0A5BD81; remember=1; xq_a_token=3b113cc4b2ac7d22e86c8eb73d3c8f3fd2d1536b; xqat=3b113cc4b2ac7d22e86c8eb73d3c8f3fd2d1536b; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOjMxMDU0NjU2MDgsImlzcyI6InVjIiwiZXhwIjoxNzU0NzAyNDg3LCJjdG0iOjE3NTMxOTM5MTExMzEsImNpZCI6ImQ5ZDBuNEFadXAifQ.LdPrdejNMPM-ajyiurRu4Ibp4ONJ7E_pJ2YpG1yUnXMmQfDjC6ZHZm7YyIuWd1Ly7NZTYK4VrWo2A5nZtQ5pP-4u2wMCCiihxqBcW3njMpvIBstPwxDC8UUy1cmWCp_r2vrKqt0tMIJ4znqZmcf0SAJIuLgfTV6EJ5bxkuPnmSuTHuEAMRX0trBUNmHw0k9pBv8tvquDF_eq-5yJn-VDYUCxXQ2wxJs9sxfJEh6hEkOKGiELhXCXd2s92ga8h9OmshH69nRr0dFsn-jmAz7K_g8ZcpeZqdp7JImuSBAH21ZlJ3C6tXm5PNQin1Guv-s9NzhZhClP_ttkjqmCWE2uDA; xq_r_token=0be44e56eb527c2082c3fdb0c025c13098c60dfd; xq_is_login=1; u=3105465608; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1753194584; .thumbcache_f24b8bbe5a5934237bbc0eda20c1b6e7=ohr0r8Af2tz/pULn7oDoWuu08XH8sq/VO2dgPV6B0qsNcf60jDeYHGq9iVQhxZt7wr+fbtczD910dfZzePOeyw%3D%3D; ssxmod_itna=iqGxgDuD90KrG0D27DBGDRDUx4eLqiK4GHDyxWF50CGDLxn4KGdYRaGwb8DcGi=jMbN4gnGo5D/mjkeDZDG9dDqx0ErXKWhAeP8YjkEepkQYOm+33itDwxm7/FxEx5Yo75o8gqlpNZSXKgYDU4GnD06QKE+rDYYfDBYD74G+DDeDixGmteDStxD9DGPdglTi2eDEDYpbxiU4arcFxDLTjebHhDDBzfiDKTpQoDDlzBxq8CDq8PD+3ncT/6Te8F4ojeDMWxGX9hk4jCyUVIDbkUSLHPoYxB69xBQiXpuspoTTq1ax5B6xKhY7GrMio/A4KADdBsYA4a757Dxl0hgixrCqq7D3BsIOwDCeDDfCiDue0rQDUQ4yPXgafqOXP2NVhGyB5m0e0iDXmToieei41nwsAhqFhQt+1i5=8m5S29YD; ssxmod_itna2=iqGxgDuD90KrG0D27DBGDRDUx4eLqiK4GHDyxWF50CGDLxn4KGdYRaGwb8DcGi=jMbN4gnGOeDAK=ARA37fD7pQT2GoYD/+hYfhEYn+rrWob/f6CnxT5A1l8eGs=Id+9X9PPwz18ud=q6FuQefixnl+GEmD=PaC54iuQPwdjAAltUWW4Mnb33pkQPhbtQWlPom8DKr1j7l8DQ8QfHlfu7A==o7DdMlSP=+bqPnDL4nwt0F7r908vG5YOjW7Xx4Uuhw85BDdAEjPQII3Xt5DFBQ0BGyES10S3cAWFTLfg24Iyl9LbQIjOBvuOA4ffTknx6DyMAczQam0TPmbPQTOQi2SHWAT2+9pf4FmDKFud9Y4CveFP6n0cDqPtc5yy3EFUl2Of0EbgOQ56z9O+h4lb44FOFpKmut/PvYvCfg4cDGfD8B4xETmjohDwLtKVm+Yhwj9c4yvx1cxLnHrPC8qYup3syFVBBQFz+xgmaCF7b2bdgF79qfbBqcohRnQp0tejK+n9l+49FWfGx3Q8Yw9CB7ejmB7plkIpweCeN5uzGmkICOtezIl6ewflR5oDLWiYHIIygdi0spdvtTsX7p93K3A5yf1Mm7Ajw1Gq16zAHOy7Dh+4YGjmk9lh5=qx2m5pL79vj4EorL5qVn653LwjtatMnSyLLUZOR66QAtwyM+f15GCi0qYq2nwPY146Pxd/muB87wrGYFib3q3Kh3tKhwGYY4oW5ShsAEjGAOxZ03CxPD",
|
||||
序号,组合,指定资金
|
||||
1,ZH1741493,50000
|
||||
2,ZH3379035,40000
|
||||
3,ZH2120024,50000
|
||||
4,ZH2001065,20000
|
||||
5,,
|
||||
|
@@ -0,0 +1,118 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import division, print_function, unicode_literals
|
||||
from datetime import datetime
|
||||
from follower import BaseFollower
|
||||
from log import logger
|
||||
from misc import parse_cookies_str
|
||||
import pandas as pd
|
||||
|
||||
class XueQiuFollower(BaseFollower):
|
||||
LOGIN_PAGE = "https://www.xueqiu.com"
|
||||
LOGIN_API = "https://xueqiu.com/snowman/login"
|
||||
TRANSACTION_API = "https://xueqiu.com/cubes/rebalancing/history.json"
|
||||
PORTFOLIO_URL = "https://xueqiu.com/p/"
|
||||
WEB_REFERER = "https://www.xueqiu.com"
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._adjust_sell = None
|
||||
self._users = None
|
||||
|
||||
def login(self, user=None, password=None, **kwargs):
|
||||
"""
|
||||
雪球登陆, 需要设置 cookies
|
||||
:param cookies: 雪球登陆需要设置 cookies, 具体见
|
||||
https://smalltool.github.io/2016/08/02/cookie/
|
||||
:return:
|
||||
"""
|
||||
cookies = kwargs.get("cookies")
|
||||
|
||||
if cookies is None:
|
||||
raise TypeError(
|
||||
"雪球登陆需要设置 cookies, 具体见" "https://smalltool.github.io/2016/08/02/cookie/"
|
||||
)
|
||||
headers = self._generate_headers()
|
||||
self.s.headers.update(headers)
|
||||
|
||||
self.s.get(self.LOGIN_PAGE)
|
||||
|
||||
cookie_dict = parse_cookies_str(cookies)
|
||||
self.s.cookies.update(cookie_dict)
|
||||
#extract_strategy_name(self, 'ZH1332574')
|
||||
logger.info("登录成功")
|
||||
|
||||
|
||||
|
||||
def extract_strategy_name(self, strategy_url):
|
||||
|
||||
base_url = "https://xueqiu.com/cubes/nav_daily/all.json?cube_symbol={}"
|
||||
url = base_url.format(strategy_url)
|
||||
rep = self.s.get(url)
|
||||
|
||||
info_index = 0
|
||||
return rep.json()[info_index]["name"]
|
||||
|
||||
|
||||
def extract_transactions(self, history):
|
||||
|
||||
if history["count"] <= 0:
|
||||
return []
|
||||
rebalancing_index = 0
|
||||
raw_transactions = history["list"][rebalancing_index]["rebalancing_histories"]
|
||||
transactions = []
|
||||
for transaction in raw_transactions:
|
||||
if transaction["price"] is None:
|
||||
logger.info("该笔交易无法获取价格,疑似未成交,跳过。交易详情: %s", transaction)
|
||||
continue
|
||||
transactions.append(transaction)
|
||||
|
||||
|
||||
return transactions
|
||||
|
||||
def create_query_transaction_params(self, strategy):
|
||||
params = {"cube_symbol": strategy, "page": 1, "count": 1}
|
||||
return params
|
||||
|
||||
# noinspection PyMethodOverriding
|
||||
def none_to_zero(self, data):
|
||||
if data is None:
|
||||
return 0
|
||||
return data
|
||||
|
||||
# noinspection PyMethodOverriding
|
||||
def project_transactions(self, transactions, assets):
|
||||
|
||||
pa = pd.DataFrame(index=[],columns=[])
|
||||
for transaction in transactions:
|
||||
weight_diff = self.none_to_zero(transaction["weight"]) - self.none_to_zero(
|
||||
transaction["prev_weight"]
|
||||
)
|
||||
#print(33333,weight_diff,assets,transaction["price"])
|
||||
initial_amount = abs(weight_diff) / 100 * assets / transaction["price"]
|
||||
|
||||
transaction["datetime"] = datetime.fromtimestamp(
|
||||
transaction["created_at"] // 1000
|
||||
)
|
||||
|
||||
transaction["stock_code"] = transaction["stock_symbol"].lower()
|
||||
|
||||
transaction["action"] = "buy" if weight_diff > 0 else "sell"
|
||||
|
||||
if str(transaction["stock_code"][2:4])=='11' or str(transaction["stock_code"][2:4])=='12':
|
||||
shou=1
|
||||
else:
|
||||
shou=2
|
||||
transaction["amount"] = int(round(initial_amount, -shou))
|
||||
|
||||
pa.loc[transaction["stock_code"],"price"]=transaction["price"]
|
||||
pa.loc[transaction["stock_code"],"amount"]=transaction["amount"]
|
||||
pa.loc[transaction["stock_code"],"datetime"]=transaction["datetime"]
|
||||
pa.loc[transaction["stock_code"],"action"]=transaction["action"]
|
||||
current_time = datetime.now()
|
||||
diff = (current_time - transaction["datetime"]).total_seconds()
|
||||
if int(diff)<20:
|
||||
return pa
|
||||
else:
|
||||
return []
|
||||
|
||||
|
||||
@@ -0,0 +1,219 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import abc
|
||||
import datetime
|
||||
import re,json
|
||||
import time
|
||||
from typing import List
|
||||
import requests
|
||||
from log import logger
|
||||
from misc import parse_cookies_str
|
||||
|
||||
|
||||
class BaseFollower(metaclass=abc.ABCMeta):
|
||||
"""
|
||||
slippage: 滑点,取值范围为 [0, 1]
|
||||
"""
|
||||
|
||||
LOGIN_PAGE = ""
|
||||
LOGIN_API = ""
|
||||
TRANSACTION_API = ""
|
||||
CMD_CACHE_FILE = "cmd_cache.pk"
|
||||
WEB_REFERER = ""
|
||||
WEB_ORIGIN = ""
|
||||
|
||||
def __init__(self):
|
||||
#self.trade_queue = queue.Queue()
|
||||
#self.expired_cmds = set()
|
||||
|
||||
self.s = requests.Session()
|
||||
self.s.verify = False
|
||||
|
||||
self.slippage: float = 0.0
|
||||
|
||||
def login(self, user=None, password=None, **kwargs):
|
||||
"""
|
||||
雪球登陆, 需要设置 cookies
|
||||
:param cookies: 雪球登陆需要设置 cookies, 具体见
|
||||
https://smalltool.github.io/2016/08/02/cookie/
|
||||
:return:
|
||||
"""
|
||||
cookies = kwargs.get("cookies")
|
||||
|
||||
if cookies is None:
|
||||
raise TypeError(
|
||||
"雪球登陆需要设置 cookies, 具体见" "https://smalltool.github.io/2016/08/02/cookie/"
|
||||
)
|
||||
headers = self._generate_headers()
|
||||
self.s.headers.update(headers)
|
||||
|
||||
self.s.get(self.LOGIN_PAGE)
|
||||
|
||||
cookie_dict = parse_cookies_str(cookies)
|
||||
self.s.cookies.update(cookie_dict)
|
||||
#extract_strategy_name(self, 'ZH1332574')
|
||||
logger.info("登录成功")
|
||||
|
||||
def _generate_headers(self):
|
||||
headers = {
|
||||
"Accept": "application/json, text/javascript, */*; q=0.01",
|
||||
"Accept-Encoding": "gzip, deflate, br",
|
||||
"Accept-Language": "en-US,en;q=0.8",
|
||||
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) "
|
||||
"AppleWebKit/537.36 (KHTML, like Gecko) "
|
||||
"Chrome/54.0.2840.100 Safari/537.36",
|
||||
"Referer": self.WEB_REFERER,
|
||||
"X-Requested-With": "XMLHttpRequest",
|
||||
"Origin": self.WEB_ORIGIN,
|
||||
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
||||
}
|
||||
return headers
|
||||
|
||||
def check_login_success(self, rep):
|
||||
"""检查登录状态是否成功
|
||||
:param rep: post login 接口返回的 response 对象
|
||||
:raise 如果登录失败应该抛出 NotLoginError """
|
||||
pass
|
||||
|
||||
def create_login_params(self, user, password, **kwargs) -> dict:
|
||||
"""生成 post 登录接口的参数
|
||||
:param user: 用户名
|
||||
:param password: 密码
|
||||
:return dict 登录参数的字典
|
||||
"""
|
||||
return {}
|
||||
|
||||
|
||||
|
||||
def extract_strategy_name(self, strategy_url):
|
||||
"""
|
||||
抽取 策略名,主要用于日志打印,便于识别
|
||||
:param strategy_url:
|
||||
:return: str 策略名
|
||||
"""
|
||||
pass
|
||||
#新增
|
||||
def _query_zh_(self,userid):
|
||||
|
||||
url = 'https://im.xueqiu.com/im-comet/v2/sessions/1681984443-0/messages.json?user_id=%s&limit=%d' %(userid, 1)
|
||||
chat_history = self.s.get(url).json()
|
||||
for chat_record in chat_history:
|
||||
new=chat_record['messageId']#获取messageId
|
||||
messageType=chat_record['messageType']#获取messageId
|
||||
starte='1'
|
||||
if messageType=='VIEW':
|
||||
view1 = json.loads(chat_record['view'])#策略代号
|
||||
starte=view1['url'][21:] #策略代号
|
||||
time.sleep(1)
|
||||
|
||||
return new,starte
|
||||
|
||||
#非开盘时间调仓,补充
|
||||
def minutes_2(self, strategys, userid, assets,**kwargs):
|
||||
dayOfWeek = datetime.datetime.now().weekday()
|
||||
time_n=datetime.datetime.now()
|
||||
hour=str(time_n)[11:13]
|
||||
minute=int(str(time_n)[14:16])
|
||||
print(time_n)
|
||||
if dayOfWeek<=4 and ((hour=='09' and minute<32 and minute>=30) or (hour=='13' and minute<2)) :
|
||||
#if dayOfWeek<=6 or (hour=='11' or minute<=59):
|
||||
for j in range(0,len(strategys)):
|
||||
print('开盘自动监测中......',strategys[j])
|
||||
try:
|
||||
transactions = self.query_strategy_transaction(strategys[j], assets[j],**kwargs)
|
||||
if len(transactions)>0:
|
||||
return transactions
|
||||
except Exception as e:
|
||||
#logger.exception("无法获取策略 %s 调仓信息, 错误: %s, 跳过此次调仓查询", name, e)
|
||||
time.sleep(3)
|
||||
if j < len(strategys)-1:
|
||||
continue
|
||||
else:
|
||||
return []
|
||||
else:
|
||||
return []
|
||||
|
||||
def track_strategy_worker(self, strategys, userid,users, assets, interval=10, **kwargs):
|
||||
|
||||
"""跟踪下单worker
|
||||
:param strategy: 策略id
|
||||
:param name: 策略名字
|
||||
:param interval: 轮询策略的时间间隔,单位为秒"""
|
||||
old,starte=self._query_zh_(userid)
|
||||
|
||||
transactions=[]
|
||||
k=0
|
||||
while True:
|
||||
k=k+1
|
||||
print(k)
|
||||
if k>=100:
|
||||
return []
|
||||
|
||||
#前两分钟补充,非开盘调仓
|
||||
minutes_2_data=self.minutes_2( strategys, userid, assets,**kwargs)
|
||||
if not minutes_2_data is None and len(minutes_2_data)>0:
|
||||
return minutes_2_data
|
||||
|
||||
try:
|
||||
new,starte_n=self._query_zh_(userid)#新增
|
||||
except:
|
||||
time.sleep(5)
|
||||
|
||||
for j in range(0,len(strategys)):
|
||||
print('自动监测中......',strategys[j])
|
||||
if new != old and starte_n==strategys[j]:
|
||||
#if new == old:
|
||||
old=new
|
||||
try:
|
||||
transactions = self.query_strategy_transaction(strategys[j], assets[j],**kwargs)
|
||||
|
||||
if len(transactions)>0:
|
||||
k=5
|
||||
return transactions
|
||||
if k==5:
|
||||
break
|
||||
|
||||
except Exception as e:
|
||||
logger.exception("无法获取策略 %s 调仓信息, 错误: %s, 跳过此次调仓查询", e)
|
||||
time.sleep(3)
|
||||
continue
|
||||
|
||||
|
||||
|
||||
def query_strategy_transaction(self, strategy,assets, **kwargs):
|
||||
|
||||
params = self.create_query_transaction_params(strategy)
|
||||
|
||||
rep = self.s.get(self.TRANSACTION_API, params=params)
|
||||
|
||||
history = rep.json()
|
||||
|
||||
transactions = self.extract_transactions(history)
|
||||
|
||||
return self.project_transactions(transactions,assets, **kwargs)
|
||||
|
||||
|
||||
def extract_transactions(self, history) -> List[str]:
|
||||
"""
|
||||
抽取接口返回中的调仓记录列表
|
||||
:param history: 调仓接口返回信息的字典对象
|
||||
:return: [] 调参历史记录的列表
|
||||
"""
|
||||
return []
|
||||
|
||||
def create_query_transaction_params(self, strategy) -> dict:
|
||||
"""
|
||||
生成用于查询调参记录的参数
|
||||
:param strategy: 策略 id
|
||||
:return: dict 调参记录参数
|
||||
"""
|
||||
return {}
|
||||
|
||||
|
||||
def project_transactions(self, transactions, **kwargs):
|
||||
|
||||
"""
|
||||
修证调仓记录为内部使用的统一格式
|
||||
:param transactions: [] 调仓记录的列表
|
||||
:return: [] 修整后的调仓记录
|
||||
"""
|
||||
pass
|
||||
@@ -0,0 +1,14 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger("easytrader")
|
||||
logger.setLevel(logging.INFO)
|
||||
logger.propagate = False
|
||||
|
||||
fmt = logging.Formatter(
|
||||
"%(asctime)s [%(levelname)s] %(filename)s %(lineno)s: %(message)s"
|
||||
)
|
||||
ch = logging.StreamHandler()
|
||||
|
||||
ch.setFormatter(fmt)
|
||||
logger.handlers.append(ch)
|
||||
@@ -0,0 +1,31 @@
|
||||
# coding:utf-8
|
||||
import json
|
||||
|
||||
|
||||
def parse_cookies_str(cookies):
|
||||
"""
|
||||
parse cookies str to dict
|
||||
:param cookies: cookies str
|
||||
:type cookies: str
|
||||
:return: cookie dict
|
||||
:rtype: dict
|
||||
"""
|
||||
cookie_dict = {}
|
||||
for record in cookies.split(";"):
|
||||
key, value = record.strip().split("=", 1)
|
||||
cookie_dict[key] = value
|
||||
return cookie_dict
|
||||
|
||||
|
||||
def file2dict(path):
|
||||
with open(path, encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
|
||||
|
||||
def grep_comma(num_str):
|
||||
return num_str.replace(",", "")
|
||||
|
||||
|
||||
def str2num(num_str, convert_type="float"):
|
||||
num = float(grep_comma(num_str))
|
||||
return num if convert_type == "float" else int(num)
|
||||
@@ -0,0 +1,28 @@
|
||||
cookies,"cookiesu=191750772541614; device_id=1aa02c03552abceadecb2739bbb22753; smidV2=2025062421422684a173893a01b0f3aab647b1593749cd00b3382a030dcc480; s=bu15p9id4j; bid=2c83e23d12700bb5d8115404894461ae_mckhq3o8; __utmz=1.1751372094.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=1.1565912137.1751372094.1751383237.1751889781.3; remember=1; xq_a_token=8360cc2ee2662e4910fc5e8d28fd9616f5a25c01; xqat=8360cc2ee2662e4910fc5e8d28fd9616f5a25c01; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOjcxNjA4MzgwNTgsImlzcyI6InVjIiwiZXhwIjoxNzUzOTY0MDQ5LCJjdG0iOjE3NTIwNjg1MjYxMzQsImNpZCI6ImQ5ZDBuNEFadXAifQ.hK59hAbbz3eK455XzoM2VLOZ8sBYYuimg8YjOF9eeWQM4vfy7gv2Ky56WAhRVLp6JtZtn_XpKPFiLGFZ_9rYWjmlkX7wm62y6S-vsCZbjIgyVhwNr66QK_B7v4xn3EhVSqo0rdgBJGQIaI33YB6MR0WFgkCRLy-fOq0YVNcv_Uh2-9CCgbagB3gcuDl158u68Vhhjlhu38-TLywFBUjbkA8mIYpra24XTRK-qG9sQbgpo3BkNsDZza_Yehwfvtr-1qAybYLaYsXoygxrxTtnpiwIrNaPe3aB8ztA45rPaE6W_b46m8i_agESPOflQ4c3_IJhJOUdzH5Aj8wMEnWr_w; xq_r_token=e0d4e05a6a3a9fec5b78bb2ea3c0f6a78204065d; xq_is_login=1; u=7160838058; acw_tc=1a0c660417523885271697993e00717dbfc46117e29830504427d58eff25fb; is_overseas=0; Hm_lvt_1db88642e346389874251b5a1eded6e3=1751383193,1751889683,1752068495,1752388529; HMACCOUNT=EB45621A3BC707DA; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1752388597; .thumbcache_f24b8bbe5a5934237bbc0eda20c1b6e7=su1FaOpXw2ndOH3TZPPLCCcKcT+Imtl21eeDD4joyCH+yUOAF6YPtknsHMr/g6/6ugDA8ioiS2cn5x6cI8Wlew%3D%3D; ssxmod_itna=Wqjx2DyD0DRG0QG0QGCirKqQK0QwFq0dGMD3qiQGgDYq7=GF7DCgrKO=QOGgxDv/xWYDGK4342GitDlO7iYDSxD6HDK4GThz=jyrqeFQ0EhItA7DOxP=5tC=wxM8/000pLsLI6Mp0=tv4K4EviDB3DbqDyziiqeeGGU4GwDGoD34DiDDpLD03Db4D+/lrD7xTNPpWQpjeDQ4GyDit=3xTDm4DfDDdQsixw9WxD0Txwk7DPzDGW0Qnqp6e=DGU54cDq0eDMbxGXKAkP0eDBlKCPt=WL2zgpmeF7xBQD7u9NTWqO9QcrsCgi/cb/aYt4qYnDIwxSxPCuqY4DVp4AG44RqzitY0qiGq8uqrwHY7YDDWYxxhlYqgdhB1RLz7SzgkiY2tQ7YNANdhDZ7oNrQ37xVnDGW5lB5xE5NAYhYY4OYkC5hmxWiDD; ssxmod_itna2=Wqjx2DyD0DRG0QG0QGCirKqQK0QwFq0dGMD3qiQGgDYq7=GF7DCgrKO=QOGgxDv/xWYDGK4342GiYDiP37UxYK47PqNzQ=YD/ziO3aeqn/8AHKz5QW27qZ08irc4wMO7SLzaaYt9nBQ8kQKR8fLKwfx3lhqdj0hn3tMQnUBYGD6Q70BzB2QlTrQceWqA8u5oDhMGkn5bQKfBWd+W=Nq50U79C2x+MpeD6Da5Q9hARHoHlx4UudqO0c8sj7hxc4aT1bqF9Hj53mw4gk2NRGC4wvs4R6+KX1PeD",
|
||||
ÐòºÅ,×éºÏ,Ö¸¶¨×ʽð
|
||||
1,ZH2120024,25000
|
||||
2,ZH1741493,25000
|
||||
3,ZH2001065,20000
|
||||
4,,
|
||||
5,,
|
||||
6,,
|
||||
7,,
|
||||
8,,
|
||||
9,,
|
||||
10,,
|
||||
11,,
|
||||
12,,
|
||||
13,,
|
||||
14,,
|
||||
15,,
|
||||
16,,
|
||||
17,,
|
||||
18,,
|
||||
19,,
|
||||
20,,
|
||||
21,,
|
||||
22,,
|
||||
23,,
|
||||
24,,
|
||||
25,,
|
||||
26,,
|
||||
|
@@ -0,0 +1,118 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import division, print_function, unicode_literals
|
||||
from datetime import datetime
|
||||
from follower import BaseFollower
|
||||
from log import logger
|
||||
from misc import parse_cookies_str
|
||||
import pandas as pd
|
||||
|
||||
class XueQiuFollower(BaseFollower):
|
||||
LOGIN_PAGE = "https://www.xueqiu.com"
|
||||
LOGIN_API = "https://xueqiu.com/snowman/login"
|
||||
TRANSACTION_API = "https://xueqiu.com/cubes/rebalancing/history.json"
|
||||
PORTFOLIO_URL = "https://xueqiu.com/p/"
|
||||
WEB_REFERER = "https://www.xueqiu.com"
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self._adjust_sell = None
|
||||
self._users = None
|
||||
|
||||
def login(self, user=None, password=None, **kwargs):
|
||||
"""
|
||||
雪球登陆, 需要设置 cookies
|
||||
:param cookies: 雪球登陆需要设置 cookies, 具体见
|
||||
https://smalltool.github.io/2016/08/02/cookie/
|
||||
:return:
|
||||
"""
|
||||
cookies = kwargs.get("cookies")
|
||||
|
||||
if cookies is None:
|
||||
raise TypeError(
|
||||
"雪球登陆需要设置 cookies, 具体见" "https://smalltool.github.io/2016/08/02/cookie/"
|
||||
)
|
||||
headers = self._generate_headers()
|
||||
self.s.headers.update(headers)
|
||||
|
||||
self.s.get(self.LOGIN_PAGE)
|
||||
|
||||
cookie_dict = parse_cookies_str(cookies)
|
||||
self.s.cookies.update(cookie_dict)
|
||||
#extract_strategy_name(self, 'ZH1332574')
|
||||
logger.info("登录成功")
|
||||
|
||||
|
||||
|
||||
def extract_strategy_name(self, strategy_url):
|
||||
|
||||
base_url = "https://xueqiu.com/cubes/nav_daily/all.json?cube_symbol={}"
|
||||
url = base_url.format(strategy_url)
|
||||
rep = self.s.get(url)
|
||||
|
||||
info_index = 0
|
||||
return rep.json()[info_index]["name"]
|
||||
|
||||
|
||||
def extract_transactions(self, history):
|
||||
|
||||
if history["count"] <= 0:
|
||||
return []
|
||||
rebalancing_index = 0
|
||||
raw_transactions = history["list"][rebalancing_index]["rebalancing_histories"]
|
||||
transactions = []
|
||||
for transaction in raw_transactions:
|
||||
if transaction["price"] is None:
|
||||
logger.info("该笔交易无法获取价格,疑似未成交,跳过。交易详情: %s", transaction)
|
||||
continue
|
||||
transactions.append(transaction)
|
||||
|
||||
|
||||
return transactions
|
||||
|
||||
def create_query_transaction_params(self, strategy):
|
||||
params = {"cube_symbol": strategy, "page": 1, "count": 1}
|
||||
return params
|
||||
|
||||
# noinspection PyMethodOverriding
|
||||
def none_to_zero(self, data):
|
||||
if data is None:
|
||||
return 0
|
||||
return data
|
||||
|
||||
# noinspection PyMethodOverriding
|
||||
def project_transactions(self, transactions, assets):
|
||||
|
||||
pa = pd.DataFrame(index=[],columns=[])
|
||||
for transaction in transactions:
|
||||
weight_diff = self.none_to_zero(transaction["weight"]) - self.none_to_zero(
|
||||
transaction["prev_weight"]
|
||||
)
|
||||
#print(33333,weight_diff,assets,transaction["price"])
|
||||
initial_amount = abs(weight_diff) / 100 * assets / transaction["price"]
|
||||
|
||||
transaction["datetime"] = datetime.fromtimestamp(
|
||||
transaction["created_at"] // 1000
|
||||
)
|
||||
|
||||
transaction["stock_code"] = transaction["stock_symbol"].lower()
|
||||
|
||||
transaction["action"] = "buy" if weight_diff > 0 else "sell"
|
||||
|
||||
if str(transaction["stock_code"][2:4])=='11' or str(transaction["stock_code"][2:4])=='12':
|
||||
shou=1
|
||||
else:
|
||||
shou=2
|
||||
transaction["amount"] = int(round(initial_amount, -shou))
|
||||
|
||||
pa.loc[transaction["stock_code"],"price"]=transaction["price"]
|
||||
pa.loc[transaction["stock_code"],"amount"]=transaction["amount"]
|
||||
pa.loc[transaction["stock_code"],"datetime"]=transaction["datetime"]
|
||||
pa.loc[transaction["stock_code"],"action"]=transaction["action"]
|
||||
current_time = datetime.now()
|
||||
diff = (current_time - transaction["datetime"]).total_seconds()
|
||||
if int(diff)<20:
|
||||
return pa
|
||||
else:
|
||||
return []
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
+475
@@ -0,0 +1,475 @@
|
||||
|
||||
0128132
|
||||
1110060
|
||||
1113651
|
||||
1118004
|
||||
0123156
|
||||
1118014
|
||||
0123130
|
||||
0127096
|
||||
0127092
|
||||
0123160
|
||||
1113665
|
||||
1113618
|
||||
1110094
|
||||
0123215
|
||||
1113695
|
||||
0128081
|
||||
1113565
|
||||
0123251
|
||||
0123063
|
||||
1111020
|
||||
1111003
|
||||
0127084
|
||||
1113689
|
||||
1113593
|
||||
1118044
|
||||
1113064
|
||||
0123189
|
||||
1111022
|
||||
0127070
|
||||
0123108
|
||||
1118057
|
||||
0123161
|
||||
0127035
|
||||
1113664
|
||||
0123034
|
||||
1111004
|
||||
0123245
|
||||
1118020
|
||||
1110087
|
||||
0123089
|
||||
0127033
|
||||
1113681
|
||||
0127079
|
||||
0123216
|
||||
1118023
|
||||
0128127
|
||||
0128105
|
||||
0127031
|
||||
0127042
|
||||
0123128
|
||||
1113579
|
||||
1113574
|
||||
1111015
|
||||
0123056
|
||||
0127068
|
||||
0127064
|
||||
1113615
|
||||
1113069
|
||||
0123194
|
||||
1113584
|
||||
1111023
|
||||
1113597
|
||||
0123149
|
||||
0123253
|
||||
0127054
|
||||
1113039
|
||||
1113632
|
||||
0127019
|
||||
1113631
|
||||
0123192
|
||||
0123193
|
||||
0123236
|
||||
1113641
|
||||
0127083
|
||||
0128131
|
||||
1113545
|
||||
0123250
|
||||
1113676
|
||||
1113687
|
||||
1113672
|
||||
1113054
|
||||
1113058
|
||||
1110076
|
||||
1111018
|
||||
0123257
|
||||
1113667
|
||||
1111021
|
||||
0123121
|
||||
0123212
|
||||
0123175
|
||||
0128109
|
||||
1111001
|
||||
0123220
|
||||
1113563
|
||||
1113659
|
||||
0128133
|
||||
1111013
|
||||
0127103
|
||||
0123217
|
||||
1118018
|
||||
0127085
|
||||
1110084
|
||||
0127105
|
||||
0123112
|
||||
0123235
|
||||
1113656
|
||||
1113610
|
||||
0127045
|
||||
1113048
|
||||
0127109
|
||||
0127028
|
||||
1113688
|
||||
0123183
|
||||
1111005
|
||||
0127069
|
||||
0127067
|
||||
0123144
|
||||
0123243
|
||||
1113694
|
||||
0123214
|
||||
1110077
|
||||
0123092
|
||||
0128125
|
||||
0127015
|
||||
1110059
|
||||
1118051
|
||||
1110097
|
||||
0123180
|
||||
0123146
|
||||
1113657
|
||||
0127082
|
||||
0123088
|
||||
0127052
|
||||
1113680
|
||||
1113674
|
||||
1113636
|
||||
1118008
|
||||
1113686
|
||||
0123178
|
||||
0128108
|
||||
0123196
|
||||
1118042
|
||||
0128128
|
||||
1110092
|
||||
0127016
|
||||
0123195
|
||||
0123185
|
||||
1113682
|
||||
1110074
|
||||
1118029
|
||||
0127099
|
||||
0123188
|
||||
0123147
|
||||
0127098
|
||||
0123085
|
||||
0127020
|
||||
0127093
|
||||
0123239
|
||||
0127107
|
||||
0123207
|
||||
1113051
|
||||
0127030
|
||||
0127047
|
||||
1113606
|
||||
1113654
|
||||
1118013
|
||||
0123168
|
||||
0127034
|
||||
1111000
|
||||
0123230
|
||||
0123234
|
||||
0127078
|
||||
0123064
|
||||
1113646
|
||||
0123071
|
||||
1118022
|
||||
0128137
|
||||
1113623
|
||||
0123166
|
||||
0123109
|
||||
1113624
|
||||
0127080
|
||||
1113067
|
||||
1113059
|
||||
0127026
|
||||
1118035
|
||||
1113643
|
||||
0123247
|
||||
1113679
|
||||
0127102
|
||||
0127095
|
||||
0127090
|
||||
1111009
|
||||
0123224
|
||||
1111002
|
||||
1118024
|
||||
0123172
|
||||
1118027
|
||||
1118030
|
||||
0123252
|
||||
0123244
|
||||
0123165
|
||||
1113649
|
||||
1110089
|
||||
0127039
|
||||
1113638
|
||||
0127056
|
||||
1113650
|
||||
0127022
|
||||
0127017
|
||||
1118036
|
||||
0127046
|
||||
0128138
|
||||
1113549
|
||||
0127086
|
||||
0128121
|
||||
0123090
|
||||
0127066
|
||||
0127075
|
||||
0128097
|
||||
1110064
|
||||
0123159
|
||||
1113647
|
||||
1113666
|
||||
0123080
|
||||
0123203
|
||||
0123126
|
||||
0127108
|
||||
1118041
|
||||
1113644
|
||||
0127059
|
||||
1113070
|
||||
1113652
|
||||
1118038
|
||||
0123039
|
||||
0123119
|
||||
0123225
|
||||
0123117
|
||||
0127040
|
||||
1113669
|
||||
0128076
|
||||
1113660
|
||||
1110082
|
||||
0123049
|
||||
0123223
|
||||
1110070
|
||||
0127073
|
||||
0123133
|
||||
1113658
|
||||
0123107
|
||||
0123221
|
||||
1113655
|
||||
0123242
|
||||
0127077
|
||||
1118033
|
||||
1110081
|
||||
1111016
|
||||
0123158
|
||||
1118009
|
||||
1113609
|
||||
1113575
|
||||
1110817
|
||||
1110816
|
||||
1110815
|
||||
1110808
|
||||
1110801
|
||||
0128044
|
||||
0127106
|
||||
0124024
|
||||
0123248
|
||||
0123186
|
||||
0123177
|
||||
0123082
|
||||
0123052
|
||||
0123038
|
||||
0123029
|
||||
1113037
|
||||
1113639
|
||||
1113668
|
||||
1110093
|
||||
1113673
|
||||
1113633
|
||||
0127044
|
||||
0123091
|
||||
1113577
|
||||
1110095
|
||||
1118032
|
||||
1111017
|
||||
0123179
|
||||
0123197
|
||||
1111014
|
||||
1110096
|
||||
1113648
|
||||
1113671
|
||||
0123072
|
||||
0128119
|
||||
1110063
|
||||
1118010
|
||||
0127060
|
||||
1118011
|
||||
0128141
|
||||
0123182
|
||||
0123061
|
||||
1118034
|
||||
1113062
|
||||
0127018
|
||||
1118031
|
||||
1118006
|
||||
1118056
|
||||
0123254
|
||||
0127089
|
||||
1113605
|
||||
0128135
|
||||
0123065
|
||||
0123240
|
||||
0127050
|
||||
1113627
|
||||
1113683
|
||||
0123198
|
||||
0127088
|
||||
1118005
|
||||
1113653
|
||||
0123150
|
||||
0128071
|
||||
0127094
|
||||
1113625
|
||||
0127071
|
||||
0123222
|
||||
1113661
|
||||
0123122
|
||||
1113670
|
||||
0123142
|
||||
0128142
|
||||
0123154
|
||||
1110062
|
||||
1110098
|
||||
0127027
|
||||
1113696
|
||||
1118025
|
||||
1110086
|
||||
1113053
|
||||
0128134
|
||||
0123104
|
||||
1110075
|
||||
0123129
|
||||
0123124
|
||||
0123118
|
||||
1110085
|
||||
0123246
|
||||
1113628
|
||||
0127049
|
||||
1113052
|
||||
1113056
|
||||
0123151
|
||||
1118054
|
||||
1113691
|
||||
0123210
|
||||
0123155
|
||||
0123113
|
||||
1118037
|
||||
0128116
|
||||
0127024
|
||||
0123229
|
||||
1118039
|
||||
1113042
|
||||
1113634
|
||||
1113046
|
||||
1113693
|
||||
1113033
|
||||
0123114
|
||||
1113675
|
||||
0127061
|
||||
1113049
|
||||
1113045
|
||||
1111019
|
||||
0123176
|
||||
1113589
|
||||
1118015
|
||||
1118045
|
||||
0123199
|
||||
0127025
|
||||
0127041
|
||||
0123076
|
||||
1113685
|
||||
0127038
|
||||
0123206
|
||||
1113043
|
||||
0127110
|
||||
0127062
|
||||
1113640
|
||||
1111007
|
||||
1113692
|
||||
0128129
|
||||
1110073
|
||||
0128101
|
||||
1118049
|
||||
0123241
|
||||
1113047
|
||||
1118000
|
||||
1118040
|
||||
0127053
|
||||
1111010
|
||||
0127072
|
||||
0128095
|
||||
0127055
|
||||
1118050
|
||||
1118052
|
||||
0123171
|
||||
1113068
|
||||
0123233
|
||||
0123255
|
||||
0123138
|
||||
0127076
|
||||
1110067
|
||||
1113616
|
||||
0123231
|
||||
0123256
|
||||
0123087
|
||||
0127097
|
||||
0128120
|
||||
1113621
|
||||
1110090
|
||||
0123157
|
||||
1118003
|
||||
1111012
|
||||
1118007
|
||||
1118016
|
||||
1113569
|
||||
1113066
|
||||
0128144
|
||||
0123249
|
||||
1113065
|
||||
0123211
|
||||
1113601
|
||||
0123237
|
||||
0123059
|
||||
1113663
|
||||
1118048
|
||||
1118053
|
||||
1118055
|
||||
0127104
|
||||
0128124
|
||||
0123213
|
||||
0123131
|
||||
0123187
|
||||
0128136
|
||||
1113678
|
||||
1118012
|
||||
1118043
|
||||
0123141
|
||||
0128074
|
||||
0123173
|
||||
0128130
|
||||
0123201
|
||||
0123048
|
||||
0123200
|
||||
1113690
|
||||
0127081
|
||||
1113030
|
||||
0123169
|
||||
1113677
|
||||
1118021
|
||||
0123120
|
||||
1113588
|
||||
0123054
|
||||
0127037
|
||||
0123031
|
||||
0127101
|
||||
0123145
|
||||
0123209
|
||||
0123232
|
||||
0123162
|
||||
1118058
|
||||
1118500
|
||||
+1001
File diff suppressed because it is too large
Load Diff
+2001
File diff suppressed because it is too large
Load Diff
+101
@@ -0,0 +1,101 @@
|
||||
|
||||
0002475
|
||||
0300750
|
||||
0002422
|
||||
0002241
|
||||
0002648
|
||||
0002463
|
||||
0002001
|
||||
0300014
|
||||
1600438
|
||||
0002466
|
||||
1688008
|
||||
0300896
|
||||
0300308
|
||||
0000063
|
||||
0000792
|
||||
0300274
|
||||
0002714
|
||||
0000100
|
||||
0002460
|
||||
0000938
|
||||
0002371
|
||||
1601919
|
||||
1600426
|
||||
1600030
|
||||
1603799
|
||||
0002594
|
||||
1600346
|
||||
1600019
|
||||
0000725
|
||||
1601668
|
||||
1603259
|
||||
0002415
|
||||
1601166
|
||||
1600150
|
||||
1600585
|
||||
1600690
|
||||
1600584
|
||||
1600309
|
||||
1600760
|
||||
1601899
|
||||
0000333
|
||||
0300124
|
||||
1603501
|
||||
0000538
|
||||
1600519
|
||||
1601766
|
||||
1600276
|
||||
0002027
|
||||
0300122
|
||||
1688256
|
||||
1600048
|
||||
1600009
|
||||
0002252
|
||||
0000651
|
||||
1603993
|
||||
1601669
|
||||
1600111
|
||||
1688271
|
||||
1688981
|
||||
0000338
|
||||
1601888
|
||||
0300015
|
||||
1688111
|
||||
1601989
|
||||
1601985
|
||||
1600050
|
||||
1600436
|
||||
1601318
|
||||
0002230
|
||||
1601012
|
||||
1601600
|
||||
1688041
|
||||
0002049
|
||||
1600031
|
||||
0001979
|
||||
1600893
|
||||
1600489
|
||||
0002179
|
||||
1601390
|
||||
1688012
|
||||
1601006
|
||||
1600406
|
||||
1601398
|
||||
1600028
|
||||
1600900
|
||||
1600010
|
||||
1601857
|
||||
0000002
|
||||
1600941
|
||||
1600036
|
||||
1601728
|
||||
1601816
|
||||
1603986
|
||||
0000425
|
||||
1600989
|
||||
1600089
|
||||
0002352
|
||||
0300760
|
||||
1600547
|
||||
1601088
|
||||
+501
@@ -0,0 +1,501 @@
|
||||
|
||||
0000001
|
||||
0000002
|
||||
0000009
|
||||
0000032
|
||||
0000034
|
||||
0000035
|
||||
0000039
|
||||
0000063
|
||||
0000066
|
||||
0000069
|
||||
0000100
|
||||
0000157
|
||||
0000301
|
||||
0000333
|
||||
0000338
|
||||
0000400
|
||||
0000408
|
||||
0000423
|
||||
0000425
|
||||
0000426
|
||||
0000519
|
||||
0000538
|
||||
0000547
|
||||
0000563
|
||||
0000568
|
||||
0000617
|
||||
0000623
|
||||
0000625
|
||||
0000629
|
||||
0000630
|
||||
0000651
|
||||
0000661
|
||||
0000683
|
||||
0000708
|
||||
0000725
|
||||
0000733
|
||||
0000738
|
||||
0000768
|
||||
0000786
|
||||
0000792
|
||||
0000807
|
||||
0000818
|
||||
0000830
|
||||
0000831
|
||||
0000858
|
||||
0000878
|
||||
0000887
|
||||
0000932
|
||||
0000933
|
||||
0000938
|
||||
0000960
|
||||
0000963
|
||||
0000967
|
||||
0000975
|
||||
0000977
|
||||
0000988
|
||||
0000998
|
||||
0000999
|
||||
0001914
|
||||
0001965
|
||||
0001979
|
||||
0002001
|
||||
0002007
|
||||
0002008
|
||||
0002025
|
||||
0002027
|
||||
0002028
|
||||
0002044
|
||||
0002049
|
||||
0002050
|
||||
0002064
|
||||
0002065
|
||||
0002074
|
||||
0002078
|
||||
0002085
|
||||
0002091
|
||||
0002120
|
||||
0002128
|
||||
0002129
|
||||
0002130
|
||||
0002131
|
||||
0002138
|
||||
0002145
|
||||
0002152
|
||||
0002155
|
||||
0002156
|
||||
0002176
|
||||
0002179
|
||||
0002180
|
||||
0002185
|
||||
0002195
|
||||
0002202
|
||||
0002223
|
||||
0002230
|
||||
0002236
|
||||
0002241
|
||||
0002244
|
||||
0002245
|
||||
0002252
|
||||
0002266
|
||||
0002271
|
||||
0002273
|
||||
0002281
|
||||
0002292
|
||||
0002294
|
||||
0002312
|
||||
0002318
|
||||
0002340
|
||||
0002352
|
||||
0002353
|
||||
0002371
|
||||
0002372
|
||||
0002384
|
||||
0002389
|
||||
0002405
|
||||
0002407
|
||||
0002409
|
||||
0002410
|
||||
0002414
|
||||
0002415
|
||||
0002422
|
||||
0002432
|
||||
0002436
|
||||
0002439
|
||||
0002444
|
||||
0002456
|
||||
0002459
|
||||
0002460
|
||||
0002463
|
||||
0002465
|
||||
0002466
|
||||
0002472
|
||||
0002475
|
||||
0002493
|
||||
0002497
|
||||
0002508
|
||||
0002517
|
||||
0002532
|
||||
0002544
|
||||
0002555
|
||||
0002558
|
||||
0002572
|
||||
0002594
|
||||
0002595
|
||||
0002601
|
||||
0002603
|
||||
0002607
|
||||
0002624
|
||||
0002625
|
||||
0002648
|
||||
0002709
|
||||
0002714
|
||||
0002738
|
||||
0002739
|
||||
0002756
|
||||
0002812
|
||||
0002821
|
||||
0002831
|
||||
0002841
|
||||
0002916
|
||||
0002920
|
||||
0002938
|
||||
0003816
|
||||
0300001
|
||||
0300002
|
||||
0300003
|
||||
0300012
|
||||
0300014
|
||||
0300015
|
||||
0300017
|
||||
0300024
|
||||
0300033
|
||||
0300037
|
||||
0300054
|
||||
0300058
|
||||
0300059
|
||||
0300068
|
||||
0300070
|
||||
0300073
|
||||
0300088
|
||||
0300118
|
||||
0300122
|
||||
0300124
|
||||
0300136
|
||||
0300142
|
||||
0300144
|
||||
0300182
|
||||
0300207
|
||||
0300223
|
||||
0300251
|
||||
0300253
|
||||
0300274
|
||||
0300285
|
||||
0300296
|
||||
0300308
|
||||
0300315
|
||||
0300316
|
||||
0300339
|
||||
0300346
|
||||
0300347
|
||||
0300383
|
||||
0300390
|
||||
0300394
|
||||
0300395
|
||||
0300408
|
||||
0300413
|
||||
0300418
|
||||
0300433
|
||||
0300438
|
||||
0300442
|
||||
0300450
|
||||
0300454
|
||||
0300457
|
||||
0300459
|
||||
0300474
|
||||
0300476
|
||||
0300496
|
||||
0300502
|
||||
0300529
|
||||
0300558
|
||||
0300567
|
||||
0300568
|
||||
0300573
|
||||
0300601
|
||||
0300604
|
||||
0300627
|
||||
0300628
|
||||
0300661
|
||||
0300676
|
||||
0300699
|
||||
0300724
|
||||
0300750
|
||||
0300751
|
||||
0300757
|
||||
0300759
|
||||
0300760
|
||||
0300763
|
||||
0300769
|
||||
0300782
|
||||
0300832
|
||||
0300866
|
||||
0300896
|
||||
0300919
|
||||
0301236
|
||||
0301358
|
||||
0301381
|
||||
0302132
|
||||
1600000
|
||||
1600004
|
||||
1600007
|
||||
1600008
|
||||
1600009
|
||||
1600010
|
||||
1600011
|
||||
1600018
|
||||
1600019
|
||||
1600026
|
||||
1600028
|
||||
1600029
|
||||
1600030
|
||||
1600031
|
||||
1600036
|
||||
1600038
|
||||
1600039
|
||||
1600048
|
||||
1600050
|
||||
1600066
|
||||
1600085
|
||||
1600089
|
||||
1600096
|
||||
1600104
|
||||
1600111
|
||||
1600115
|
||||
1600118
|
||||
1600129
|
||||
1600131
|
||||
1600141
|
||||
1600143
|
||||
1600150
|
||||
1600153
|
||||
1600160
|
||||
1600161
|
||||
1600166
|
||||
1600170
|
||||
1600176
|
||||
1600177
|
||||
1600183
|
||||
1600188
|
||||
1600196
|
||||
1600208
|
||||
1600219
|
||||
1600233
|
||||
1600256
|
||||
1600258
|
||||
1600276
|
||||
1600309
|
||||
1600312
|
||||
1600315
|
||||
1600316
|
||||
1600323
|
||||
1600325
|
||||
1600332
|
||||
1600335
|
||||
1600346
|
||||
1600352
|
||||
1600362
|
||||
1600372
|
||||
1600392
|
||||
1600398
|
||||
1600406
|
||||
1600415
|
||||
1600418
|
||||
1600426
|
||||
1600436
|
||||
1600438
|
||||
1600460
|
||||
1600482
|
||||
1600486
|
||||
1600487
|
||||
1600489
|
||||
1600497
|
||||
1600498
|
||||
1600499
|
||||
1600511
|
||||
1600515
|
||||
1600516
|
||||
1600519
|
||||
1600521
|
||||
1600529
|
||||
1600535
|
||||
1600547
|
||||
1600549
|
||||
1600563
|
||||
1600570
|
||||
1600584
|
||||
1600585
|
||||
1600588
|
||||
1600637
|
||||
1600655
|
||||
1600660
|
||||
1600667
|
||||
1600674
|
||||
1600690
|
||||
1600699
|
||||
1600704
|
||||
1600741
|
||||
1600745
|
||||
1600754
|
||||
1600760
|
||||
1600763
|
||||
1600765
|
||||
1600795
|
||||
1600803
|
||||
1600820
|
||||
1600839
|
||||
1600845
|
||||
1600859
|
||||
1600862
|
||||
1600864
|
||||
1600867
|
||||
1600879
|
||||
1600885
|
||||
1600886
|
||||
1600887
|
||||
1600893
|
||||
1600895
|
||||
1600900
|
||||
1600905
|
||||
1600919
|
||||
1600938
|
||||
1600941
|
||||
1600988
|
||||
1600989
|
||||
1600998
|
||||
1601000
|
||||
1601006
|
||||
1601012
|
||||
1601018
|
||||
1601021
|
||||
1601058
|
||||
1601088
|
||||
1601100
|
||||
1601111
|
||||
1601117
|
||||
1601127
|
||||
1601155
|
||||
1601166
|
||||
1601168
|
||||
1601179
|
||||
1601186
|
||||
1601216
|
||||
1601225
|
||||
1601233
|
||||
1601238
|
||||
1601288
|
||||
1601318
|
||||
1601319
|
||||
1601328
|
||||
1601360
|
||||
1601390
|
||||
1601398
|
||||
1601567
|
||||
1601600
|
||||
1601601
|
||||
1601607
|
||||
1601615
|
||||
1601618
|
||||
1601628
|
||||
1601633
|
||||
1601636
|
||||
1601658
|
||||
1601668
|
||||
1601669
|
||||
1601677
|
||||
1601689
|
||||
1601727
|
||||
1601728
|
||||
1601766
|
||||
1601799
|
||||
1601800
|
||||
1601816
|
||||
1601857
|
||||
1601866
|
||||
1601868
|
||||
1601872
|
||||
1601877
|
||||
1601880
|
||||
1601888
|
||||
1601899
|
||||
1601919
|
||||
1601966
|
||||
1601985
|
||||
1601988
|
||||
1601989
|
||||
1603000
|
||||
1603019
|
||||
1603077
|
||||
1603087
|
||||
1603129
|
||||
1603259
|
||||
1603260
|
||||
1603288
|
||||
1603392
|
||||
1603486
|
||||
1603501
|
||||
1603568
|
||||
1603596
|
||||
1603605
|
||||
1603606
|
||||
1603613
|
||||
1603650
|
||||
1603659
|
||||
1603799
|
||||
1603806
|
||||
1603816
|
||||
1603833
|
||||
1603885
|
||||
1603899
|
||||
1603939
|
||||
1603979
|
||||
1603986
|
||||
1603993
|
||||
1605117
|
||||
1605358
|
||||
1605499
|
||||
1605589
|
||||
1688002
|
||||
1688005
|
||||
1688008
|
||||
1688009
|
||||
1688012
|
||||
1688036
|
||||
1688041
|
||||
1688047
|
||||
1688063
|
||||
1688072
|
||||
1688099
|
||||
1688111
|
||||
1688120
|
||||
1688122
|
||||
1688126
|
||||
1688169
|
||||
1688180
|
||||
1688188
|
||||
1688213
|
||||
1688223
|
||||
1688235
|
||||
1688256
|
||||
1688266
|
||||
1688271
|
||||
1688303
|
||||
1688390
|
||||
1688396
|
||||
1688506
|
||||
1688578
|
||||
1688599
|
||||
1688608
|
||||
1688617
|
||||
1688777
|
||||
1688981
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,469 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"参数研究*args, **kwargs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"https://blog.csdn.net/GODSuner/article/details/117961990"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"*args 和 ``kwargs` 这两个魔法变量需要花费大量时间来解释。别被这些语句所绊倒。其实这些并不是什么超级特殊的参数,也并不奇特,只是编程人员约定的变量名字,args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。 接下来我们就来一起了解他们的用法**,以及在什么情况下使用?·\n",
|
||||
"\n",
|
||||
"首先你要明白的是:\n",
|
||||
"\n",
|
||||
"其实并不是写成 *args 和 **kwargs ,只有前面的 * (星号)才是必须的。\n",
|
||||
"向python传递参数的方式有两种:\n",
|
||||
"位置参数(positional argument)\n",
|
||||
"关键词参数(keyword argument)\n",
|
||||
"现在我们再来看 *args 与 **kwargs 的区别,两者都是 python 中可变的参数\n",
|
||||
"*args 表示任何多个无名参数, 他本质上是一个 tuple\n",
|
||||
"** kwargs 表示关键字参数, 它本质上是一个 dict\n",
|
||||
"\n",
|
||||
"同时使用时必须要求 *args 参数列要在** kwargs 前面 【因为位置参数在关键字参数的前面。】"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"*args 的用法\n",
|
||||
"* args 和 ** args 主要用于函数定义,你可以将不定数量的参数传递给一个函数。\n",
|
||||
"\n",
|
||||
"这里不定的意思是: 预先并不知道,函数使用者会传递多少个参数给你,所在在这个场景下使用这两个关键字。 * args 是用来发送一个 非键值 的可变数量的参数列表给一个函数。"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"first normal arg: yasoob\n",
|
||||
"another arg through *argv: python\n",
|
||||
"another arg through *argv: eggs\n",
|
||||
"another arg through *argv: test\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def test_var_args(f_arg, *argv):\n",
|
||||
" print(\"first normal arg:\",f_arg)\n",
|
||||
" for arg in argv:\n",
|
||||
" print(\"another arg through *argv:\",arg)\n",
|
||||
"test_var_args('yasoob','python','eggs','test')\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"*args的用法"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"*args就是就是传递一个可变参数列表给函数实参,这个参数列表的数目未知,甚至长度可以为0。下面这段代码演示了如何使用args"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Required argument: 1\n",
|
||||
"<class 'tuple'>\n",
|
||||
"Optional argument: 2\n",
|
||||
"Optional argument: 3\n",
|
||||
"Optional argument: 4\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def test_args(first, *args):\n",
|
||||
" print('Required argument: ', first)\n",
|
||||
" print(type(args))\n",
|
||||
" for v in args:\n",
|
||||
" print ('Optional argument: ', v)\n",
|
||||
" print(type(v))\n",
|
||||
"\n",
|
||||
"test_args(1, 2, 3, 4)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"第一个参数是必须要传入的参数,所以使用了第一个形参,而后面三个参数则作为可变参数列表传入了实参,并且是作为元组tuple来使用的。代码的运行结果如下"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"**kwargs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"而**kwargs则是将一个可变的关键字参数的字典传给函数实参,同样参数列表长度可以为0或为其他值。下面这段代码演示了如何使用kwargs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Required argument: 1\n",
|
||||
"<class 'dict'>\n",
|
||||
"Optional argument (args): 2\n",
|
||||
"Optional argument (args): 3\n",
|
||||
"Optional argument (args): 4\n",
|
||||
"{'k1': 5, 'k2': 6}\n",
|
||||
"Optional argument k1 (kwargs): 5\n",
|
||||
"Optional argument k2 (kwargs): 6\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def test_kwargs(first, *args, **kwargs):\n",
|
||||
" print('Required argument: ', first)\n",
|
||||
" print(type(kwargs))\n",
|
||||
" for v in args:\n",
|
||||
" print ('Optional argument (args): ', v)\n",
|
||||
" print(kwargs)\n",
|
||||
" for k, v in kwargs.items():\n",
|
||||
" print ('Optional argument %s (kwargs): %s' % (k, v))\n",
|
||||
"\n",
|
||||
"test_kwargs(1, 2, 3, 4, k1=5, k2=6)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"正如前面所说的,args类型是一个tuple,而kwargs则是一个字典dict,并且args只能位于kwargs的前面。代码的运行结果如下"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"调用函数\n",
|
||||
"args和kwargs不仅可以在函数定义中使用,还可以在函数调用中使用。在调用时使用就相当于pack(打包)和unpack(解包),类似于元组的打包和解包。\n",
|
||||
"\n",
|
||||
"首先来看一下使用args来解包调用函数的代码,"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"arg1: two\n",
|
||||
"arg2: 3\n",
|
||||
"arg3: 5\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def test_args_kwargs(arg1, arg2, arg3):\n",
|
||||
" print(\"arg1:\", arg1)\n",
|
||||
" print(\"arg2:\", arg2)\n",
|
||||
" print(\"arg3:\", arg3)\n",
|
||||
"\n",
|
||||
"args = (\"two\", 3, 5)\n",
|
||||
"test_args_kwargs(*args)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"将元组解包后传给对应的实参,kwargs的用法与其类似。"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"arg1: 5\n",
|
||||
"arg2: two\n",
|
||||
"arg3: 3\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"kwargs = {\"arg3\": 3, \"arg2\": \"two\", \"arg1\": 5}\n",
|
||||
"test_args_kwargs(**kwargs)\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"聚合宽数据研究"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"交易函数"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"1 order(security, amount, style=None, side='long', pindex=0, close_today=False)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"交易函数\n",
|
||||
"1 order(security, amount, style=None, side='long', pindex=0, close_today=False)\n",
|
||||
"买卖标的。调用成功后, 您将可以调用[get_open_orders]取得所有未完成的交易, 也可以调用[cancel_order]取消交易\n",
|
||||
"\n",
|
||||
"参数\n",
|
||||
"\n",
|
||||
"security: 标的代码\n",
|
||||
"amount: 交易数量, 正数表示买入, 负数表示卖出\n",
|
||||
"style: 参见OrderStyle, None代表MarketOrder\n",
|
||||
"side: 'long'/'short',操作多单还是空单。默认为多单,股票、基金暂不支持开空单。\n",
|
||||
"pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0 指定第一个 subportfolio, 1 指定第二个 subportfolio,默认为0。\n",
|
||||
"close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。\n",
|
||||
"对上海国际能源中心,上海期货交易所,中金所的标的:\n",
|
||||
"close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。\n",
|
||||
"close_today = False, 优先平昨仓,昨仓不足部分平今仓\n",
|
||||
"不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。\n",
|
||||
"返回 Order对象或者None, 如果创建订单成功, 则返回Order对象, 失败则返回None\n",
|
||||
"\n",
|
||||
"示例\n",
|
||||
"\n",
|
||||
"#买入平安银行股票100股\n",
|
||||
"order('000001.XSHE', 100) # 下一个市价单\n",
|
||||
"order('000001.XSHE', 100, MarketOrderStyle()) # 下一个市价单, 功能同上(科创板市价单需要指定保护价)\n",
|
||||
"order('000001.XSHE', 100, LimitOrderStyle(10.0)) # 以10块价格下一个限价单\n",
|
||||
"'''"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"order_target(security, amount, style=None, side='long', pindex=0, close_today=False)\n",
|
||||
"买卖标的, 使最终标的的数量达到指定的amount,注意使用此接口下单时若指定的标的有未完成的订单,则先前未完成的订单将会被取消\n",
|
||||
"\n",
|
||||
"参数\n",
|
||||
"\n",
|
||||
"security: 标的代码\n",
|
||||
"amount: 期望的最终数量\n",
|
||||
"style: 参见OrderStyle, None代表MarketOrder\n",
|
||||
"side: 'long'/'short',操作多单还是空单。默认为多单。默认为多单,股票、基金暂不支持开空单。\n",
|
||||
"pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,默认为0。\n",
|
||||
"close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。\n",
|
||||
"对上海国际能源中心,上海期货交易所,中金所的标的:\n",
|
||||
"close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。\n",
|
||||
"close_today = False, 优先平昨仓,昨仓不足部分平今仓\n",
|
||||
"不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。\n",
|
||||
"返回 Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None\n",
|
||||
"\n",
|
||||
"示例\n",
|
||||
"\n",
|
||||
"# 卖出平安银行所有股票\n",
|
||||
"order_target('000001.XSHE', 0)\n",
|
||||
"# 买入平安银行所有股票到100股\n",
|
||||
"order_target('000001.XSHE', 100)\n",
|
||||
"'''"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"order_value(security, value, style=None, side='long', pindex=0, close_today=False)\n",
|
||||
"买卖价值为value的标的。\n",
|
||||
"\n",
|
||||
"参数\n",
|
||||
"\n",
|
||||
"security: 股票名字\n",
|
||||
"\n",
|
||||
"value: 股票价值,value = 最新价 * 手数 * 保证金率(股票为1) * 乘数(股票为100)\n",
|
||||
"\n",
|
||||
"style: 参见OrderStyle, None代表MarketOrder\n",
|
||||
"\n",
|
||||
"side: 'long'/'short',操作多单还是空单。默认为多单。默认为多单,股票、基金暂不支持开空单。\n",
|
||||
"\n",
|
||||
"pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,默认为0。\n",
|
||||
"\n",
|
||||
"close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。\n",
|
||||
"\n",
|
||||
"对上海国际能源中心,上海期货交易所,中金所的标的:\n",
|
||||
"close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。\n",
|
||||
"close_today = False, 优先平昨仓,昨仓不足部分平今仓\n",
|
||||
"不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。\n",
|
||||
"返回 Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None\n",
|
||||
"\n",
|
||||
"示例\n",
|
||||
"\n",
|
||||
"#卖出价值为10000元的平安银行股票\n",
|
||||
"order_value('000001.XSHE', -10000)\n",
|
||||
"#买入价值为10000元的平安银行股票\n",
|
||||
"order_value('000001.XSHE', 10000)\n",
|
||||
"'''"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"order_target_value(security, value, style=None, side='long', pindex=0, close_today=False)\n",
|
||||
"调整标的仓位到value价值,注意使用此接口下单时若指定的标的有未完成的订单,则先前未完成的订单将会被取消\n",
|
||||
"\n",
|
||||
"参数\n",
|
||||
"\n",
|
||||
"security: 标的名字\n",
|
||||
"value: 期望的标的最终价值,value = 最新价 * 手数 * 保证金率(股票为1) * 乘数(股票为100)\n",
|
||||
"style: 参见OrderStyle, None代表MarketOrder\n",
|
||||
"side: 'long'/'short',操作多单还是空单。默认为多单。\n",
|
||||
"pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,默认为0。\n",
|
||||
"close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。\n",
|
||||
"对上海国际能源中心,上海期货交易所,中金所的标的:\n",
|
||||
"close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。\n",
|
||||
"close_today = False, 优先平昨仓,昨仓不足部分平今仓\n",
|
||||
"不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。\n",
|
||||
"返回 Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None\n",
|
||||
"\n",
|
||||
"示例\n",
|
||||
"\n",
|
||||
"#卖出平安银行所有股票\n",
|
||||
"order_target_value('000001.XSHE', 0)\n",
|
||||
"#调整平安银行股票仓位到10000元价值\n",
|
||||
"order_target_value('000001.XSHE', 10000)\n",
|
||||
"'''"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"聚宽的类研究"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Order对象"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"买卖订单\n",
|
||||
"关于order/trader对象及订单处理\n",
|
||||
"以csv格式保存order、trade、position数据\n",
|
||||
"\n",
|
||||
"status: 状态, 一个OrderStatus值\n",
|
||||
"add_time: 订单添加时间, [datetime.datetime]对象\n",
|
||||
"is_buy: bool值, 买还是卖,对于期货:\n",
|
||||
"开多/平空 -> 买\n",
|
||||
"开空/平多 -> 卖\n",
|
||||
"amount: 下单数量, 不管是买还是卖, 都是正数\n",
|
||||
"filled: 已经成交的股票数量, 正数\n",
|
||||
"security: 股票代码\n",
|
||||
"order_id: 订单ID\n",
|
||||
"price: 平均成交价格, 已经成交的股票的平均成交价格(一个订单可能分多次成交)\n",
|
||||
"avg_cost: 卖出时表示下卖单前的此股票的持仓成本, 用来计算此次卖出的收益. 买入时表示此次买入的均价(等同于price).\n",
|
||||
"side: 多/空,'long'/'short'\n",
|
||||
"action: 开/平, 'open'/'close'\n",
|
||||
"commission:交易费用(佣金、税费等)\n",
|
||||
"orders = order('000001.XSHE', 100)\n",
|
||||
"print(orders)\n",
|
||||
"if orders is None:\n",
|
||||
" print(\"创建订单失败...\")\n",
|
||||
"else:\n",
|
||||
" print(\"交易费用单:{0}\".format(orders.commission))\n",
|
||||
" print(\"是否买单:{0}\".format(orders.is_buy))\n",
|
||||
" print(\"订单状态:{0}\".format(orders.status))\n",
|
||||
" print(\"订单平均成交价格:{0}\".format(orders.price))\n",
|
||||
"'''"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.8"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
,状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态
|
||||
0,held,2019-03-19 11:30:00,False,7900,7900,501018.XSHG,1760686687,1.076,1.068,long,5.0,2025-11-06,True
|
||||
1,held,2020-07-06 11:00:00,True,3700,3700,518880.XSHG,1760686663,3.908,3.908,long,5.0,2025-11-06,True
|
||||
2,held,2020-07-06 11:00:00,True,13300,13300,512800.XSHG,1760686664,1.102,1.102,long,5.0,2025-11-06,True
|
||||
3,held,2020-07-07 09:32:00,False,5600,5600,159915.XSHE,1760686665,2.462,2.1073100534162483,long,5.0,2025-11-06,True
|
||||
4,held,2019-03-21 11:30:00,True,5400,5400,159915.XSHE,1760686690,1.622,1.622,long,5.0,2025-11-06,True
|
||||
5,held,2020-07-07 09:32:00,True,10600,10600,515980.XSHG,1760686666,1.279,1.279,long,5.0,2025-11-06,True
|
||||
6,held,2020-07-07 14:45:00,False,3700,3700,518880.XSHG,1760686668,3.908,3.908,long,5.0,2025-11-06,True
|
||||
7,held,2020-07-07 14:45:00,False,13300,13300,512800.XSHG,1760686669,1.152,1.102,long,5.0,2025-11-06,True
|
||||
8,held,2019-03-28 11:30:00,False,5400,5400,159915.XSHE,1760686693,1.57,1.622,long,5.0,2025-11-06,True
|
||||
9,held,2020-07-07 14:45:00,True,700,700,002144.XSHE,1760686670,9.57,9.57,long,5.0,2025-11-06,True
|
||||
10,held,2020-07-07 14:45:00,True,900,900,002843.XSHE,1760686672,8.18,8.18,long,5.0,2025-11-06,True
|
||||
11,held,2019-04-01 09:45:00,False,300,300,000898.XSHE,1760686695,5.79,5.09,long,5.8685,2025-11-06,True
|
||||
12,held,2019-04-01 09:45:00,False,100,100,601997.XSHG,1760686696,13.26,12.86,long,5.663,2025-11-06,True
|
||||
13,held,2019-04-01 09:45:00,True,200,200,000402.XSHE,1760686697,8.88,8.88,long,5.0,2025-11-06,True
|
||||
14,held,2019-04-01 09:45:00,True,100,100,601166.XSHG,1760686698,18.66,18.66,long,5.0,2025-11-06,True
|
||||
15,held,2020-07-10 09:32:00,False,10600,10600,515980.XSHG,1760686676,1.33,1.279,long,5.0,2025-11-06,True
|
||||
16,held,2019-04-01 11:00:00,False,500,500,002633.XSHE,1760686699,10.9,8.54,long,7.725,2025-11-06,True
|
||||
17,held,2020-07-10 09:32:00,True,13700,13700,159980.XSHE,1760686677,1.002,1.002,long,5.0,2025-11-06,True
|
||||
18,held,2020-07-13 09:32:00,False,5500,5500,159915.XSHE,1760686678,2.722,2.1073100534162483,long,5.0,2025-11-06,True
|
||||
19,held,2020-07-13 09:32:00,True,3500,3500,513100.XSHG,1760686679,3.908,3.908,long,5.0,2025-11-06,True
|
||||
20,held,2019-04-01 11:00:00,False,200,200,002729.XSHE,1760686702,28.29,22.18,long,7.829000000000001,2025-11-06,True
|
||||
21,held,2019-04-01 11:00:00,False,200,200,002715.XSHE,1760686703,18.24,19.12,long,6.824,2025-11-06,True
|
||||
22,held,2020-07-20 11:00:00,True,300,300,002921.XSHE,1760686682,21.33,21.33,long,5.0,2025-11-06,True
|
||||
23,held,2019-04-01 11:00:00,True,9400,9400,512800.XSHG,1760686706,1.058,1.058,long,5.0,2025-11-06,True
|
||||
24,held,2020-07-21 09:32:00,False,13700,13700,159980.XSHE,1760686684,1.02,1.002,long,5.0,2025-11-06,True
|
||||
25,held,2020-07-21 09:32:00,True,11300,11300,515980.XSHG,1760686685,1.234,1.234,long,5.0,2025-11-06,True
|
||||
26,held,2019-04-08 11:30:00,True,8000,8000,501018.XSHG,1760686708,1.142,1.142,long,5.0,2025-11-06,True
|
||||
27,held,2020-07-24 09:32:00,False,11300,11300,515980.XSHG,1760686686,1.227,1.234,long,5.0,2025-11-06,True
|
||||
28,held,2020-07-24 09:32:00,True,5100,5100,159915.XSHE,1760686687,2.672,2.672,long,5.0,2025-11-06,True
|
||||
29,held,2020-07-27 09:32:00,False,5100,5100,159915.XSHE,1760686688,2.556,2.672,long,5.0,2025-11-06,True
|
||||
30,held,2020-07-27 09:32:00,True,12100,12100,513030.XSHG,1760686689,1.104,1.104,long,5.0,2025-11-06,True
|
||||
31,held,2019-04-30 11:30:00,False,8000,8000,501018.XSHG,1760686709,1.138,1.142,long,5.0,2025-11-06,True
|
||||
32,held,2019-04-30 11:30:00,True,3200,3200,513100.XSHG,1760686710,2.802,2.802,long,5.0,2025-11-06,True
|
||||
33,held,2020-07-27 11:00:00,True,600,600,002836.XSHE,1760686691,11.03,11.03,long,5.0,2025-11-06,True
|
||||
34,held,2019-05-06 09:45:00,False,300,300,600019.XSHG,1760686711,6.99,6.440000000000001,long,6.0485,2025-11-06,True
|
||||
35,held,2020-07-31 09:32:00,False,12100,12100,513030.XSHG,1760686692,1.08,1.104,long,5.0,2025-11-06,True
|
||||
36,held,2019-05-06 09:45:00,False,600,600,000709.XSHE,1760686712,3.1,3.4,long,5.93,2025-11-06,True
|
||||
37,held,2020-07-31 09:32:00,True,3200,3200,518880.XSHG,1760686693,4.184,4.184,long,5.0,2025-11-06,True
|
||||
38,held,2019-05-06 09:45:00,False,200,200,000402.XSHE,1760686713,7.99,8.880000000000003,long,5.799,2025-11-06,True
|
||||
39,held,2019-05-06 09:45:00,True,400,400,000157.XSHE,1760686714,4.85,4.85,long,5.0,2025-11-06,True
|
||||
40,held,2019-05-06 09:45:00,True,200,200,601186.XSHG,1760686715,10.44,10.44,long,5.0,2025-11-06,True
|
||||
41,held,2020-07-31 14:45:00,True,1200,1200,002357.XSHE,1760686695,5.93,5.93,long,5.0,2025-11-06,True
|
||||
42,held,2019-05-06 09:45:00,True,300,300,600016.XSHG,1760686716,6.27,6.27,long,5.0,2025-11-06,True
|
||||
43,held,2020-08-03 09:45:00,False,400,400,600390.XSHG,1760686696,7.9,7.21,long,6.58,2025-11-06,True
|
||||
44,held,2020-08-03 09:45:00,False,800,800,600027.XSHG,1760686697,3.65,3.524,long,6.46,2025-11-06,True
|
||||
45,held,2020-08-03 09:45:00,False,1100,1100,601618.XSHG,1760686698,2.81,2.528,long,6.5455000000000005,2025-11-06,True
|
||||
46,held,2019-05-06 11:00:00,False,3500,3500,518880.XSHG,1760686717,2.794,2.8037228843736903,long,5.0,2025-11-06,True
|
||||
47,held,2020-08-03 09:45:00,False,500,500,601390.XSHG,1760686699,5.64,5.9,long,6.41,2025-11-06,True
|
||||
48,held,2019-05-06 11:00:00,False,9400,9400,512800.XSHG,1760686718,1.032,1.058,long,5.0,2025-11-06,True
|
||||
49,held,2020-08-03 09:45:00,True,700,700,601169.XSHG,1760686700,4.86,4.86,long,5.0,2025-11-06,True
|
||||
50,held,2020-08-03 09:45:00,True,200,200,601166.XSHG,1760686701,15.77,15.77,long,5.0,2025-11-06,True
|
||||
51,held,2020-08-03 09:45:00,True,600,600,601939.XSHG,1760686702,6.13,6.13,long,5.0,2025-11-06,True
|
||||
52,held,2020-08-03 09:45:00,True,700,700,601328.XSHG,1760686703,4.77,4.77,long,5.0,2025-11-06,True
|
||||
53,held,2019-05-06 11:00:00,True,600,600,002112.XSHE,1760686722,7.58,7.58,long,5.0,2025-11-06,True
|
||||
54,held,2020-08-04 14:45:00,False,600,600,002836.XSHE,1760686704,13.29,11.03,long,8.987,2025-11-06,True
|
||||
55,held,2020-08-04 14:45:00,False,1200,1200,002357.XSHE,1760686705,6.27,5.93,long,8.762,2025-11-06,True
|
||||
56,held,2020-08-04 14:45:00,True,300,300,002760.XSHE,1760686706,22.5,22.5,long,5.0,2025-11-06,True
|
||||
57,held,2020-08-04 14:45:00,True,500,500,002849.XSHE,1760686707,15.22,15.22,long,5.0,2025-11-06,True
|
||||
58,held,2020-08-10 11:00:00,False,900,900,002843.XSHE,1760686708,9.42,8.18,long,9.239,2025-11-06,True
|
||||
59,held,2020-08-10 11:00:00,True,300,300,002800.XSHE,1760686709,23.3,23.3,long,5.0,2025-11-06,True
|
||||
60,held,2019-05-13 11:00:00,True,200,200,002778.XSHE,1760686729,18.03,18.03,long,5.0,2025-11-06,True
|
||||
61,held,2020-08-12 09:32:00,False,3200,3200,518880.XSHG,1760686710,4.017,4.184,long,5.0,2025-11-06,True
|
||||
62,held,2020-08-12 09:32:00,True,13400,13400,159980.XSHE,1760686711,1.035,1.035,long,5.0,2025-11-06,True
|
||||
63,held,2019-05-15 11:30:00,False,3200,3200,513100.XSHG,1760686731,2.653,2.802,long,5.0,2025-11-06,True
|
||||
64,held,2020-08-13 09:32:00,False,13400,13400,159980.XSHE,1760686712,1.04,1.0349999999999997,long,5.0,2025-11-06,True
|
||||
65,held,2019-05-15 11:30:00,True,3500,3500,518880.XSHG,1760686732,2.854,2.854,long,5.0,2025-11-06,True
|
||||
66,held,2020-08-13 09:32:00,True,3400,3400,513100.XSHG,1760686713,4.04,4.04,long,5.0,2025-11-06,True
|
||||
67,held,2020-08-17 11:00:00,False,700,700,002144.XSHE,1760686714,11.25,9.57,long,8.9375,2025-11-06,True
|
||||
68,held,2020-08-17 11:00:00,False,300,300,002760.XSHE,1760686715,22.84,22.5,long,8.426,2025-11-06,True
|
||||
69,held,2020-08-17 11:00:00,False,500,500,002849.XSHE,1760686716,14.87,15.22,long,8.717500000000001,2025-11-06,True
|
||||
70,held,2020-08-17 11:00:00,True,600,600,002576.XSHE,1760686719,11.72,11.72,long,5.0,2025-11-06,True
|
||||
71,held,2019-05-27 11:00:00,False,600,600,002112.XSHE,1760686737,8.82,8.04,long,7.646,2025-11-06,True
|
||||
72,held,2019-05-27 11:00:00,True,200,200,002800.XSHE,1760686738,18.55,18.55,long,5.0,2025-11-06,True
|
||||
73,held,2020-08-19 14:45:00,False,300,300,002921.XSHE,1760686720,22.9,21.33,long,8.435,2025-11-06,True
|
||||
74,held,2019-05-27 11:00:00,True,200,200,002817.XSHE,1760686739,18.94,18.94,long,5.0,2025-11-06,True
|
||||
75,held,2019-05-27 11:00:00,True,300,300,002899.XSHE,1760686740,13.81,13.81,long,5.0,2025-11-06,True
|
||||
76,held,2020-08-19 14:45:00,False,300,300,002800.XSHE,1760686722,25.4,23.3,long,8.81,2025-11-06,True
|
||||
77,held,2019-06-03 09:45:00,False,300,300,601398.XSHG,1760686741,5.67,5.74,long,5.8505,2025-11-06,True
|
||||
78,held,2019-06-03 09:45:00,False,400,400,000157.XSHE,1760686742,5.4,4.849999999999999,long,6.08,2025-11-06,True
|
||||
79,held,2020-08-19 14:45:00,False,600,600,002576.XSHE,1760686725,11.93,11.72,long,8.579,2025-11-06,True
|
||||
80,held,2019-06-03 09:45:00,True,100,100,600739.XSHG,1760686743,12.87,12.87,long,5.0,2025-11-06,True
|
||||
81,held,2020-08-19 14:45:00,True,100,100,511260.XSHG,1760686726,110.634,110.634,long,5.0,2025-11-06,True
|
||||
82,held,2019-06-03 09:45:00,True,200,200,600188.XSHG,1760686744,10.61,10.61,long,5.0,2025-11-06,True
|
||||
83,held,2020-08-19 14:45:00,True,3800,3800,518880.XSHG,1760686727,4.182,4.182,long,5.0,2025-11-06,True
|
||||
84,held,2020-08-19 14:45:00,True,14600,14600,512800.XSHG,1760686728,1.098,1.098,long,5.0,2025-11-06,True
|
||||
85,held,2019-06-03 11:00:00,True,200,200,002760.XSHE,1760686746,17.78,17.78,long,5.0,2025-11-06,True
|
||||
86,held,2020-08-24 11:00:00,False,100,100,511260.XSHG,1760686729,110.209,110.634,long,5.0,2025-11-06,True
|
||||
87,held,2020-08-24 11:00:00,False,3800,3800,518880.XSHG,1760686730,4.06,4.182,long,5.0,2025-11-06,True
|
||||
88,held,2019-06-10 11:00:00,False,200,200,002817.XSHE,1760686747,18.48,18.940000000000005,long,6.848,2025-11-06,True
|
||||
89,held,2020-08-24 11:00:00,False,14600,14600,512800.XSHG,1760686731,1.078,1.098,long,5.0,2025-11-06,True
|
||||
90,held,2020-08-24 11:00:00,True,500,500,002857.XSHE,1760686732,13.75,13.75,long,5.0,2025-11-06,True
|
||||
91,held,2020-08-24 11:00:00,True,700,700,002836.XSHE,1760686733,11.21,11.21,long,5.0,2025-11-06,True
|
||||
92,held,2020-08-24 11:00:00,True,800,800,002112.XSHE,1760686734,9.19,9.19,long,5.0,2025-11-06,True
|
||||
93,held,2020-08-24 11:00:00,True,500,500,002899.XSHE,1760686735,15.39,15.39,long,5.0,2025-11-06,True
|
||||
94,held,2019-06-17 11:00:00,False,200,200,002760.XSHE,1760686750,17.91,17.78,long,6.791,2025-11-06,True
|
||||
95,held,2020-08-24 11:00:00,True,600,600,002805.XSHE,1760686736,12.77,12.77,long,5.0,2025-11-06,True
|
||||
96,held,2019-06-17 11:00:00,True,700,700,002112.XSHE,1760686751,6.78,6.78,long,5.0,2025-11-06,True
|
||||
97,held,2020-08-24 11:00:00,True,2600,2600,002694.XSHE,1760686737,3.09,3.09,long,5.0,2025-11-06,True
|
||||
98,held,2019-06-17 11:00:00,True,200,200,002921.XSHE,1760686752,19.89,19.89,long,5.0,2025-11-06,True
|
||||
99,held,2020-08-25 14:50:00,False,700,700,002836.XSHE,1760686738,11.27,11.210000000000004,long,8.9445,2025-11-06,True
|
||||
100,held,2020-08-26 09:32:00,False,500,500,513100.XSHG,1760686739,4.668,3.9730434782608697,long,5.0,2025-11-06,True
|
||||
101,held,2019-06-24 11:00:00,False,200,200,002890.XSHE,1760686753,20.88,19.170000000000005,long,7.088,2025-11-06,True
|
||||
102,held,2020-08-31 09:32:00,False,3400,3400,513100.XSHG,1760686740,4.932,3.9730434782608697,long,5.0,2025-11-06,True
|
||||
103,held,2019-06-24 11:00:00,False,200,200,002778.XSHE,1760686754,18.55,18.03,long,6.855,2025-11-06,True
|
||||
104,held,2020-08-31 09:32:00,True,14100,14100,159980.XSHE,1760686741,1.084,1.084,long,5.0,2025-11-06,True
|
||||
105,held,2019-06-24 11:00:00,False,200,200,002800.XSHE,1760686755,19.9,18.534,long,6.99,2025-11-06,True
|
||||
106,held,2019-06-24 11:00:00,False,300,300,002899.XSHE,1760686756,13.96,13.716,long,7.093999999999999,2025-11-06,True
|
||||
107,held,2020-08-31 11:00:00,False,500,500,002899.XSHE,1760686742,16.44,15.39,long,9.11,2025-11-06,True
|
||||
108,held,2019-06-24 11:00:00,False,700,700,002112.XSHE,1760686757,7.28,6.78,long,7.548,2025-11-06,True
|
||||
109,held,2020-08-31 11:00:00,False,600,600,002805.XSHE,1760686743,12.89,12.77,long,8.867,2025-11-06,True
|
||||
110,held,2019-06-24 11:00:00,False,200,200,002921.XSHE,1760686758,21.83,19.89,long,7.183,2025-11-06,True
|
||||
111,held,2020-08-31 11:00:00,True,800,800,002633.XSHE,1760686744,9.66,9.66,long,5.0,2025-11-06,True
|
||||
112,held,2019-06-24 11:00:00,True,3400,3400,518880.XSHG,1760686759,3.108,3.108,long,5.0,2025-11-06,True
|
||||
113,held,2019-06-24 11:00:00,True,9700,9700,512800.XSHG,1760686760,1.084,1.084,long,5.0,2025-11-06,True
|
||||
114,held,2019-07-01 09:45:00,False,100,100,600739.XSHG,1760686761,14.72,12.87,long,5.736,2025-11-06,True
|
||||
115,held,2019-07-01 09:45:00,False,200,200,600188.XSHG,1760686762,10.95,10.07,long,6.095,2025-11-06,True
|
||||
116,held,2019-07-01 09:45:00,True,600,600,601988.XSHG,1760686763,3.77,3.77,long,5.0,2025-11-06,True
|
||||
117,held,2019-07-01 09:45:00,True,400,400,601669.XSHG,1760686764,5.38,5.38,long,5.0,2025-11-06,True
|
||||
118,new,2025-10-20 09:27:00,True,100,0,002813.XSHE,1760921898,0.0,0.0,long,0.0,2025-11-06,True
|
||||
119,held,2025-10-15 09:31:00,True,10300,10300,512800.XSHG,1760926704,0.804,0.804,long,5.0,2025-11-06,True
|
||||
120,held,2025-10-17 14:45:00,True,8400,8400,513100.XSHG,1760926707,1.812,1.812,long,5.0,2025-11-06,True
|
||||
121,held,2025-10-20 11:30:00,False,800,800,518880.XSHG,1760922970,9.33,8.91064,long,5.0,2025-11-06,True
|
||||
122,held,2025-10-20 11:30:00,False,9400,9400,515980.XSHG,1760922971,0.832,0.8170000000000001,long,5.0,2025-11-06,True
|
||||
123,held,2025-10-20 11:30:00,True,8300,8300,513100.XSHG,1760922972,1.848,1.848,long,5.0,2025-11-06,True
|
||||
124,held,2025-10-09 14:45:00,True,17400,17400,513130.XSHG,1760936688,0.86,0.86,long,5.0,2025-11-06,True
|
||||
125,held,2025-10-13 14:45:00,False,17400,17400,513130.XSHG,1760936689,0.811,0.86,long,5.0,2025-11-06,True
|
||||
126,held,2019-01-02 09:31:00,True,2900,2900,518880.XSHG,1760949069,2.824,2.824,long,5.0,2025-11-06,True
|
||||
127,held,2019-01-02 09:31:00,True,9300,9300,512800.XSHG,1760949070,0.892,0.892,long,5.0,2025-11-06,True
|
||||
128,held,2019-01-02 09:34:00,True,300,300,000898.XSHE,1760949071,5.12,5.12,long,5.0,2025-11-06,True
|
||||
129,held,2019-01-02 09:34:00,True,300,300,600019.XSHG,1760949072,6.5,6.5,long,5.0,2025-11-06,True
|
||||
130,held,2019-01-02 09:34:00,True,200,200,600383.XSHG,1760949073,9.55,9.55,long,5.0,2025-11-06,True
|
||||
131,held,2019-01-02 09:34:00,True,900,900,600219.XSHG,1760949074,2.12,2.12,long,5.0,2025-11-06,True
|
||||
132,held,2019-01-02 09:34:00,True,300,300,600028.XSHG,1760949075,5.08,5.08,long,5.0,2025-11-06,True
|
||||
133,held,2019-01-02 14:25:00,True,5200,5200,518880.XSHG,1760949076,2.838,2.838,long,5.0,2025-11-06,True
|
||||
134,held,2019-01-17 14:25:00,False,5200,5200,518880.XSHG,1760949077,2.806,2.832987654320988,long,5.0,2025-11-06,True
|
||||
135,held,2019-01-17 14:25:00,True,15300,15300,501018.XSHG,1760949078,0.985,0.985,long,5.0,2025-11-06,True
|
||||
136,held,2019-02-01 09:34:00,False,200,200,600383.XSHG,1760949079,11.09,9.550000000000002,long,6.109,2025-11-06,True
|
||||
137,held,2019-02-01 09:34:00,True,300,300,600518.XSHG,1760949080,5.95,5.95,long,5.0,2025-11-06,True
|
||||
138,held,2019-02-12 14:25:00,False,15300,15300,501018.XSHG,1760949081,1.008,0.985,long,5.0,2025-11-06,True
|
||||
139,held,2019-02-12 14:25:00,True,6300,6300,513100.XSHG,1760949082,2.46,2.46,long,5.0,2025-11-06,True
|
||||
140,held,2019-02-18 14:25:00,False,6300,6300,513100.XSHG,1760949083,2.488,2.46,long,5.0,2025-11-06,True
|
||||
141,held,2019-02-18 14:25:00,True,11800,11800,159915.XSHE,1760949084,1.352,1.352,long,5.0,2025-11-06,True
|
||||
142,held,2019-02-25 09:31:00,False,2900,2900,518880.XSHG,1760949085,2.854,2.832987654320988,long,5.0,2025-11-06,True
|
||||
143,held,2019-02-25 09:31:00,False,9300,9300,512800.XSHG,1760949086,0.99,0.892,long,5.0,2025-11-06,True
|
||||
144,held,2019-02-25 09:31:00,True,500,500,002633.XSHE,1760949087,8.54,8.54,long,5.0,2025-11-06,True
|
||||
145,held,2019-02-25 09:31:00,True,200,200,002890.XSHE,1760949088,19.45,19.45,long,5.0,2025-11-06,True
|
||||
146,new,2025-10-21 09:27:00,True,500,0,002825.XSHE,1761008297,0.0,0.0,long,0.0,2025-11-06,True
|
||||
147,new,2025-10-21 09:27:00,True,500,0,002208.XSHE,1761008298,0.0,0.0,long,0.0,2025-11-06,True
|
||||
148,held,2025-10-21 13:00:00,False,100,100,002813.XSHE,1761022735,27.93,27.82,long,2.3965,2025-11-06,True
|
||||
149,new,2025-10-22 09:27:00,True,200,0,002893.XSHE,1761094698,0.0,0.0,long,0.0,2025-11-06,True
|
||||
150,held,2025-10-22 13:00:00,False,1000,1000,002775.XSHE,1761109138,4.79,4.7,long,3.395,2025-11-06,True
|
||||
151,held,2025-10-22 13:00:00,False,500,500,002825.XSHE,1761109139,11.76,12.38,long,3.94,2025-11-06,True
|
||||
152,held,2025-10-22 13:00:00,False,500,500,002208.XSHE,1761109140,14.78,12.75,long,4.695,2025-11-06,True
|
||||
153,new,2025-10-24 09:27:00,True,800,0,002370.XSHE,1761267504,0.0,0.0,long,0.0,2025-11-06,True
|
||||
154,new,2025-10-24 09:27:00,True,800,0,002546.XSHE,1761267505,0.0,0.0,long,0.0,2025-11-06,True
|
||||
155,new,2025-10-24 09:27:00,True,400,0,002900.XSHE,1761267506,0.0,0.0,long,0.0,2025-11-06,True
|
||||
156,held,2025-10-24 11:30:00,False,8300,8300,513100.XSHG,1761267474,1.902,1.848,long,5.0,2025-11-06,True
|
||||
157,held,2025-10-24 11:30:00,True,1700,1700,518880.XSHG,1761267475,9.012,9.012,long,5.0,2025-11-06,True
|
||||
158,held,2025-10-09 11:00:00,True,900,900,518880.XSHG,1761278015,8.71,8.71,long,5.0,2025-11-06,True
|
||||
159,held,2025-10-09 11:00:00,True,10700,10700,512800.XSHG,1761278016,0.774,0.774,long,5.0,2025-11-06,True
|
||||
160,held,2025-10-09 14:25:00,True,17300,17300,513130.XSHG,1761278017,0.863,0.863,long,5.0,2025-11-06,True
|
||||
161,held,2025-10-10 14:25:00,False,17300,17300,513130.XSHG,1761278018,0.836,0.863,long,5.0,2025-11-06,True
|
||||
162,held,2025-10-10 14:25:00,True,16900,16900,515980.XSHG,1761278019,0.876,0.876,long,5.0,2025-11-06,True
|
||||
163,held,2025-10-13 14:25:00,False,16900,16900,515980.XSHG,1761278020,0.858,0.876,long,5.0,2025-11-06,True
|
||||
164,held,2025-10-13 14:25:00,True,1600,1600,518880.XSHG,1761278021,8.862,8.862,long,5.0,2025-11-06,True
|
||||
165,held,2025-10-17 14:25:00,False,1600,1600,518880.XSHG,1761278022,9.548,8.807280000000002,long,5.0,2025-11-06,True
|
||||
166,held,2025-10-17 14:25:00,True,8500,8500,513100.XSHG,1761278023,1.812,1.812,long,5.0,2025-11-06,True
|
||||
167,held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,,1732208241,10.5,10.59,long,128.31,2025-11-06,True
|
||||
168,held,2025-10-24 13:00:00,False,200,200,002893.XSHE,1761281943,12.1,12.95,long,2.21,2025-11-06,True
|
||||
169,new,2025-10-27 09:27:00,True,400,0,002054.XSHE,1761526696,0.0,0.0,long,0.0,2025-11-06,True
|
||||
170,held,2025-10-27 13:00:00,False,800,800,002370.XSHE,1761541152,7.21,7.28,long,3.884,2025-11-06,True
|
||||
171,held,2025-10-27 13:00:00,False,800,800,002546.XSHE,1761541153,7.21,6.94,long,3.884,2025-11-06,True
|
||||
172,new,2025-10-28 09:27:00,True,1100,0,002682.XSHE,1761613082,0.0,0.0,long,0.0,2025-11-06,True
|
||||
173,new,2025-10-28 09:27:00,True,400,0,002457.XSHE,1761613083,0.0,0.0,long,0.0,2025-11-06,True
|
||||
174,held,2025-10-28 13:00:00,False,400,400,002054.XSHE,1761627544,8.83,8.4,long,2.766,2025-11-06,True
|
||||
175,new,2025-10-29 09:27:00,True,200,0,002104.XSHE,1761699499,0.0,0.0,long,0.0,2025-11-06,True
|
||||
176,held,2025-10-29 11:30:00,False,1700,1700,518880.XSHG,1761699469,8.66,8.976913846153847,long,5.0,2025-11-06,True
|
||||
177,held,2025-10-29 11:30:00,True,7600,7600,513100.XSHG,1761699470,1.99,1.99,long,5.0,2025-11-06,True
|
||||
178,held,2025-10-29 13:00:00,False,400,400,002900.XSHE,1761713952,13.68,14.0,long,3.736,2025-11-06,True
|
||||
179,new,2025-10-30 09:27:00,True,1200,0,002512.XSHE,1761785883,0.0,0.0,long,0.0,2025-11-06,True
|
||||
180,held,2025-10-30 13:00:00,False,1100,1100,002682.XSHE,1761800353,4.86,5.11,long,3.673,2025-11-06,True
|
||||
181,held,2025-10-30 14:55:00,False,400,400,002457.XSHE,1761800354,11.65,12.1,long,3.33,2025-11-06,True
|
||||
182,held,2025-10-13 09:32:00,False,2800,2800,601939.XSHG,1761872612,8.72,8.64,long,17.208,2025-11-06,True
|
||||
183,held,2025-10-14 09:31:00,True,3600,3600,601288.XSHG,1761872615,6.84,6.84,long,5.0,2025-11-06,True
|
||||
184,held,2025-10-15 09:39:00,False,3600,3600,601288.XSHG,1761872616,7.17,6.84,long,17.906,2025-11-06,True
|
||||
185,held,2025-10-15 09:39:00,True,3400,3400,601398.XSHG,1761872617,7.51,7.51,long,5.0,2025-11-06,True
|
||||
186,held,2025-10-16 09:58:00,False,3400,3400,601398.XSHG,1761872618,7.52,7.51,long,17.784,2025-11-06,True
|
||||
187,held,2025-10-16 09:58:00,True,3500,3500,601288.XSHG,1761872619,7.29,7.29,long,5.0,2025-11-06,True
|
||||
188,held,2025-10-17 09:31:00,False,3500,3500,601288.XSHG,1761872620,7.55,7.29,long,18.2125,2025-11-06,True
|
||||
189,held,2025-10-17 09:31:00,True,4800,4800,601988.XSHG,1761872621,5.4,5.4,long,5.0,2025-11-06,True
|
||||
190,held,2025-10-20 09:31:00,False,4800,4800,601988.XSHG,1761872622,5.29,5.4,long,17.695999999999998,2025-11-06,True
|
||||
191,held,2025-10-20 09:31:00,True,3400,3400,601288.XSHG,1761872623,7.44,7.44,long,5.0,2025-11-06,True
|
||||
192,held,2025-10-21 09:37:00,False,3400,3400,601288.XSHG,1761872624,7.78,7.44,long,18.226,2025-11-06,True
|
||||
193,held,2025-10-21 09:37:00,True,2800,2800,601939.XSHG,1761872625,9.24,9.24,long,5.0,2025-11-06,True
|
||||
194,new,2025-10-31 09:27:00,True,1000,0,002689.XSHE,1761872299,0.0,0.0,long,0.0,2025-11-06,True
|
||||
195,new,2025-10-31 09:27:00,True,400,0,002212.XSHE,1761872300,0.0,0.0,long,0.0,2025-11-06,True
|
||||
196,held,2025-11-03 13:00:00,False,200,200,002104.XSHE,1762145948,21.38,23.21,long,3.138,2025-11-06,True
|
||||
197,held,2025-11-03 13:00:00,False,1200,1200,002512.XSHE,1762145949,4.69,4.94,long,3.814000000000001,2025-11-06,True
|
||||
198,held,2025-11-03 13:00:00,False,1000,1000,002689.XSHE,1762145950,5.0,4.8,long,3.5,2025-11-06,True
|
||||
199,held,2025-11-03 13:00:00,False,400,400,002212.XSHE,1762145951,10.94,10.38,long,3.188,2025-11-06,True
|
||||
200,new,2025-11-04 09:27:00,True,1500,0,002374.XSHE,1762217892,0.0,0.0,long,0.0,2025-11-06,True
|
||||
201,new,2025-11-04 09:27:00,True,900,0,002522.XSHE,1762217893,0.0,0.0,long,0.0,2025-11-06,True
|
||||
202,new,2025-11-04 09:27:00,True,100,0,002812.XSHE,1762217894,0.0,0.0,long,0.0,2025-11-06,True
|
||||
203,held,2025-11-04 09:33:00,False,3700,3700,601288.XSHG,1762219696,8.07,7.99,long,19.9295,2025-11-06,True
|
||||
204,held,2025-11-04 09:33:00,True,3800,3800,601398.XSHG,1762219697,7.92,7.92,long,5.0,2025-11-06,True
|
||||
205,new,2025-11-05 09:27:00,True,600,0,002370.XSHE,1762304293,0.0,0.0,long,0.0,2025-11-06,True
|
||||
206,held,2025-11-05 09:31:00,False,3800,3800,601398.XSHG,1762306091,8.18,7.92,long,20.542,2025-11-06,True
|
||||
207,held,2025-11-05 09:31:00,True,5300,5300,601988.XSHG,1762306092,5.74,5.74,long,5.0,2025-11-06,True
|
||||
208,held,2025-11-05 13:00:00,False,1500,1500,002374.XSHE,1762318750,3.31,3.25,long,3.4825,2025-11-06,True
|
||||
209,held,2025-11-05 14:55:00,False,900,900,002522.XSHE,1762318751,5.35,5.34,long,3.4075,2025-11-06,True
|
||||
210,new,2025-11-06 09:27:00,True,900,0,002512.XSHE,1762390693,0.0,0.0,long,0.0,2025-11-06,True
|
||||
211,new,2025-11-06 09:27:00,True,300,0,002248.XSHE,1762390694,0.0,0.0,long,0.0,2025-11-06,True
|
||||
212,held,2025-11-06 09:46:00,False,5300,5300,601988.XSHG,1762392499,5.68,5.74,long,20.052,2025-11-06,True
|
||||
213,held,2025-11-06 09:46:00,True,3700,3700,601288.XSHG,1762392500,8.13,8.13,long,5.0,2025-11-06,True
|
||||
215,held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,001.XSHE,1732208241,10.5,10.59,long,128.31,2025-11-06,True
|
||||
216,held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,001.XSHE,1732208241,10.5,10.59,long,128.31,2025-11-06,True
|
||||
|
@@ -0,0 +1,286 @@
|
||||
,状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态
|
||||
0,held,2025-07-10 13:00:00,False,3500,3500.0,002562.XSHE,1761187270.0,6.45,5.82,long,13.545,2025-11-05,True
|
||||
1,held,2025-07-10 13:00:00,False,2100,2100.0,002094.XSHE,1761187271.0,9.76,9.49,long,12.2976,2025-11-05,True
|
||||
2,held,2025-07-10 13:00:00,False,4300,4300.0,002721.XSHE,1761187272.0,4.86,4.63,long,12.5388,2025-11-05,True
|
||||
3,new,2025-07-11 09:27:00,True,3000,0.0,002520.XSHE,1761187273.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
4,held,2025-07-11 13:00:00,False,5200,5200.0,002263.XSHE,1761187274.0,4.06,4.52,long,12.6672,2025-11-05,True
|
||||
5,new,2025-07-14 09:27:00,True,600,0.0,002657.XSHE,1761187275.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
6,new,2025-07-14 09:27:00,True,1000,0.0,003005.XSHE,1761187276.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
7,new,2025-07-14 09:27:00,True,6800,0.0,002437.XSHE,1761187277.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
8,held,2025-07-14 13:00:00,False,3000,3000.0,002520.XSHE,1761187278.0,7.27,6.99,long,13.086,2025-11-05,True
|
||||
9,new,2025-07-15 09:27:00,True,3300,0.0,002279.XSHE,1761187279.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
10,held,2025-07-16 13:00:00,False,1000,1000.0,003005.XSHE,1761187280.0,21.29,21.21,long,12.774,2025-11-05,True
|
||||
11,held,2025-07-16 13:00:00,False,6800,6800.0,002437.XSHE,1761187281.0,3.14,3.13,long,12.8112,2025-11-05,True
|
||||
12,held,2025-07-16 13:00:00,False,3300,3300.0,002279.XSHE,1761187282.0,7.06,7.04,long,13.9788,2025-11-05,True
|
||||
13,new,2025-07-17 09:27:00,True,1500,0.0,002725.XSHE,1761187283.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
14,new,2025-07-17 09:27:00,True,5900,0.0,002131.XSHE,1761187284.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
15,new,2025-07-17 09:27:00,True,3000,0.0,002161.XSHE,1761187285.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
16,held,2025-07-18 13:00:00,False,1500,1500.0,002725.XSHE,1761187286.0,13.98,13.88,long,12.582,2025-11-05,True
|
||||
17,held,2025-07-18 14:55:00,False,600,600.0,002657.XSHE,1761187287.0,30.47,32.91,long,10.9692,2025-11-05,True
|
||||
18,new,2025-07-21 09:27:00,True,1000,0.0,002229.XSHE,1761187288.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
19,new,2025-07-21 09:27:00,True,1800,0.0,002394.XSHE,1761187289.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
20,held,2025-07-21 13:00:00,False,5900,5900.0,002131.XSHE,1761187290.0,3.85,3.75,long,13.629,2025-11-05,True
|
||||
21,new,2025-07-22 09:27:00,True,2000,0.0,002167.XSHE,1761187291.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
22,held,2025-07-22 14:55:00,False,1800,1800.0,002394.XSHE,1761187292.0,10.17,10.57,long,10.9836,2025-11-05,True
|
||||
23,new,2025-07-23 09:27:00,True,1300,0.0,002809.XSHE,1761187293.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
24,held,2025-07-23 13:00:00,False,1000,1000.0,002229.XSHE,1761187294.0,18.77,19.58,long,11.262,2025-11-05,True
|
||||
25,held,2025-07-23 13:00:00,False,2000,2000.0,002167.XSHE,1761187295.0,13.08,12.7,long,15.696,2025-11-05,True
|
||||
26,new,2025-07-24 09:27:00,True,1700,0.0,002205.XSHE,1761187296.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
27,held,2025-07-24 13:00:00,False,3000,3000.0,002161.XSHE,1761187297.0,7.16,7.13,long,12.888,2025-11-05,True
|
||||
28,new,2025-07-25 09:27:00,True,1800,0.0,002639.XSHE,1761187298.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
29,new,2025-07-25 09:27:00,True,1200,0.0,002771.XSHE,1761187299.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
30,held,2025-07-25 13:00:00,False,1300,1300.0,002809.XSHE,1761187300.0,12.91,13.85,long,10.0698,2025-11-05,True
|
||||
31,held,2025-07-25 13:00:00,False,1700,1700.0,002205.XSHE,1761187301.0,13.37,12.72,long,13.6374,2025-11-05,True
|
||||
32,new,2025-07-28 09:27:00,True,4700,0.0,002596.XSHE,1761187302.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
33,new,2025-07-28 09:27:00,True,1200,0.0,002240.XSHE,1761187303.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
34,held,2025-07-28 13:00:00,False,1200,1200.0,002771.XSHE,1761187304.0,17.86,17.84,long,12.8592,2025-11-05,True
|
||||
35,new,2025-07-29 09:27:00,True,3000,0.0,002298.XSHE,1761187305.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
36,held,2025-07-29 13:00:00,False,1800,1800.0,002639.XSHE,1761187306.0,11.01,11.85,long,11.8908,2025-11-05,True
|
||||
37,held,2025-07-29 13:00:00,False,4700,4700.0,002596.XSHE,1761187307.0,4.09,4.46,long,11.5338,2025-11-05,True
|
||||
38,held,2025-07-29 13:00:00,False,1200,1200.0,002240.XSHE,1761187308.0,16.46,16.22,long,11.8512,2025-11-05,True
|
||||
39,new,2025-07-30 09:27:00,True,2000,0.0,002278.XSHE,1761187310.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
40,new,2025-07-30 09:27:00,True,1300,0.0,002205.XSHE,1761187311.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
41,held,2025-07-31 13:00:00,False,2000,2000.0,002278.XSHE,1761187313.0,9.9,9.67,long,11.88,2025-11-05,True
|
||||
42,held,2025-07-31 14:55:00,False,1300,1300.0,002205.XSHE,1761187314.0,13.79,14.2,long,10.7562,2025-11-05,True
|
||||
43,new,2025-08-01 09:27:00,True,2500,0.0,002570.XSHE,1761187315.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
44,new,2025-08-01 09:27:00,True,1700,0.0,002905.XSHE,1761187316.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
45,new,2025-08-01 09:27:00,True,2200,0.0,002564.XSHE,1761187317.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
46,held,2025-08-01 13:00:00,False,3000,3000.0,002298.XSHE,1761187318.0,7.23,7.51,long,13.014,2025-11-05,True
|
||||
47,new,2025-08-04 09:27:00,True,1900,0.0,002272.XSHE,1761187319.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
48,held,2025-08-04 14:55:00,False,2500,2500.0,002570.XSHE,1761187320.0,7.39,7.37,long,11.085,2025-11-05,True
|
||||
49,new,2025-08-05 09:27:00,True,2300,0.0,002370.XSHE,1761187321.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
50,held,2025-08-05 13:00:00,False,1700,1700.0,002905.XSHE,1761187322.0,9.64,10.66,long,9.8328,2025-11-05,True
|
||||
51,held,2025-08-05 13:00:00,False,2200,2200.0,002564.XSHE,1761187323.0,8.54,8.49,long,11.272799999999998,2025-11-05,True
|
||||
52,held,2025-08-05 13:00:00,False,1900,1900.0,002272.XSHE,1761187324.0,12.85,12.25,long,14.649,2025-11-05,True
|
||||
53,new,2025-08-06 09:27:00,True,400,0.0,002977.XSHE,1761187325.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
54,new,2025-08-06 09:27:00,True,400,0.0,002265.XSHE,1761187326.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
55,new,2025-08-06 09:27:00,True,1500,0.0,002651.XSHE,1761187327.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
56,long,128.31,2025-10-23,True,,,,,,,,2025-11-05,True
|
||||
57,held,2025-08-07 13:00:00,False,2300,2300.0,002370.XSHE,1761187328.0,6.74,7.71,long,9.3012,2025-11-05,True
|
||||
58,held,2025-08-07 13:00:00,False,400,400.0,002977.XSHE,1761187329.0,41.36,41.12,long,9.9264,2025-11-05,True
|
||||
59,held,2025-08-07 13:00:00,False,400,400.0,002265.XSHE,1761187330.0,43.57,42.02,long,10.4568,2025-11-05,True
|
||||
60,held,2025-08-07 13:00:00,False,1500,1500.0,002651.XSHE,1761187331.0,14.25,13.42,long,12.825,2025-11-05,True
|
||||
61,new,2025-08-08 09:27:00,True,900,0.0,002536.XSHE,1761187332.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
62,new,2025-08-08 09:27:00,True,500,0.0,002190.XSHE,1761187333.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
63,new,2025-08-08 09:27:00,True,2100,0.0,002331.XSHE,1761187334.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
64,new,2025-08-08 09:27:00,True,1200,0.0,002885.XSHE,1761187335.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
65,held,2025-08-11 13:00:00,False,900,900.0,002536.XSHE,1761187336.0,21.87,20.0,long,11.8098,2025-11-05,True
|
||||
66,held,2025-08-11 13:00:00,False,500,500.0,002190.XSHE,1761187337.0,37.73,37.39,long,11.319,2025-11-05,True
|
||||
67,held,2025-08-11 13:00:00,False,1200,1200.0,002885.XSHE,1761187338.0,16.2,15.69,long,11.664,2025-11-05,True
|
||||
68,new,2025-08-12 09:27:00,True,1800,0.0,002706.XSHE,1761187339.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
69,new,2025-08-12 09:27:00,True,400,0.0,002837.XSHE,1761187340.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
70,new,2025-08-12 09:27:00,True,1700,0.0,002674.XSHE,1761187341.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
71,held,2025-08-12 13:00:00,False,2100,2100.0,002331.XSHE,1761187342.0,9.26,9.0,long,11.6676,2025-11-05,True
|
||||
72,new,2025-08-13 09:27:00,True,700,0.0,002915.XSHE,1761187343.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
73,held,2025-08-13 13:00:00,False,400,400.0,002837.XSHE,1761187344.0,56.55,50.01,long,13.572,2025-11-05,True
|
||||
74,held,2025-08-13 13:00:00,False,1700,1700.0,002674.XSHE,1761187345.0,11.67,11.61,long,11.9034,2025-11-05,True
|
||||
75,new,2025-08-14 09:27:00,True,3800,0.0,002307.XSHE,1761187346.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
76,new,2025-08-14 09:27:00,True,6200,0.0,002622.XSHE,1761187347.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
77,held,2025-08-14 13:00:00,False,700,700.0,002915.XSHE,1761187348.0,29.7,28.42,long,12.474,2025-11-05,True
|
||||
78,held,2025-08-14 14:55:00,False,1800,1800.0,002706.XSHE,1761187349.0,10.5,11.34,long,11.340000000000002,2025-11-05,True
|
||||
79,new,2025-08-15 09:27:00,True,1600,0.0,002148.XSHE,1761187350.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
80,new,2025-08-15 09:27:00,True,2100,0.0,002298.XSHE,1761187351.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
81,held,2025-08-15 13:00:00,False,6200,6200.0,002622.XSHE,1761187352.0,3.69,3.5,long,13.7268,2025-11-05,True
|
||||
82,new,2025-08-18 09:27:00,True,900,0.0,002173.XSHE,1761187353.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
83,held,2025-08-18 13:00:00,False,3800,3800.0,002307.XSHE,1761187354.0,4.9,5.4,long,11.172,2025-11-05,True
|
||||
84,held,2025-08-18 13:00:00,False,1600,1600.0,002148.XSHE,1761187355.0,14.0,12.45,long,13.44,2025-11-05,True
|
||||
85,held,2025-08-18 14:55:00,False,2100,2100.0,002298.XSHE,1761187356.0,11.27,9.33,long,14.2002,2025-11-05,True
|
||||
86,new,2025-08-19 09:27:00,True,1600,0.0,002598.XSHE,1761187357.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
87,new,2025-08-19 09:27:00,True,4300,0.0,002551.XSHE,1761187358.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
88,new,2025-08-19 09:27:00,True,3100,0.0,002909.XSHE,1761187359.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
89,held,2025-08-20 13:00:00,False,900,900.0,002173.XSHE,1761187360.0,22.83,26.1,long,12.3282,2025-11-05,True
|
||||
90,held,2025-08-20 13:00:00,False,3100,3100.0,002909.XSHE,1761187361.0,7.0,6.95,long,13.02,2025-11-05,True
|
||||
91,held,2025-08-21 13:00:00,False,4300,4300.0,002551.XSHE,1761187364.0,4.7,5.01,long,12.126,2025-11-05,True
|
||||
92,new,2025-08-22 09:27:00,True,600,0.0,002553.XSHE,1761187365.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
93,held,2025-08-22 13:00:00,False,1600,1600.0,002598.XSHE,1761187366.0,12.57,13.0,long,12.0672,2025-11-05,True
|
||||
94,new,2025-08-25 09:27:00,True,3600,0.0,002640.XSHE,1761187368.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
95,new,2025-08-25 09:27:00,True,1900,0.0,002278.XSHE,1761187369.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
96,held,2025-08-25 13:00:00,False,600,600.0,002553.XSHE,1761187371.0,34.38,31.82,long,12.3768,2025-11-05,True
|
||||
97,new,2025-08-26 09:27:00,True,2200,0.0,002177.XSHE,1761187372.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
98,new,2025-08-26 09:27:00,True,1000,0.0,002272.XSHE,1761187373.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
99,held,2025-08-26 13:00:00,False,3600,3600.0,002640.XSHE,1761187374.0,6.0,5.98,long,12.96,2025-11-05,True
|
||||
100,new,2025-08-27 09:27:00,True,400,0.0,002190.XSHE,1761187375.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
101,held,2025-08-27 13:00:00,False,1900,1900.0,002278.XSHE,1761187376.0,11.15,11.14,long,12.711,2025-11-05,True
|
||||
102,held,2025-08-27 13:00:00,False,1000,1000.0,002272.XSHE,1761187377.0,20.09,19.36,long,12.054,2025-11-05,True
|
||||
103,held,2025-08-27 14:55:00,False,2200,2200.0,002177.XSHE,1761187378.0,8.42,9.58,long,11.1144,2025-11-05,True
|
||||
104,new,2025-08-28 09:27:00,True,1700,0.0,002298.XSHE,1761187379.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
105,new,2025-08-28 09:27:00,True,1300,0.0,002953.XSHE,1761187380.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
106,new,2025-08-28 09:27:00,True,3900,0.0,002131.XSHE,1761187381.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
107,held,2025-08-29 13:00:00,False,400,400.0,002190.XSHE,1761187382.0,48.14,55.0,long,11.5536,2025-11-05,True
|
||||
108,held,2025-08-29 13:00:00,False,1700,1700.0,002298.XSHE,1761187383.0,11.33,11.61,long,11.5566,2025-11-05,True
|
||||
109,held,2025-08-29 13:00:00,False,3900,3900.0,002131.XSHE,1761187384.0,5.26,5.08,long,12.3084,2025-11-05,True
|
||||
110,new,2025-09-01 09:27:00,True,2000,0.0,002165.XSHE,1761187385.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
111,new,2025-09-01 09:27:00,True,1600,0.0,002842.XSHE,1761187386.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
112,new,2025-09-01 09:27:00,True,1100,0.0,002815.XSHE,1761187387.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
113,held,2025-09-01 13:00:00,False,1300,1300.0,002953.XSHE,1761187388.0,15.55,15.02,long,12.129,2025-11-05,True
|
||||
114,new,2025-09-02 09:27:00,True,1900,0.0,002530.XSHE,1761187389.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
115,held,2025-09-02 13:00:00,False,2000,2000.0,002165.XSHE,1761187390.0,10.09,9.93,long,12.108,2025-11-05,True
|
||||
116,held,2025-09-02 13:00:00,False,1600,1600.0,002842.XSHE,1761187391.0,12.54,12.45,long,12.0384,2025-11-05,True
|
||||
117,held,2025-09-02 13:00:00,False,1100,1100.0,002815.XSHE,1761187392.0,16.15,17.22,long,10.659,2025-11-05,True
|
||||
118,new,2025-09-03 09:27:00,True,3300,0.0,002131.XSHE,1761187393.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
119,new,2025-09-03 09:27:00,True,2000,0.0,002642.XSHE,1761187394.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
120,new,2025-09-03 09:27:00,True,400,0.0,002074.XSHE,1761187395.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
121,held,2025-09-03 14:55:00,False,1900,1900.0,002530.XSHE,1761187396.0,10.86,11.6,long,12.3804,2025-11-05,True
|
||||
122,new,2025-09-04 09:27:00,True,2800,0.0,002031.XSHE,1761187397.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
123,held,2025-09-04 13:00:00,False,3300,3300.0,002131.XSHE,1761187398.0,5.35,5.86,long,10.593,2025-11-05,True
|
||||
124,held,2025-09-04 13:00:00,False,2000,2000.0,002642.XSHE,1761187399.0,9.02,9.4,long,10.824,2025-11-05,True
|
||||
125,held,2025-09-04 13:00:00,False,400,400.0,002074.XSHE,1761187400.0,41.9,40.33,long,10.056,2025-11-05,True
|
||||
126,new,2025-09-05 09:27:00,True,2500,0.0,002514.XSHE,1761187401.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
127,new,2025-09-05 09:27:00,True,6200,0.0,002021.XSHE,1761187402.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
128,held,2025-09-05 13:00:00,False,2800,2800.0,002031.XSHE,1761187403.0,9.02,8.8,long,15.1536,2025-11-05,True
|
||||
129,new,2025-09-08 09:27:00,True,4300,0.0,002067.XSHE,1761187404.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
130,new,2025-09-08 09:27:00,True,3400,0.0,002251.XSHE,1761187405.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
131,held,2025-09-08 13:00:00,False,2500,2500.0,002514.XSHE,1761187406.0,7.39,6.91,long,11.085,2025-11-05,True
|
||||
132,new,2025-09-09 09:27:00,True,1200,0.0,002858.XSHE,1761187407.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
133,held,2025-09-09 13:00:00,False,4300,4300.0,002067.XSHE,1761187408.0,5.34,5.04,long,13.7772,2025-11-05,True
|
||||
134,held,2025-09-09 13:00:00,False,3400,3400.0,002251.XSHE,1761187409.0,6.6,6.39,long,13.464,2025-11-05,True
|
||||
135,new,2025-09-10 09:27:00,True,1800,0.0,002115.XSHE,1761187410.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
136,new,2025-09-10 09:27:00,True,1300,0.0,002407.XSHE,1761187411.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
137,held,2025-09-10 13:00:00,False,6200,6200.0,002021.XSHE,1761187412.0,2.69,2.72,long,10.0068,2025-11-05,True
|
||||
138,held,2025-09-10 13:00:00,False,1200,1200.0,002858.XSHE,1761187413.0,15.94,15.44,long,11.4768,2025-11-05,True
|
||||
139,new,2025-09-11 09:27:00,True,2700,0.0,002547.XSHE,1761187415.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
140,held,2025-09-11 13:00:00,False,1800,1800.0,002115.XSHE,1761187416.0,14.25,12.29,long,15.39,2025-11-05,True
|
||||
141,held,2025-09-11 13:00:00,False,1300,1300.0,002407.XSHE,1761187417.0,17.67,17.01,long,13.782600000000002,2025-11-05,True
|
||||
142,new,2025-09-12 09:27:00,True,1700,0.0,002115.XSHE,1761187418.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
143,new,2025-09-12 09:27:00,True,4100,0.0,002131.XSHE,1761187419.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
144,held,2025-09-12 13:00:00,False,2700,2700.0,002547.XSHE,1761187421.0,6.58,6.5,long,10.6596,2025-11-05,True
|
||||
145,new,2025-09-15 09:27:00,True,700,0.0,002130.XSHE,1761187422.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
146,new,2025-09-15 09:27:00,True,900,0.0,002527.XSHE,1761187423.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
147,held,2025-09-15 14:55:00,False,1700,1700.0,002115.XSHE,1761187424.0,12.71,14.09,long,12.9642,2025-11-05,True
|
||||
148,new,2025-09-16 09:27:00,True,2300,0.0,002772.XSHE,1761187425.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
149,held,2025-09-16 13:00:00,False,4100,4100.0,002131.XSHE,1761187426.0,6.32,6.09,long,15.5472,2025-11-05,True
|
||||
150,held,2025-09-16 13:00:00,False,700,700.0,002130.XSHE,1761187427.0,27.25,26.61,long,11.445,2025-11-05,True
|
||||
151,held,2025-09-16 13:00:00,False,900,900.0,002527.XSHE,1761187428.0,20.93,19.98,long,11.3022,2025-11-05,True
|
||||
152,new,2025-09-17 09:27:00,True,4000,0.0,002471.XSHE,1761187429.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
153,new,2025-09-17 09:27:00,True,4400,0.0,002418.XSHE,1761187430.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
154,new,2025-09-17 09:27:00,True,2500,0.0,002055.XSHE,1761187431.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
155,held,2025-09-17 13:00:00,False,2300,2300.0,002772.XSHE,1761187432.0,10.28,9.95,long,14.1864,2025-11-05,True
|
||||
156,new,2025-09-18 09:27:00,True,1400,0.0,002759.XSHE,1761187433.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
157,held,2025-09-18 13:00:00,False,4400,4400.0,002418.XSHE,1761187434.0,4.88,4.74,long,12.8832,2025-11-05,True
|
||||
158,held,2025-09-18 13:00:00,False,2500,2500.0,002055.XSHE,1761187435.0,8.65,8.41,long,12.975,2025-11-05,True
|
||||
159,new,2025-09-19 09:27:00,True,1700,0.0,002148.XSHE,1761187436.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
160,held,2025-09-19 13:00:00,False,1400,1400.0,002759.XSHE,1761187438.0,16.19,17.66,long,13.5996,2025-11-05,True
|
||||
161,held,2025-09-19 14:55:00,False,4000,4000.0,002471.XSHE,1761187439.0,4.94,5.19,long,11.856000000000002,2025-11-05,True
|
||||
162,new,2025-09-22 09:27:00,True,1100,0.0,002272.XSHE,1761187440.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
163,new,2025-09-22 09:27:00,True,400,0.0,002768.XSHE,1761187441.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
164,held,2025-09-22 13:00:00,False,1700,1700.0,002148.XSHE,1761187442.0,10.79,11.77,long,11.0058,2025-11-05,True
|
||||
165,new,2025-09-23 09:27:00,True,1300,0.0,002097.XSHE,1761187444.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
166,new,2025-09-23 09:27:00,True,2400,0.0,002584.XSHE,1761187445.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
167,held,2025-09-23 13:00:00,False,1100,1100.0,002272.XSHE,1761187446.0,18.94,17.99,long,12.5004,2025-11-05,True
|
||||
168,held,2025-09-23 13:00:00,False,400,400.0,002768.XSHE,1761187447.0,45.49,47.36,long,10.9176,2025-11-05,True
|
||||
169,new,2025-09-24 09:27:00,True,1800,0.0,002298.XSHE,1761187448.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
170,new,2025-09-24 09:27:00,True,1300,0.0,002849.XSHE,1761187449.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
171,held,2025-09-24 13:00:00,False,1300,1300.0,002097.XSHE,1761187450.0,14.74,16.03,long,11.4972,2025-11-05,True
|
||||
172,held,2025-09-24 13:00:00,False,2400,2400.0,002584.XSHE,1761187451.0,9.99,8.98,long,14.3856,2025-11-05,True
|
||||
173,new,2025-09-25 09:27:00,True,800,0.0,002549.XSHE,1761187452.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
174,new,2025-09-25 09:27:00,True,1900,0.0,002249.XSHE,1761187453.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
175,held,2025-09-25 13:00:00,False,1300,1300.0,002849.XSHE,1761187454.0,15.57,16.01,long,12.1446,2025-11-05,True
|
||||
176,new,2025-09-26 09:27:00,True,3000,0.0,002562.XSHE,1761187455.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
177,held,2025-09-26 13:00:00,False,1800,1800.0,002298.XSHE,1761187456.0,13.77,11.18,long,14.8716,2025-11-05,True
|
||||
178,held,2025-09-26 13:00:00,False,1900,1900.0,002249.XSHE,1761187457.0,11.79,11.53,long,13.4406,2025-11-05,True
|
||||
179,held,2025-09-29 14:55:00,False,800,800.0,002549.XSHE,1761187458.0,23.27,25.15,long,11.1696,2025-11-05,True
|
||||
180,new,2025-09-30 09:27:00,True,1500,0.0,002765.XSHE,1761187459.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
181,new,2025-09-30 09:27:00,True,1400,0.0,002725.XSHE,1761187460.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
182,new,2025-09-30 09:27:00,True,3400,0.0,002659.XSHE,1761187461.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
183,held,2025-09-30 13:00:00,False,3000,3000.0,002562.XSHE,1761187462.0,7.29,7.6,long,13.122,2025-11-05,True
|
||||
184,new,2025-10-09 09:27:00,True,3500,0.0,002067.XSHE,1761187463.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
185,held,2025-10-09 13:00:00,False,1500,1500.0,002765.XSHE,1761187464.0,14.35,14.61,long,12.915,2025-11-05,True
|
||||
186,held,2025-10-09 13:00:00,False,1400,1400.0,002725.XSHE,1761187465.0,16.12,15.61,long,13.5408,2025-11-05,True
|
||||
187,held,2025-10-09 13:00:00,False,3400,3400.0,002659.XSHE,1761187466.0,5.58,6.32,long,11.3832,2025-11-05,True
|
||||
188,new,2025-10-10 09:27:00,True,1500,0.0,002298.XSHE,1761187467.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
189,new,2025-10-10 09:27:00,True,1100,0.0,002045.XSHE,1761187468.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
190,new,2025-10-10 09:27:00,True,1000,0.0,002150.XSHE,1761187469.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
191,held,2025-10-10 13:00:00,False,3500,3500.0,002067.XSHE,1761187470.0,6.56,6.34,long,13.776,2025-11-05,True
|
||||
192,new,2025-10-13 09:27:00,True,1200,0.0,002759.XSHE,1761187471.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
193,held,2025-10-13 13:00:00,False,1500,1500.0,002298.XSHE,1761187472.0,13.08,13.05,long,11.772,2025-11-05,True
|
||||
194,held,2025-10-13 13:00:00,False,1100,1100.0,002045.XSHE,1761187473.0,17.15,18.05,long,11.319,2025-11-05,True
|
||||
195,held,2025-10-13 13:00:00,False,1000,1000.0,002150.XSHE,1761187474.0,18.3,19.95,long,10.98,2025-11-05,True
|
||||
196,new,2025-10-14 09:27:00,True,1000,0.0,002941.XSHE,1761187475.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
197,new,2025-10-14 09:27:00,True,1300,0.0,002082.XSHE,1761187476.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
198,held,2025-10-14 13:00:00,False,1200,1200.0,002759.XSHE,1761187477.0,23.0,20.85,long,16.560000000000002,2025-11-05,True
|
||||
199,new,2025-10-15 09:27:00,True,1000,0.0,002759.XSHE,1761187478.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
200,new,2025-10-15 09:27:00,True,1400,0.0,002645.XSHE,1761187479.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
201,held,2025-10-15 13:00:00,False,1000,1000.0,002941.XSHE,1761187480.0,21.05,19.35,long,12.63,2025-11-05,True
|
||||
202,held,2025-10-15 13:00:00,False,1300,1300.0,002082.XSHE,1761187481.0,14.83,14.36,long,11.5674,2025-11-05,True
|
||||
203,new,2025-10-16 09:27:00,True,1800,0.0,002171.XSHE,1761187482.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
204,new,2025-10-16 09:27:00,True,4800,0.0,002084.XSHE,1761187483.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
205,held,2025-10-16 13:00:00,False,1000,1000.0,002759.XSHE,1761187484.0,23.39,22.61,long,14.034,2025-11-05,True
|
||||
206,held,2025-10-16 13:00:00,False,1400,1400.0,002645.XSHE,1761187485.0,16.0,16.92,long,13.44,2025-11-05,True
|
||||
207,new,2025-10-17 09:27:00,True,900,0.0,002922.XSHE,1761187486.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
208,new,2025-10-17 09:27:00,True,700,0.0,002364.XSHE,1761187487.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
209,held,2025-10-17 13:00:00,False,1800,1800.0,002171.XSHE,1761187488.0,11.98,11.55,long,12.9384,2025-11-05,True
|
||||
210,held,2025-10-17 13:00:00,False,4800,4800.0,002084.XSHE,1761187489.0,4.19,4.13,long,12.067200000000003,2025-11-05,True
|
||||
211,new,2025-10-20 09:27:00,True,800,0.0,002813.XSHE,1761187490.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
212,held,2025-10-20 13:00:00,False,900,900.0,002922.XSHE,1761187491.0,22.28,24.43,long,12.0312,2025-11-05,True
|
||||
213,held,2025-10-20 13:00:00,False,700,700.0,002364.XSHE,1761187492.0,27.4,30.91,long,11.508,2025-11-05,True
|
||||
214,new,2025-10-21 09:27:00,True,1600,0.0,002825.XSHE,1761187493.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
215,new,2025-10-21 09:27:00,True,1500,0.0,002208.XSHE,1761187494.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
216,new,2025-10-21 09:27:00,True,700,0.0,002017.XSHE,1761187495.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
217,held,2025-10-21 13:00:00,False,800,800.0,002813.XSHE,1761187496.0,27.93,27.82,long,13.4064,2025-11-05,True
|
||||
218,new,2025-10-22 09:27:00,True,2000,0.0,002893.XSHE,1761187497.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
219,held,2025-10-22 13:00:00,False,1600,1600.0,002825.XSHE,1761187498.0,11.76,12.38,long,11.2896,2025-11-05,True
|
||||
220,held,2025-10-22 13:00:00,False,1500,1500.0,002208.XSHE,1761187499.0,14.78,12.75,long,13.302,2025-11-05,True
|
||||
221,held,2025-10-22 13:00:00,False,700,700.0,002017.XSHE,1761187500.0,27.64,27.5,long,11.6088,2025-11-05,True
|
||||
222,new,2025-10-24 09:27:00,True,1000,0.0,002370.XSHE,1761267497.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
223,new,2025-10-24 09:27:00,True,1000,0.0,002546.XSHE,1761267498.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
224,new,2025-10-24 09:27:00,True,500,0.0,002900.XSHE,1761267499.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
225,new,2025-10-24 09:27:00,True,1200,0.0,002481.XSHE,1761267500.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
226,held,2025-10-27 13:00:00,False,1000,1000.0,002370.XSHE,1761541133.0,7.21,7.28,long,4.605,2025-11-05,True
|
||||
227,held,2025-10-27 13:00:00,False,1000,1000.0,002546.XSHE,1761541134.0,7.21,6.94,long,4.605,2025-11-05,True
|
||||
228,held,2025-10-27 13:00:00,False,1200,1200.0,002481.XSHE,1761541135.0,5.78,6.17,long,4.468,2025-11-05,True
|
||||
229,new,2025-10-28 09:27:00,True,1400,0.0,002682.XSHE,1761613075.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
230,new,2025-10-28 09:27:00,True,600,0.0,002457.XSHE,1761613076.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
231,new,2025-10-28 09:27:00,True,100,0.0,003009.XSHE,1761613077.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
232,held,2025-10-29 13:00:00,False,500,500.0,002900.XSHE,1761713933.0,13.68,14.0,long,4.42,2025-11-05,True
|
||||
233,held,2025-10-29 13:00:00,False,100,100.0,003009.XSHE,1761713934.0,55.1,53.53,long,3.755,2025-11-05,True
|
||||
234,new,2025-10-30 09:27:00,True,1500,0.0,002512.XSHE,1761785877.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
235,new,2025-10-30 09:27:00,True,900,0.0,002474.XSHE,1761785878.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
236,held,2025-10-30 13:00:00,False,1400,1400.0,002682.XSHE,1761800344.0,4.86,5.11,long,4.402,2025-11-05,True
|
||||
237,held,2025-10-30 14:55:00,False,600,600.0,002457.XSHE,1761800345.0,11.65,12.1,long,4.495,2025-11-05,True
|
||||
238,new,2025-10-31 09:27:00,True,1500,0.0,002689.XSHE,1761872294.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
239,new,2025-10-31 09:27:00,True,600,0.0,002212.XSHE,1761872295.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
240,held,2025-10-31 13:00:00,False,900,900.0,002474.XSHE,1761886744.0,8.48,8.050000000000002,long,4.816000000000001,2025-11-05,True
|
||||
241,new,2025-10-09 09:28:00,True,11700,0.0,000793.XSHE,1761894980.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
242,new,2025-10-09 09:28:00,True,9200,0.0,600355.XSHG,1761894981.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
243,new,2025-10-09 09:28:00,True,9200,0.0,002822.XSHE,1761894982.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
244,held,2025-10-10 13:00:00,False,11700,11700.0,000793.XSHE,1761894983.0,2.98,2.87,long,52.299,2025-11-05,True
|
||||
245,held,2025-10-10 13:00:00,False,9200,9200.0,600355.XSHG,1761894984.0,3.43,3.64,long,47.334,2025-11-05,True
|
||||
246,held,2025-10-10 13:00:00,False,9200,9200.0,002822.XSHE,1761894985.0,3.68,3.6,long,50.784000000000006,2025-11-05,True
|
||||
247,new,2025-10-13 09:28:00,True,11000,0.0,000793.XSHE,1761894986.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
248,new,2025-10-13 09:28:00,True,14000,0.0,000518.XSHE,1761894987.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
249,new,2025-10-14 09:28:00,True,5500,0.0,300472.XSHE,1761894988.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
250,held,2025-10-14 13:00:00,False,11000,11000.0,000793.XSHE,1761894989.0,3.01,2.88,long,49.665,2025-11-05,True
|
||||
251,held,2025-10-14 13:00:00,False,14000,14000.0,000518.XSHE,1761894990.0,2.39,2.33,long,50.19,2025-11-05,True
|
||||
252,new,2025-10-15 09:28:00,True,2400,0.0,000004.XSHE,1761894991.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
253,new,2025-10-15 09:28:00,True,1400,0.0,002816.XSHE,1761894992.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
254,held,2025-10-15 13:00:00,False,5500,5500.0,300472.XSHE,1761894993.0,6.7,6.53,long,55.275000000000006,2025-11-05,True
|
||||
255,new,2025-10-16 09:28:00,True,9300,0.0,600777.XSHG,1761894994.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
256,held,2025-10-16 13:00:00,False,1400,1400.0,002816.XSHE,1761894995.0,22.65,21.98,long,47.565,2025-11-05,True
|
||||
257,held,2025-10-16 14:55:00,False,2400,2400.0,000004.XSHE,1761894996.0,12.81,13.33,long,46.116,2025-11-05,True
|
||||
258,new,2025-10-17 09:28:00,True,5500,0.0,002808.XSHE,1761894997.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
259,new,2025-10-17 09:28:00,True,4900,0.0,300167.XSHE,1761894998.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
260,held,2025-10-17 14:00:00,False,9300,9300.0,600777.XSHG,1761894999.0,4.17,4.34,long,58.1715,2025-11-05,True
|
||||
261,new,2025-10-20 09:28:00,True,6300,0.0,603007.XSHG,1761895000.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
262,held,2025-10-20 14:00:00,False,4900,4900.0,300167.XSHE,1761895001.0,6.12,6.33,long,44.982,2025-11-05,True
|
||||
263,new,2025-10-21 09:28:00,True,11600,0.0,002305.XSHE,1761895002.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
264,held,2025-10-21 13:00:00,False,5500,5500.0,002808.XSHE,1761895003.0,5.28,5.47,long,43.56,2025-11-05,True
|
||||
265,new,2025-10-22 09:28:00,True,3300,0.0,002713.XSHE,1761895004.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
266,held,2025-10-22 13:00:00,False,6300,6300.0,603007.XSHG,1761895005.0,6.91,6.29,long,65.2995,2025-11-05,True
|
||||
267,new,2025-10-23 09:28:00,True,6500,0.0,603007.XSHG,1761895006.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
268,held,2025-10-23 13:00:00,False,11600,11600.0,002305.XSHE,1761895007.0,2.87,2.53,long,49.938,2025-11-05,True
|
||||
269,held,2025-10-23 13:00:00,False,3300,3300.0,002713.XSHE,1761895008.0,9.2,8.380000000000003,long,45.53999999999999,2025-11-05,True
|
||||
270,new,2025-10-24 09:28:00,True,11200,0.0,002305.XSHE,1761895009.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
271,new,2025-10-24 09:28:00,True,10500,0.0,000903.XSHE,1761895010.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
272,held,2025-10-24 13:00:00,False,6500,6500.0,603007.XSHG,1761895011.0,7.1,7.0,long,69.225,2025-11-05,True
|
||||
273,new,2025-11-03 09:27:00,True,600,0.0,002248.XSHE,1762131506.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
274,held,2025-11-03 13:00:00,False,1500,1500.0,002512.XSHE,1762145937.0,4.69,4.940000000000001,long,4.5175,2025-11-05,True
|
||||
275,held,2025-11-03 13:00:00,False,1500,1500.0,002689.XSHE,1762145938.0,5.0,4.8,long,4.75,2025-11-05,True
|
||||
276,held,2025-11-03 13:00:00,False,600,600.0,002212.XSHE,1762145939.0,10.94,10.38,long,4.282,2025-11-05,True
|
||||
277,held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400.0,,1732208241.0,10.5,10.59,long,128.31,2025-11-05,True
|
||||
278,new,2025-11-04 09:27:00,True,2200,0.0,002374.XSHE,1762217882.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
279,new,2025-11-04 09:27:00,True,1300,0.0,002522.XSHE,1762217883.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
280,new,2025-11-04 09:27:00,True,100,0.0,002812.XSHE,1762217884.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
281,held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400.0,001.XSHE,1732208241.0,10.5,10.59,long,128.31,2025-11-05,True
|
||||
282,held,2025-11-05 13:00:00,False,600,600.0,002248.XSHE,1762318734.0,13.24,12.69,long,4.972,2025-11-05,True
|
||||
283,held,2025-11-05 13:00:00,False,2200,2200.0,002374.XSHE,1762318735.0,3.31,3.25,long,4.641,2025-11-05,True
|
||||
284,held,2025-11-05 14:55:00,False,1300,1300,002522.XSHE,1762318736,5.35,5.34,long,4.477499999999999,2025-11-05,True
|
||||
|
@@ -0,0 +1,514 @@
|
||||
,状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态
|
||||
0,new,2025-01-02 09:27:00,True,1700.0,0.0,002861.XSHE,1761104015.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
1,new,2025-01-02 09:27:00,True,2100.0,0.0,002117.XSHE,1761104016.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
2,new,2025-01-02 09:27:00,True,1700.0,0.0,003015.XSHE,1761104017.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
3,new,2025-01-02 09:27:00,True,1500.0,0.0,002931.XSHE,1761104018.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
4,held,2025-01-03 13:00:00,False,1700.0,1700.0,002861.XSHE,1761104019.0,12.5,13.85,long,12.75,2025-11-05,True
|
||||
5,held,2025-01-03 13:00:00,False,1500.0,1500.0,002931.XSHE,1761104020.0,16.29,16.2,long,14.661,2025-11-05,True
|
||||
6,new,2025-01-06 09:27:00,True,5600.0,0.0,002640.XSHE,1761104021.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
7,new,2025-01-06 09:27:00,True,2100.0,0.0,002364.XSHE,1761104022.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
8,held,2025-01-06 13:00:00,False,1700.0,1700.0,003015.XSHE,1761104023.0,15.68,14.32,long,15.9936,2025-11-05,True
|
||||
9,new,2025-01-07 09:27:00,True,7800.0,0.0,002397.XSHE,1761104024.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
10,held,2025-01-07 13:00:00,False,2100.0,2100.0,002117.XSHE,1761104025.0,12.18,11.46,long,15.3468,2025-11-05,True
|
||||
11,held,2025-01-07 13:00:00,False,5600.0,5600.0,002640.XSHE,1761104026.0,4.53,4.2,long,15.2208,2025-11-05,True
|
||||
12,new,2025-01-08 09:27:00,True,1600.0,0.0,002552.XSHE,1761104027.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
13,new,2025-01-08 09:27:00,True,4500.0,0.0,002225.XSHE,1761104028.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
14,held,2025-01-08 13:00:00,False,2100.0,2100.0,002364.XSHE,1761104029.0,14.45,11.0,long,18.207,2025-11-05,True
|
||||
15,held,2025-01-08 13:00:00,False,7800.0,7800.0,002397.XSHE,1761104030.0,4.4,3.74,long,20.592,2025-11-05,True
|
||||
16,new,2025-01-09 09:27:00,True,8400.0,0.0,002397.XSHE,1761104031.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
17,new,2025-01-09 09:27:00,True,1900.0,0.0,002119.XSHE,1761104032.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
18,held,2025-01-09 13:00:00,False,4500.0,4500.0,002225.XSHE,1761104033.0,5.56,5.45,long,15.012,2025-11-05,True
|
||||
19,held,2025-01-10 13:00:00,False,1600.0,1600.0,002552.XSHE,1761104035.0,16.0,14.7,long,15.36,2025-11-05,True
|
||||
20,held,2025-01-10 13:00:00,False,1900.0,1900.0,002119.XSHE,1761104036.0,17.7,17.100000000000005,long,20.178,2025-11-05,True
|
||||
21,new,2025-01-13 09:27:00,True,8200.0,0.0,002131.XSHE,1761104037.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
22,new,2025-01-13 09:27:00,True,3700.0,0.0,002400.XSHE,1761104038.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
23,held,2025-01-13 13:00:00,False,8400.0,8400.0,002397.XSHE,1761104039.0,3.24,3.86,long,16.3296,2025-11-05,True
|
||||
24,new,2025-01-14 09:27:00,True,2000.0,0.0,002536.XSHE,1761104041.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
25,new,2025-01-14 09:27:00,True,2300.0,0.0,002346.XSHE,1761104042.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
26,held,2025-01-14 13:00:00,False,3700.0,3700.0,002400.XSHE,1761104043.0,8.1,7.76,long,17.982,2025-11-05,True
|
||||
27,new,2025-01-15 09:27:00,True,6600.0,0.0,002692.XSHE,1761104044.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
28,held,2025-01-15 13:00:00,False,2000.0,2000.0,002536.XSHE,1761104045.0,13.47,13.19,long,16.164,2025-11-05,True
|
||||
29,held,2025-01-15 13:00:00,False,2300.0,2300.0,002346.XSHE,1761104046.0,13.7,11.63,long,18.906,2025-11-05,True
|
||||
30,new,2025-01-16 09:27:00,True,6100.0,0.0,002175.XSHE,1761104047.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
31,new,2025-01-16 09:27:00,True,2900.0,0.0,002660.XSHE,1761104048.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
32,held,2025-01-16 13:00:00,False,8200.0,8200.0,002131.XSHE,1761104049.0,3.95,3.56,long,19.434,2025-11-05,True
|
||||
33,new,2025-01-17 09:27:00,True,1700.0,0.0,002967.XSHE,1761104050.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
34,held,2025-01-17 13:00:00,False,6100.0,6100.0,002175.XSHE,1761104051.0,5.23,4.88,long,19.141800000000003,2025-11-05,True
|
||||
35,held,2025-01-17 13:00:00,False,2900.0,2900.0,002660.XSHE,1761104052.0,9.7,10.210000000000004,long,16.877999999999997,2025-11-05,True
|
||||
36,new,2025-01-20 09:27:00,True,4800.0,0.0,002164.XSHE,1761104053.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
37,new,2025-01-20 09:27:00,True,3200.0,0.0,002187.XSHE,1761104054.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
38,held,2025-01-20 13:00:00,False,1700.0,1700.0,002967.XSHE,1761104055.0,18.47,18.309999999999995,long,18.8394,2025-11-05,True
|
||||
39,new,2025-01-21 09:27:00,True,1800.0,0.0,002119.XSHE,1761104056.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
40,held,2025-01-21 13:00:00,False,4800.0,4800.0,002164.XSHE,1761104057.0,5.74,6.03,long,16.5312,2025-11-05,True
|
||||
41,held,2025-01-21 13:00:00,False,3200.0,3200.0,002187.XSHE,1761104058.0,9.9,9.26,long,19.008,2025-11-05,True
|
||||
42,new,2025-01-22 09:27:00,True,1000.0,0.0,002130.XSHE,1761104059.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
43,new,2025-01-22 09:27:00,True,3200.0,0.0,002580.XSHE,1761104060.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
44,held,2025-01-22 13:00:00,False,6600.0,6600.0,002692.XSHE,1761104061.0,5.97,4.599999999999999,long,23.6412,2025-11-05,True
|
||||
45,held,2025-01-22 14:55:00,False,1800.0,1800.0,002119.XSHE,1761104062.0,17.87,18.93,long,19.2996,2025-11-05,True
|
||||
46,held,2025-01-23 13:00:00,False,1000.0,1000.0,002130.XSHE,1761104063.0,28.99,28.31,long,17.394000000000002,2025-11-05,True
|
||||
47,held,2025-01-23 13:00:00,False,3200.0,3200.0,002580.XSHE,1761104064.0,9.18,9.07,long,17.625600000000002,2025-11-05,True
|
||||
48,new,2025-01-27 09:27:00,True,2100.0,0.0,002729.XSHE,1761104065.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
49,new,2025-01-27 09:27:00,True,6900.0,0.0,002666.XSHE,1761104066.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
50,new,2025-01-27 09:27:00,True,1000.0,0.0,003033.XSHE,1761104067.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
51,held,2025-02-05 13:00:00,False,6900.0,6900.0,002666.XSHE,1761104068.0,4.7,4.78,long,19.458,2025-11-05,True
|
||||
52,held,2025-02-05 13:00:00,False,1000.0,1000.0,003033.XSHE,1761104069.0,31.59,31.01,long,18.954,2025-11-05,True
|
||||
53,new,2025-02-06 09:27:00,True,2800.0,0.0,002530.XSHE,1761104070.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
54,new,2025-02-06 09:27:00,True,1900.0,0.0,002760.XSHE,1761104071.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
55,new,2025-02-06 09:27:00,True,5200.0,0.0,002549.XSHE,1761104072.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
56,held,2025-02-06 13:00:00,False,2100.0,2100.0,002729.XSHE,1761104073.0,15.0,15.36,long,18.9,2025-11-05,True
|
||||
57,new,2025-02-07 09:27:00,True,3900.0,0.0,002599.XSHE,1761104074.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
58,held,2025-02-07 13:00:00,False,2800.0,2800.0,002530.XSHE,1761104075.0,13.29,11.41,long,22.3272,2025-11-05,True
|
||||
59,held,2025-02-07 13:00:00,False,5200.0,5200.0,002549.XSHE,1761104076.0,6.4,6.33,long,19.968,2025-11-05,True
|
||||
60,new,2025-02-10 09:27:00,True,4800.0,0.0,002354.XSHE,1761104077.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
61,new,2025-02-10 09:27:00,True,2900.0,0.0,002530.XSHE,1761104078.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
62,held,2025-02-11 13:00:00,False,3900.0,3900.0,002599.XSHE,1761104079.0,9.34,8.44,long,21.855600000000003,2025-11-05,True
|
||||
63,held,2025-02-11 13:00:00,False,4800.0,4800.0,002354.XSHE,1761104080.0,8.49,7.39,long,24.4512,2025-11-05,True
|
||||
64,new,2025-02-12 09:27:00,True,3900.0,0.0,002173.XSHE,1761104081.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
65,held,2025-02-12 13:00:00,False,2900.0,2900.0,002530.XSHE,1761104083.0,12.88,12.02,long,22.4112,2025-11-05,True
|
||||
66,held,2025-02-12 14:55:00,False,1900.0,1900.0,002760.XSHE,1761104084.0,17.08,17.07,long,19.4712,2025-11-05,True
|
||||
67,new,2025-02-13 09:27:00,True,3600.0,0.0,002441.XSHE,1761104085.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
68,new,2025-02-13 09:27:00,True,9400.0,0.0,002397.XSHE,1761104086.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
69,held,2025-02-13 13:00:00,False,3900.0,3900.0,002173.XSHE,1761104087.0,9.97,9.86,long,23.3298,2025-11-05,True
|
||||
70,new,2025-02-14 09:27:00,True,3900.0,0.0,002272.XSHE,1761104088.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
71,new,2025-02-17 09:27:00,True,2300.0,0.0,002693.XSHE,1761104090.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
72,held,2025-02-17 13:00:00,False,3900.0,3900.0,002272.XSHE,1761104091.0,10.28,9.89,long,24.0552,2025-11-05,True
|
||||
73,new,2025-02-18 09:27:00,True,1300.0,0.0,002261.XSHE,1761104092.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
74,held,2025-02-18 13:00:00,False,9400.0,9400.0,002397.XSHE,1761104093.0,3.84,3.73,long,21.6576,2025-11-05,True
|
||||
75,held,2025-02-18 13:00:00,False,2300.0,2300.0,002693.XSHE,1761104094.0,15.85,16.76,long,21.873,2025-11-05,True
|
||||
76,held,2025-02-18 14:55:00,False,3600.0,3600.0,002441.XSHE,1761104095.0,8.92,9.66,long,19.267200000000003,2025-11-05,True
|
||||
77,new,2025-02-19 09:27:00,True,3600.0,0.0,002137.XSHE,1761104096.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
78,new,2025-02-19 09:27:00,True,7800.0,0.0,002067.XSHE,1761104097.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
79,new,2025-02-19 09:27:00,True,3800.0,0.0,003032.XSHE,1761104098.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
80,held,2025-02-19 13:00:00,False,1300.0,1300.0,002261.XSHE,1761104099.0,34.61,31.21,long,26.995800000000003,2025-11-05,True
|
||||
81,new,2025-02-20 09:27:00,True,5700.0,0.0,002520.XSHE,1761104100.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
82,held,2025-02-20 13:00:00,False,3600.0,3600.0,002137.XSHE,1761104101.0,9.88,9.51,long,21.3408,2025-11-05,True
|
||||
83,held,2025-02-20 13:00:00,False,7800.0,7800.0,002067.XSHE,1761104102.0,4.57,4.39,long,21.3876,2025-11-05,True
|
||||
84,held,2025-02-20 13:00:00,False,3800.0,3800.0,003032.XSHE,1761104103.0,9.47,9.22,long,21.591600000000003,2025-11-05,True
|
||||
85,new,2025-02-21 09:27:00,True,3900.0,0.0,002031.XSHE,1761104104.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
86,new,2025-02-21 09:27:00,True,3400.0,0.0,002908.XSHE,1761104105.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
87,new,2025-02-21 09:27:00,True,900.0,0.0,003005.XSHE,1761104106.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
88,held,2025-02-21 13:00:00,False,5700.0,5700.0,002520.XSHE,1761104107.0,7.94,7.86,long,27.1548,2025-11-05,True
|
||||
89,new,2025-02-24 09:27:00,True,12800.0,0.0,002426.XSHE,1761104108.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
90,held,2025-02-24 13:00:00,False,3900.0,3900.0,002031.XSHE,1761104109.0,9.64,9.19,long,22.5576,2025-11-05,True
|
||||
91,held,2025-02-24 13:00:00,False,3400.0,3400.0,002908.XSHE,1761104110.0,10.43,10.25,long,21.2772,2025-11-05,True
|
||||
92,held,2025-02-24 13:00:00,False,900.0,900.0,003005.XSHE,1761104111.0,39.16,40.14,long,21.1464,2025-11-05,True
|
||||
93,new,2025-02-25 09:27:00,True,3700.0,0.0,002334.XSHE,1761104112.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
94,new,2025-02-25 09:27:00,True,600.0,0.0,002979.XSHE,1761104113.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
95,new,2025-02-25 09:27:00,True,400.0,0.0,002896.XSHE,1761104114.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
96,held,2025-02-26 13:00:00,False,12800.0,12800.0,002426.XSHE,1761104115.0,3.69,3.63,long,28.3392,2025-11-05,True
|
||||
97,held,2025-02-26 13:00:00,False,600.0,600.0,002979.XSHE,1761104116.0,56.0,51.1,long,20.16,2025-11-05,True
|
||||
98,held,2025-02-26 14:55:00,False,3700.0,3700.0,002334.XSHE,1761104117.0,10.56,9.42,long,23.4432,2025-11-05,True
|
||||
99,new,2025-02-27 09:27:00,True,4100.0,0.0,002031.XSHE,1761104118.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
100,new,2025-02-27 09:27:00,True,6700.0,0.0,002298.XSHE,1761104119.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
101,new,2025-02-27 09:27:00,True,2000.0,0.0,002824.XSHE,1761104120.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
102,held,2025-02-27 13:00:00,False,400.0,400.0,002896.XSHE,1761104121.0,111.74,84.02,long,26.8176,2025-11-05,True
|
||||
103,new,2025-02-28 09:27:00,True,5800.0,0.0,002474.XSHE,1761104122.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
104,held,2025-02-28 13:00:00,False,4100.0,4100.0,002031.XSHE,1761104123.0,10.36,10.3,long,25.4856,2025-11-05,True
|
||||
105,new,2025-03-03 09:27:00,True,5700.0,0.0,002406.XSHE,1761104124.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
106,held,2025-03-03 13:00:00,False,6700.0,6700.0,002298.XSHE,1761104125.0,7.07,6.5,long,28.4214,2025-11-05,True
|
||||
107,held,2025-03-03 13:00:00,False,5800.0,5800.0,002474.XSHE,1761104126.0,7.79,8.34,long,27.1092,2025-11-05,True
|
||||
108,held,2025-03-03 14:55:00,False,2000.0,2000.0,002824.XSHE,1761104127.0,18.43,20.0,long,22.116,2025-11-05,True
|
||||
109,new,2025-03-04 09:27:00,True,8100.0,0.0,002692.XSHE,1761104128.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
110,new,2025-03-04 09:27:00,True,7800.0,0.0,002207.XSHE,1761104129.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
111,held,2025-03-04 13:00:00,False,5700.0,5700.0,002406.XSHE,1761104130.0,7.16,7.53,long,24.4872,2025-11-05,True
|
||||
112,new,2025-03-05 09:27:00,True,2600.0,0.0,002917.XSHE,1761104131.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
113,new,2025-03-05 09:27:00,True,1200.0,0.0,003010.XSHE,1761104132.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
114,held,2025-03-05 13:00:00,False,8100.0,8100.0,002692.XSHE,1761104133.0,5.27,5.2,long,25.6122,2025-11-05,True
|
||||
115,held,2025-03-05 13:00:00,False,7800.0,7800.0,002207.XSHE,1761104134.0,5.39,5.52,long,25.2252,2025-11-05,True
|
||||
116,new,2025-03-06 09:27:00,True,6400.0,0.0,002164.XSHE,1761104135.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
117,new,2025-03-06 09:27:00,True,3800.0,0.0,002313.XSHE,1761104136.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
118,held,2025-03-06 13:00:00,False,1200.0,1200.0,003010.XSHE,1761104137.0,35.87,33.59,long,25.826400000000003,2025-11-05,True
|
||||
119,new,2025-03-07 09:27:00,True,9500.0,0.0,002526.XSHE,1761104138.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
120,held,2025-03-07 13:00:00,False,2600.0,2600.0,002917.XSHE,1761104139.0,15.23,15.78,long,23.7588,2025-11-05,True
|
||||
121,held,2025-03-07 13:00:00,False,6400.0,6400.0,002164.XSHE,1761104140.0,7.06,6.9,long,27.1104,2025-11-05,True
|
||||
122,held,2025-03-07 13:00:00,False,3800.0,3800.0,002313.XSHE,1761104141.0,11.48,11.23,long,26.1744,2025-11-05,True
|
||||
123,new,2025-03-10 09:27:00,True,2400.0,0.0,002276.XSHE,1761104142.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
124,new,2025-03-10 09:27:00,True,2000.0,0.0,002657.XSHE,1761104143.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
125,new,2025-03-10 09:27:00,True,800.0,0.0,002315.XSHE,1761104144.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
126,held,2025-03-11 13:00:00,False,800.0,800.0,002315.XSHE,1761104145.0,44.32,47.05,long,21.2736,2025-11-05,True
|
||||
127,new,2025-03-12 09:27:00,True,5600.0,0.0,002114.XSHE,1761104146.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
128,held,2025-03-12 13:00:00,False,2000.0,2000.0,002657.XSHE,1761104147.0,21.54,21.11,long,25.848,2025-11-05,True
|
||||
129,new,2025-03-13 09:27:00,True,6300.0,0.0,002195.XSHE,1761104148.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
130,held,2025-03-13 13:00:00,False,9500.0,9500.0,002526.XSHE,1761104149.0,4.32,4.66,long,24.624,2025-11-05,True
|
||||
131,held,2025-03-13 13:00:00,False,2400.0,2400.0,002276.XSHE,1761104150.0,17.2,17.12,long,24.768,2025-11-05,True
|
||||
132,new,2025-03-14 09:27:00,True,1800.0,0.0,002730.XSHE,1761104151.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
133,new,2025-03-14 09:27:00,True,2500.0,0.0,002927.XSHE,1761104152.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
134,held,2025-03-14 13:00:00,False,6300.0,6300.0,002195.XSHE,1761104153.0,6.35,6.72,long,24.003,2025-11-05,True
|
||||
135,new,2025-03-17 09:27:00,True,6400.0,0.0,002361.XSHE,1761104154.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
136,held,2025-03-17 13:00:00,False,5600.0,5600.0,002114.XSHE,1761104155.0,7.28,7.78,long,24.4608,2025-11-05,True
|
||||
137,new,2025-03-18 09:27:00,True,2700.0,0.0,002838.XSHE,1761104156.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
138,held,2025-03-19 13:00:00,False,1800.0,1800.0,002730.XSHE,1761104157.0,19.7,21.0,long,21.276,2025-11-05,True
|
||||
139,held,2025-03-19 13:00:00,False,6400.0,6400.0,002361.XSHE,1761104158.0,6.95,6.89,long,26.688,2025-11-05,True
|
||||
140,new,2025-03-20 09:27:00,True,3300.0,0.0,002196.XSHE,1761104159.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
141,new,2025-03-20 09:27:00,True,3300.0,0.0,002559.XSHE,1761104160.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
142,held,2025-03-20 13:00:00,False,2500.0,2500.0,002927.XSHE,1761104161.0,20.5,16.05,long,30.75,2025-11-05,True
|
||||
143,held,2025-03-20 13:00:00,False,2700.0,2700.0,002838.XSHE,1761104162.0,17.34,15.17,long,28.0908,2025-11-05,True
|
||||
144,new,2025-03-21 09:27:00,True,3200.0,0.0,002227.XSHE,1761104163.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
145,new,2025-03-21 09:27:00,True,1700.0,0.0,002980.XSHE,1761104164.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
146,held,2025-03-21 13:00:00,False,3300.0,3300.0,002559.XSHE,1761104165.0,12.33,11.74,long,24.4134,2025-11-05,True
|
||||
147,new,2025-03-24 09:27:00,True,3000.0,0.0,002655.XSHE,1761104166.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
148,held,2025-03-24 13:00:00,False,3200.0,3200.0,002227.XSHE,1761104167.0,12.51,14.63,long,24.0192,2025-11-05,True
|
||||
149,held,2025-03-24 13:00:00,False,1700.0,1700.0,002980.XSHE,1761104168.0,27.32,28.8,long,27.8664,2025-11-05,True
|
||||
150,new,2025-03-25 09:27:00,True,4500.0,0.0,002115.XSHE,1761104169.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
151,new,2025-03-25 09:27:00,True,7900.0,0.0,002165.XSHE,1761104170.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
152,held,2025-03-25 13:00:00,False,3300.0,3300.0,002196.XSHE,1761104171.0,9.47,11.69,long,18.7506,2025-11-05,True
|
||||
153,held,2025-03-25 14:55:00,False,3000.0,3000.0,002655.XSHE,1761104172.0,15.61,15.15,long,28.098,2025-11-05,True
|
||||
154,new,2025-03-26 09:27:00,True,7700.0,0.0,002682.XSHE,1761104173.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
155,new,2025-03-26 09:27:00,True,6800.0,0.0,002391.XSHE,1761104174.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
156,held,2025-03-26 13:00:00,False,7900.0,7900.0,002165.XSHE,1761104175.0,6.41,5.35,long,30.3834,2025-11-05,True
|
||||
157,new,2025-03-27 09:27:00,True,8800.0,0.0,002165.XSHE,1761104176.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
158,held,2025-03-27 13:00:00,False,4500.0,4500.0,002115.XSHE,1761104177.0,9.65,9.58,long,26.055000000000003,2025-11-05,True
|
||||
159,held,2025-03-27 13:00:00,False,7700.0,7700.0,002682.XSHE,1761104178.0,5.53,5.02,long,25.5486,2025-11-05,True
|
||||
160,held,2025-03-27 14:55:00,False,6800.0,6800.0,002391.XSHE,1761104179.0,5.38,5.61,long,21.9504,2025-11-05,True
|
||||
161,new,2025-03-28 09:27:00,True,4100.0,0.0,002115.XSHE,1761104180.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
162,new,2025-03-28 09:27:00,True,4300.0,0.0,002248.XSHE,1761104181.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
163,new,2025-03-28 09:27:00,True,7600.0,0.0,002682.XSHE,1761104182.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
164,held,2025-03-28 13:00:00,False,8800.0,8800.0,002165.XSHE,1761104183.0,6.99,5.91,long,36.9072,2025-11-05,True
|
||||
165,new,2025-03-31 09:27:00,True,8200.0,0.0,002584.XSHE,1761104184.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
166,held,2025-03-31 13:00:00,False,4100.0,4100.0,002115.XSHE,1761104185.0,8.82,9.55,long,21.6972,2025-11-05,True
|
||||
167,held,2025-03-31 13:00:00,False,4300.0,4300.0,002248.XSHE,1761104186.0,8.36,9.22,long,21.5688,2025-11-05,True
|
||||
168,new,2025-04-01 09:27:00,True,4300.0,0.0,002639.XSHE,1761104187.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
169,new,2025-04-01 09:27:00,True,2500.0,0.0,002923.XSHE,1761104188.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
170,held,2025-04-01 13:00:00,False,7600.0,7600.0,002682.XSHE,1761104189.0,4.44,5.25,long,20.2464,2025-11-05,True
|
||||
171,held,2025-04-01 13:00:00,False,8200.0,8200.0,002584.XSHE,1761104190.0,8.33,7.95,long,40.9836,2025-11-05,True
|
||||
172,new,2025-04-02 09:27:00,True,3100.0,0.0,002655.XSHE,1761104191.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
173,new,2025-04-02 09:27:00,True,2500.0,0.0,002541.XSHE,1761104192.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
174,held,2025-04-02 13:00:00,False,4300.0,4300.0,002639.XSHE,1761104193.0,9.12,8.3,long,23.5296,2025-11-05,True
|
||||
175,new,2025-04-03 09:27:00,True,8400.0,0.0,002535.XSHE,1761104194.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
176,held,2025-04-03 13:00:00,False,2500.0,2500.0,002923.XSHE,1761104195.0,19.21,14.79,long,28.815,2025-11-05,True
|
||||
177,held,2025-04-03 13:00:00,False,3100.0,3100.0,002655.XSHE,1761104196.0,13.66,16.09,long,25.4076,2025-11-05,True
|
||||
178,held,2025-04-03 13:00:00,False,2500.0,2500.0,002541.XSHE,1761104197.0,20.7,19.89,long,31.05,2025-11-05,True
|
||||
179,held,2025-04-07 13:00:00,False,8400.0,8400.0,002535.XSHE,1761104198.0,4.49,4.88,long,22.6296,2025-11-05,True
|
||||
180,new,2025-04-08 09:27:00,True,14000.0,0.0,002471.XSHE,1761104199.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
181,held,2025-04-09 13:00:00,False,14000.0,14000.0,002471.XSHE,1761104200.0,2.94,3.22,long,24.696,2025-11-05,True
|
||||
182,new,2025-04-10 09:27:00,True,7100.0,0.0,002999.XSHE,1761104201.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
183,new,2025-04-10 09:27:00,True,7800.0,0.0,002697.XSHE,1761104202.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
184,new,2025-04-10 09:27:00,True,4700.0,0.0,002758.XSHE,1761104203.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
185,new,2025-04-11 09:27:00,True,5800.0,0.0,002707.XSHE,1761104204.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
186,held,2025-04-11 13:00:00,False,7100.0,7100.0,002999.XSHE,1761104205.0,6.03,6.01,long,25.687800000000003,2025-11-05,True
|
||||
187,held,2025-04-11 13:00:00,False,7800.0,7800.0,002697.XSHE,1761104206.0,5.69,5.53,long,26.6292,2025-11-05,True
|
||||
188,new,2025-04-14 09:27:00,True,5500.0,0.0,002187.XSHE,1761104208.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
189,held,2025-04-14 13:00:00,False,5800.0,5800.0,002707.XSHE,1761104209.0,8.73,8.5,long,30.3804,2025-11-05,True
|
||||
190,new,2025-04-15 09:27:00,True,3400.0,0.0,002730.XSHE,1761104210.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
191,held,2025-04-15 13:00:00,False,5500.0,5500.0,002187.XSHE,1761104212.0,7.98,7.95,long,26.334,2025-11-05,True
|
||||
192,new,2025-04-16 09:27:00,True,6800.0,0.0,002264.XSHE,1761104214.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
193,held,2025-04-16 13:00:00,False,4700.0,4700.0,002758.XSHE,1761104215.0,8.69,9.02,long,24.5058,2025-11-05,True
|
||||
194,new,2025-04-17 09:27:00,True,2100.0,0.0,002553.XSHE,1761104216.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
195,held,2025-04-17 13:00:00,False,6800.0,6800.0,002264.XSHE,1761104217.0,6.48,6.4,long,26.4384,2025-11-05,True
|
||||
196,held,2025-04-18 13:00:00,False,3400.0,3400.0,002730.XSHE,1761104218.0,14.35,15.5,long,29.274,2025-11-05,True
|
||||
197,new,2025-04-21 09:27:00,True,5300.0,0.0,002255.XSHE,1761104221.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
198,new,2025-04-21 09:27:00,True,1600.0,0.0,002261.XSHE,1761104222.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
199,held,2025-04-22 13:00:00,False,2100.0,2100.0,002553.XSHE,1761104223.0,18.73,20.37,long,23.5998,2025-11-05,True
|
||||
200,new,2025-04-23 09:27:00,True,3300.0,0.0,002583.XSHE,1761104225.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
201,new,2025-04-23 09:27:00,True,8200.0,0.0,002479.XSHE,1761104226.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
202,held,2025-04-23 13:00:00,False,5300.0,5300.0,002255.XSHE,1761104227.0,8.98,8.61,long,28.5564,2025-11-05,True
|
||||
203,new,2025-04-24 09:27:00,True,5100.0,0.0,002584.XSHE,1761104228.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
204,held,2025-04-24 13:00:00,False,1600.0,1600.0,002261.XSHE,1761104229.0,27.81,29.05,long,26.6976,2025-11-05,True
|
||||
205,held,2025-04-24 13:00:00,False,8200.0,8200.0,002479.XSHE,1761104230.0,5.37,5.3,long,26.4204,2025-11-05,True
|
||||
206,new,2025-04-25 09:27:00,True,4600.0,0.0,002255.XSHE,1761104231.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
207,new,2025-04-25 09:27:00,True,6700.0,0.0,002697.XSHE,1761104232.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
208,held,2025-04-25 13:00:00,False,3300.0,3300.0,002583.XSHE,1761104233.0,11.79,12.71,long,23.3442,2025-11-05,True
|
||||
209,held,2025-04-25 13:00:00,False,5100.0,5100.0,002584.XSHE,1761104234.0,10.85,9.71,long,33.201,2025-11-05,True
|
||||
210,new,2025-04-28 09:27:00,True,4500.0,0.0,002584.XSHE,1761104235.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
211,new,2025-04-28 09:27:00,True,2800.0,0.0,002915.XSHE,1761104236.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
212,held,2025-04-28 13:00:00,False,4600.0,4600.0,002255.XSHE,1761104237.0,8.95,9.68,long,24.702,2025-11-05,True
|
||||
213,held,2025-04-28 13:00:00,False,6700.0,6700.0,002697.XSHE,1761104238.0,5.94,6.31,long,23.8788,2025-11-05,True
|
||||
214,new,2025-04-29 09:27:00,True,7100.0,0.0,002627.XSHE,1761104239.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
215,new,2025-04-29 09:27:00,True,13400.0,0.0,002418.XSHE,1761104240.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
216,held,2025-04-29 13:00:00,False,4500.0,4500.0,002584.XSHE,1761104241.0,9.1,10.22,long,24.57,2025-11-05,True
|
||||
217,new,2025-04-30 09:27:00,True,6400.0,0.0,002354.XSHE,1761104242.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
218,held,2025-04-30 13:00:00,False,7100.0,7100.0,002627.XSHE,1761104243.0,5.47,5.83,long,23.302200000000003,2025-11-05,True
|
||||
219,held,2025-04-30 13:00:00,False,13400.0,13400.0,002418.XSHE,1761104244.0,3.27,3.05,long,26.2908,2025-11-05,True
|
||||
220,new,2025-05-06 09:27:00,True,7300.0,0.0,002587.XSHE,1761104245.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
221,new,2025-05-06 09:27:00,True,4300.0,0.0,002852.XSHE,1761104246.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
222,held,2025-05-06 13:00:00,False,2800.0,2800.0,002915.XSHE,1761104247.0,21.0,16.8,long,35.28,2025-11-05,True
|
||||
223,held,2025-05-06 13:00:00,False,6400.0,6400.0,002354.XSHE,1761104248.0,6.65,6.57,long,25.536,2025-11-05,True
|
||||
224,held,2025-06-20 13:00:00,False,2600.0,2600.0,002513.XSHE,1761187408.0,4.98,5.5,long,7.7688000000000015,2025-11-05,True
|
||||
225,held,2025-06-20 14:55:00,False,1800.0,1800.0,002366.XSHE,1761187409.0,7.54,8.06,long,8.1432,2025-11-05,True
|
||||
226,new,2025-06-23 09:27:00,True,1500.0,0.0,002343.XSHE,1761187410.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
227,new,2025-06-23 09:27:00,True,1000.0,0.0,002173.XSHE,1761187411.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
228,new,2025-06-23 09:27:00,True,1000.0,0.0,002805.XSHE,1761187412.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
229,held,2025-06-23 13:00:00,False,1700.0,1700.0,002235.XSHE,1761187413.0,9.54,8.210000000000003,long,9.7308,2025-11-05,True
|
||||
230,new,2025-06-24 09:27:00,True,1600.0,0.0,002579.XSHE,1761187414.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
231,held,2025-06-24 13:00:00,False,1500.0,1500.0,002343.XSHE,1761187415.0,9.35,8.71,long,8.415000000000001,2025-11-05,True
|
||||
232,held,2025-06-24 13:00:00,False,1000.0,1000.0,002173.XSHE,1761187416.0,13.26,12.5,long,7.955999999999999,2025-11-05,True
|
||||
233,held,2025-06-24 13:00:00,False,1000.0,1000.0,002805.XSHE,1761187417.0,14.02,13.26,long,8.411999999999999,2025-11-05,True
|
||||
234,new,2025-06-25 09:27:00,True,800.0,0.0,002104.XSHE,1761187418.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
235,new,2025-06-25 09:27:00,True,700.0,0.0,002213.XSHE,1761187419.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
236,new,2025-06-25 09:27:00,True,500.0,0.0,002657.XSHE,1761187420.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
237,held,2025-06-25 13:00:00,False,1600.0,1600.0,002579.XSHE,1761187421.0,12.02,11.31,long,11.5392,2025-11-05,True
|
||||
238,new,2025-06-26 09:27:00,True,2600.0,0.0,002355.XSHE,1761187422.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
239,held,2025-06-26 13:00:00,False,800.0,800.0,002104.XSHE,1761187423.0,16.56,16.4,long,7.948799999999999,2025-11-05,True
|
||||
240,held,2025-06-26 13:00:00,False,500.0,500.0,002657.XSHE,1761187424.0,29.07,26.8,long,8.721,2025-11-05,True
|
||||
241,new,2025-06-27 09:27:00,True,1200.0,0.0,002537.XSHE,1761187425.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
242,new,2025-06-27 09:27:00,True,200.0,0.0,003009.XSHE,1761187426.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
243,held,2025-06-27 13:00:00,False,2600.0,2600.0,002355.XSHE,1761187427.0,7.89,7.83,long,12.3084,2025-11-05,True
|
||||
244,new,2025-06-30 09:27:00,True,1900.0,0.0,002806.XSHE,1761187428.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
245,held,2025-06-30 13:00:00,False,200.0,200.0,003009.XSHE,1761187429.0,50.01,46.35,long,6.001200000000001,2025-11-05,True
|
||||
246,new,2025-07-01 09:27:00,True,900.0,0.0,002205.XSHE,1761187430.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
247,held,2025-07-01 13:00:00,False,700.0,700.0,002213.XSHE,1761187431.0,20.57,19.43,long,8.6394,2025-11-05,True
|
||||
248,held,2025-07-01 13:00:00,False,1900.0,1900.0,002806.XSHE,1761187432.0,12.84,13.3,long,14.6376,2025-11-05,True
|
||||
249,new,2025-07-02 09:27:00,True,1700.0,0.0,002103.XSHE,1761187433.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
250,new,2025-07-02 09:27:00,True,500.0,0.0,002190.XSHE,1761187434.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
251,held,2025-07-02 13:00:00,False,1200.0,1200.0,002537.XSHE,1761187435.0,10.33,11.12,long,7.437600000000001,2025-11-05,True
|
||||
252,held,2025-07-02 14:55:00,False,900.0,900.0,002205.XSHE,1761187436.0,11.61,11.52,long,6.2694,2025-11-05,True
|
||||
253,new,2025-07-03 09:27:00,True,700.0,0.0,002729.XSHE,1761187437.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
254,new,2025-07-03 09:27:00,True,600.0,0.0,002866.XSHE,1761187438.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
255,held,2025-07-04 13:00:00,False,1700.0,1700.0,002103.XSHE,1761187439.0,10.78,11.33,long,10.9956,2025-11-05,True
|
||||
256,held,2025-07-04 13:00:00,False,500.0,500.0,002190.XSHE,1761187440.0,36.65,38.6,long,10.995,2025-11-05,True
|
||||
257,held,2025-07-04 13:00:00,False,700.0,700.0,002729.XSHE,1761187441.0,15.67,15.21,long,6.5814,2025-11-05,True
|
||||
258,held,2025-07-04 13:00:00,False,600.0,600.0,002866.XSHE,1761187442.0,20.06,19.16,long,7.2216,2025-11-05,True
|
||||
259,new,2025-07-07 09:27:00,True,900.0,0.0,002579.XSHE,1761187443.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
260,new,2025-07-07 09:27:00,True,3400.0,0.0,002263.XSHE,1761187444.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
261,new,2025-07-07 09:27:00,True,2500.0,0.0,002413.XSHE,1761187445.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
262,new,2025-07-07 09:27:00,True,1100.0,0.0,002093.XSHE,1761187446.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
263,held,2025-07-08 13:00:00,False,900.0,900.0,002579.XSHE,1761187447.0,15.61,15.54,long,8.4294,2025-11-05,True
|
||||
264,held,2025-07-08 13:00:00,False,2500.0,2500.0,002413.XSHE,1761187448.0,5.91,5.84,long,8.865,2025-11-05,True
|
||||
265,held,2025-07-08 13:00:00,False,1100.0,1100.0,002093.XSHE,1761187449.0,13.68,13.31,long,9.0288,2025-11-05,True
|
||||
266,new,2025-07-09 09:27:00,True,2600.0,0.0,002562.XSHE,1761187450.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
267,new,2025-07-09 09:27:00,True,1600.0,0.0,002094.XSHE,1761187451.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
268,new,2025-07-09 09:27:00,True,3200.0,0.0,002721.XSHE,1761187452.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
269,held,2025-07-09 13:00:00,False,3400.0,3400.0,002263.XSHE,1761187453.0,4.73,4.38,long,9.6492,2025-11-05,True
|
||||
270,new,2025-07-10 09:27:00,True,3800.0,0.0,002263.XSHE,1761187454.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
271,held,2025-07-10 13:00:00,False,2600.0,2600.0,002562.XSHE,1761187455.0,6.45,5.82,long,10.062,2025-11-05,True
|
||||
272,held,2025-07-10 13:00:00,False,1600.0,1600.0,002094.XSHE,1761187456.0,9.76,9.49,long,9.3696,2025-11-05,True
|
||||
273,held,2025-07-10 13:00:00,False,3200.0,3200.0,002721.XSHE,1761187457.0,4.86,4.63,long,9.3312,2025-11-05,True
|
||||
274,new,2025-07-11 09:27:00,True,2200.0,0.0,002520.XSHE,1761187458.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
275,held,2025-07-11 13:00:00,False,3800.0,3800.0,002263.XSHE,1761187459.0,4.06,4.52,long,9.2568,2025-11-05,True
|
||||
276,new,2025-07-14 09:27:00,True,400.0,0.0,002657.XSHE,1761187460.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
277,new,2025-07-14 09:27:00,True,700.0,0.0,003005.XSHE,1761187461.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
278,new,2025-07-14 09:27:00,True,5100.0,0.0,002437.XSHE,1761187462.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
279,held,2025-07-14 13:00:00,False,2200.0,2200.0,002520.XSHE,1761187463.0,7.27,6.99,long,9.5964,2025-11-05,True
|
||||
280,new,2025-07-15 09:27:00,True,2800.0,0.0,002279.XSHE,1761187464.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
281,held,2025-07-16 13:00:00,False,700.0,700.0,003005.XSHE,1761187465.0,21.29,21.21,long,8.9418,2025-11-05,True
|
||||
282,held,2025-07-16 13:00:00,False,5100.0,5100.0,002437.XSHE,1761187466.0,3.14,3.13,long,9.6084,2025-11-05,True
|
||||
283,held,2025-07-16 13:00:00,False,2800.0,2800.0,002279.XSHE,1761187467.0,7.06,7.04,long,11.8608,2025-11-05,True
|
||||
284,new,2025-07-17 09:27:00,True,1200.0,0.0,002725.XSHE,1761187468.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
285,new,2025-07-17 09:27:00,True,4500.0,0.0,002131.XSHE,1761187469.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
286,new,2025-07-17 09:27:00,True,2300.0,0.0,002161.XSHE,1761187470.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
287,held,2025-07-18 13:00:00,False,1200.0,1200.0,002725.XSHE,1761187471.0,13.98,13.88,long,10.0656,2025-11-05,True
|
||||
288,held,2025-07-18 14:55:00,False,400.0,400.0,002657.XSHE,1761187472.0,30.47,32.91,long,7.3128,2025-11-05,True
|
||||
289,new,2025-07-21 09:27:00,True,700.0,0.0,002229.XSHE,1761187473.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
290,new,2025-07-21 09:27:00,True,1300.0,0.0,002394.XSHE,1761187474.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
291,new,2025-07-22 09:27:00,True,1500.0,0.0,002167.XSHE,1761187476.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
292,held,2025-07-22 14:55:00,False,1300.0,1300.0,002394.XSHE,1761187477.0,10.17,10.57,long,7.9326,2025-11-05,True
|
||||
293,new,2025-07-23 09:27:00,True,1000.0,0.0,002809.XSHE,1761187478.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
294,held,2025-07-23 13:00:00,False,700.0,700.0,002229.XSHE,1761187479.0,18.77,19.579999999999995,long,7.883400000000001,2025-11-05,True
|
||||
295,held,2025-07-23 13:00:00,False,1500.0,1500.0,002167.XSHE,1761187480.0,13.08,12.7,long,11.772,2025-11-05,True
|
||||
296,new,2025-07-24 09:27:00,True,1300.0,0.0,002205.XSHE,1761187481.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
297,held,2025-07-24 13:00:00,False,2300.0,2300.0,002161.XSHE,1761187482.0,7.16,7.13,long,9.8808,2025-11-05,True
|
||||
298,new,2025-07-25 09:27:00,True,1300.0,0.0,002639.XSHE,1761187483.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
299,new,2025-07-25 09:27:00,True,900.0,0.0,002771.XSHE,1761187484.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
300,held,2025-07-25 13:00:00,False,1000.0,1000.0,002809.XSHE,1761187485.0,12.91,13.85,long,7.746,2025-11-05,True
|
||||
301,held,2025-07-25 13:00:00,False,1300.0,1300.0,002205.XSHE,1761187486.0,13.37,12.72,long,10.4286,2025-11-05,True
|
||||
302,new,2025-07-28 09:27:00,True,3500.0,0.0,002596.XSHE,1761187487.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
303,new,2025-07-28 09:27:00,True,900.0,0.0,002240.XSHE,1761187488.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
304,held,2025-07-28 13:00:00,False,900.0,900.0,002771.XSHE,1761187489.0,17.86,17.84,long,9.6444,2025-11-05,True
|
||||
305,new,2025-07-29 09:27:00,True,2300.0,0.0,002298.XSHE,1761187490.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
306,held,2025-07-29 13:00:00,False,1300.0,1300.0,002639.XSHE,1761187491.0,11.01,11.85,long,8.5878,2025-11-05,True
|
||||
307,held,2025-07-29 13:00:00,False,3500.0,3500.0,002596.XSHE,1761187492.0,4.09,4.46,long,8.589,2025-11-05,True
|
||||
308,held,2025-07-29 13:00:00,False,900.0,900.0,002240.XSHE,1761187493.0,16.46,16.219999999999995,long,8.8884,2025-11-05,True
|
||||
309,new,2025-07-30 09:27:00,True,1500.0,0.0,002278.XSHE,1761187495.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
310,new,2025-07-30 09:27:00,True,1000.0,0.0,002205.XSHE,1761187496.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
311,held,2025-07-31 13:00:00,False,1500.0,1500.0,002278.XSHE,1761187498.0,9.9,9.67,long,8.91,2025-11-05,True
|
||||
312,held,2025-07-31 14:55:00,False,1000.0,1000.0,002205.XSHE,1761187499.0,13.79,14.2,long,8.274000000000001,2025-11-05,True
|
||||
313,new,2025-08-01 09:27:00,True,1800.0,0.0,002570.XSHE,1761187500.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
314,new,2025-08-01 09:27:00,True,1200.0,0.0,002905.XSHE,1761187501.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
315,new,2025-08-01 09:27:00,True,1600.0,0.0,002564.XSHE,1761187502.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
316,held,2025-08-01 13:00:00,False,2300.0,2300.0,002298.XSHE,1761187503.0,7.23,7.51,long,9.9774,2025-11-05,True
|
||||
317,new,2025-08-04 09:27:00,True,1500.0,0.0,002272.XSHE,1761187504.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
318,held,2025-08-04 14:55:00,False,1800.0,1800.0,002570.XSHE,1761187505.0,7.39,7.37,long,7.981199999999999,2025-11-05,True
|
||||
319,new,2025-08-05 09:27:00,True,1700.0,0.0,002370.XSHE,1761187506.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
320,held,2025-08-05 13:00:00,False,1200.0,1200.0,002905.XSHE,1761187507.0,9.64,10.66,long,6.940799999999999,2025-11-05,True
|
||||
321,held,2025-08-05 13:00:00,False,1600.0,1600.0,002564.XSHE,1761187508.0,8.54,8.49,long,8.1984,2025-11-05,True
|
||||
322,held,2025-08-05 13:00:00,False,1500.0,1500.0,002272.XSHE,1761187509.0,12.85,12.25,long,11.565,2025-11-05,True
|
||||
323,new,2025-08-06 09:27:00,True,300.0,0.0,002977.XSHE,1761187510.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
324,new,2025-08-06 09:27:00,True,300.0,0.0,002265.XSHE,1761187511.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
325,new,2025-08-06 09:27:00,True,1100.0,0.0,002651.XSHE,1761187512.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
326,held,2025-08-07 13:00:00,False,1700.0,1700.0,002370.XSHE,1761187513.0,6.74,7.71,long,6.8748000000000005,2025-11-05,True
|
||||
327,held,2025-08-07 13:00:00,False,300.0,300.0,002977.XSHE,1761187514.0,41.36,41.12,long,7.4448,2025-11-05,True
|
||||
328,held,2025-08-07 13:00:00,False,300.0,300.0,002265.XSHE,1761187515.0,43.57,42.02,long,7.8426,2025-11-05,True
|
||||
329,held,2025-08-07 13:00:00,False,1100.0,1100.0,002651.XSHE,1761187516.0,14.25,13.42,long,9.405,2025-11-05,True
|
||||
330,new,2025-08-08 09:27:00,True,700.0,0.0,002536.XSHE,1761187517.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
331,new,2025-08-08 09:27:00,True,1500.0,0.0,002331.XSHE,1761187519.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
332,new,2025-08-08 09:27:00,True,900.0,0.0,002885.XSHE,1761187520.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
333,held,2025-08-11 13:00:00,False,700.0,700.0,002536.XSHE,1761187521.0,21.87,20.0,long,9.1854,2025-11-05,True
|
||||
334,held,2025-08-11 13:00:00,False,900.0,900.0,002885.XSHE,1761187523.0,16.2,15.69,long,8.748,2025-11-05,True
|
||||
335,new,2025-08-12 09:27:00,True,1300.0,0.0,002706.XSHE,1761187524.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
336,new,2025-08-12 09:27:00,True,300.0,0.0,002837.XSHE,1761187525.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
337,new,2025-08-12 09:27:00,True,1300.0,0.0,002674.XSHE,1761187526.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
338,held,2025-08-12 13:00:00,False,1500.0,1500.0,002331.XSHE,1761187527.0,9.26,9.0,long,8.334,2025-11-05,True
|
||||
339,new,2025-08-13 09:27:00,True,500.0,0.0,002915.XSHE,1761187528.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
340,held,2025-08-13 13:00:00,False,300.0,300.0,002837.XSHE,1761187529.0,56.55,50.01,long,10.179,2025-11-05,True
|
||||
341,held,2025-08-13 13:00:00,False,1300.0,1300.0,002674.XSHE,1761187530.0,11.67,11.61,long,9.1026,2025-11-05,True
|
||||
342,new,2025-08-14 09:27:00,True,2900.0,0.0,002307.XSHE,1761187531.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
343,new,2025-08-14 09:27:00,True,4800.0,0.0,002622.XSHE,1761187532.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
344,held,2025-08-14 13:00:00,False,500.0,500.0,002915.XSHE,1761187533.0,29.7,28.42,long,8.91,2025-11-05,True
|
||||
345,held,2025-08-14 14:55:00,False,1300.0,1300.0,002706.XSHE,1761187534.0,10.5,11.34,long,8.19,2025-11-05,True
|
||||
346,new,2025-08-15 09:27:00,True,1100.0,0.0,002148.XSHE,1761187535.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
347,new,2025-08-15 09:27:00,True,1500.0,0.0,002298.XSHE,1761187536.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
348,held,2025-08-15 13:00:00,False,4800.0,4800.0,002622.XSHE,1761187537.0,3.69,3.5,long,10.6272,2025-11-05,True
|
||||
349,new,2025-08-18 09:27:00,True,700.0,0.0,002173.XSHE,1761187538.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
350,held,2025-08-18 13:00:00,False,2900.0,2900.0,002307.XSHE,1761187539.0,4.9,5.400000000000001,long,8.526000000000002,2025-11-05,True
|
||||
351,held,2025-08-18 13:00:00,False,1100.0,1100.0,002148.XSHE,1761187540.0,14.0,12.45,long,9.24,2025-11-05,True
|
||||
352,held,2025-08-18 14:55:00,False,1500.0,1500.0,002298.XSHE,1761187541.0,11.27,9.33,long,10.143,2025-11-05,True
|
||||
353,new,2025-08-19 09:27:00,True,1100.0,0.0,002598.XSHE,1761187542.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
354,new,2025-08-19 09:27:00,True,3100.0,0.0,002551.XSHE,1761187543.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
355,new,2025-08-19 09:27:00,True,2200.0,0.0,002909.XSHE,1761187544.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
356,held,2025-08-20 13:00:00,False,700.0,700.0,002173.XSHE,1761187545.0,22.83,26.1,long,9.5886,2025-11-05,True
|
||||
357,held,2025-08-20 13:00:00,False,2200.0,2200.0,002909.XSHE,1761187546.0,7.0,6.95,long,9.24,2025-11-05,True
|
||||
358,new,2025-08-21 09:27:00,True,1400.0,0.0,002298.XSHE,1761187548.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
359,held,2025-08-21 13:00:00,False,3100.0,3100.0,002551.XSHE,1761187549.0,4.7,5.01,long,8.742,2025-11-05,True
|
||||
360,new,2025-08-22 09:27:00,True,500.0,0.0,002553.XSHE,1761187550.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
361,held,2025-08-22 13:00:00,False,1100.0,1100.0,002598.XSHE,1761187551.0,12.57,13.0,long,8.2962,2025-11-05,True
|
||||
362,held,2025-08-22 14:55:00,False,1400.0,1400.0,002298.XSHE,1761187552.0,10.9,11.71,long,9.156,2025-11-05,True
|
||||
363,new,2025-08-25 09:27:00,True,2500.0,0.0,002640.XSHE,1761187553.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
364,new,2025-08-25 09:27:00,True,1300.0,0.0,002278.XSHE,1761187554.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
365,held,2025-08-25 13:00:00,False,500.0,500.0,002553.XSHE,1761187556.0,34.38,31.82,long,10.314,2025-11-05,True
|
||||
366,new,2025-08-26 09:27:00,True,1700.0,0.0,002177.XSHE,1761187557.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
367,held,2025-08-26 13:00:00,False,2500.0,2500.0,002640.XSHE,1761187559.0,6.0,5.980000000000001,long,9.0,2025-11-05,True
|
||||
368,new,2025-08-27 09:27:00,True,300.0,0.0,002190.XSHE,1761187560.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
369,held,2025-08-27 13:00:00,False,1300.0,1300.0,002278.XSHE,1761187561.0,11.15,11.14,long,8.697000000000001,2025-11-05,True
|
||||
370,held,2025-08-27 14:55:00,False,1700.0,1700.0,002177.XSHE,1761187563.0,8.42,9.58,long,8.5884,2025-11-05,True
|
||||
371,new,2025-08-28 09:27:00,True,1200.0,0.0,002298.XSHE,1761187564.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
372,new,2025-08-28 09:27:00,True,900.0,0.0,002953.XSHE,1761187565.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
373,held,2025-08-29 13:00:00,False,300.0,300.0,002190.XSHE,1761187567.0,48.14,55.0,long,8.6652,2025-11-05,True
|
||||
374,held,2025-08-29 13:00:00,False,1200.0,1200.0,002298.XSHE,1761187568.0,11.33,11.61,long,8.1576,2025-11-05,True
|
||||
375,new,2025-09-01 09:27:00,True,1500.0,0.0,002165.XSHE,1761187570.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
376,new,2025-09-01 09:27:00,True,1200.0,0.0,002842.XSHE,1761187571.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
377,new,2025-09-01 09:27:00,True,800.0,0.0,002815.XSHE,1761187572.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
378,held,2025-09-01 13:00:00,False,900.0,900.0,002953.XSHE,1761187573.0,15.55,15.02,long,8.397,2025-11-05,True
|
||||
379,new,2025-09-02 09:27:00,True,1400.0,0.0,002530.XSHE,1761187574.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
380,held,2025-09-02 13:00:00,False,1500.0,1500.0,002165.XSHE,1761187575.0,10.09,9.93,long,9.081,2025-11-05,True
|
||||
381,held,2025-09-02 13:00:00,False,1200.0,1200.0,002842.XSHE,1761187576.0,12.54,12.45,long,9.0288,2025-11-05,True
|
||||
382,held,2025-09-02 13:00:00,False,800.0,800.0,002815.XSHE,1761187577.0,16.15,17.22,long,7.751999999999999,2025-11-05,True
|
||||
383,new,2025-09-03 09:27:00,True,2500.0,0.0,002131.XSHE,1761187578.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
384,new,2025-09-03 09:27:00,True,1500.0,0.0,002642.XSHE,1761187579.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
385,new,2025-09-03 09:27:00,True,300.0,0.0,002074.XSHE,1761187580.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
386,held,2025-09-03 14:55:00,False,1400.0,1400.0,002530.XSHE,1761187581.0,10.86,11.6,long,9.1224,2025-11-05,True
|
||||
387,new,2025-09-04 09:27:00,True,2000.0,0.0,002031.XSHE,1761187582.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
388,held,2025-09-04 13:00:00,False,2500.0,2500.0,002131.XSHE,1761187583.0,5.35,5.86,long,8.025,2025-11-05,True
|
||||
389,held,2025-09-04 13:00:00,False,1500.0,1500.0,002642.XSHE,1761187584.0,9.02,9.4,long,8.118,2025-11-05,True
|
||||
390,held,2025-09-04 13:00:00,False,300.0,300.0,002074.XSHE,1761187585.0,41.9,40.33,long,7.542,2025-11-05,True
|
||||
391,new,2025-09-05 09:27:00,True,1900.0,0.0,002514.XSHE,1761187586.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
392,new,2025-09-05 09:27:00,True,4700.0,0.0,002021.XSHE,1761187587.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
393,held,2025-09-05 13:00:00,False,2000.0,2000.0,002031.XSHE,1761187588.0,9.02,8.8,long,10.824,2025-11-05,True
|
||||
394,new,2025-09-08 09:27:00,True,3200.0,0.0,002067.XSHE,1761187589.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
395,new,2025-09-08 09:27:00,True,2500.0,0.0,002251.XSHE,1761187590.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
396,held,2025-09-08 13:00:00,False,1900.0,1900.0,002514.XSHE,1761187591.0,7.39,6.91,long,8.4246,2025-11-05,True
|
||||
397,new,2025-09-09 09:27:00,True,900.0,0.0,002858.XSHE,1761187592.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
398,held,2025-09-09 13:00:00,False,3200.0,3200.0,002067.XSHE,1761187593.0,5.34,5.04,long,10.2528,2025-11-05,True
|
||||
399,held,2025-09-09 13:00:00,False,2500.0,2500.0,002251.XSHE,1761187594.0,6.6,6.39,long,9.9,2025-11-05,True
|
||||
400,new,2025-09-10 09:27:00,True,1300.0,0.0,002115.XSHE,1761187595.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
401,new,2025-09-10 09:27:00,True,900.0,0.0,002407.XSHE,1761187596.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
402,held,2025-09-10 13:00:00,False,4700.0,4700.0,002021.XSHE,1761187597.0,2.69,2.72,long,7.585800000000001,2025-11-05,True
|
||||
403,held,2025-09-10 13:00:00,False,900.0,900.0,002858.XSHE,1761187598.0,15.94,15.44,long,8.6076,2025-11-05,True
|
||||
404,new,2025-09-11 09:27:00,True,2100.0,0.0,002547.XSHE,1761187600.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
405,held,2025-09-11 13:00:00,False,1300.0,1300.0,002115.XSHE,1761187601.0,14.25,12.289999999999996,long,11.115000000000002,2025-11-05,True
|
||||
406,held,2025-09-11 13:00:00,False,900.0,900.0,002407.XSHE,1761187602.0,17.67,17.010000000000005,long,9.541800000000002,2025-11-05,True
|
||||
407,new,2025-09-12 09:27:00,True,1200.0,0.0,002115.XSHE,1761187603.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
408,new,2025-09-12 09:27:00,True,2900.0,0.0,002131.XSHE,1761187604.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
409,held,2025-09-12 13:00:00,False,2100.0,2100.0,002547.XSHE,1761187606.0,6.58,6.5,long,8.2908,2025-11-05,True
|
||||
410,new,2025-09-15 09:27:00,True,500.0,0.0,002130.XSHE,1761187607.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
411,new,2025-09-15 09:27:00,True,700.0,0.0,002527.XSHE,1761187608.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
412,held,2025-09-15 14:55:00,False,1200.0,1200.0,002115.XSHE,1761187609.0,12.71,14.09,long,9.1512,2025-11-05,True
|
||||
413,new,2025-09-16 09:27:00,True,1800.0,0.0,002772.XSHE,1761187610.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
414,held,2025-09-16 13:00:00,False,2900.0,2900.0,002131.XSHE,1761187611.0,6.32,6.09,long,10.9968,2025-11-05,True
|
||||
415,held,2025-09-16 13:00:00,False,500.0,500.0,002130.XSHE,1761187612.0,27.25,26.61,long,8.175,2025-11-05,True
|
||||
416,held,2025-09-16 13:00:00,False,700.0,700.0,002527.XSHE,1761187613.0,20.93,19.98,long,8.7906,2025-11-05,True
|
||||
417,new,2025-09-17 09:27:00,True,2900.0,0.0,002471.XSHE,1761187614.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
418,new,2025-09-17 09:27:00,True,3200.0,0.0,002418.XSHE,1761187615.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
419,new,2025-09-17 09:27:00,True,1800.0,0.0,002055.XSHE,1761187616.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
420,held,2025-09-17 13:00:00,False,1800.0,1800.0,002772.XSHE,1761187617.0,10.28,9.95,long,11.1024,2025-11-05,True
|
||||
421,new,2025-09-18 09:27:00,True,1100.0,0.0,002759.XSHE,1761187618.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
422,held,2025-09-18 13:00:00,False,3200.0,3200.0,002418.XSHE,1761187619.0,4.88,4.74,long,9.3696,2025-11-05,True
|
||||
423,held,2025-09-18 13:00:00,False,1800.0,1800.0,002055.XSHE,1761187620.0,8.65,8.41,long,9.342,2025-11-05,True
|
||||
424,new,2025-09-19 09:27:00,True,1300.0,0.0,002148.XSHE,1761187621.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
425,new,2025-09-19 09:27:00,True,2200.0,0.0,002562.XSHE,1761187622.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
426,held,2025-09-19 13:00:00,False,1100.0,1100.0,002759.XSHE,1761187623.0,16.19,17.66,long,10.6854,2025-11-05,True
|
||||
427,held,2025-09-19 14:55:00,False,2900.0,2900.0,002471.XSHE,1761187624.0,4.94,5.190000000000001,long,8.595600000000001,2025-11-05,True
|
||||
428,new,2025-09-22 09:27:00,True,800.0,0.0,002272.XSHE,1761187625.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
429,new,2025-09-22 09:27:00,True,300.0,0.0,002768.XSHE,1761187626.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
430,held,2025-09-22 13:00:00,False,1300.0,1300.0,002148.XSHE,1761187627.0,10.79,11.77,long,8.4162,2025-11-05,True
|
||||
431,held,2025-09-22 13:00:00,False,2200.0,2200.0,002562.XSHE,1761187628.0,7.19,7.08,long,9.4908,2025-11-05,True
|
||||
432,new,2025-09-23 09:27:00,True,1000.0,0.0,002097.XSHE,1761187629.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
433,new,2025-09-23 09:27:00,True,1800.0,0.0,002584.XSHE,1761187630.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
434,held,2025-09-23 13:00:00,False,800.0,800.0,002272.XSHE,1761187631.0,18.94,17.989999999999995,long,9.091200000000002,2025-11-05,True
|
||||
435,held,2025-09-23 13:00:00,False,300.0,300.0,002768.XSHE,1761187632.0,45.49,47.36,long,8.1882,2025-11-05,True
|
||||
436,new,2025-09-24 09:27:00,True,1300.0,0.0,002298.XSHE,1761187633.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
437,new,2025-09-24 09:27:00,True,900.0,0.0,002849.XSHE,1761187634.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
438,held,2025-09-24 13:00:00,False,1000.0,1000.0,002097.XSHE,1761187635.0,14.74,16.030000000000005,long,8.844,2025-11-05,True
|
||||
439,held,2025-09-24 13:00:00,False,1800.0,1800.0,002584.XSHE,1761187636.0,9.99,8.98,long,10.7892,2025-11-05,True
|
||||
440,new,2025-09-25 09:27:00,True,600.0,0.0,002549.XSHE,1761187637.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
441,new,2025-09-25 09:27:00,True,1500.0,0.0,002249.XSHE,1761187638.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
442,held,2025-09-25 13:00:00,False,900.0,900.0,002849.XSHE,1761187639.0,15.57,16.010000000000005,long,8.4078,2025-11-05,True
|
||||
443,new,2025-09-26 09:27:00,True,2100.0,0.0,002562.XSHE,1761187640.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
444,held,2025-09-26 13:00:00,False,1300.0,1300.0,002298.XSHE,1761187641.0,13.77,11.18,long,10.7406,2025-11-05,True
|
||||
445,held,2025-09-26 13:00:00,False,1500.0,1500.0,002249.XSHE,1761187642.0,11.79,11.53,long,10.611,2025-11-05,True
|
||||
446,held,2025-09-29 14:55:00,False,600.0,600.0,002549.XSHE,1761187643.0,23.27,25.15,long,8.3772,2025-11-05,True
|
||||
447,new,2025-09-30 09:27:00,True,1100.0,0.0,002765.XSHE,1761187644.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
448,new,2025-09-30 09:27:00,True,1000.0,0.0,002725.XSHE,1761187645.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
449,new,2025-09-30 09:27:00,True,2600.0,0.0,002659.XSHE,1761187646.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
450,held,2025-09-30 13:00:00,False,2100.0,2100.0,002562.XSHE,1761187647.0,7.29,7.6,long,9.1854,2025-11-05,True
|
||||
451,new,2025-10-09 09:27:00,True,2700.0,0.0,002067.XSHE,1761187648.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
452,held,2025-10-09 13:00:00,False,1100.0,1100.0,002765.XSHE,1761187649.0,14.35,14.61,long,9.471,2025-11-05,True
|
||||
453,held,2025-10-09 13:00:00,False,1000.0,1000.0,002725.XSHE,1761187650.0,16.12,15.61,long,9.672,2025-11-05,True
|
||||
454,held,2025-10-09 13:00:00,False,2600.0,2600.0,002659.XSHE,1761187651.0,5.58,6.32,long,8.7048,2025-11-05,True
|
||||
455,new,2025-10-10 09:27:00,True,1100.0,0.0,002298.XSHE,1761187652.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
456,new,2025-10-10 09:27:00,True,800.0,0.0,002045.XSHE,1761187653.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
457,new,2025-10-10 09:27:00,True,700.0,0.0,002150.XSHE,1761187654.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
458,held,2025-10-10 13:00:00,False,2700.0,2700.0,002067.XSHE,1761187655.0,6.56,6.34,long,10.6272,2025-11-05,True
|
||||
459,new,2025-10-13 09:27:00,True,1000.0,0.0,002759.XSHE,1761187656.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
460,held,2025-10-13 13:00:00,False,1100.0,1100.0,002298.XSHE,1761187657.0,13.08,13.05,long,8.6328,2025-11-05,True
|
||||
461,held,2025-10-13 13:00:00,False,800.0,800.0,002045.XSHE,1761187658.0,17.15,18.05,long,8.232,2025-11-05,True
|
||||
462,held,2025-10-13 13:00:00,False,700.0,700.0,002150.XSHE,1761187659.0,18.3,19.95,long,7.686,2025-11-05,True
|
||||
463,new,2025-10-14 09:27:00,True,700.0,0.0,002941.XSHE,1761187660.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
464,new,2025-10-14 09:27:00,True,900.0,0.0,002082.XSHE,1761187661.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
465,held,2025-10-14 13:00:00,False,1000.0,1000.0,002759.XSHE,1761187662.0,23.0,20.85,long,13.8,2025-11-05,True
|
||||
466,new,2025-10-15 09:27:00,True,800.0,0.0,002759.XSHE,1761187663.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
467,new,2025-10-15 09:27:00,True,1100.0,0.0,002645.XSHE,1761187664.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
468,held,2025-10-15 13:00:00,False,700.0,700.0,002941.XSHE,1761187665.0,21.05,19.350000000000005,long,8.841,2025-11-05,True
|
||||
469,held,2025-10-15 13:00:00,False,900.0,900.0,002082.XSHE,1761187666.0,14.83,14.36,long,8.0082,2025-11-05,True
|
||||
470,new,2025-10-16 09:27:00,True,1200.0,0.0,002171.XSHE,1761187667.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
471,new,2025-10-16 09:27:00,True,3300.0,0.0,002084.XSHE,1761187668.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
472,held,2025-10-16 13:00:00,False,800.0,800.0,002759.XSHE,1761187669.0,23.39,22.61,long,11.2272,2025-11-05,True
|
||||
473,held,2025-10-16 13:00:00,False,1100.0,1100.0,002645.XSHE,1761187670.0,16.0,16.92,long,10.56,2025-11-05,True
|
||||
474,new,2025-10-17 09:27:00,True,700.0,0.0,002922.XSHE,1761187671.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
475,new,2025-10-17 09:27:00,True,600.0,0.0,002364.XSHE,1761187672.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
476,held,2025-10-17 13:00:00,False,1200.0,1200.0,002171.XSHE,1761187673.0,11.98,11.55,long,8.6256,2025-11-05,True
|
||||
477,held,2025-10-17 13:00:00,False,3300.0,3300.0,002084.XSHE,1761187674.0,4.19,4.13,long,8.2962,2025-11-05,True
|
||||
478,new,2025-10-20 09:27:00,True,500.0,0.0,002813.XSHE,1761187675.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
479,held,2025-10-20 13:00:00,False,700.0,700.0,002922.XSHE,1761187676.0,22.28,24.43,long,9.3576,2025-11-05,True
|
||||
480,held,2025-10-20 13:00:00,False,600.0,600.0,002364.XSHE,1761187677.0,27.4,30.91,long,9.864,2025-11-05,True
|
||||
481,new,2025-10-21 09:27:00,True,1200.0,0.0,002825.XSHE,1761187678.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
482,new,2025-10-21 09:27:00,True,1200.0,0.0,002208.XSHE,1761187679.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
483,new,2025-10-21 09:27:00,True,500.0,0.0,002017.XSHE,1761187680.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
484,held,2025-10-21 13:00:00,False,500.0,500.0,002813.XSHE,1761187681.0,27.93,27.82,long,8.379,2025-11-05,True
|
||||
485,new,2025-10-22 09:27:00,True,1400.0,0.0,002893.XSHE,1761187682.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
486,held,2025-10-22 13:00:00,False,1200.0,1200.0,002825.XSHE,1761187683.0,11.76,12.380000000000004,long,8.4672,2025-11-05,True
|
||||
487,held,2025-10-22 13:00:00,False,1200.0,1200.0,002208.XSHE,1761187684.0,14.78,12.75,long,10.6416,2025-11-05,True
|
||||
488,held,2025-10-22 13:00:00,False,500.0,500.0,002017.XSHE,1761187685.0,27.64,27.5,long,8.292,2025-11-05,True
|
||||
489,new,2025-10-27 09:27:00,True,800.0,0.0,002054.XSHE,1761528129.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
490,new,2025-10-27 09:27:00,True,200.0,0.0,002912.XSHE,1761528130.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
491,new,2025-10-28 09:27:00,True,1600.0,0.0,002682.XSHE,1761614528.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
492,new,2025-10-28 09:27:00,True,700.0,0.0,002457.XSHE,1761614529.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
493,held,2025-10-28 13:00:00,False,800.0,800.0,002054.XSHE,1761627389.0,8.83,8.32,long,4.532,2025-11-05,True
|
||||
494,new,2025-10-29 09:27:00,True,300.0,0.0,002104.XSHE,1761700928.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
495,held,2025-10-30 13:00:00,False,200.0,200.0,002912.XSHE,1761800190.0,29.59,30.61,long,3.959,2025-11-05,True
|
||||
496,held,2025-10-30 13:00:00,False,1600.0,1600.0,002682.XSHE,1761800191.0,4.86,5.110000000000001,long,4.888,2025-11-05,True
|
||||
497,held,2025-10-30 14:55:00,False,700.0,700.0,002457.XSHE,1761800192.0,11.65,12.1,long,5.0775,2025-11-05,True
|
||||
498,new,2025-10-31 09:27:00,True,1500.0,0.0,002689.XSHE,1761873728.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
499,new,2025-10-31 09:27:00,True,700.0,0.0,002212.XSHE,1761873729.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
500,new,2025-10-31 09:27:00,True,300.0,0.0,002782.XSHE,1761873730.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
501,held,2025-11-03 13:00:00,False,300.0,300.0,002104.XSHE,1762145791.0,21.38,23.21,long,4.207,2025-11-05,True
|
||||
502,held,2025-11-03 13:00:00,False,1500.0,1500.0,002689.XSHE,1762145792.0,5.0,4.8,long,4.75,2025-11-05,True
|
||||
503,held,2025-11-03 13:00:00,False,700.0,700.0,002212.XSHE,1762145793.0,10.94,10.380000000000004,long,4.829000000000001,2025-11-05,True
|
||||
504,held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400.0,9400.0,,1732208241.0,10.5,10.59,long,128.31,2025-11-05,True
|
||||
505,new,2025-11-04 09:27:00,True,2400.0,0.0,002374.XSHE,1762219328.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
506,new,2025-11-04 09:27:00,True,1400.0,0.0,002522.XSHE,1762219329.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
507,new,2025-11-04 09:27:00,True,100.0,0.0,002812.XSHE,1762219330.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
508,held,2025-11-04 13:00:00,False,300.0,300.0,002782.XSHE,1762232192.0,19.6,19.45,long,3.94,2025-11-05,True
|
||||
509,new,2025-11-05 09:27:00,True,1000.0,0.0,002370.XSHE,1762305729.0,0.0,0.0,long,0.0,2025-11-05,True
|
||||
510,held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400.0,9400.0,001.XSHE,1732208241.0,10.5,10.59,long,128.31,2025-11-05,True
|
||||
511,held,2025-11-05 13:00:00,False,2400.0,2400.0,002374.XSHE,1762318589.0,3.31,3.25,long,4.972,2025-11-05,True
|
||||
512,held,2025-11-05 14:55:00,False,1400,1400,002522.XSHE,1762318590,5.35,5.34,long,4.744999999999999,2025-11-05,True
|
||||
|
@@ -0,0 +1,99 @@
|
||||
,状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态
|
||||
0,held,2024-11-01 09:30:00,True,23700,23700,159915.XSHE,1760287367,2.107,2.107,long,14.98077,2025-10-13,True
|
||||
1,held,2024-11-04 09:30:00,False,23700,23700,159915.XSHE,1760287368,2.078,2.107,long,14.774579999999998,2025-10-13,True
|
||||
2,held,2024-11-04 09:30:00,True,8100,8100,518880.XSHG,1760287369,6.018,6.018,long,14.623739999999998,2025-10-13,True
|
||||
3,held,2024-11-12 09:30:00,False,8100,8100,518880.XSHG,1760287370,5.823,6.018,long,14.14989,2025-10-13,True
|
||||
4,held,2024-11-12 09:30:00,True,31000,31000,513100.XSHG,1760287371,1.537,1.537,long,14.294099999999998,2025-10-13,True
|
||||
5,held,2024-11-13 09:30:00,False,31000,31000,513100.XSHG,1760287372,1.528,1.537,long,14.210399999999998,2025-10-13,True
|
||||
6,held,2024-11-13 09:30:00,True,20300,20300,159915.XSHE,1760287373,2.328,2.328,long,14.177519999999998,2025-10-13,True
|
||||
7,held,2024-11-21 09:30:00,False,20300,20300,159915.XSHE,1760287374,2.21,2.328,long,13.458899999999998,2025-10-13,True
|
||||
8,held,2024-11-21 09:30:00,True,1300,1300,002629.XSHE,1760287375,3.33,3.33,long,5.0,2025-10-13,True
|
||||
9,held,2024-11-21 09:30:00,True,600,600,600857.XSHG,1760287378,7.34,7.34,long,5.0,2025-10-13,True
|
||||
10,held,2024-11-21 09:30:00,True,400,400,002205.XSHE,1760287381,9.1,9.1,long,5.0,2025-10-13,True
|
||||
11,held,2024-11-21 09:30:00,True,800,800,000638.XSHE,1760287382,5.45,5.45,long,5.0,2025-10-13,True
|
||||
12,held,2024-11-21 09:30:00,True,800,800,600778.XSHG,1760287383,5.49,5.49,long,5.0,2025-10-13,True
|
||||
13,held,2024-11-21 09:30:00,True,400,400,003003.XSHE,1760287384,9.79,9.79,long,5.0,2025-10-13,True
|
||||
14,held,2024-12-05 14:00:00,False,1300,1300,002629.XSHE,1760287385,3.95,3.33,long,10.135,2025-10-13,True
|
||||
15,held,2024-12-05 14:00:00,True,200,200,002205.XSHE,1760287387,9.42,9.42,long,5.0,2025-10-13,True
|
||||
16,held,2024-12-05 14:00:00,True,300,300,603022.XSHG,1760287388,8.28,8.28,long,5.0,2025-10-13,True
|
||||
17,held,2024-12-13 14:00:00,False,600,600,002205.XSHE,1760287389,10.54,9.206666666666669,long,11.323999999999998,2025-10-13,True
|
||||
18,held,2024-12-13 14:00:00,True,200,200,003003.XSHE,1760287391,10.86,10.86,long,5.0,2025-10-13,True
|
||||
19,held,2024-12-17 14:00:00,False,800,800,600778.XSHG,1760287393,10.71,5.49,long,13.568,2025-10-13,True
|
||||
20,held,2024-12-17 14:00:00,True,300,300,003003.XSHE,1760287395,10.17,10.17,long,5.0,2025-10-13,True
|
||||
21,held,2024-12-17 14:00:00,True,400,400,600883.XSHG,1760287396,7.46,7.46,long,5.0,2025-10-13,True
|
||||
22,held,2024-12-24 14:00:00,False,800,800,000638.XSHE,1760287397,4.87,5.45,long,8.896,2025-10-13,True
|
||||
23,held,2024-12-24 14:00:00,True,100,100,003003.XSHE,1760287400,9.21,9.21,long,5.0,2025-10-13,True
|
||||
24,held,2024-12-25 14:00:00,False,1200,1200,003003.XSHE,1760287401,9.03,10.056666666666665,long,15.836,2025-10-13,True
|
||||
25,held,2024-12-27 14:00:00,False,600,600,600857.XSHG,1760287405,8.26,7.34,long,9.956,2025-10-13,True
|
||||
26,held,2025-01-03 09:30:00,False,800,800,600493.XSHG,1760287409,5.26,5.39,long,9.208,2025-10-13,True
|
||||
27,held,2025-01-03 09:30:00,False,2300,2300,603022.XSHG,1760287410,7.28,7.921304347826087,long,21.7672,2025-10-13,True
|
||||
28,held,2025-01-03 09:30:00,False,2300,2300,600883.XSHG,1760287412,6.52,7.0978260869565215,long,19.996,2025-10-13,True
|
||||
29,held,2025-01-03 09:30:00,True,27800,27800,513100.XSHG,1760287413,1.641,1.641,long,13.68594,2025-10-13,True
|
||||
30,held,2025-01-13 09:30:00,False,27800,27800,513100.XSHG,1760287414,1.611,1.641,long,13.43574,2025-10-13,True
|
||||
31,held,2025-01-13 09:30:00,True,7300,7300,518880.XSHG,1760287415,6.113,6.113,long,13.38747,2025-10-13,True
|
||||
32,held,2025-02-20 09:30:00,False,7300,7300,518880.XSHG,1760287416,6.602,6.113,long,14.45838,2025-10-13,True
|
||||
33,held,2025-02-20 09:30:00,True,22100,22100,159915.XSHE,1760287417,2.182,2.182,long,14.466659999999996,2025-10-13,True
|
||||
34,held,2025-03-11 09:30:00,False,22100,22100,159915.XSHE,1760287418,2.132,2.182,long,14.13516,2025-10-13,True
|
||||
35,held,2025-03-11 09:30:00,True,600,600,600421.XSHG,1760287419,6.99,6.99,long,5.0,2025-10-13,True
|
||||
36,held,2025-03-11 09:30:00,True,800,800,600493.XSHG,1760287420,5.43,5.43,long,5.0,2025-10-13,True
|
||||
37,held,2025-03-11 09:30:00,True,900,900,002188.XSHE,1760287421,4.81,4.81,long,5.0,2025-10-13,True
|
||||
38,held,2025-03-11 09:30:00,True,900,900,000638.XSHE,1760287422,5.19,5.19,long,5.0,2025-10-13,True
|
||||
39,held,2025-03-11 09:30:00,True,800,800,002591.XSHE,1760287423,5.37,5.37,long,5.0,2025-10-13,True
|
||||
40,held,2025-03-11 09:30:00,True,500,500,603022.XSHG,1760287424,8.09,8.09,long,5.0,2025-10-13,True
|
||||
41,held,2025-03-11 09:30:00,True,600,600,600883.XSHG,1760287425,6.94,6.94,long,5.0,2025-10-13,True
|
||||
42,held,2025-03-11 09:30:00,True,1000,1000,600149.XSHG,1760287426,4.36,4.36,long,5.0,2025-10-13,True
|
||||
43,held,2025-03-11 09:30:00,True,500,500,603177.XSHG,1760287427,8.21,8.21,long,5.0,2025-10-13,True
|
||||
44,held,2025-03-11 09:30:00,True,500,500,605567.XSHG,1760287428,8.71,8.71,long,5.0,2025-10-13,True
|
||||
45,held,2025-03-25 14:00:00,False,600,600,600421.XSHG,1760287429,7.36,6.99,long,9.416,2025-10-13,True
|
||||
46,held,2025-03-25 14:00:00,True,600,600,002188.XSHE,1760287430,4.45,4.45,long,5.0,2025-10-13,True
|
||||
47,held,2025-03-25 14:00:00,True,500,500,000638.XSHE,1760287431,4.87,4.87,long,5.0,2025-10-13,True
|
||||
48,held,2025-03-25 14:00:00,True,500,500,600493.XSHG,1760287432,5.3,5.3,long,5.0,2025-10-13,True
|
||||
49,canceled,2025-04-07 14:00:00,False,1400,0,000638.XSHE,1760287435,0.0,5.075714285714286,long,0.0,2025-10-13,True
|
||||
50,held,2025-04-08 14:00:00,False,1300,1300,600493.XSHG,1760287442,4.49,5.38,long,10.837,2025-10-13,True
|
||||
51,held,2025-04-08 14:00:00,False,1500,1500,002188.XSHE,1760287443,3.94,4.666,long,10.91,2025-10-13,True
|
||||
52,held,2025-04-08 14:00:00,False,800,800,002591.XSHE,1760287444,4.3,5.37,long,8.44,2025-10-13,True
|
||||
53,held,2025-04-08 14:00:00,False,500,500,603022.XSHG,1760287445,7.08,8.09,long,8.54,2025-10-13,True
|
||||
54,held,2025-04-08 14:00:00,False,1000,1000,600149.XSHG,1760287446,3.76,4.36,long,8.76,2025-10-13,True
|
||||
55,held,2025-04-08 14:00:00,False,500,500,603177.XSHG,1760287447,6.78,8.21,long,8.39,2025-10-13,True
|
||||
56,held,2025-04-08 14:00:00,True,1900,1900,000638.XSHE,1760287448,4.67,4.67,long,5.0,2025-10-13,True
|
||||
57,held,2025-04-08 14:00:00,True,1000,1000,605567.XSHG,1760287449,8.4,8.4,long,5.0,2025-10-13,True
|
||||
58,held,2025-04-08 14:00:00,True,1300,1300,600883.XSHG,1760287450,6.78,6.78,long,5.0,2025-10-13,True
|
||||
59,held,2025-04-23 09:30:00,False,3300,3300,000638.XSHE,1760287454,3.91,4.842121212121212,long,17.903,2025-10-13,True
|
||||
60,held,2025-04-23 09:30:00,False,1900,1900,600883.XSHG,1760287455,7.44,6.830526315789474,long,19.136000000000003,2025-10-13,True
|
||||
61,held,2025-04-23 09:30:00,False,1500,1500,605567.XSHG,1760287456,9.85,8.503333333333334,long,19.775,2025-10-13,True
|
||||
62,held,2025-04-23 09:30:00,True,5400,5400,518880.XSHG,1760287457,7.769,7.769,long,12.585779999999998,2025-10-13,True
|
||||
63,held,2025-05-13 09:30:00,False,5400,5400,518880.XSHG,1760287458,7.282,7.769,long,11.79684,2025-10-13,True
|
||||
64,held,2025-05-13 09:30:00,True,25800,25800,513100.XSHG,1760287459,1.54,1.54,long,11.9196,2025-10-13,True
|
||||
65,held,2025-05-20 09:30:00,False,25800,25800,513100.XSHG,1760287460,1.563,1.54,long,12.09762,2025-10-13,True
|
||||
66,held,2025-05-20 09:30:00,True,1000,1000,603616.XSHG,1760287461,3.96,3.96,long,5.0,2025-10-13,True
|
||||
67,held,2025-05-20 09:30:00,True,600,600,600493.XSHG,1760287462,5.83,5.83,long,5.0,2025-10-13,True
|
||||
68,held,2025-05-20 09:30:00,True,700,700,002188.XSHE,1760287463,5.25,5.25,long,5.0,2025-10-13,True
|
||||
69,held,2025-05-20 09:30:00,True,700,700,002591.XSHE,1760287464,5.72,5.72,long,5.0,2025-10-13,True
|
||||
70,held,2025-05-20 09:30:00,True,400,400,603177.XSHG,1760287465,8.43,8.43,long,5.0,2025-10-13,True
|
||||
71,held,2025-05-20 09:30:00,True,400,400,603022.XSHG,1760287466,8.89,8.89,long,5.0,2025-10-13,True
|
||||
72,held,2025-05-20 09:30:00,True,400,400,002828.XSHE,1760287467,8.89,8.89,long,5.0,2025-10-13,True
|
||||
73,held,2025-05-20 09:30:00,True,500,500,603316.XSHG,1760287468,6.79,6.79,long,5.0,2025-10-13,True
|
||||
74,held,2025-05-20 09:30:00,True,500,500,600883.XSHG,1760287469,7.85,7.85,long,5.0,2025-10-13,True
|
||||
75,held,2025-05-20 09:30:00,True,800,800,600149.XSHG,1760287470,4.96,4.96,long,5.0,2025-10-13,True
|
||||
76,held,2025-05-23 14:00:00,False,800,800,600149.XSHG,1760287471,5.78,4.96,long,9.624,2025-10-13,True
|
||||
77,held,2025-05-23 14:00:00,True,500,500,002188.XSHE,1760287473,5.15,5.15,long,5.0,2025-10-13,True
|
||||
78,held,2025-05-26 14:00:00,False,600,600,600493.XSHG,1760287475,6.03,5.83,long,8.618,2025-10-13,True
|
||||
79,held,2025-05-26 14:00:00,True,200,200,002188.XSHE,1760287477,5.11,5.11,long,5.0,2025-10-13,True
|
||||
80,held,2025-05-26 14:00:00,True,100,100,600883.XSHG,1760287478,7.65,7.65,long,5.0,2025-10-13,True
|
||||
81,held,2025-06-17 14:00:00,False,400,400,002828.XSHE,1760287479,12.16,8.89,long,9.864,2025-10-13,True
|
||||
82,held,2025-06-17 14:00:00,True,200,200,603022.XSHG,1760287481,8.78,8.78,long,5.0,2025-10-13,True
|
||||
83,held,2025-06-17 14:00:00,True,300,300,603316.XSHG,1760287482,6.78,6.78,long,5.0,2025-10-13,True
|
||||
84,held,2025-06-23 14:00:00,False,1000,1000,603616.XSHG,1760287483,4.38,3.96,long,9.38,2025-10-13,True
|
||||
85,held,2025-06-23 14:00:00,True,200,200,600883.XSHG,1760287484,7.58,7.58,long,5.0,2025-10-13,True
|
||||
86,held,2025-06-23 14:00:00,True,200,200,603316.XSHG,1760287485,6.61,6.61,long,5.0,2025-10-13,True
|
||||
87,held,2025-06-23 14:00:00,True,300,300,002591.XSHE,1760287486,5.64,5.64,long,5.0,2025-10-13,True
|
||||
88,held,2025-06-27 14:00:00,False,600,600,603022.XSHG,1760287487,12.56,8.801333333333334,long,12.536,2025-10-13,True
|
||||
89,held,2025-06-27 14:00:00,True,300,300,600883.XSHG,1760287488,7.83,7.83,long,5.0,2025-10-13,True
|
||||
90,held,2025-06-27 14:00:00,True,400,400,002591.XSHE,1760287489,6.01,6.01,long,5.0,2025-10-13,True
|
||||
91,held,2025-06-27 14:00:00,True,400,400,002188.XSHE,1760287490,5.52,5.52,long,5.0,2025-10-13,True
|
||||
92,held,2025-07-02 09:30:00,False,1800,1800,002188.XSHE,1760287491,5.61,5.266666666666667,long,15.098,2025-10-13,True
|
||||
93,held,2025-07-02 09:30:00,False,1800,1800,002591.XSHE,1760287492,6.04,5.746666666666667,long,15.872,2025-10-13,True
|
||||
94,held,2025-07-02 09:30:00,False,400,400,603177.XSHG,1760287493,9.16,8.43,long,8.664,2025-10-13,True
|
||||
95,held,2025-07-02 09:30:00,False,1200,1200,603316.XSHG,1760287494,10.84,6.734166666666667,long,18.008000000000003,2025-10-13,True
|
||||
96,held,2025-07-02 09:30:00,False,1600,1600,600883.XSHG,1760287495,7.89,7.699375000000001,long,17.624000000000002,2025-10-13,True
|
||||
97,held,2025-07-02 09:30:00,True,24200,24200,159915.XSHE,1760287496,2.126,2.126,long,15.434759999999997,2025-10-13,True
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,5 @@
|
||||
,状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态,证券代码
|
||||
0,new,2025-11-06 09:27:00,True,900,0,002512.XSHE,1762390693,0.0,0.0,long,0.0,2025-11-06,True,002512
|
||||
1,new,2025-11-06 09:27:00,True,300,0,002248.XSHE,1762390694,0.0,0.0,long,0.0,2025-11-06,True,002248
|
||||
2,held,2025-11-06 09:46:00,False,5300,5300,601988.XSHG,1762392499,5.68,5.74,long,20.052,2025-11-06,True,601988.XSHG
|
||||
3,held,2025-11-06 09:46:00,True,3700,3700,601288.XSHG,1762392500,8.13,8.13,long,5.0,2025-11-06,True,601288.XSHG
|
||||
|
@@ -0,0 +1,4 @@
|
||||
,状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态,证券代码
|
||||
0,held,2025-11-05 13:00:00,False,600,600,002248.XSHE,1762318734,13.24,12.69,long,4.972,2025-11-05,True,002248
|
||||
1,held,2025-11-05 13:00:00,False,2200,2200,002374.XSHE,1762318735,3.31,3.25,long,4.641,2025-11-05,True,002374
|
||||
2,held,2025-11-05 14:55:00,False,1300,1300,002522.XSHE,1762318736,5.35,5.34,long,4.477499999999999,2025-11-05,True,002522
|
||||
|
@@ -0,0 +1,4 @@
|
||||
,状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态,证券代码
|
||||
0,new,2025-11-05 09:27:00,True,1000,0,002370.XSHE,1762305729,0.0,0.0,long,0.0,2025-11-05,True,002370
|
||||
1,held,2025-11-05 13:00:00,False,2400,2400,002374.XSHE,1762318589,3.31,3.25,long,4.972,2025-11-05,True,002374
|
||||
2,held,2025-11-05 14:55:00,False,1400,1400,002522.XSHE,1762318590,5.35,5.34,long,4.744999999999999,2025-11-05,True,002522
|
||||
|
@@ -0,0 +1,99 @@
|
||||
,状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态,证券代码
|
||||
0,held,2024-11-01 09:30:00,True,23700,23700,159915.XSHE,1760287367,2.107,2.107,long,14.98077,2025-10-13,True,159915
|
||||
1,held,2024-11-04 09:30:00,False,23700,23700,159915.XSHE,1760287368,2.078,2.107,long,14.774579999999998,2025-10-13,True,159915
|
||||
2,held,2024-11-04 09:30:00,True,8100,8100,518880.XSHG,1760287369,6.018,6.018,long,14.623739999999998,2025-10-13,True,518880.XSHG
|
||||
3,held,2024-11-12 09:30:00,False,8100,8100,518880.XSHG,1760287370,5.823,6.018,long,14.14989,2025-10-13,True,518880.XSHG
|
||||
4,held,2024-11-12 09:30:00,True,31000,31000,513100.XSHG,1760287371,1.537,1.537,long,14.294099999999998,2025-10-13,True,513100.XSHG
|
||||
5,held,2024-11-13 09:30:00,False,31000,31000,513100.XSHG,1760287372,1.528,1.537,long,14.210399999999998,2025-10-13,True,513100.XSHG
|
||||
6,held,2024-11-13 09:30:00,True,20300,20300,159915.XSHE,1760287373,2.328,2.328,long,14.177519999999998,2025-10-13,True,159915
|
||||
7,held,2024-11-21 09:30:00,False,20300,20300,159915.XSHE,1760287374,2.21,2.328,long,13.458899999999998,2025-10-13,True,159915
|
||||
8,held,2024-11-21 09:30:00,True,1300,1300,002629.XSHE,1760287375,3.33,3.33,long,5.0,2025-10-13,True,002629
|
||||
9,held,2024-11-21 09:30:00,True,600,600,600857.XSHG,1760287378,7.34,7.34,long,5.0,2025-10-13,True,600857.XSHG
|
||||
10,held,2024-11-21 09:30:00,True,400,400,002205.XSHE,1760287381,9.1,9.1,long,5.0,2025-10-13,True,002205
|
||||
11,held,2024-11-21 09:30:00,True,800,800,000638.XSHE,1760287382,5.45,5.45,long,5.0,2025-10-13,True,000638
|
||||
12,held,2024-11-21 09:30:00,True,800,800,600778.XSHG,1760287383,5.49,5.49,long,5.0,2025-10-13,True,600778.XSHG
|
||||
13,held,2024-11-21 09:30:00,True,400,400,003003.XSHE,1760287384,9.79,9.79,long,5.0,2025-10-13,True,003003
|
||||
14,held,2024-12-05 14:00:00,False,1300,1300,002629.XSHE,1760287385,3.95,3.33,long,10.135,2025-10-13,True,002629
|
||||
15,held,2024-12-05 14:00:00,True,200,200,002205.XSHE,1760287387,9.42,9.42,long,5.0,2025-10-13,True,002205
|
||||
16,held,2024-12-05 14:00:00,True,300,300,603022.XSHG,1760287388,8.28,8.28,long,5.0,2025-10-13,True,603022.XSHG
|
||||
17,held,2024-12-13 14:00:00,False,600,600,002205.XSHE,1760287389,10.54,9.206666666666669,long,11.323999999999998,2025-10-13,True,002205
|
||||
18,held,2024-12-13 14:00:00,True,200,200,003003.XSHE,1760287391,10.86,10.86,long,5.0,2025-10-13,True,003003
|
||||
19,held,2024-12-17 14:00:00,False,800,800,600778.XSHG,1760287393,10.71,5.49,long,13.568,2025-10-13,True,600778.XSHG
|
||||
20,held,2024-12-17 14:00:00,True,300,300,003003.XSHE,1760287395,10.17,10.17,long,5.0,2025-10-13,True,003003
|
||||
21,held,2024-12-17 14:00:00,True,400,400,600883.XSHG,1760287396,7.46,7.46,long,5.0,2025-10-13,True,600883.XSHG
|
||||
22,held,2024-12-24 14:00:00,False,800,800,000638.XSHE,1760287397,4.87,5.45,long,8.896,2025-10-13,True,000638
|
||||
23,held,2024-12-24 14:00:00,True,100,100,003003.XSHE,1760287400,9.21,9.21,long,5.0,2025-10-13,True,003003
|
||||
24,held,2024-12-25 14:00:00,False,1200,1200,003003.XSHE,1760287401,9.03,10.056666666666665,long,15.836,2025-10-13,True,003003
|
||||
25,held,2024-12-27 14:00:00,False,600,600,600857.XSHG,1760287405,8.26,7.34,long,9.956,2025-10-13,True,600857.XSHG
|
||||
26,held,2025-01-03 09:30:00,False,800,800,600493.XSHG,1760287409,5.26,5.39,long,9.208,2025-10-13,True,600493.XSHG
|
||||
27,held,2025-01-03 09:30:00,False,2300,2300,603022.XSHG,1760287410,7.28,7.921304347826087,long,21.7672,2025-10-13,True,603022.XSHG
|
||||
28,held,2025-01-03 09:30:00,False,2300,2300,600883.XSHG,1760287412,6.52,7.0978260869565215,long,19.996,2025-10-13,True,600883.XSHG
|
||||
29,held,2025-01-03 09:30:00,True,27800,27800,513100.XSHG,1760287413,1.641,1.641,long,13.68594,2025-10-13,True,513100.XSHG
|
||||
30,held,2025-01-13 09:30:00,False,27800,27800,513100.XSHG,1760287414,1.611,1.641,long,13.43574,2025-10-13,True,513100.XSHG
|
||||
31,held,2025-01-13 09:30:00,True,7300,7300,518880.XSHG,1760287415,6.113,6.113,long,13.38747,2025-10-13,True,518880.XSHG
|
||||
32,held,2025-02-20 09:30:00,False,7300,7300,518880.XSHG,1760287416,6.602,6.113,long,14.45838,2025-10-13,True,518880.XSHG
|
||||
33,held,2025-02-20 09:30:00,True,22100,22100,159915.XSHE,1760287417,2.182,2.182,long,14.466659999999996,2025-10-13,True,159915
|
||||
34,held,2025-03-11 09:30:00,False,22100,22100,159915.XSHE,1760287418,2.132,2.182,long,14.13516,2025-10-13,True,159915
|
||||
35,held,2025-03-11 09:30:00,True,600,600,600421.XSHG,1760287419,6.99,6.99,long,5.0,2025-10-13,True,600421.XSHG
|
||||
36,held,2025-03-11 09:30:00,True,800,800,600493.XSHG,1760287420,5.43,5.43,long,5.0,2025-10-13,True,600493.XSHG
|
||||
37,held,2025-03-11 09:30:00,True,900,900,002188.XSHE,1760287421,4.81,4.81,long,5.0,2025-10-13,True,002188
|
||||
38,held,2025-03-11 09:30:00,True,900,900,000638.XSHE,1760287422,5.19,5.19,long,5.0,2025-10-13,True,000638
|
||||
39,held,2025-03-11 09:30:00,True,800,800,002591.XSHE,1760287423,5.37,5.37,long,5.0,2025-10-13,True,002591
|
||||
40,held,2025-03-11 09:30:00,True,500,500,603022.XSHG,1760287424,8.09,8.09,long,5.0,2025-10-13,True,603022.XSHG
|
||||
41,held,2025-03-11 09:30:00,True,600,600,600883.XSHG,1760287425,6.94,6.94,long,5.0,2025-10-13,True,600883.XSHG
|
||||
42,held,2025-03-11 09:30:00,True,1000,1000,600149.XSHG,1760287426,4.36,4.36,long,5.0,2025-10-13,True,600149.XSHG
|
||||
43,held,2025-03-11 09:30:00,True,500,500,603177.XSHG,1760287427,8.21,8.21,long,5.0,2025-10-13,True,603177.XSHG
|
||||
44,held,2025-03-11 09:30:00,True,500,500,605567.XSHG,1760287428,8.71,8.71,long,5.0,2025-10-13,True,605567.XSHG
|
||||
45,held,2025-03-25 14:00:00,False,600,600,600421.XSHG,1760287429,7.36,6.99,long,9.416,2025-10-13,True,600421.XSHG
|
||||
46,held,2025-03-25 14:00:00,True,600,600,002188.XSHE,1760287430,4.45,4.45,long,5.0,2025-10-13,True,002188
|
||||
47,held,2025-03-25 14:00:00,True,500,500,000638.XSHE,1760287431,4.87,4.87,long,5.0,2025-10-13,True,000638
|
||||
48,held,2025-03-25 14:00:00,True,500,500,600493.XSHG,1760287432,5.3,5.3,long,5.0,2025-10-13,True,600493.XSHG
|
||||
49,canceled,2025-04-07 14:00:00,False,1400,0,000638.XSHE,1760287435,0.0,5.075714285714286,long,0.0,2025-10-13,True,000638
|
||||
50,held,2025-04-08 14:00:00,False,1300,1300,600493.XSHG,1760287442,4.49,5.38,long,10.837,2025-10-13,True,600493.XSHG
|
||||
51,held,2025-04-08 14:00:00,False,1500,1500,002188.XSHE,1760287443,3.94,4.666,long,10.91,2025-10-13,True,002188
|
||||
52,held,2025-04-08 14:00:00,False,800,800,002591.XSHE,1760287444,4.3,5.37,long,8.44,2025-10-13,True,002591
|
||||
53,held,2025-04-08 14:00:00,False,500,500,603022.XSHG,1760287445,7.08,8.09,long,8.54,2025-10-13,True,603022.XSHG
|
||||
54,held,2025-04-08 14:00:00,False,1000,1000,600149.XSHG,1760287446,3.76,4.36,long,8.76,2025-10-13,True,600149.XSHG
|
||||
55,held,2025-04-08 14:00:00,False,500,500,603177.XSHG,1760287447,6.78,8.21,long,8.39,2025-10-13,True,603177.XSHG
|
||||
56,held,2025-04-08 14:00:00,True,1900,1900,000638.XSHE,1760287448,4.67,4.67,long,5.0,2025-10-13,True,000638
|
||||
57,held,2025-04-08 14:00:00,True,1000,1000,605567.XSHG,1760287449,8.4,8.4,long,5.0,2025-10-13,True,605567.XSHG
|
||||
58,held,2025-04-08 14:00:00,True,1300,1300,600883.XSHG,1760287450,6.78,6.78,long,5.0,2025-10-13,True,600883.XSHG
|
||||
59,held,2025-04-23 09:30:00,False,3300,3300,000638.XSHE,1760287454,3.91,4.842121212121212,long,17.903,2025-10-13,True,000638
|
||||
60,held,2025-04-23 09:30:00,False,1900,1900,600883.XSHG,1760287455,7.44,6.830526315789474,long,19.136000000000003,2025-10-13,True,600883.XSHG
|
||||
61,held,2025-04-23 09:30:00,False,1500,1500,605567.XSHG,1760287456,9.85,8.503333333333334,long,19.775,2025-10-13,True,605567.XSHG
|
||||
62,held,2025-04-23 09:30:00,True,5400,5400,518880.XSHG,1760287457,7.769,7.769,long,12.585779999999998,2025-10-13,True,518880.XSHG
|
||||
63,held,2025-05-13 09:30:00,False,5400,5400,518880.XSHG,1760287458,7.282,7.769,long,11.79684,2025-10-13,True,518880.XSHG
|
||||
64,held,2025-05-13 09:30:00,True,25800,25800,513100.XSHG,1760287459,1.54,1.54,long,11.9196,2025-10-13,True,513100.XSHG
|
||||
65,held,2025-05-20 09:30:00,False,25800,25800,513100.XSHG,1760287460,1.563,1.54,long,12.09762,2025-10-13,True,513100.XSHG
|
||||
66,held,2025-05-20 09:30:00,True,1000,1000,603616.XSHG,1760287461,3.96,3.96,long,5.0,2025-10-13,True,603616.XSHG
|
||||
67,held,2025-05-20 09:30:00,True,600,600,600493.XSHG,1760287462,5.83,5.83,long,5.0,2025-10-13,True,600493.XSHG
|
||||
68,held,2025-05-20 09:30:00,True,700,700,002188.XSHE,1760287463,5.25,5.25,long,5.0,2025-10-13,True,002188
|
||||
69,held,2025-05-20 09:30:00,True,700,700,002591.XSHE,1760287464,5.72,5.72,long,5.0,2025-10-13,True,002591
|
||||
70,held,2025-05-20 09:30:00,True,400,400,603177.XSHG,1760287465,8.43,8.43,long,5.0,2025-10-13,True,603177.XSHG
|
||||
71,held,2025-05-20 09:30:00,True,400,400,603022.XSHG,1760287466,8.89,8.89,long,5.0,2025-10-13,True,603022.XSHG
|
||||
72,held,2025-05-20 09:30:00,True,400,400,002828.XSHE,1760287467,8.89,8.89,long,5.0,2025-10-13,True,002828
|
||||
73,held,2025-05-20 09:30:00,True,500,500,603316.XSHG,1760287468,6.79,6.79,long,5.0,2025-10-13,True,603316.XSHG
|
||||
74,held,2025-05-20 09:30:00,True,500,500,600883.XSHG,1760287469,7.85,7.85,long,5.0,2025-10-13,True,600883.XSHG
|
||||
75,held,2025-05-20 09:30:00,True,800,800,600149.XSHG,1760287470,4.96,4.96,long,5.0,2025-10-13,True,600149.XSHG
|
||||
76,held,2025-05-23 14:00:00,False,800,800,600149.XSHG,1760287471,5.78,4.96,long,9.624,2025-10-13,True,600149.XSHG
|
||||
77,held,2025-05-23 14:00:00,True,500,500,002188.XSHE,1760287473,5.15,5.15,long,5.0,2025-10-13,True,002188
|
||||
78,held,2025-05-26 14:00:00,False,600,600,600493.XSHG,1760287475,6.03,5.83,long,8.618,2025-10-13,True,600493.XSHG
|
||||
79,held,2025-05-26 14:00:00,True,200,200,002188.XSHE,1760287477,5.11,5.11,long,5.0,2025-10-13,True,002188
|
||||
80,held,2025-05-26 14:00:00,True,100,100,600883.XSHG,1760287478,7.65,7.65,long,5.0,2025-10-13,True,600883.XSHG
|
||||
81,held,2025-06-17 14:00:00,False,400,400,002828.XSHE,1760287479,12.16,8.89,long,9.864,2025-10-13,True,002828
|
||||
82,held,2025-06-17 14:00:00,True,200,200,603022.XSHG,1760287481,8.78,8.78,long,5.0,2025-10-13,True,603022.XSHG
|
||||
83,held,2025-06-17 14:00:00,True,300,300,603316.XSHG,1760287482,6.78,6.78,long,5.0,2025-10-13,True,603316.XSHG
|
||||
84,held,2025-06-23 14:00:00,False,1000,1000,603616.XSHG,1760287483,4.38,3.96,long,9.38,2025-10-13,True,603616.XSHG
|
||||
85,held,2025-06-23 14:00:00,True,200,200,600883.XSHG,1760287484,7.58,7.58,long,5.0,2025-10-13,True,600883.XSHG
|
||||
86,held,2025-06-23 14:00:00,True,200,200,603316.XSHG,1760287485,6.61,6.61,long,5.0,2025-10-13,True,603316.XSHG
|
||||
87,held,2025-06-23 14:00:00,True,300,300,002591.XSHE,1760287486,5.64,5.64,long,5.0,2025-10-13,True,002591
|
||||
88,held,2025-06-27 14:00:00,False,600,600,603022.XSHG,1760287487,12.56,8.801333333333334,long,12.536,2025-10-13,True,603022.XSHG
|
||||
89,held,2025-06-27 14:00:00,True,300,300,600883.XSHG,1760287488,7.83,7.83,long,5.0,2025-10-13,True,600883.XSHG
|
||||
90,held,2025-06-27 14:00:00,True,400,400,002591.XSHE,1760287489,6.01,6.01,long,5.0,2025-10-13,True,002591
|
||||
91,held,2025-06-27 14:00:00,True,400,400,002188.XSHE,1760287490,5.52,5.52,long,5.0,2025-10-13,True,002188
|
||||
92,held,2025-07-02 09:30:00,False,1800,1800,002188.XSHE,1760287491,5.61,5.266666666666667,long,15.098,2025-10-13,True,002188
|
||||
93,held,2025-07-02 09:30:00,False,1800,1800,002591.XSHE,1760287492,6.04,5.746666666666667,long,15.872,2025-10-13,True,002591
|
||||
94,held,2025-07-02 09:30:00,False,400,400,603177.XSHG,1760287493,9.16,8.43,long,8.664,2025-10-13,True,603177.XSHG
|
||||
95,held,2025-07-02 09:30:00,False,1200,1200,603316.XSHG,1760287494,10.84,6.734166666666667,long,18.008000000000003,2025-10-13,True,603316.XSHG
|
||||
96,held,2025-07-02 09:30:00,False,1600,1600,600883.XSHG,1760287495,7.89,7.699375000000001,long,17.624000000000002,2025-10-13,True,600883.XSHG
|
||||
97,held,2025-07-02 09:30:00,True,24200,24200,159915.XSHE,1760287496,2.126,2.126,long,15.434759999999997,2025-10-13,True,159915
|
||||
|
@@ -0,0 +1 @@
|
||||
,状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态,证券代码
|
||||
|
Binary file not shown.
@@ -0,0 +1,153 @@
|
||||
'''
|
||||
小果聚宽跟单系统
|
||||
原理替代,继承聚宽的交易函数类
|
||||
读取下单类的函数参数把交易数据发送到服务器
|
||||
把下面的全部源代码复制到聚宽策略的开头就可以
|
||||
实盘前先模拟盘测试一下数据
|
||||
把下面的内容全部复制到策略的开头就可以
|
||||
作者微信15117320079
|
||||
'''
|
||||
import requests
|
||||
import json
|
||||
import pandas as pd
|
||||
from jqdata import *
|
||||
url='http://117.72.149.251'
|
||||
port=8888
|
||||
#自定义服务器编码
|
||||
url_code='63d85b6189e42cba63feea36381da615c31ad8e36ae420ed67f60f3598efc9ad'
|
||||
#记得把这个改成自己的一个策略一个,策略的名称找作者建立
|
||||
password='cls'
|
||||
class joinquant_trader:
|
||||
def __init__(self,url='http://117.72.149.251',
|
||||
port=8888,
|
||||
url_code='63d85b6189e42cba63feea36381da615c31ad8e36ae420ed67f60f3598efc9ad',
|
||||
password='cls'):
|
||||
'''
|
||||
获取服务器数据
|
||||
'''
|
||||
self.url=url
|
||||
self.port=port
|
||||
self.url_code=url_code
|
||||
self.password=password
|
||||
def get_user_data(self,data_type='用户信息'):
|
||||
'''
|
||||
获取使用的数据
|
||||
data_type='用户信息','实时数据',历史数据','清空实时数据','清空历史数据'
|
||||
'''
|
||||
url='{}:{}/_dash-update-component'.format(self.url,self.port)
|
||||
headers={'Content-Type':'application/json'}
|
||||
data={"output":"joinquant_trader_table.data@{}".format(self.url_code),
|
||||
"outputs":{"id":"joinquant_trader_table","property":"data@{}".format(self.url_code)},
|
||||
"inputs":[{"id":"joinquant_trader_password","property":"value","value":self.password},
|
||||
{"id":"joinquant_trader_data_type","property":"value","value":data_type},
|
||||
{"id":"joinquant_trader_text","property":"value","value":"\n {'状态': 'held', '订单添加时间': 'datetime.datetime(2024, 4, 23, 9, 30)', '买卖': 'False', '下单数量': '9400', '已经成交': '9400', '股票代码': '001.XSHE', '订单ID': '1732208241', '平均成交价格': '10.5', '持仓成本': '10.59', '多空': 'long', '交易费用': '128.31'}\n "},
|
||||
{"id":"joinquant_trader_run","property":"value","value":"运行"},
|
||||
{"id":"joinquant_trader_down_data","property":"value","value":"不下载数据"}],
|
||||
"changedPropIds":["joinquant_trader_run.value"],"parsedChangedPropsIds":["joinquant_trader_run.value"]}
|
||||
res=requests.post(url=url,data=json.dumps(data),headers=headers)
|
||||
text=res.json()
|
||||
df=pd.DataFrame(text['response']['joinquant_trader_table']['data'])
|
||||
return df
|
||||
def send_order(self,result):
|
||||
'''
|
||||
发送交易数据
|
||||
'''
|
||||
url='{}:{}/_dash-update-component'.format(self.url,self.port)
|
||||
headers={'Content-Type':'application/json'}
|
||||
data={"output":"joinquant_trader_table.data@{}".format(self.url_code),
|
||||
"outputs":{"id":"joinquant_trader_table","property":"data@{}".format(self.url_code)},
|
||||
"inputs":[{"id":"joinquant_trader_password","property":"value","value":self.password},
|
||||
{"id":"joinquant_trader_data_type","property":"value","value":'发送信号'},
|
||||
{"id":"joinquant_trader_text","property":"value","value":result},
|
||||
{"id":"joinquant_trader_run","property":"value","value":"运行"},
|
||||
{"id":"joinquant_trader_down_data","property":"value","value":"不下载数据"}],
|
||||
"changedPropIds":["joinquant_trader_run.value"],"parsedChangedPropsIds":["joinquant_trader_run.value"]}
|
||||
res=requests.post(url=url,data=json.dumps(data),headers=headers)
|
||||
text=res.json()
|
||||
df=pd.DataFrame(text['response']['joinquant_trader_table']['data'])
|
||||
return df
|
||||
#继承类
|
||||
xg_data=joinquant_trader(url=url,port=port,password=password,)
|
||||
def send_order(result):
|
||||
'''
|
||||
发送函数
|
||||
status: 状态, 一个OrderStatus值
|
||||
add_time: 订单添加时间, [datetime.datetime]对象
|
||||
is_buy: bool值, 买还是卖,对于期货:
|
||||
开多/平空 -> 买
|
||||
开空/平多 -> 卖
|
||||
amount: 下单数量, 不管是买还是卖, 都是正数
|
||||
filled: 已经成交的股票数量, 正数
|
||||
security: 股票代码
|
||||
order_id: 订单ID
|
||||
price: 平均成交价格, 已经成交的股票的平均成交价格(一个订单可能分多次成交)
|
||||
avg_cost: 卖出时表示下卖单前的此股票的持仓成本, 用来计算此次卖出的收益. 买入时表示此次买入的均价(等同于price).
|
||||
side: 多/空,'long'/'short'
|
||||
action: 开/平, 'open'/'close'
|
||||
commission交易费用(佣金、税费等)
|
||||
'''
|
||||
data={}
|
||||
data['状态']=str(result.status)
|
||||
data['订单添加时间']=str(result.add_time)
|
||||
data['买卖']=str(result.is_buy)
|
||||
data['下单数量']=str(result.amount)
|
||||
data['已经成交']=str(result.filled)
|
||||
data['股票代码']=str(result.security)
|
||||
data['订单ID']=str(result.order_id)
|
||||
data['平均成交价格']=str(result.price)
|
||||
data['持仓成本']=str(result.avg_cost)
|
||||
data['多空']=str(result.side)
|
||||
data['交易费用']=str(result.commission)
|
||||
result=str(data)
|
||||
xg_data.send_order(result)
|
||||
return data
|
||||
def xg_order(func):
|
||||
'''
|
||||
继承order对象 数据交易函数
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
def xg_order_target(func):
|
||||
'''
|
||||
继承order_target对象 百分比
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
|
||||
def xg_order_value(func):
|
||||
'''
|
||||
继承order_value对象 数量
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
def xg_order_target_value(func):
|
||||
'''
|
||||
继承order_target_value对象 数量
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
order = xg_order(order)
|
||||
order_target = xg_order_target(order_target)
|
||||
order_value = xg_order_value(order_value)
|
||||
order_target_value = xg_order_target_value(order_target_value)
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
py -m pip install pip==23.2
|
||||
py -m pip install akshare
|
||||
py -m pip install easyquotation
|
||||
py -m pip install yagmail
|
||||
py -m pip install pywinauto==0.6.6
|
||||
py -m pip install matplotlib
|
||||
py -m pip install mplfinance
|
||||
py -m pip install finta
|
||||
py -m pip install pyinstaller
|
||||
py -m pip install pyautogui
|
||||
py -m pip install schedule
|
||||
py -m pip install pywin32
|
||||
py -m pip install pyexecjs
|
||||
py -m pip install pytdx
|
||||
py -m pip install pydash
|
||||
py -m pip install empyrical
|
||||
py -m pip install pywencai
|
||||
py -m pip install pandas==1.5.3
|
||||
py -m pip install numpy==1.26.2
|
||||
py -m pip install scipy==1.11.4
|
||||
py -m pip install ffn
|
||||
py -m pip install quantstats==0.0.60
|
||||
py -m pip install dash
|
||||
@@ -0,0 +1,23 @@
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip==23.2
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple akshare
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple easyquotation
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple yagmail
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywinauto==0.6.6
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mplfinance
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple finta
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyautogui
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple schedule
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin32
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyexecjs
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytdx
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pydash
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple empyrical
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywencai
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas==1.5.3
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy==1.26.2
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scipy==1.11.4
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ffn
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple quantstats==0.0.60
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple dash
|
||||
@@ -0,0 +1,23 @@
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pip==23.2
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ akshare
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ easyquotation
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ yagmail
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pywinauto==0.6.6
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ matplotlib
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ mplfinance
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ finta
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pyinstaller
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pyautogui
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ schedule
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pywin32
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pyexecjs
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pytdx
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pydash
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ empyrical
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pywencai
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pandas==1.5.3
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ numpy==1.26.2
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ scipy==1.11.4
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ ffn
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ quantstats==0.0.60
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ dash
|
||||
@@ -0,0 +1,261 @@
|
||||
from dash import html
|
||||
from dash import dcc
|
||||
from dash import Input#输入
|
||||
from dash import Output#输出
|
||||
import time
|
||||
from dash import dash_table
|
||||
import dash
|
||||
import pandas as pd
|
||||
import requests
|
||||
import json
|
||||
from datetime import datetime
|
||||
import os
|
||||
path=os.path.dirname(os.path.abspath(__file__))
|
||||
now_date=str(datetime.now())[:10]
|
||||
select_list=['用户信息','实时数据','历史数据','清空实时数据','清空历史数据']
|
||||
def params_func(text=''):
|
||||
'''
|
||||
解析函数
|
||||
'''
|
||||
data_list=[]
|
||||
f=text.split('\n')
|
||||
for i in f:
|
||||
text=i.strip().lstrip()
|
||||
data_list.append(text)
|
||||
func='\n'.join(data_list)
|
||||
return func
|
||||
def get_n1_n2_daily(start_date='2023-12-14',end_date='2023-12-30'):
|
||||
'''
|
||||
获取2个时间的天数
|
||||
'''
|
||||
import datetime
|
||||
end_date=end_date.split('-')
|
||||
start_date=start_date.split('-')
|
||||
d1 =datetime.datetime(int(start_date[0]),int(start_date[1]),int(start_date[2]))
|
||||
d2 = datetime.datetime(int(end_date[0]),int(end_date[1]),int(end_date[2])) # 第二个日期
|
||||
interval = d2 - d1 # 两日期差距
|
||||
days=interval.days
|
||||
return days
|
||||
app=dash.Dash(__name__)
|
||||
app.layout=html.Div([
|
||||
html.H3('小果聚合跟单服务器,找作者获取授权码 微信15117320079,输入的数据必须是字符串'),
|
||||
html.P('实盘前请清空实时数据其他的不用,点击运行按钮获取数据,运行实盘前需要获取授权码'),
|
||||
html.Tbody([
|
||||
html.Tr([
|
||||
html.Td('用户名称',
|
||||
style={'border':'1px solid','width':'200px'}),
|
||||
html.Td('数据类型',
|
||||
style={'border':'1px solid','width':'200px'}),
|
||||
html.Td('运行程序',
|
||||
style={'border':'1px solid','width':'200px'}),
|
||||
html.Td('下载数据',
|
||||
style={'border':'1px solid','width':'200px'})
|
||||
]),
|
||||
html.Tr([
|
||||
html.Td(dcc.Input(value='123456',id='joinquant_trader_password'),
|
||||
style={'border':'1px solid','width':'200px'}),
|
||||
html.Td(dcc.Dropdown(options=select_list,value='用户信息',id='joinquant_trader_data_type'),
|
||||
style={'border':'1px solid','width':'200px'}),
|
||||
html.Td(dcc.Dropdown(options=['运行','不运行'],id='joinquant_trader_run',value='不运行'),
|
||||
style={'border':'1px solid','width':'200px'}),
|
||||
html.Td(dcc.RadioItems(options={'下载数据':"下载数据","不下载数据":"不下载数据"},id='joinquant_trader_down_data',value='不下载数据'),
|
||||
style={'border':'1px solid','width':'200px'})
|
||||
]),
|
||||
]),
|
||||
dcc.Textarea(value="""
|
||||
{'状态': 'held', '订单添加时间': 'datetime.datetime(2024, 4, 23, 9, 30)', '买卖': 'False', '下单数量': '9400', '已经成交': '9400', '股票代码': '', '订单ID': '1732208241', '平均成交价格': '10.5', '持仓成本': '10.59', '多空': 'long', '交易费用': '128.31'}
|
||||
""",
|
||||
id='joinquant_trader_text',style={'width': '80%', 'height': 200,"text-align":"left",}),
|
||||
html.H3('数据展示'),
|
||||
dash_table.DataTable(
|
||||
id='joinquant_trader_table',
|
||||
page_size=10,
|
||||
style_table={'font-size': 15},
|
||||
sort_action='native'),
|
||||
dcc.Download(id='joinquant_trader_table_down')
|
||||
])
|
||||
#回调表1
|
||||
@app.callback(
|
||||
Output(component_id='joinquant_trader_table',component_property='data',allow_duplicate=True),
|
||||
Input(component_id='joinquant_trader_password',component_property='value'),
|
||||
Input(component_id='joinquant_trader_data_type',component_property='value'),
|
||||
Input(component_id='joinquant_trader_text',component_property='value'),
|
||||
Input(component_id='joinquant_trader_run',component_property='value'),
|
||||
Input(component_id='joinquant_trader_down_data',component_property='value'),
|
||||
prevent_initial_call=True
|
||||
)
|
||||
def show_wencai_data_table_1(password,data_type,text,run,down_data):
|
||||
if run=='运行':
|
||||
password_df=pd.read_excel(r'授权表\授权表.xlsx',dtype='object')
|
||||
try:
|
||||
del password_df['Unnamed: 0']
|
||||
except:
|
||||
pass
|
||||
now_date=str(datetime.now())[:10]
|
||||
password_df['用户名称']=password_df['用户名称'].astype(str)
|
||||
password_df['到期时间']=password_df['到期时间'].astype(str)
|
||||
password_df.index=password_df['用户名称']
|
||||
password_list=password_df['用户名称'].tolist()
|
||||
if str(password) in password_list:
|
||||
text=params_func(text)
|
||||
text=eval(text)
|
||||
df=password_df[password_df['用户名称']==password]
|
||||
end_date=str(df['到期时间'].tolist()[-1])[:10]
|
||||
day=get_n1_n2_daily(start_date=now_date,end_date=end_date)
|
||||
df['到期天数']=day
|
||||
if day>=1:
|
||||
if data_type=='用户信息':
|
||||
df['信息推送']='授权码正常'
|
||||
df['数据状态']=True
|
||||
elif data_type=='实时数据':
|
||||
try:
|
||||
df=pd.read_csv(r'{}\data\实时数据\{}实时数据.csv'.format(path,password))
|
||||
try:
|
||||
del df['Unnamed: 0']
|
||||
except:
|
||||
pass
|
||||
df['交易日']=df['交易日'].astype(str)
|
||||
select_list=list(text.keys())
|
||||
select_list.append('交易日')
|
||||
select_list.append('数据状态')
|
||||
df=df[select_list]
|
||||
df=df[df['交易日']==now_date]
|
||||
except Exception as e:
|
||||
print(e,'实时数据有问题')
|
||||
df=pd.DataFrame()
|
||||
try:
|
||||
hist=pd.read_csv(r'{}\data\历史数据\{}历史数据.csv'.format(path,password))
|
||||
try:
|
||||
del hist['Unnamed: 0']
|
||||
except:
|
||||
pass
|
||||
df['交易日']=df['交易日'].astype(str)
|
||||
select_list=list(text.keys())
|
||||
select_list.append('交易日')
|
||||
select_list.append('数据状态')
|
||||
df=df[select_list]
|
||||
except Exception as e:
|
||||
print(e,'历史数据有问题')
|
||||
hist=pd.DataFrame()
|
||||
data=pd.DataFrame()
|
||||
data['状态']=[text['状态']]
|
||||
data['订单添加时间']=[text['订单添加时间']]
|
||||
data['买卖']=[text['买卖']]
|
||||
data['下单数量']=[text['下单数量']]
|
||||
data['已经成交']=[text['已经成交']]
|
||||
data['股票代码']=[text['股票代码']]
|
||||
data['订单ID']=[text['订单ID']]
|
||||
data['平均成交价格']=[text['平均成交价格']]
|
||||
data['持仓成本']=[text['持仓成本']]
|
||||
data['多空']=[text['多空']]
|
||||
data['交易费用']=[text['交易费用']]
|
||||
df=pd.concat([df,data],ignore_index=True)
|
||||
df['证券代码']=df['股票代码'].apply(lambda x: str(x).split('.XSHE')[0])
|
||||
df['数据长度']=df['证券代码'].apply(lambda x: len(str(x)))
|
||||
df=df[df['数据长度']>=6]
|
||||
try:
|
||||
del df['数据长度']
|
||||
except:
|
||||
pass
|
||||
df=df.drop_duplicates(subset=['股票代码','下单数量','买卖','多空'],keep='last')
|
||||
df['交易日']=now_date
|
||||
df['数据状态']=True
|
||||
df.to_csv(r'{}\data\实时数据\{}实时数据.csv'.format(path,password))
|
||||
hist=pd.concat([hist,data],ignore_index=True)
|
||||
hist=hist.drop_duplicates(subset=['股票代码','下单数量','买卖','多空'],keep='last')
|
||||
hist['交易日']=now_date
|
||||
hist['数据状态']=True
|
||||
hist.to_csv(r'{}\data\历史数据\{}历史数据.csv'.format(path,password))
|
||||
elif data_type=='清空实时数据':
|
||||
df=pd.DataFrame()
|
||||
df.to_csv(r'{}\data\实时数据\{}实时数据.csv'.format(path,password))
|
||||
elif data_type=='历史数据':
|
||||
try:
|
||||
hist=pd.read_csv(r'{}\data\历史数据\{}历史数据.csv'.format(path,password))
|
||||
hist['证券代码']=hist['股票代码'].apply(lambda x: str(x).split('.XSHE')[0])
|
||||
hist['数据长度']=hist['证券代码'].apply(lambda x: len(str(x)))
|
||||
hist=hist[hist['数据长度']>=6]
|
||||
hist=hist.drop_duplicates(subset=['股票代码','下单数量','买卖','多空'],keep='last')
|
||||
try:
|
||||
del hist['数据长度']
|
||||
except:
|
||||
pass
|
||||
try:
|
||||
del hist['Unnamed: 0']
|
||||
except:
|
||||
pass
|
||||
df=hist
|
||||
df['交易日']=df['交易日'].astype(str)
|
||||
select_list=list(text.keys())
|
||||
select_list.append('交易日')
|
||||
select_list.append('数据状态')
|
||||
df=df[select_list]
|
||||
except Exception as e:
|
||||
print(e,'历史数据有问题')
|
||||
df=pd.DataFrame()
|
||||
elif data_type=='清空历史数据':
|
||||
df=pd.DataFrame()
|
||||
df.to_csv(r'{}\data\历史数据\{}历史数据.csv'.format(path,password))
|
||||
else:
|
||||
df['信息推送']='授权码到期找作者获取'
|
||||
df['数据状态']=False
|
||||
else:
|
||||
df['信息推送']='授权码到期找作者获取'
|
||||
df['数据状态']=False
|
||||
return df.to_dict('records')
|
||||
else:
|
||||
df=pd.DataFrame()
|
||||
df['信息提示']=['用户没有注册请注册/联系作者微信15117320079']
|
||||
df['数据状态']=False
|
||||
return df.to_dict('records')
|
||||
else:
|
||||
df=pd.DataFrame()
|
||||
df['信息提示']=['没有点击运行选择']
|
||||
df['数据状态']=False
|
||||
return df.to_dict('records')
|
||||
|
||||
#回调下载
|
||||
@app.callback(
|
||||
Output(component_id='joinquant_trader_table_down',component_property='data',allow_duplicate=True),
|
||||
Input(component_id='joinquant_trader_password',component_property='value'),
|
||||
Input(component_id='joinquant_trader_data_type',component_property='value'),
|
||||
Input(component_id='joinquant_trader_text',component_property='value'),
|
||||
Input(component_id='joinquant_trader_run',component_property='value'),
|
||||
Input(component_id='joinquant_trader_down_data',component_property='value'),
|
||||
prevent_initial_call=True
|
||||
)
|
||||
def show_wencai_data_table_down(password,data_type,text,run,down_data):
|
||||
if down_data=='下载数据':
|
||||
password_df=pd.read_excel(r'授权表\授权表.xlsx',dtype='object')
|
||||
try:
|
||||
del password_df['Unnamed: 0']
|
||||
except:
|
||||
pass
|
||||
now_date=str(datetime.now())[:10]
|
||||
password_df['用户名称']=password_df['用户名称'].astype(str)
|
||||
password_df['到期时间']=password_df['到期时间'].astype(str)
|
||||
password_df.index=password_df['用户名称']
|
||||
password_list=password_df['用户名称'].tolist()
|
||||
if str(password) in password_list:
|
||||
text=params_func(text)
|
||||
text=eval(text)
|
||||
df=password_df[password_df['用户名称']==password]
|
||||
end_date=str(df['到期时间'].tolist()[-1])[:10]
|
||||
day=get_n1_n2_daily(start_date=now_date,end_date=end_date)
|
||||
df['到期天数']=day
|
||||
if day>=1:
|
||||
if data_type in ['实时数据','历史数据']:
|
||||
hist=pd.read_csv(r'{}\data\{}\{}{}.csv'.format(path,data_type,password,data_type))
|
||||
try:
|
||||
del hist['Unnamed: 0']
|
||||
except:
|
||||
pass
|
||||
df=hist
|
||||
return dcc.send_data_frame(df.to_excel,filename='{}{}.xlsx'.format(now_date,data_type))
|
||||
|
||||
if __name__=='__main__':
|
||||
app.run(
|
||||
host='0.0.0.0', # 监听所有网络接口
|
||||
port=8888, # 端口
|
||||
debug=True # 开发时建议开启debug模式,便于调试
|
||||
)
|
||||
Binary file not shown.
@@ -0,0 +1,472 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"参数研究*args, **kwargs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"https://blog.csdn.net/GODSuner/article/details/117961990"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"*args 和 ``kwargs` 这两个魔法变量需要花费大量时间来解释。别被这些语句所绊倒。其实这些并不是什么超级特殊的参数,也并不奇特,只是编程人员约定的变量名字,args 是 arguments 的缩写,表示位置参数;kwargs 是 keyword arguments 的缩写,表示关键字参数。 接下来我们就来一起了解他们的用法**,以及在什么情况下使用?·\n",
|
||||
"\n",
|
||||
"首先你要明白的是:\n",
|
||||
"\n",
|
||||
"其实并不是写成 *args 和 **kwargs ,只有前面的 * (星号)才是必须的。\n",
|
||||
"向python传递参数的方式有两种:\n",
|
||||
"位置参数(positional argument)\n",
|
||||
"关键词参数(keyword argument)\n",
|
||||
"现在我们再来看 *args 与 **kwargs 的区别,两者都是 python 中可变的参数\n",
|
||||
"*args 表示任何多个无名参数, 他本质上是一个 tuple\n",
|
||||
"** kwargs 表示关键字参数, 它本质上是一个 dict\n",
|
||||
"\n",
|
||||
"同时使用时必须要求 *args 参数列要在** kwargs 前面 【因为位置参数在关键字参数的前面。】"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"*args 的用法\n",
|
||||
"* args 和 ** args 主要用于函数定义,你可以将不定数量的参数传递给一个函数。\n",
|
||||
"\n",
|
||||
"这里不定的意思是: 预先并不知道,函数使用者会传递多少个参数给你,所在在这个场景下使用这两个关键字。 * args 是用来发送一个 非键值 的可变数量的参数列表给一个函数。"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"first normal arg: yasoob\n",
|
||||
"another arg through *argv: python\n",
|
||||
"another arg through *argv: eggs\n",
|
||||
"another arg through *argv: test\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def test_var_args(f_arg, *argv):\n",
|
||||
" print(\"first normal arg:\",f_arg)\n",
|
||||
" for arg in argv:\n",
|
||||
" print(\"another arg through *argv:\",arg)\n",
|
||||
"test_var_args('yasoob','python','eggs','test')\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"*args的用法"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"*args就是就是传递一个可变参数列表给函数实参,这个参数列表的数目未知,甚至长度可以为0。下面这段代码演示了如何使用args"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Required argument: 1\n",
|
||||
"<class 'tuple'>\n",
|
||||
"Optional argument: 2\n",
|
||||
"<class 'int'>\n",
|
||||
"Optional argument: 3\n",
|
||||
"<class 'int'>\n",
|
||||
"Optional argument: 4\n",
|
||||
"<class 'int'>\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def test_args(first, *args):\n",
|
||||
" print('Required argument: ', first)\n",
|
||||
" print(type(args))\n",
|
||||
" for v in args:\n",
|
||||
" print ('Optional argument: ', v)\n",
|
||||
" print(type(v))\n",
|
||||
"\n",
|
||||
"test_args(1, 2, 3, 4)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"第一个参数是必须要传入的参数,所以使用了第一个形参,而后面三个参数则作为可变参数列表传入了实参,并且是作为元组tuple来使用的。代码的运行结果如下"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"**kwargs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"而**kwargs则是将一个可变的关键字参数的字典传给函数实参,同样参数列表长度可以为0或为其他值。下面这段代码演示了如何使用kwargs"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Required argument: 1\n",
|
||||
"<class 'dict'>\n",
|
||||
"Optional argument (args): 2\n",
|
||||
"Optional argument (args): 3\n",
|
||||
"Optional argument (args): 4\n",
|
||||
"{'k1': 5, 'k2': 6}\n",
|
||||
"Optional argument k1 (kwargs): 5\n",
|
||||
"Optional argument k2 (kwargs): 6\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def test_kwargs(first, *args, **kwargs):\n",
|
||||
" print('Required argument: ', first)\n",
|
||||
" print(type(kwargs))\n",
|
||||
" for v in args:\n",
|
||||
" print ('Optional argument (args): ', v)\n",
|
||||
" print(kwargs)\n",
|
||||
" for k, v in kwargs.items():\n",
|
||||
" print ('Optional argument %s (kwargs): %s' % (k, v))\n",
|
||||
"\n",
|
||||
"test_kwargs(1, 2, 3, 4, k1=5, k2=6)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"正如前面所说的,args类型是一个tuple,而kwargs则是一个字典dict,并且args只能位于kwargs的前面。代码的运行结果如下"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"调用函数\n",
|
||||
"args和kwargs不仅可以在函数定义中使用,还可以在函数调用中使用。在调用时使用就相当于pack(打包)和unpack(解包),类似于元组的打包和解包。\n",
|
||||
"\n",
|
||||
"首先来看一下使用args来解包调用函数的代码,"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"arg1: two\n",
|
||||
"arg2: 3\n",
|
||||
"arg3: 5\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"def test_args_kwargs(arg1, arg2, arg3):\n",
|
||||
" print(\"arg1:\", arg1)\n",
|
||||
" print(\"arg2:\", arg2)\n",
|
||||
" print(\"arg3:\", arg3)\n",
|
||||
"\n",
|
||||
"args = (\"two\", 3, 5)\n",
|
||||
"test_args_kwargs(*args)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"将元组解包后传给对应的实参,kwargs的用法与其类似。"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"arg1: 5\n",
|
||||
"arg2: two\n",
|
||||
"arg3: 3\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"kwargs = {\"arg3\": 3, \"arg2\": \"two\", \"arg1\": 5}\n",
|
||||
"test_args_kwargs(**kwargs)\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"聚合宽数据研究"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"交易函数"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"1 order(security, amount, style=None, side='long', pindex=0, close_today=False)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"交易函数\n",
|
||||
"1 order(security, amount, style=None, side='long', pindex=0, close_today=False)\n",
|
||||
"买卖标的。调用成功后, 您将可以调用[get_open_orders]取得所有未完成的交易, 也可以调用[cancel_order]取消交易\n",
|
||||
"\n",
|
||||
"参数\n",
|
||||
"\n",
|
||||
"security: 标的代码\n",
|
||||
"amount: 交易数量, 正数表示买入, 负数表示卖出\n",
|
||||
"style: 参见OrderStyle, None代表MarketOrder\n",
|
||||
"side: 'long'/'short',操作多单还是空单。默认为多单,股票、基金暂不支持开空单。\n",
|
||||
"pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0 指定第一个 subportfolio, 1 指定第二个 subportfolio,默认为0。\n",
|
||||
"close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。\n",
|
||||
"对上海国际能源中心,上海期货交易所,中金所的标的:\n",
|
||||
"close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。\n",
|
||||
"close_today = False, 优先平昨仓,昨仓不足部分平今仓\n",
|
||||
"不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。\n",
|
||||
"返回 Order对象或者None, 如果创建订单成功, 则返回Order对象, 失败则返回None\n",
|
||||
"\n",
|
||||
"示例\n",
|
||||
"\n",
|
||||
"#买入平安银行股票100股\n",
|
||||
"order('000001.XSHE', 100) # 下一个市价单\n",
|
||||
"order('000001.XSHE', 100, MarketOrderStyle()) # 下一个市价单, 功能同上(科创板市价单需要指定保护价)\n",
|
||||
"order('000001.XSHE', 100, LimitOrderStyle(10.0)) # 以10块价格下一个限价单\n",
|
||||
"'''"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"order_target(security, amount, style=None, side='long', pindex=0, close_today=False)\n",
|
||||
"买卖标的, 使最终标的的数量达到指定的amount,注意使用此接口下单时若指定的标的有未完成的订单,则先前未完成的订单将会被取消\n",
|
||||
"\n",
|
||||
"参数\n",
|
||||
"\n",
|
||||
"security: 标的代码\n",
|
||||
"amount: 期望的最终数量\n",
|
||||
"style: 参见OrderStyle, None代表MarketOrder\n",
|
||||
"side: 'long'/'short',操作多单还是空单。默认为多单。默认为多单,股票、基金暂不支持开空单。\n",
|
||||
"pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,默认为0。\n",
|
||||
"close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。\n",
|
||||
"对上海国际能源中心,上海期货交易所,中金所的标的:\n",
|
||||
"close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。\n",
|
||||
"close_today = False, 优先平昨仓,昨仓不足部分平今仓\n",
|
||||
"不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。\n",
|
||||
"返回 Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None\n",
|
||||
"\n",
|
||||
"示例\n",
|
||||
"\n",
|
||||
"# 卖出平安银行所有股票\n",
|
||||
"order_target('000001.XSHE', 0)\n",
|
||||
"# 买入平安银行所有股票到100股\n",
|
||||
"order_target('000001.XSHE', 100)\n",
|
||||
"'''"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"order_value(security, value, style=None, side='long', pindex=0, close_today=False)\n",
|
||||
"买卖价值为value的标的。\n",
|
||||
"\n",
|
||||
"参数\n",
|
||||
"\n",
|
||||
"security: 股票名字\n",
|
||||
"\n",
|
||||
"value: 股票价值,value = 最新价 * 手数 * 保证金率(股票为1) * 乘数(股票为100)\n",
|
||||
"\n",
|
||||
"style: 参见OrderStyle, None代表MarketOrder\n",
|
||||
"\n",
|
||||
"side: 'long'/'short',操作多单还是空单。默认为多单。默认为多单,股票、基金暂不支持开空单。\n",
|
||||
"\n",
|
||||
"pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,默认为0。\n",
|
||||
"\n",
|
||||
"close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。\n",
|
||||
"\n",
|
||||
"对上海国际能源中心,上海期货交易所,中金所的标的:\n",
|
||||
"close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。\n",
|
||||
"close_today = False, 优先平昨仓,昨仓不足部分平今仓\n",
|
||||
"不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。\n",
|
||||
"返回 Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None\n",
|
||||
"\n",
|
||||
"示例\n",
|
||||
"\n",
|
||||
"#卖出价值为10000元的平安银行股票\n",
|
||||
"order_value('000001.XSHE', -10000)\n",
|
||||
"#买入价值为10000元的平安银行股票\n",
|
||||
"order_value('000001.XSHE', 10000)\n",
|
||||
"'''"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"order_target_value(security, value, style=None, side='long', pindex=0, close_today=False)\n",
|
||||
"调整标的仓位到value价值,注意使用此接口下单时若指定的标的有未完成的订单,则先前未完成的订单将会被取消\n",
|
||||
"\n",
|
||||
"参数\n",
|
||||
"\n",
|
||||
"security: 标的名字\n",
|
||||
"value: 期望的标的最终价值,value = 最新价 * 手数 * 保证金率(股票为1) * 乘数(股票为100)\n",
|
||||
"style: 参见OrderStyle, None代表MarketOrder\n",
|
||||
"side: 'long'/'short',操作多单还是空单。默认为多单。\n",
|
||||
"pindex: 在使用set_subportfolios创建了多个仓位时,指定subportfolio 的序号, 从 0 开始, 比如 0为 指定第一个 subportfolio, 1 为指定第二个 subportfolio,默认为0。\n",
|
||||
"close_today: 平今字段,close_today: 平今字段,仅对上海国际能源中心,上海期货交易所,中金所生效,其他交易所将会报错(其他交易所没有区分平今与平昨,均按照先开先平的方法处理)。\n",
|
||||
"对上海国际能源中心,上海期货交易所,中金所的标的:\n",
|
||||
"close_today = True, 只平今仓,今仓不足的时候,订单将会被废单。\n",
|
||||
"close_today = False, 优先平昨仓,昨仓不足部分平今仓\n",
|
||||
"不管close_today是True还是False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用close_commission对应手续费率,平今仓使用close_today_commission手续费率。\n",
|
||||
"返回 Order对象或者None, 如果创建委托成功, 则返回Order对象, 失败则返回None\n",
|
||||
"\n",
|
||||
"示例\n",
|
||||
"\n",
|
||||
"#卖出平安银行所有股票\n",
|
||||
"order_target_value('000001.XSHE', 0)\n",
|
||||
"#调整平安银行股票仓位到10000元价值\n",
|
||||
"order_target_value('000001.XSHE', 10000)\n",
|
||||
"'''"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"聚宽的类研究"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Order对象"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"'''\n",
|
||||
"买卖订单\n",
|
||||
"关于order/trader对象及订单处理\n",
|
||||
"以csv格式保存order、trade、position数据\n",
|
||||
"\n",
|
||||
"status: 状态, 一个OrderStatus值\n",
|
||||
"add_time: 订单添加时间, [datetime.datetime]对象\n",
|
||||
"is_buy: bool值, 买还是卖,对于期货:\n",
|
||||
"开多/平空 -> 买\n",
|
||||
"开空/平多 -> 卖\n",
|
||||
"amount: 下单数量, 不管是买还是卖, 都是正数\n",
|
||||
"filled: 已经成交的股票数量, 正数\n",
|
||||
"security: 股票代码\n",
|
||||
"order_id: 订单ID\n",
|
||||
"price: 平均成交价格, 已经成交的股票的平均成交价格(一个订单可能分多次成交)\n",
|
||||
"avg_cost: 卖出时表示下卖单前的此股票的持仓成本, 用来计算此次卖出的收益. 买入时表示此次买入的均价(等同于price).\n",
|
||||
"side: 多/空,'long'/'short'\n",
|
||||
"action: 开/平, 'open'/'close'\n",
|
||||
"commission:交易费用(佣金、税费等)\n",
|
||||
"orders = order('000001.XSHE', 100)\n",
|
||||
"print(orders)\n",
|
||||
"if orders is None:\n",
|
||||
" print(\"创建订单失败...\")\n",
|
||||
"else:\n",
|
||||
" print(\"交易费用单:{0}\".format(orders.commission))\n",
|
||||
" print(\"是否买单:{0}\".format(orders.is_buy))\n",
|
||||
" print(\"订单状态:{0}\".format(orders.status))\n",
|
||||
" print(\"订单平均成交价格:{0}\".format(orders.price))\n",
|
||||
"'''"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.8.8"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,38 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<TCStageLayout>
|
||||
<control note="控件">
|
||||
<variable note="控件">
|
||||
<item position="" bind="策略名称" value="索普量化雪球交易系统界面版" note="策略名称" name="策略名称" type="intput" />
|
||||
<item position="" bind="标记" value="作者:索普量化,微信:xms_quants1" note="标记" name="标记" type="intput" />
|
||||
<item position="" bind="授权码" value="0xd5e814335dd5e19830fd29e14462070f4716b85fea8c34da8378dd0b707e1893607490ea1eeaba8b7c2304ebcccbae30bef3c42e3d262a04268b8894362d977f76f691526c8f11e49822b79974c3b1954b4182647597b76b29be63be246109cd57f60cf0c7d57c1ff80240e67b001f98c536dd06927ceda8d04b932055a49ff0abbd" note="授权码" name="授权码" type="intput" />
|
||||
<item position="" bind="cookie" value="cookiesu=981748929995104; device_id=487d5816161db8ba0d0e25b548cb1bc6; smidV2=20250603135319c1705e137be8f01771f8398c66777f9000ab5c0df92154fa0; s=be1jsjr8bl; bid=f1b5e01be977a7023f9ec859cdf24ad4_mbg66d09; __utmz=1.1748934057.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); u=1342909666; xq_is_login=1; aliyungf_tc=d6ee7c9ec93eec9f500ec34bbfddcb20013f165fe38f6b6b48a24e9e4d5aaa1b; xq_a_token=fe11e9427682896c9dc7a8a445086ef68d4d1dbd; xqat=fe11e9427682896c9dc7a8a445086ef68d4d1dbd; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOjEzNDI5MDk2NjYsImlzcyI6InVjIiwiZXhwIjoxNzYxNTcyNjM1LCJjdG0iOjE3NTg5ODA2MzU5NDMsImNpZCI6ImQ5ZDBuNEFadXAifQ.nqRzbWnv6K3_Juhh5Q53lF_UMJif-7NKBQln5dny13rbeqc5TBqwPTr9GU7NxIeJbDhDBskn-PLlS53_bT-pxO1MkbusPMNz98-BueB6-DZ5CJtZCqdtQUXhFJqXm4mLpNHK1wLCLJjjRxyU3-1logf1lDqQDCrDAar--G6aSugFK_ayxU1yXrT5BycS4SXfbVIIJt1CbUugT5Qs3CrgjHjcBqC24Q-owfzjFmHvJnxTs_2PYYNlMXT21B94k7dvNt-CrBKEKg01TklN5ihHcB99bbWsklL1P3j2DU-xvrRVo9WvLQ2tM5xkQr4UVBowpC-NhcFuSTMd6aGWZu3NUA; xq_r_token=f12d8baa95063cc9341d2a8ee5a78a45deefb9c0; Hm_lvt_1db88642e346389874251b5a1eded6e3=1758247622,1758265058,1758291885,1758980641; HMACCOUNT=184FA7E7147838B3; .thumbcache_f24b8bbe5a5934237bbc0eda20c1b6e7=GEF/cx00kxMXCqs58kwu08qLxljB/16JoBrmputnWbgjrZhh8AdSf68iBVp+h9EjFUc4ANkteyfQAwJ+957e6w%3D%3D; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1758980662; __utma=1.1154193993.1748934057.1754875149.1758980663.10; __utmc=1; __utmt=1; __utmb=1.2.10.1758980663" note="cookie" name="cookie" type="intput" />
|
||||
<item position="" bind="是否测试" value="否" note="是否测试" name="是否测试" type="intput" />
|
||||
<item position="" bind="测试长度" value="2" note="测试长度" name="测试长度" type="intput" />
|
||||
<item position="" bind="买入价格编码" value="4" note="买入价格编码" name="买入价格编码" type="intput" />
|
||||
<item position="" bind="卖出价格编码" value="6" note="卖出价格编码" name="卖出价格编码" type="intput" />
|
||||
<item position="" bind="买入黑名单" value="600031.SH,600111.SZ" note="买入黑名单" name="买入黑名单" type="intput" />
|
||||
<item position="" bind="卖出黑名单" value="600031.SH,600111.SZ" note="卖出黑名单" name="卖出黑名单" type="intput" />
|
||||
<item position="" bind="剔除代码" value="688,40" note="剔除代码" name="剔除代码" type="intput" />
|
||||
<item position="" bind="组合名称" value="西蒙斯测试1,西蒙斯测试2" note="组合名称" name="组合名称" type="intput" />
|
||||
<item position="" bind="组合代码" value="ZH3368671,ZH3310823" note="组合代码" name="组合代码" type="intput" />
|
||||
<item position="" bind="组合金额模式说明" value="总金额/自定义/比例" note="组合金额模式说明" name="组合金额模式说明" type="intput" />
|
||||
<item position="" bind="组合金额模式" value="自定义" note="组合金额模式" name="组合金额模式" type="intput" />
|
||||
<item position="" bind="组合比例" value="0.1,0.1" note="组合比例" name="组合比例" type="intput" />
|
||||
<item position="" bind="组合金额" value="50000,60000" note="组合金额" name="组合金额" type="intput" />
|
||||
<item position="" bind="不同组合间隔时间" value="1" note="不同组合间隔时间" name="不同组合间隔时间" type="intput" />
|
||||
<item position="" bind="不成交撤单时间" value="300" note="不成交撤单时间" name="不成交撤单时间" type="intput" />
|
||||
<item position="" bind="交易时间段" value="4" note="交易时间段" name="交易时间段" type="intput" />
|
||||
<item position="" bind="交易开始时间" value="9" note="交易开始时间" name="交易开始时间" type="intput" />
|
||||
<item position="" bind="交易结束时间" value="14" note="交易结束时间" name="交易结束时间" type="intput" />
|
||||
<item position="" bind="是否参加集合竞价" value="是" note="是否参加集合竞价" name="是否参加集合竞价" type="intput" />
|
||||
<item position="" bind="开始交易分钟" value="0" note="开始交易分钟" name="开始交易分钟" type="intput" />
|
||||
<item position="" bind="通知发送方式说明" value="QQ/企业微信/钉钉" note="通知发送方式说明" name="通知发送方式说明" type="intput" />
|
||||
<item position="" bind="通知发送方式" value="钉钉" note="通知发送方式" name="通知发送方式" type="intput" />
|
||||
<item position="" bind="发送QQ" value="1029762153@qq.com" note="发送QQ" name="发送QQ" type="intput" />
|
||||
<item position="" bind="接收QQ" value="1029762153@qq.com" note="接收QQ" name="接收QQ" type="intput" />
|
||||
<item position="" bind="QQ掩码" value="jjfgdhklgguebdje" note="QQ掩码" name="QQ掩码" type="intput" />
|
||||
<item position="" bind="企业微信token" value="1,1" note="企业微信token" name="企业微信token" type="intput" />
|
||||
<item position="" bind="钉钉token" value="1,1" note="钉钉token" name="钉钉token" type="intput" />
|
||||
</variable>
|
||||
</control>
|
||||
</TCStageLayout>
|
||||
@@ -0,0 +1,14 @@
|
||||
状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态,证券代码
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,11111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,11111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,11111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,11111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,111111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,111111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1111111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1111111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,11111111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,11111111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,111111111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,111111111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1111111111111112.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1111111111111112.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1.111111111111112e+16,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1.111111111111112e+16
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,,1732208241,10.5,10.59,long,128.31,2025-10-10,True,
|
||||
|
@@ -0,0 +1,155 @@
|
||||
'''
|
||||
索普聚宽交易系统
|
||||
作者:索普量化
|
||||
微信:xms_quants1
|
||||
原理替代,继承聚宽的交易函数类
|
||||
读取下单类的函数参数把交易数据发送到服务器
|
||||
把下面的全部源代码复制到聚宽策略的开头就可以
|
||||
实盘前先模拟盘测试一下数据
|
||||
把下面的内容全部复制到策略的开头就可以
|
||||
|
||||
'''
|
||||
import requests
|
||||
import json
|
||||
import pandas as pd
|
||||
from jqdata import *
|
||||
url='http://101.34.65.108'
|
||||
port=8888
|
||||
#自定义服务器编码
|
||||
url_code='63d85b6189e42cba63feea36381da615c31ad8e36ae420ed67f60f3598efc9ad'
|
||||
#记得把这个改成自己的一个策略一个,策略的名称找作者建立
|
||||
password='123456'
|
||||
class joinquant_trader:
|
||||
def __init__(self,url='http://124.220.32.224',
|
||||
port=8025,
|
||||
url_code='63d85b6189e42cba63feea36381da615c31ad8e36ae420ed67f60f3598efc9ad',
|
||||
password='123456'):
|
||||
'''
|
||||
获取服务器数据
|
||||
'''
|
||||
self.url=url
|
||||
self.port=port
|
||||
self.url_code=url_code
|
||||
self.password=password
|
||||
def get_user_data(self,data_type='用户信息'):
|
||||
'''
|
||||
获取使用的数据
|
||||
data_type='用户信息','实时数据',历史数据','清空实时数据','清空历史数据'
|
||||
'''
|
||||
url='{}:{}/_dash-update-component'.format(self.url,self.port)
|
||||
headers={'Content-Type':'application/json'}
|
||||
data={"output":"joinquant_trader_table.data@{}".format(self.url_code),
|
||||
"outputs":{"id":"joinquant_trader_table","property":"data@{}".format(self.url_code)},
|
||||
"inputs":[{"id":"joinquant_trader_password","property":"value","value":self.password},
|
||||
{"id":"joinquant_trader_data_type","property":"value","value":data_type},
|
||||
{"id":"joinquant_trader_text","property":"value","value":"\n {'状态': 'held', '订单添加时间': 'datetime.datetime(2024, 4, 23, 9, 30)', '买卖': 'False', '下单数量': '9400', '已经成交': '9400', '股票代码': '001.XSHE', '订单ID': '1732208241', '平均成交价格': '10.5', '持仓成本': '10.59', '多空': 'long', '交易费用': '128.31'}\n "},
|
||||
{"id":"joinquant_trader_run","property":"value","value":"运行"},
|
||||
{"id":"joinquant_trader_down_data","property":"value","value":"不下载数据"}],
|
||||
"changedPropIds":["joinquant_trader_run.value"],"parsedChangedPropsIds":["joinquant_trader_run.value"]}
|
||||
res=requests.post(url=url,data=json.dumps(data),headers=headers)
|
||||
text=res.json()
|
||||
df=pd.DataFrame(text['response']['joinquant_trader_table']['data'])
|
||||
return df
|
||||
def send_order(self,result):
|
||||
'''
|
||||
发送交易数据
|
||||
'''
|
||||
url='{}:{}/_dash-update-component'.format(self.url,self.port)
|
||||
headers={'Content-Type':'application/json'}
|
||||
data={"output":"joinquant_trader_table.data@{}".format(self.url_code),
|
||||
"outputs":{"id":"joinquant_trader_table","property":"data@{}".format(self.url_code)},
|
||||
"inputs":[{"id":"joinquant_trader_password","property":"value","value":self.password},
|
||||
{"id":"joinquant_trader_data_type","property":"value","value":'发送信号'},
|
||||
{"id":"joinquant_trader_text","property":"value","value":result},
|
||||
{"id":"joinquant_trader_run","property":"value","value":"运行"},
|
||||
{"id":"joinquant_trader_down_data","property":"value","value":"不下载数据"}],
|
||||
"changedPropIds":["joinquant_trader_run.value"],"parsedChangedPropsIds":["joinquant_trader_run.value"]}
|
||||
res=requests.post(url=url,data=json.dumps(data),headers=headers)
|
||||
text=res.json()
|
||||
df=pd.DataFrame(text['response']['joinquant_trader_table']['data'])
|
||||
return df
|
||||
#继承类
|
||||
xg_data=joinquant_trader(url=url,port=port,password=password,)
|
||||
def send_order(result):
|
||||
'''
|
||||
发送函数
|
||||
status: 状态, 一个OrderStatus值
|
||||
add_time: 订单添加时间, [datetime.datetime]对象
|
||||
is_buy: bool值, 买还是卖,对于期货:
|
||||
开多/平空 -> 买
|
||||
开空/平多 -> 卖
|
||||
amount: 下单数量, 不管是买还是卖, 都是正数
|
||||
filled: 已经成交的股票数量, 正数
|
||||
security: 股票代码
|
||||
order_id: 订单ID
|
||||
price: 平均成交价格, 已经成交的股票的平均成交价格(一个订单可能分多次成交)
|
||||
avg_cost: 卖出时表示下卖单前的此股票的持仓成本, 用来计算此次卖出的收益. 买入时表示此次买入的均价(等同于price).
|
||||
side: 多/空,'long'/'short'
|
||||
action: 开/平, 'open'/'close'
|
||||
commission交易费用(佣金、税费等)
|
||||
'''
|
||||
data={}
|
||||
data['状态']=str(result.status)
|
||||
data['订单添加时间']=str(result.add_time)
|
||||
data['买卖']=str(result.is_buy)
|
||||
data['下单数量']=str(result.amount)
|
||||
data['已经成交']=str(result.filled)
|
||||
data['股票代码']=str(result.security)
|
||||
data['订单ID']=str(result.order_id)
|
||||
data['平均成交价格']=str(result.price)
|
||||
data['持仓成本']=str(result.avg_cost)
|
||||
data['多空']=str(result.side)
|
||||
data['交易费用']=str(result.commission)
|
||||
result=str(data)
|
||||
xg_data.send_order(result)
|
||||
return data
|
||||
def xg_order(func):
|
||||
'''
|
||||
继承order对象 数据交易函数
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
def xg_order_target(func):
|
||||
'''
|
||||
继承order_target对象 百分比
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
|
||||
def xg_order_value(func):
|
||||
'''
|
||||
继承order_value对象 数量
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
def xg_order_target_value(func):
|
||||
'''
|
||||
继承order_target_value对象 数量
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
order = xg_order(order)
|
||||
order_target = xg_order_target(order_target)
|
||||
order_value = xg_order_value(order_value)
|
||||
order_target_value = xg_order_target_value(order_target_value)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
py 索普量化聚宽交易服务器.py
|
||||
@@ -0,0 +1,23 @@
|
||||
py -m pip install pip==23.2
|
||||
py -m pip install akshare
|
||||
py -m pip install easyquotation
|
||||
py -m pip install yagmail
|
||||
py -m pip install pywinauto==0.6.6
|
||||
py -m pip install matplotlib
|
||||
py -m pip install mplfinance
|
||||
py -m pip install finta
|
||||
py -m pip install pyinstaller
|
||||
py -m pip install pyautogui
|
||||
py -m pip install schedule
|
||||
py -m pip install pywin32
|
||||
py -m pip install pyexecjs
|
||||
py -m pip install pytdx
|
||||
py -m pip install pydash
|
||||
py -m pip install empyrical
|
||||
py -m pip install pywencai
|
||||
py -m pip install pandas==1.5.3
|
||||
py -m pip install numpy==1.26.2
|
||||
py -m pip install scipy==1.11.4
|
||||
py -m pip install ffn
|
||||
py -m pip install quantstats==0.0.60
|
||||
py -m pip install dash
|
||||
@@ -0,0 +1,23 @@
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip==23.2
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple akshare
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple easyquotation
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple yagmail
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywinauto==0.6.6
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mplfinance
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple finta
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyautogui
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple schedule
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywin32
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyexecjs
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytdx
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pydash
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple empyrical
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pywencai
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas==1.5.3
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy==1.26.2
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scipy==1.11.4
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ffn
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple quantstats==0.0.60
|
||||
py -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple dash
|
||||
@@ -0,0 +1,23 @@
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pip==23.2
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ akshare
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ easyquotation
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ yagmail
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pywinauto==0.6.6
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ matplotlib
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ mplfinance
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ finta
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pyinstaller
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pyautogui
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ schedule
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pywin32
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pyexecjs
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pytdx
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pydash
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ empyrical
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pywencai
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ pandas==1.5.3
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ numpy==1.26.2
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ scipy==1.11.4
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ ffn
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ quantstats==0.0.60
|
||||
py -m pip install -i http://mirrors.aliyun.com/pypi/simple/ dash
|
||||
@@ -0,0 +1,14 @@
|
||||
状态,订单添加时间,买卖,下单数量,已经成交,股票代码,订单ID,平均成交价格,持仓成本,多空,交易费用,交易日,数据状态,证券代码
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,11111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,11111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,11111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,11111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,111111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,111111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1111111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1111111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,11111111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,11111111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,111111111111111.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,111111111111111.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1111111111111112.0,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1111111111111112.0
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,1.111111111111112e+16,1732208241,10.5,10.59,long,128.31,2025-10-10,True,1.111111111111112e+16
|
||||
held,"datetime.datetime(2024, 4, 23, 9, 30)",False,9400,9400,,1732208241,10.5,10.59,long,128.31,2025-10-10,True,
|
||||
|
Binary file not shown.
@@ -0,0 +1,414 @@
|
||||
'''
|
||||
索普量化聚宽交易服务器2.0
|
||||
作者索普量化
|
||||
微信:xms_quants1
|
||||
'''
|
||||
from dash import html, dcc, Input, Output, dash_table, dash
|
||||
import pandas as pd
|
||||
import os
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
import logging
|
||||
from typing import Dict, Any, Optional
|
||||
|
||||
# 配置日志
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class TradingDataManager:
|
||||
"""交易数据管理类"""
|
||||
|
||||
def __init__(self, base_path: str):
|
||||
self.base_path = Path(base_path)
|
||||
self.realtime_data_dir = self.base_path / "data" / "实时数据"
|
||||
self.historical_data_dir = self.base_path / "实时数据" / "历史数据"
|
||||
self.auth_file = self.base_path / "授权表" / "授权表.xlsx"
|
||||
|
||||
# 创建必要的目录
|
||||
self.realtime_data_dir.mkdir(parents=True, exist_ok=True)
|
||||
self.historical_data_dir.mkdir(parents=True, exist_ok=True)
|
||||
self.auth_file.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
def get_user_file_path(self, user_id: str, data_type: str) -> Path:
|
||||
"""获取用户数据文件路径"""
|
||||
if data_type == "实时数据":
|
||||
return self.realtime_data_dir / f"{user_id}实时数据.csv"
|
||||
elif data_type == "历史数据":
|
||||
return self.historical_data_dir / f"{user_id}历史数据.csv"
|
||||
else:
|
||||
raise ValueError(f"不支持的数据类型: {data_type}")
|
||||
|
||||
def load_user_data(self, user_id: str, data_type: str) -> pd.DataFrame:
|
||||
"""加载用户数据"""
|
||||
file_path = self.get_user_file_path(user_id, data_type)
|
||||
try:
|
||||
if file_path.exists():
|
||||
df = pd.read_csv(file_path)
|
||||
# 清理可能的索引列
|
||||
df = df.drop(columns=['Unnamed: 0'], errors='ignore')
|
||||
return df
|
||||
return pd.DataFrame()
|
||||
except Exception as e:
|
||||
logger.error(f"加载用户数据失败: {e}")
|
||||
return pd.DataFrame()
|
||||
|
||||
def save_user_data(self, user_id: str, data_type: str, df: pd.DataFrame):
|
||||
"""保存用户数据"""
|
||||
file_path = self.get_user_file_path(user_id, data_type)
|
||||
try:
|
||||
df.to_csv(file_path, index=False)
|
||||
except Exception as e:
|
||||
logger.error(f"保存用户数据失败: {e}")
|
||||
|
||||
def load_auth_data(self) -> pd.DataFrame:
|
||||
"""加载授权数据"""
|
||||
try:
|
||||
if self.auth_file.exists():
|
||||
df = pd.read_excel(self.auth_file, dtype='object')
|
||||
df = df.drop(columns=['Unnamed: 0'], errors='ignore')
|
||||
return df
|
||||
return pd.DataFrame(columns=['用户名称', '到期时间'])
|
||||
except Exception as e:
|
||||
logger.error(f"加载授权数据失败: {e}")
|
||||
return pd.DataFrame(columns=['用户名称', '到期时间'])
|
||||
|
||||
class AuthManager:
|
||||
"""授权管理类"""
|
||||
|
||||
@staticmethod
|
||||
def calculate_days_remaining(start_date: str, end_date: str) -> int:
|
||||
"""计算剩余天数"""
|
||||
try:
|
||||
start = datetime.strptime(start_date, '%Y-%m-%d')
|
||||
end = datetime.strptime(end_date, '%Y-%m-%d')
|
||||
return (end - start).days
|
||||
except Exception as e:
|
||||
logger.error(f"计算天数失败: {e}")
|
||||
return -1
|
||||
|
||||
@staticmethod
|
||||
def validate_user(auth_df: pd.DataFrame, user_id: str) -> Dict[str, Any]:
|
||||
"""验证用户授权"""
|
||||
try:
|
||||
auth_df['用户名称'] = auth_df['用户名称'].astype(str)
|
||||
auth_df['到期时间'] = auth_df['到期时间'].astype(str)
|
||||
|
||||
if user_id not in auth_df['用户名称'].values:
|
||||
return {"valid": False, "message": "用户没有注册请注册/联系作者微信15117320079"}
|
||||
|
||||
user_data = auth_df[auth_df['用户名称'] == user_id].iloc[0]
|
||||
end_date = str(user_data['到期时间'])[:10]
|
||||
current_date = datetime.now().strftime('%Y-%m-%d')
|
||||
|
||||
days_remaining = AuthManager.calculate_days_remaining(current_date, end_date)
|
||||
|
||||
if days_remaining >= 1:
|
||||
return {
|
||||
"valid": True,
|
||||
"days_remaining": days_remaining,
|
||||
"user_data": user_data
|
||||
}
|
||||
else:
|
||||
return {"valid": False, "message": "授权码到期找作者获取"}
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"用户验证失败: {e}")
|
||||
return {"valid": False, "message": "授权验证失败"}
|
||||
|
||||
class DataProcessor:
|
||||
"""数据处理类"""
|
||||
|
||||
@staticmethod
|
||||
def parse_signal_text(text: str) -> Dict[str, Any]:
|
||||
"""解析信号文本"""
|
||||
try:
|
||||
cleaned_text = '\n'.join([
|
||||
line.strip().lstrip()
|
||||
for line in text.split('\n')
|
||||
if line.strip()
|
||||
])
|
||||
return eval(cleaned_text)
|
||||
except Exception as e:
|
||||
logger.error(f"解析信号文本失败: {e}")
|
||||
return {}
|
||||
|
||||
@staticmethod
|
||||
def process_stock_data(df: pd.DataFrame) -> pd.DataFrame:
|
||||
"""处理股票数据"""
|
||||
if df.empty:
|
||||
return df
|
||||
|
||||
# 清理股票代码
|
||||
if '股票代码' in df.columns:
|
||||
df['证券代码'] = df['股票代码'].apply(
|
||||
lambda x: str(x).split('.XSHE')[0].split('.XSHG')[0]
|
||||
)
|
||||
df['数据长度'] = df['证券代码'].apply(lambda x: len(str(x)))
|
||||
df = df[df['数据长度'] >= 6]
|
||||
df = df.drop(columns=['数据长度'], errors='ignore')
|
||||
|
||||
return df
|
||||
|
||||
@staticmethod
|
||||
def create_signal_data(signal_dict: Dict[str, Any]) -> pd.DataFrame:
|
||||
"""创建信号数据"""
|
||||
return pd.DataFrame([signal_dict])
|
||||
|
||||
class TradingApp:
|
||||
"""交易应用主类"""
|
||||
|
||||
def __init__(self):
|
||||
self.path = os.path.dirname(os.path.abspath(__file__))
|
||||
self.data_manager = TradingDataManager(self.path)
|
||||
self.auth_manager = AuthManager()
|
||||
self.data_processor = DataProcessor()
|
||||
|
||||
self.select_options = [
|
||||
'用户信息', '发送信号', '实时数据', '历史数据',
|
||||
'清空实时数据', '清空历史数据'
|
||||
]
|
||||
|
||||
self.app = dash.Dash(__name__)
|
||||
self.setup_layout()
|
||||
self.setup_callbacks()
|
||||
|
||||
def setup_layout(self):
|
||||
"""设置应用布局"""
|
||||
self.app.layout = html.Div([
|
||||
html.H1([html.A('索普聚宽交易使用教程2.0',href='https://gitee.com/li-xingguo11111/big_qmt_joinquant_trader',style={'textAlign': 'center'}),]),
|
||||
html.H3('索普量化,找作者获取授权码 微信xms_quants1,交易函数数据函数分离,平台只是一个信号的中转平台,聚宽的策略仔细研究避免未来函数,投资有风险,平台不做投资参考',style={'textAlign': 'center'}),
|
||||
|
||||
self._create_control_table(),
|
||||
self._create_text_area(),
|
||||
html.H3('数据展示'),
|
||||
self._create_data_table(),
|
||||
dcc.Download(id='joinquant_trader_table_down')
|
||||
])
|
||||
|
||||
def _create_control_table(self):
|
||||
"""创建控制表格"""
|
||||
return html.Table([
|
||||
html.Tr([
|
||||
html.Td('用户名称', style={'border': '1px solid', 'width': '200px'}),
|
||||
html.Td('数据类型', style={'border': '1px solid', 'width': '200px'}),
|
||||
html.Td('运行程序', style={'border': '1px solid', 'width': '200px'}),
|
||||
html.Td('下载数据', style={'border': '1px solid', 'width': '200px'})
|
||||
]),
|
||||
html.Tr([
|
||||
html.Td(
|
||||
dcc.Input(value='123456', id='joinquant_trader_password'),
|
||||
style={'border': '1px solid', 'width': '200px'}
|
||||
),
|
||||
html.Td(
|
||||
dcc.Dropdown(
|
||||
options=self.select_options,
|
||||
value='用户信息',
|
||||
id='joinquant_trader_data_type'
|
||||
),
|
||||
style={'border': '1px solid', 'width': '200px'}
|
||||
),
|
||||
html.Td(
|
||||
dcc.Dropdown(
|
||||
options=['运行', '不运行'],
|
||||
id='joinquant_trader_run',
|
||||
value='不运行'
|
||||
),
|
||||
style={'border': '1px solid', 'width': '200px'}
|
||||
),
|
||||
html.Td(
|
||||
dcc.RadioItems(
|
||||
options={'下载数据': "下载数据", "不下载数据": "不下载数据"},
|
||||
id='joinquant_trader_down_data',
|
||||
value='不下载数据'
|
||||
),
|
||||
style={'border': '1px solid', 'width': '200px'}
|
||||
)
|
||||
]),
|
||||
])
|
||||
|
||||
def _create_text_area(self):
|
||||
"""创建文本区域"""
|
||||
return dcc.Textarea(
|
||||
value="""
|
||||
{'状态': 'held', '订单添加时间': 'datetime.datetime(2024, 4, 23, 9, 30)', '买卖': 'False', '下单数量': '9400', '已经成交': '9400', '股票代码': '', '订单ID': '1732208241', '平均成交价格': '10.5', '持仓成本': '10.59', '多空': 'long', '交易费用': '128.31'}
|
||||
""",
|
||||
id='joinquant_trader_text',
|
||||
style={'width': '80%', 'height': 200, "text-align": "left"}
|
||||
)
|
||||
|
||||
def _create_data_table(self):
|
||||
"""创建数据表格"""
|
||||
return dash_table.DataTable(
|
||||
id='joinquant_trader_table',
|
||||
page_size=10,
|
||||
style_table={'font-size': 15},
|
||||
sort_action='native'
|
||||
)
|
||||
|
||||
def setup_callbacks(self):
|
||||
"""设置回调函数"""
|
||||
# 主数据回调
|
||||
@self.app.callback(
|
||||
Output('joinquant_trader_table', 'data', allow_duplicate=True),
|
||||
Input('joinquant_trader_password', 'value'),
|
||||
Input('joinquant_trader_data_type', 'value'),
|
||||
Input('joinquant_trader_text', 'value'),
|
||||
Input('joinquant_trader_run', 'value'),
|
||||
Input('joinquant_trader_down_data', 'value'),
|
||||
prevent_initial_call=True
|
||||
)
|
||||
def update_table(password, data_type, text, run, down_data):
|
||||
return self._handle_data_update(password, data_type, text, run, down_data)
|
||||
|
||||
# 下载回调
|
||||
@self.app.callback(
|
||||
Output('joinquant_trader_table_down', 'data', allow_duplicate=True),
|
||||
Input('joinquant_trader_password', 'value'),
|
||||
Input('joinquant_trader_data_type', 'value'),
|
||||
Input('joinquant_trader_text', 'value'),
|
||||
Input('joinquant_trader_run', 'value'),
|
||||
Input('joinquant_trader_down_data', 'value'),
|
||||
prevent_initial_call=True
|
||||
)
|
||||
def download_data(password, data_type, text, run, down_data):
|
||||
return self._handle_download(password, data_type, text, run, down_data)
|
||||
|
||||
def _handle_data_update(self, password: str, data_type: str, text: str,
|
||||
run: str, down_data: str) -> list:
|
||||
"""处理数据更新"""
|
||||
if run != '运行':
|
||||
return self._create_message_df("没有点击运行选择", False).to_dict('records')
|
||||
|
||||
auth_df = self.data_manager.load_auth_data()
|
||||
auth_result = self.auth_manager.validate_user(auth_df, str(password))
|
||||
|
||||
if not auth_result["valid"]:
|
||||
return self._create_message_df(auth_result["message"], False).to_dict('records')
|
||||
|
||||
return self._process_data_type(
|
||||
password, data_type, text, auth_result
|
||||
).to_dict('records')
|
||||
|
||||
def _process_data_type(self, user_id: str, data_type: str, text: str,
|
||||
auth_result: Dict[str, Any]) -> pd.DataFrame:
|
||||
"""处理不同类型的数据请求"""
|
||||
current_date = datetime.now().strftime('%Y-%m-%d')
|
||||
|
||||
if data_type == '用户信息':
|
||||
return self._handle_user_info(auth_result)
|
||||
elif data_type == '发送信号':
|
||||
return self._handle_send_signal(user_id, text, current_date)
|
||||
elif data_type in ['实时数据', '历史数据']:
|
||||
return self._handle_data_query(user_id, data_type)
|
||||
elif data_type in ['清空实时数据', '清空历史数据']:
|
||||
return self._handle_clear_data(user_id, data_type)
|
||||
else:
|
||||
return self._create_message_df("未知的数据类型", False)
|
||||
|
||||
def _handle_user_info(self, auth_result: Dict[str, Any]) -> pd.DataFrame:
|
||||
"""处理用户信息请求"""
|
||||
user_data = auth_result["user_data"].copy()
|
||||
user_data['到期天数'] = auth_result["days_remaining"]
|
||||
user_data['信息推送'] = '授权码正常'
|
||||
user_data['数据状态'] = True
|
||||
return pd.DataFrame([user_data])
|
||||
|
||||
def _handle_send_signal(self, user_id: str, text: str, current_date: str) -> pd.DataFrame:
|
||||
"""处理发送信号"""
|
||||
signal_data = self.data_processor.parse_signal_text(text)
|
||||
if not signal_data:
|
||||
return self._create_message_df("信号数据解析失败", False)
|
||||
|
||||
# 处理实时数据
|
||||
realtime_df = self.data_manager.load_user_data(user_id, "实时数据")
|
||||
realtime_df = self.data_processor.process_stock_data(realtime_df)
|
||||
|
||||
# 处理历史数据
|
||||
historical_df = self.data_manager.load_user_data(user_id, "历史数据")
|
||||
historical_df = self.data_processor.process_stock_data(historical_df)
|
||||
|
||||
# 创建新信号数据
|
||||
new_signal = self.data_processor.create_signal_data(signal_data)
|
||||
new_signal['交易日'] = current_date
|
||||
new_signal['数据状态'] = True
|
||||
|
||||
# 合并数据并去重
|
||||
realtime_updated = self._merge_and_deduplicate(realtime_df, new_signal, current_date)
|
||||
historical_updated = self._merge_and_deduplicate(historical_df, new_signal, current_date)
|
||||
|
||||
# 保存更新后的数据
|
||||
self.data_manager.save_user_data(user_id, "实时数据", realtime_updated)
|
||||
self.data_manager.save_user_data(user_id, "历史数据", historical_updated)
|
||||
|
||||
return new_signal
|
||||
|
||||
def _handle_data_query(self, user_id: str, data_type: str) -> pd.DataFrame:
|
||||
"""处理数据查询"""
|
||||
df = self.data_manager.load_user_data(user_id, data_type)
|
||||
df = self.data_processor.process_stock_data(df)
|
||||
return df if not df.empty else self._create_message_df(f"{data_type}为空", True)
|
||||
|
||||
def _handle_clear_data(self, user_id: str, data_type: str) -> pd.DataFrame:
|
||||
"""处理清空数据"""
|
||||
clear_type = "实时数据" if "实时" in data_type else "历史数据"
|
||||
self.data_manager.save_user_data(user_id, clear_type, pd.DataFrame())
|
||||
return self._create_message_df(f"{clear_type}已清空", True)
|
||||
|
||||
def _merge_and_deduplicate(self, existing_df: pd.DataFrame,
|
||||
new_df: pd.DataFrame, current_date: str) -> pd.DataFrame:
|
||||
"""合并数据并去重"""
|
||||
merged_df = pd.concat([existing_df, new_df], ignore_index=True)
|
||||
merged_df['交易日'] = current_date
|
||||
|
||||
# 去重逻辑
|
||||
dup_cols = ['股票代码', '下单数量', '买卖', '多空']
|
||||
if all(col in merged_df.columns for col in dup_cols):
|
||||
merged_df = merged_df.drop_duplicates(subset=dup_cols, keep='last')
|
||||
|
||||
return merged_df
|
||||
|
||||
def _handle_download(self, password: str, data_type: str, text: str,
|
||||
run: str, down_data: str):
|
||||
"""处理数据下载"""
|
||||
if down_data != '下载数据':
|
||||
return None
|
||||
|
||||
if data_type not in ['实时数据', '历史数据']:
|
||||
return None
|
||||
|
||||
auth_df = self.data_manager.load_auth_data()
|
||||
auth_result = self.auth_manager.validate_user(auth_df, str(password))
|
||||
|
||||
if not auth_result["valid"]:
|
||||
return None
|
||||
|
||||
df = self.data_manager.load_user_data(str(password), data_type)
|
||||
current_date = datetime.now().strftime('%Y-%m-%d')
|
||||
|
||||
return dcc.send_data_frame(
|
||||
df.to_excel,
|
||||
filename=f'{current_date}{data_type}.xlsx'
|
||||
)
|
||||
|
||||
@staticmethod
|
||||
def _create_message_df(message: str, status: bool) -> pd.DataFrame:
|
||||
"""创建消息DataFrame"""
|
||||
return pd.DataFrame({'信息提示': [message], '数据状态': [status]})
|
||||
|
||||
def run(self, host: str = '127.0.0.1', port: str = '8025'):
|
||||
"""运行应用"""
|
||||
try:
|
||||
self.app.run(debug=True, host=host, port=port)
|
||||
except Exception as e:
|
||||
logger.error(f"启动应用失败: {e}")
|
||||
# 尝试备用端口
|
||||
try:
|
||||
self.app.run_server(debug=True, host=host, port=port)
|
||||
except Exception as e:
|
||||
logger.error(f"备用端口启动也失败: {e}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
host = '127.0.0.1'
|
||||
port = '8025'
|
||||
app = TradingApp()
|
||||
app.run(host=host,port=port)
|
||||
@@ -0,0 +1,476 @@
|
||||
from jqdata import *
|
||||
from jqfactor import *
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
from datetime import time,date
|
||||
from jqdata import finance
|
||||
'''
|
||||
索普聚宽交易系统
|
||||
作者:索普量化
|
||||
微信:xms_quants1
|
||||
原理替代,继承聚宽的交易函数类
|
||||
读取下单类的函数参数把交易数据发送到服务器
|
||||
把下面的全部源代码复制到聚宽策略的开头就可以
|
||||
实盘前先模拟盘测试一下数据
|
||||
把下面的内容全部复制到策略的开头就可以
|
||||
|
||||
'''
|
||||
import requests
|
||||
import json
|
||||
import pandas as pd
|
||||
from jqdata import *
|
||||
url='http://101.34.65.108'
|
||||
port=8888
|
||||
#自定义服务器编码
|
||||
url_code='63d85b6189e42cba63feea36381da615c31ad8e36ae420ed67f60f3598efc9ad'
|
||||
#记得把这个改成自己的一个策略一个,策略的名称找作者建立
|
||||
password='国九条后中小板微盘小改'
|
||||
class joinquant_trader:
|
||||
def __init__(self,url='http://124.220.32.224',
|
||||
port=8025,
|
||||
url_code='63d85b6189e42cba63feea36381da615c31ad8e36ae420ed67f60f3598efc9ad',
|
||||
password='123456'):
|
||||
'''
|
||||
获取服务器数据
|
||||
'''
|
||||
self.url=url
|
||||
self.port=port
|
||||
self.url_code=url_code
|
||||
self.password=password
|
||||
def get_user_data(self,data_type='用户信息'):
|
||||
'''
|
||||
获取使用的数据
|
||||
data_type='用户信息','实时数据',历史数据','清空实时数据','清空历史数据'
|
||||
'''
|
||||
url='{}:{}/_dash-update-component'.format(self.url,self.port)
|
||||
headers={'Content-Type':'application/json'}
|
||||
data={"output":"joinquant_trader_table.data@{}".format(self.url_code),
|
||||
"outputs":{"id":"joinquant_trader_table","property":"data@{}".format(self.url_code)},
|
||||
"inputs":[{"id":"joinquant_trader_password","property":"value","value":self.password},
|
||||
{"id":"joinquant_trader_data_type","property":"value","value":data_type},
|
||||
{"id":"joinquant_trader_text","property":"value","value":"\n {'状态': 'held', '订单添加时间': 'datetime.datetime(2024, 4, 23, 9, 30)', '买卖': 'False', '下单数量': '9400', '已经成交': '9400', '股票代码': '001.XSHE', '订单ID': '1732208241', '平均成交价格': '10.5', '持仓成本': '10.59', '多空': 'long', '交易费用': '128.31'}\n "},
|
||||
{"id":"joinquant_trader_run","property":"value","value":"运行"},
|
||||
{"id":"joinquant_trader_down_data","property":"value","value":"不下载数据"}],
|
||||
"changedPropIds":["joinquant_trader_run.value"],"parsedChangedPropsIds":["joinquant_trader_run.value"]}
|
||||
res=requests.post(url=url,data=json.dumps(data),headers=headers)
|
||||
text=res.json()
|
||||
df=pd.DataFrame(text['response']['joinquant_trader_table']['data'])
|
||||
return df
|
||||
def send_order(self,result):
|
||||
'''
|
||||
发送交易数据
|
||||
'''
|
||||
url='{}:{}/_dash-update-component'.format(self.url,self.port)
|
||||
headers={'Content-Type':'application/json'}
|
||||
data={"output":"joinquant_trader_table.data@{}".format(self.url_code),
|
||||
"outputs":{"id":"joinquant_trader_table","property":"data@{}".format(self.url_code)},
|
||||
"inputs":[{"id":"joinquant_trader_password","property":"value","value":self.password},
|
||||
{"id":"joinquant_trader_data_type","property":"value","value":'发送信号'},
|
||||
{"id":"joinquant_trader_text","property":"value","value":result},
|
||||
{"id":"joinquant_trader_run","property":"value","value":"运行"},
|
||||
{"id":"joinquant_trader_down_data","property":"value","value":"不下载数据"}],
|
||||
"changedPropIds":["joinquant_trader_run.value"],"parsedChangedPropsIds":["joinquant_trader_run.value"]}
|
||||
res=requests.post(url=url,data=json.dumps(data),headers=headers)
|
||||
text=res.json()
|
||||
df=pd.DataFrame(text['response']['joinquant_trader_table']['data'])
|
||||
return df
|
||||
#继承类
|
||||
xg_data=joinquant_trader(url=url,port=port,password=password,)
|
||||
def send_order(result):
|
||||
'''
|
||||
发送函数
|
||||
status: 状态, 一个OrderStatus值
|
||||
add_time: 订单添加时间, [datetime.datetime]对象
|
||||
is_buy: bool值, 买还是卖,对于期货:
|
||||
开多/平空 -> 买
|
||||
开空/平多 -> 卖
|
||||
amount: 下单数量, 不管是买还是卖, 都是正数
|
||||
filled: 已经成交的股票数量, 正数
|
||||
security: 股票代码
|
||||
order_id: 订单ID
|
||||
price: 平均成交价格, 已经成交的股票的平均成交价格(一个订单可能分多次成交)
|
||||
avg_cost: 卖出时表示下卖单前的此股票的持仓成本, 用来计算此次卖出的收益. 买入时表示此次买入的均价(等同于price).
|
||||
side: 多/空,'long'/'short'
|
||||
action: 开/平, 'open'/'close'
|
||||
commission交易费用(佣金、税费等)
|
||||
'''
|
||||
data={}
|
||||
data['状态']=str(result.status)
|
||||
data['订单添加时间']=str(result.add_time)
|
||||
data['买卖']=str(result.is_buy)
|
||||
data['下单数量']=str(result.amount)
|
||||
data['已经成交']=str(result.filled)
|
||||
data['股票代码']=str(result.security)
|
||||
data['订单ID']=str(result.order_id)
|
||||
data['平均成交价格']=str(result.price)
|
||||
data['持仓成本']=str(result.avg_cost)
|
||||
data['多空']=str(result.side)
|
||||
data['交易费用']=str(result.commission)
|
||||
result=str(data)
|
||||
xg_data.send_order(result)
|
||||
return data
|
||||
def xg_order(func):
|
||||
'''
|
||||
继承order对象 数据交易函数
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
def xg_order_target(func):
|
||||
'''
|
||||
继承order_target对象 百分比
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
|
||||
def xg_order_value(func):
|
||||
'''
|
||||
继承order_value对象 数量
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
def xg_order_target_value(func):
|
||||
'''
|
||||
继承order_target_value对象 数量
|
||||
'''
|
||||
def wrapper(*args, **kwargs):
|
||||
result = func(*args, **kwargs)
|
||||
if result == None:
|
||||
return
|
||||
send_order(result)
|
||||
return result
|
||||
return wrapper
|
||||
order = xg_order(order)
|
||||
order_target = xg_order_target(order_target)
|
||||
order_value = xg_order_value(order_value)
|
||||
order_target_value = xg_order_target_value(order_target_value)
|
||||
|
||||
|
||||
#初始化函数
|
||||
def initialize(context):
|
||||
# 开启防未来函数
|
||||
set_option('avoid_future_data', True)
|
||||
# 成交量设置
|
||||
#set_option('order_volume_ratio', 0.10)
|
||||
# 设定基准
|
||||
set_benchmark('399101.XSHE')
|
||||
# 用真实价格交易
|
||||
set_option('use_real_price', True)
|
||||
# 将滑点设置为0
|
||||
set_slippage(FixedSlippage(3/10000))
|
||||
# 设置交易成本万分之三,不同滑点影响可在归因分析中查看
|
||||
set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=2.5/10000, close_commission=2.5/10000, close_today_commission=0, min_commission=5),type='stock')
|
||||
# 过滤order中低于error级别的日志
|
||||
log.set_level('order', 'error')
|
||||
log.set_level('system', 'error')
|
||||
log.set_level('strategy', 'debug')
|
||||
#初始化全局变量 bool
|
||||
g.trading_signal = True # 是否为可交易日
|
||||
g.run_stoploss = True # 是否进行止损
|
||||
g.filter_audit = False # 是否筛选审计意见
|
||||
g.adjust_num = True # 是否调整持仓数量
|
||||
#全局变量list
|
||||
g.hold_list = [] #当前持仓的全部股票
|
||||
g.yesterday_HL_list = [] #记录持仓中昨日涨停的股票
|
||||
g.target_list = []
|
||||
g.pass_months = [1, 4] # 空仓的月份
|
||||
g.limitup_stocks = [] # 记录涨停的股票避免再次买入
|
||||
#全局变量float/str
|
||||
g.min_mv = 10 # 股票最小市值要求
|
||||
g.max_mv = 100 # 股票最大市值要求
|
||||
g.stock_num = 4 # 持股数量
|
||||
|
||||
g.stoploss_list = [] # 止损卖出列表
|
||||
g.other_sale = [] # 其他卖出列表
|
||||
g.stoploss_strategy = 3 # 1为止损线止损,2为市场趋势止损, 3为联合1、2策略
|
||||
g.stoploss_limit = 0.09 # 止损线
|
||||
g.stoploss_market = 0.05 # 市场趋势止损参数
|
||||
g.highest = 50 # 股票单价上限设置
|
||||
g.money_etf = '511880.XSHG' # 空仓月份持有银华日利ETF
|
||||
# 设置交易运行时间
|
||||
run_daily(prepare_stock_list, '9:05')
|
||||
run_daily(trade_afternoon, time='14:00', reference_security='399101.XSHE') #检查持仓中的涨停股是否需要卖出
|
||||
run_daily(stop_loss, time='10:00') # 止损函数
|
||||
run_daily(close_account, '14:50')
|
||||
run_weekly(weekly_adjustment,2,'10:00')
|
||||
#run_weekly(print_position_info, 5, time='15:10', reference_security='000300.XSHG')
|
||||
|
||||
#1-1 准备股票池
|
||||
def prepare_stock_list(context):
|
||||
#获取已持有列表
|
||||
g.limitup_stocks = []
|
||||
g.hold_list = list(context.portfolio.positions)
|
||||
#获取昨日涨停列表
|
||||
if g.hold_list:
|
||||
df = get_price(g.hold_list, end_date=context.previous_date, frequency='daily', fields=['close','high_limit','low_limit'], count=1, panel=False, fill_paused=False)
|
||||
df = df[df['close'] == df['high_limit']]
|
||||
g.yesterday_HL_list = df['code'].tolist()
|
||||
else:
|
||||
g.yesterday_HL_list = []
|
||||
#判断今天是否为账户资金再平衡的日期
|
||||
g.trading_signal = today_is_between(context)
|
||||
|
||||
#1-2 选股模块
|
||||
def get_stock_list(context):
|
||||
final_list = []
|
||||
MKT_index = '399101.XSHE'
|
||||
initial_list = filter_stocks(context, get_index_stocks(MKT_index))
|
||||
# 国九更新:过滤近一年净利润为负且营业收入小于1亿的
|
||||
# 国九更新:过滤近一年期末净资产为负的 (经查询没有为负数的,所以直接pass这条)
|
||||
# 国九更新:过滤近一年审计建议无法出具或者为负面建议的 (经过净利润等筛选,审计意见几乎不会存在异常)
|
||||
q = query(
|
||||
valuation.code,
|
||||
).filter(
|
||||
valuation.code.in_(initial_list),
|
||||
valuation.market_cap.between(g.min_mv,g.max_mv), # 总市值 circulating_market_cap/market_cap 单位:亿元
|
||||
income.np_parent_company_owners > 0, # 归属于母公司所有者的净利润(元)
|
||||
income.net_profit > 0, # 净利润(元)
|
||||
income.operating_revenue > 1e8 # 营业收入 (元)
|
||||
).order_by(valuation.market_cap.asc()).limit(g.stock_num*3)
|
||||
df = get_fundamentals(q)
|
||||
# 如果筛选审计意见会大幅度增加回测时长,实测增加此项筛选不影响选股
|
||||
if g.filter_audit:
|
||||
before_audit_filter = len(df)
|
||||
df['audit'] = df['code'].apply(lambda x: filter_audit(context, x))
|
||||
df_audit = df[df['audit'] == True]
|
||||
log.info('去除掉了存在审计问题的股票{}只'.format(len(df)-before_audit_filter))
|
||||
final_list = df['code'].tolist()
|
||||
|
||||
if final_list:
|
||||
last_prices = history(1, unit='1d', field='close', security_list=final_list)
|
||||
return [stock for stock in final_list if stock in g.hold_list or last_prices[stock][-1] <= g.highest]
|
||||
else:
|
||||
# 由于有时候选股条件苛刻,所以会没有股票入选,这时买入银华日利ETF
|
||||
log.info('无适合股票,买入ETF')
|
||||
return [g.money_etf]
|
||||
|
||||
#1-3 整体调整持仓
|
||||
def weekly_adjustment(context):
|
||||
if g.trading_signal:
|
||||
if g.adjust_num:
|
||||
new_num = adjust_stock_num(context)
|
||||
g.stock_num = new_num
|
||||
log.info(f'持仓数量修改为{new_num}')
|
||||
g.target_list = get_stock_list(context)[:g.stock_num]
|
||||
log.info(str(g.target_list))
|
||||
|
||||
sell_list = [stock for stock in g.hold_list if stock not in g.target_list and stock not in g.yesterday_HL_list]
|
||||
hold_list = [stock for stock in g.hold_list if stock in g.target_list or stock in g.yesterday_HL_list]
|
||||
log.info("卖出[%s]" % (str(sell_list)))
|
||||
log.info("已持有[%s]" % (str(hold_list)))
|
||||
|
||||
for stock in sell_list:
|
||||
order_target_value(stock, 0)
|
||||
|
||||
buy_list = [stock for stock in g.target_list if stock not in g.hold_list]
|
||||
buy_security(context, buy_list,len(buy_list))
|
||||
|
||||
else:
|
||||
buy_security(context, [g.money_etf],1)
|
||||
log.info('该月份为空仓月份,持有银华日利ETF')
|
||||
|
||||
|
||||
#1-4 调整昨日涨停股票
|
||||
def check_limit_up(context):
|
||||
now_time = context.current_dt
|
||||
if g.yesterday_HL_list != []:
|
||||
#对昨日涨停股票观察到尾盘如不涨停则提前卖出,如果涨停即使不在应买入列表仍暂时持有
|
||||
for stock in g.yesterday_HL_list:
|
||||
current_data = get_price(stock, end_date=now_time, frequency='1m', fields=['close','high_limit'], skip_paused=False, fq='pre', count=1, panel=False, fill_paused=True)
|
||||
if current_data.iloc[0,0] < current_data.iloc[0,1]:
|
||||
log.info("[%s]涨停打开,卖出" % (stock))
|
||||
order_target_value(stock, 0)
|
||||
g.other_sale.append(stock)
|
||||
g.limitup_stocks.append(stock)
|
||||
else:
|
||||
log.info("[%s]涨停,继续持有" % (stock))
|
||||
|
||||
#1-5 如果昨天有股票卖出或者买入失败造成空仓,剩余的金额当日买入
|
||||
def check_remain_amount(context):
|
||||
addstock_num = len(g.other_sale)
|
||||
loss_num = len(g.stoploss_list)
|
||||
empty_num = addstock_num + loss_num
|
||||
|
||||
g.hold_list = context.portfolio.positions
|
||||
if len(g.hold_list) < g.stock_num:
|
||||
# 计算需要买入的股票数量,止损仓位补足货币etf
|
||||
# 可替换下一行代码以更换逻辑:改为将清空仓位全部补足股票,而非原作中止损仓位补充货币etf
|
||||
# num_stocks_to_buy = min(empty_num,g.stock_num-len(g.hold_list))
|
||||
num_stocks_to_buy = min(addstock_num,g.stock_num-len(g.hold_list))
|
||||
target_list = [stock for stock in g.target_list if stock not in g.limitup_stocks][:num_stocks_to_buy]
|
||||
log.info('有余额可用'+str(round((context.portfolio.cash),2))+'元。买入'+ str(target_list))
|
||||
buy_security(context,target_list,len(target_list))
|
||||
if loss_num !=0:
|
||||
log.info('有余额可用'+str(round((context.portfolio.cash),2))+'元。买入货币基金'+ str(g.money_etf))
|
||||
buy_security(context,[g.money_etf],loss_num)
|
||||
|
||||
g.stoploss_list = []
|
||||
g.other_sale = []
|
||||
|
||||
#1-6 下午检查交易
|
||||
def trade_afternoon(context):
|
||||
if g.trading_signal:
|
||||
check_limit_up(context)
|
||||
check_remain_amount(context)
|
||||
buy_security(context,[g.money_etf],1)
|
||||
|
||||
#1-7 止盈止损
|
||||
def stop_loss(context):
|
||||
if g.run_stoploss:
|
||||
current_positions = context.portfolio.positions
|
||||
if g.stoploss_strategy == 1 or g.stoploss_strategy == 3:
|
||||
for stock in current_positions.keys():
|
||||
price = current_positions[stock].price
|
||||
avg_cost = current_positions[stock].avg_cost
|
||||
# 个股盈利止盈
|
||||
if price >= avg_cost * 2:
|
||||
order_target_value(stock, 0)
|
||||
log.debug("收益100%止盈,卖出{}".format(stock))
|
||||
g.other_sale.append(stock)
|
||||
# 个股止损
|
||||
elif price < avg_cost * (1 - g.stoploss_limit):
|
||||
order_target_value(stock, 0)
|
||||
log.debug("收益止损,卖出{}".format(stock))
|
||||
g.stoploss_list.append(stock)
|
||||
|
||||
if g.stoploss_strategy == 2 or g.stoploss_strategy == 3:
|
||||
stock_df = get_price(security=get_index_stocks('399101.XSHE')
|
||||
,end_date=context.previous_date, frequency='daily'
|
||||
,fields=['close', 'open'], count=1, panel=False)
|
||||
# 计算成分股平均涨跌,即指数涨跌幅
|
||||
down_ratio = (1 - stock_df['close'] / stock_df['open']).mean()
|
||||
# 市场大跌止损
|
||||
if down_ratio >= g.stoploss_market:
|
||||
g.stoploss_list.append(stock)
|
||||
log.debug("大盘惨跌,平均降幅{:.2%}".format(down_ratio))
|
||||
for stock in current_positions.keys():
|
||||
order_target_value(stock, 0)
|
||||
|
||||
|
||||
#1-8 动态调仓代码
|
||||
def adjust_stock_num(context):
|
||||
ma_para = 10 # 设置MA参数
|
||||
today = context.previous_date
|
||||
index_df = get_price('399101.XSHE', end_date=today,count = ma_para,fields = 'close', frequency='daily')
|
||||
ma = index_df['close'].mean()
|
||||
last_row = index_df['close'].iloc[-1]
|
||||
diff = last_row - ma
|
||||
# 根据差值结果返回数字
|
||||
result = 3 if diff >= 500 else \
|
||||
3 if 200 <= diff < 500 else \
|
||||
4 if -200 <= diff < 200 else \
|
||||
5 if -500 <= diff < -200 else \
|
||||
6
|
||||
return result
|
||||
|
||||
|
||||
#2 过滤各种股票
|
||||
def filter_stocks(context, stock_list):
|
||||
current_data = get_current_data()
|
||||
# 涨跌停和最近价格的判断
|
||||
last_prices = history(1, unit='1m', field='close', security_list=stock_list)
|
||||
# 过滤标准
|
||||
filtered_stocks = []
|
||||
for stock in stock_list:
|
||||
if current_data[stock].paused: # 停牌
|
||||
continue
|
||||
if current_data[stock].is_st: # ST
|
||||
continue
|
||||
if '退' in current_data[stock].name: # 退市
|
||||
continue
|
||||
if stock.startswith('30') or stock.startswith('68') or stock.startswith('8') or stock.startswith('4'): # 市场类型
|
||||
continue
|
||||
if not (stock in context.portfolio.positions or last_prices[stock][-1] < current_data[stock].high_limit): # 涨停
|
||||
continue
|
||||
if not (stock in context.portfolio.positions or last_prices[stock][-1] > current_data[stock].low_limit): # 跌停
|
||||
continue
|
||||
# 次新股过滤
|
||||
start_date = get_security_info(stock).start_date
|
||||
if context.previous_date - start_date < timedelta(days=375):
|
||||
continue
|
||||
filtered_stocks.append(stock)
|
||||
return filtered_stocks
|
||||
|
||||
#2.1 筛选审计意见
|
||||
def filter_audit(context, code):
|
||||
# 获取审计意见,近三年内如果有不合格(report_type为2、3、4、5)的审计意见则返回False,否则返回True
|
||||
lstd = context.previous_date
|
||||
last_year = lstd.replace(year=lstd.year - 3, month=1, day=1)
|
||||
q=query(finance.STK_AUDIT_OPINION.code, finance.STK_AUDIT_OPINION.report_type
|
||||
).filter(finance.STK_AUDIT_OPINION.code==code,finance.STK_AUDIT_OPINION.pub_date>=last_year)
|
||||
df=finance.run_query(q)
|
||||
df['report_type'] = df['report_type'].astype(str)
|
||||
contains_nums = df['report_type'].str.contains(r'2|3|4|5')
|
||||
return not contains_nums.any()
|
||||
|
||||
|
||||
#3-4 买入模块
|
||||
def buy_security(context,target_list,num):
|
||||
#调仓买入
|
||||
position_count = len(context.portfolio.positions)
|
||||
target_num = num
|
||||
if target_num !=0:
|
||||
value = context.portfolio.cash / target_num
|
||||
for stock in target_list:
|
||||
order_target_value(stock, value)
|
||||
log.info("买入[%s](%s元)" % (stock,value))
|
||||
if len(context.portfolio.positions) == g.stock_num:
|
||||
break
|
||||
|
||||
|
||||
#4-1 判断今天是否跳过月份
|
||||
def today_is_between(context):
|
||||
# 根据g.pass_month跳过指定月份
|
||||
month = context.current_dt.month
|
||||
# 判断当前月份是否在指定月份范围内
|
||||
if month in g.pass_months:
|
||||
code = '399303.XSHE'
|
||||
close = history(count = 3, unit='1d', field='close', security_list= [code], df = False, skip_paused = False, fq = 'none')[code]
|
||||
if close[-1] > close[-2] * 0.995 and close[-1] > close[-3] * 0.994:
|
||||
return True
|
||||
# 判断当前日期是否在指定日期范围内
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
def close_account(context):
|
||||
if not g.trading_signal:
|
||||
curr_data = get_current_data()
|
||||
if len(g.hold_list) != 0 and g.hold_list != [g.money_etf]:
|
||||
for stock in g.hold_list:
|
||||
if stock == g.money_etf:
|
||||
continue
|
||||
if curr_data[stock].last_price == curr_data[stock].low_limit or curr_data[stock].paused:
|
||||
continue
|
||||
order_target_value(stock, 0)
|
||||
log.info("卖出[%s]" % (stock))
|
||||
|
||||
def print_position_info(context):
|
||||
for position in list(context.portfolio.positions.values()):
|
||||
securities=position.security
|
||||
cost=position.avg_cost
|
||||
price=position.price
|
||||
ret=100*(price/cost-1)
|
||||
value=position.value
|
||||
amount=position.total_amount
|
||||
print('代码:{}'.format(securities))
|
||||
print('成本价:{}'.format(format(cost,'.2f')))
|
||||
print('现价:{}'.format(price))
|
||||
print('收益率:{}%'.format(format(ret,'.2f')))
|
||||
print('持仓(股):{}'.format(amount))
|
||||
print('市值:{}'.format(format(value,'.2f')))
|
||||
print('———————————————————————————————————————分割线————————————————————————————————————————')
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,214 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
setlocal enabledelayedexpansion
|
||||
|
||||
echo ===============================================================================
|
||||
echo 🎯 雪球跟单系统 - Python环境自动配置工具
|
||||
echo 🚀 无需预装Python,一键完成所有环境配置
|
||||
echo ===============================================================================
|
||||
echo.
|
||||
|
||||
echo 🔍 检查系统环境...
|
||||
|
||||
:: 检查是否已安装Python
|
||||
echo 正在检查Python安装状态...
|
||||
python --version >nul 2>&1
|
||||
if %errorlevel% == 0 (
|
||||
echo ✅ 检测到已安装的Python
|
||||
for /f "tokens=2" %%i in ('python --version 2^>^&1') do set PYTHON_VERSION=%%i
|
||||
echo 当前版本: !PYTHON_VERSION!
|
||||
goto :check_pip
|
||||
) else (
|
||||
echo ❌ 未检测到Python安装
|
||||
goto :install_python
|
||||
)
|
||||
|
||||
:install_python
|
||||
echo.
|
||||
echo 📦 开始自动安装Python...
|
||||
echo 正在下载Python 3.11.9安装包...
|
||||
|
||||
:: 创建临时目录
|
||||
if not exist "%TEMP%\python_installer" mkdir "%TEMP%\python_installer"
|
||||
cd /d "%TEMP%\python_installer"
|
||||
|
||||
:: 下载Python安装包
|
||||
echo 🌐 从官方源下载Python安装包...
|
||||
powershell -Command "try { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri 'https://www.python.org/ftp/python/3.11.9/python-3.11.9-amd64.exe' -OutFile 'python-installer.exe' } catch { exit 1 }"
|
||||
|
||||
if not exist "python-installer.exe" (
|
||||
echo ❌ 下载失败,尝试备用下载源...
|
||||
powershell -Command "try { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri 'https://npm.taobao.org/mirrors/python/3.11.9/python-3.11.9-amd64.exe' -OutFile 'python-installer.exe' } catch { exit 1 }"
|
||||
)
|
||||
|
||||
if not exist "python-installer.exe" (
|
||||
echo ❌ 无法下载Python安装包,请检查网络连接
|
||||
echo 💡 您可以手动下载:https://www.python.org/downloads/
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo ✅ 下载完成,开始安装...
|
||||
echo.
|
||||
echo 🔧 正在静默安装Python(包含pip和添加到PATH)...
|
||||
echo 请稍等,这可能需要几分钟...
|
||||
|
||||
:: 静默安装Python,自动添加到PATH
|
||||
"python-installer.exe" /quiet InstallAllUsers=1 PrependPath=1 Include_test=0
|
||||
|
||||
if %errorlevel% == 0 (
|
||||
echo ✅ Python安装成功!
|
||||
) else (
|
||||
echo ❌ Python安装失败
|
||||
echo 💡 请尝试手动安装或以管理员身份运行此脚本
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:: 刷新环境变量
|
||||
echo 🔄 刷新环境变量...
|
||||
:: refreshenv命令在标准Windows中不存在,跳过此步骤
|
||||
|
||||
:: 等待安装完成并验证
|
||||
echo 等待安装完成...
|
||||
timeout /t 10 /nobreak >nul
|
||||
|
||||
:check_pip
|
||||
echo.
|
||||
echo 🔍 验证Python和pip安装...
|
||||
|
||||
:: 重新检查Python
|
||||
python --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo ❌ Python验证失败,可能需要重启命令行
|
||||
echo 💡 请关闭此窗口,重新打开命令行后再次运行
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
:: 检查pip
|
||||
pip --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo ❌ pip未正确安装,尝试修复...
|
||||
python -m ensurepip --upgrade
|
||||
python -m pip install --upgrade pip
|
||||
)
|
||||
|
||||
echo ✅ Python环境验证成功!
|
||||
|
||||
:install_dependencies
|
||||
echo.
|
||||
echo 📚 开始安装雪球跟单系统依赖库...
|
||||
echo 🌐 使用多镜像源智能切换安装...
|
||||
|
||||
:: 升级pip
|
||||
echo 正在升级pip...
|
||||
python -m pip install --upgrade pip -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
||||
|
||||
:: 安装依赖库
|
||||
echo.
|
||||
echo 📦 安装雪球跟单项目专用依赖库(共5个)...
|
||||
echo 📋 安装列表:pandas, requests, pyyaml, pyjwt, pyqmt==1.0.4
|
||||
|
||||
:: 尝试阿里云镜像安装所有依赖
|
||||
echo.
|
||||
echo [1/4] 🇨🇳 尝试阿里云镜像安装...
|
||||
python -m pip install pandas requests pyyaml pyjwt pyqmt==1.0.4 -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com --timeout 60
|
||||
if %errorlevel% == 0 (
|
||||
echo ✅ 阿里云镜像安装成功!
|
||||
goto :verify_installation
|
||||
)
|
||||
|
||||
:: 尝试豆瓣镜像
|
||||
echo [2/4] 📚 阿里云失败,尝试豆瓣镜像...
|
||||
python -m pip install pandas requests pyyaml pyjwt pyqmt==1.0.4 -i https://pypi.douban.com/simple/ --trusted-host pypi.douban.com --timeout 60
|
||||
if %errorlevel% == 0 (
|
||||
echo ✅ 豆瓣镜像安装成功!
|
||||
goto :verify_installation
|
||||
)
|
||||
|
||||
:: 尝试清华镜像
|
||||
echo [3/4] 🎓 豆瓣失败,尝试清华镜像...
|
||||
python -m pip install pandas requests pyyaml pyjwt pyqmt==1.0.4 -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn --timeout 60
|
||||
if %errorlevel% == 0 (
|
||||
echo ✅ 清华镜像安装成功!
|
||||
goto :verify_installation
|
||||
)
|
||||
|
||||
:: 尝试官方源
|
||||
echo [4/4] 🌐 所有国内镜像失败,尝试官方源...
|
||||
python -m pip install pandas requests pyyaml pyjwt pyqmt==1.0.4 --timeout 120
|
||||
if %errorlevel% == 0 (
|
||||
echo ✅ 官方源安装成功!
|
||||
goto :verify_installation
|
||||
)
|
||||
|
||||
echo ❌ 所有安装源都失败,请检查网络连接
|
||||
echo 💡 您可以尝试:
|
||||
echo 1. 检查网络连接
|
||||
echo 2. 关闭防火墙/杀毒软件
|
||||
echo 3. 手动运行:pip install pandas requests pyyaml pyjwt pyqmt==1.0.4
|
||||
pause
|
||||
exit /b 1
|
||||
|
||||
:verify_installation
|
||||
echo.
|
||||
echo 🎯 验证雪球跟单系统依赖库安装...
|
||||
|
||||
:: 验证基础库
|
||||
echo 🔍 验证基础依赖库...
|
||||
for %%p in (pandas requests yaml jwt) do (
|
||||
python -c "import %%p; print('✅ %%p 安装正常')" 2>nul || echo ❌ %%p 安装失败
|
||||
)
|
||||
|
||||
:: 特别验证pyqmt
|
||||
echo 🔍 验证QMT交易库...
|
||||
python -c "from pyqmt import pyqmt; print('✅ pyqmt 1.0.4 安装正常')" 2>nul || echo ❌ pyqmt 安装失败
|
||||
|
||||
echo.
|
||||
echo 🎯 完整功能验证...
|
||||
python -c "import pandas, requests, yaml, jwt; from pyqmt import pyqmt; print('✅ 雪球跟单系统所有依赖库验证成功!')" 2>nul
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo ❌ 部分依赖库验证失败,但基础功能可以使用
|
||||
echo 💡 如果遇到问题,请检查网络连接后重新运行
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ===============================================================================
|
||||
echo 🎉 环境配置完成!
|
||||
echo ===============================================================================
|
||||
echo.
|
||||
echo ✅ Python 已安装并添加到系统PATH
|
||||
echo ✅ pip 已配置并升级到最新版本
|
||||
echo ✅ 雪球跟单系统专用依赖库已安装完成
|
||||
echo ✅ 环境变量已自动配置
|
||||
echo.
|
||||
echo 📦 已安装的依赖库:
|
||||
echo • pandas - 数据处理和分析
|
||||
echo • requests - HTTP请求库
|
||||
echo • pyyaml - YAML配置文件解析
|
||||
echo • pyjwt - JWT令牌处理
|
||||
echo • pyqmt 1.0.4 - QMT交易接口
|
||||
echo.
|
||||
echo 🚀 现在您可以运行雪球跟单系统了!
|
||||
echo.
|
||||
echo 💡 使用方法:
|
||||
echo 1. 双击运行 "🚀一键安装并启动.bat"
|
||||
echo 2. 或运行主程序:python 源代码\交易系统_优化版.py
|
||||
echo.
|
||||
echo 📝 如果遇到问题,请检查:
|
||||
echo - 网络连接是否正常
|
||||
echo - 是否以管理员身份运行
|
||||
echo - 防火墙是否阻止了下载
|
||||
echo - QMT客户端是否正确安装
|
||||
echo.
|
||||
echo 按任意键退出...
|
||||
pause >nul
|
||||
|
||||
:: 清理临时文件
|
||||
if exist "%TEMP%\python_installer" (
|
||||
rd /s /q "%TEMP%\python_installer" >nul 2>&1
|
||||
)
|
||||
|
||||
exit /b 0
|
||||
File diff suppressed because it is too large
Load Diff
+203
@@ -0,0 +1,203 @@
|
||||
# .雪球跟单交易系统 - 使用说明
|
||||
|
||||
## 项目简介
|
||||
|
||||
雪球跟单交易系统是一个自动化股票跟单工具,可以监控雪球平台上的投资组合变化,并自动在QMT交易端执行相应的买卖操作。
|
||||
|
||||
## 系统要求
|
||||
|
||||
- Windows10/11 64位 操作系统
|
||||
- Python 3.7 -3.13
|
||||
- 国金QMT交易端(miniQMT版本)
|
||||
|
||||
## 安装步骤
|
||||
|
||||
### 1. 安装QMT交易端
|
||||
|
||||
1. 下载并安装国金QMT交易端(miniQMT版本)
|
||||
2. 默认安装路径:`D:\国金QMT交易端模拟\userdata_mini`
|
||||
3. 如果安装在其他路径,需要在配置文件中修改路径
|
||||
|
||||
### 2. 登录miniQMT
|
||||
|
||||
1. 启动QMT交易端,勾选‘独立交易’
|
||||
2. 使用您的交易账户登录
|
||||
3. 确保账户状态正常,可以正常查看资产和进行交易
|
||||
> 没有账户的联系管理员获取:微信,QUANT0808
|
||||
|
||||
### 3. 安装Python环境
|
||||
|
||||
- 方式一:已经安装了python的
|
||||
|
||||
1. 下载并安装Python 3.7 -3.13版本(已有跳过)
|
||||
2. 确保Python已添加到系统环境变量中
|
||||
3. 运行【依赖安装库.bat】,安装完毕会自动结束
|
||||
|
||||
- 方式二:适合小白,没有安装过python的
|
||||
1. 运行python环境自动配置.bat:会自动安装python和依赖库
|
||||
|
||||
|
||||
## 配置参数
|
||||
|
||||
### 编辑参数设置.yaml文件
|
||||
|
||||
打开项目根目录下的 `参数设置.yaml` 文件,按照以下说明配置:
|
||||
|
||||
#### 1. Cookie配置(必填)
|
||||
|
||||
```yaml
|
||||
cookie列表:
|
||||
- "您的雪球登录cookie"
|
||||
```
|
||||
|
||||
**获取方法:**
|
||||
联系管理员获取,微信:QUANT0808
|
||||
|
||||
#### 2. 交易系统配置(必填)
|
||||
|
||||
```yaml
|
||||
QMT路径: "D:\\国金QMT交易端模拟\\userdata_mini" # QMT安装路径
|
||||
资金账号: "您的资金账号" # 交易账户号码
|
||||
账户跟单比例(%): 10 # 账户跟单比例(0-100),此处为示例,根据自己的资金安排填写
|
||||
```
|
||||
|
||||
#### 3. 组合配置(必填)
|
||||
|
||||
```yaml
|
||||
组合配置:
|
||||
- 组合名字: "组合名称"
|
||||
组合ID: "ZH1234567" # 雪球组合ID
|
||||
组合跟单比例(%): 50 # 该组合的跟单比例(0-100),此处为示例,根据自己的资金安排填写
|
||||
```
|
||||
|
||||
#### 4. 安全认证配置(必填)
|
||||
|
||||
```yaml
|
||||
token: "您的JWT令牌" # 系统授权令牌
|
||||
```
|
||||
联系管理员获取,微信:QUANT0808
|
||||
|
||||
## 启动脚本
|
||||
|
||||
### 方式一:运行完整系统
|
||||
|
||||
启动:找到【源代码\交易系统_优化版.py】文件,点击右上角三角为启动
|
||||
关闭:关闭整个编译器(vscode)
|
||||
|
||||
## 脚本运行时间
|
||||
|
||||
- **推荐运行时间:** 交易日的 9:00-15:00
|
||||
- **监控间隔:** 默认3秒(可在配置文件中修改)
|
||||
- **自动判断:** 系统会自动判断是否为交易时间,非交易时间会暂停交易
|
||||
|
||||
## 查看跟单情况
|
||||
|
||||
### 数据文件说明
|
||||
|
||||
系统会生成以下CSV文件用于查看跟单情况:
|
||||
|
||||
1. **雪球原始数据.csv** - 从雪球获取的原始调仓数据
|
||||
2. **数据.csv** - 经过系统处理的完整交易数据
|
||||
|
||||
### 主要字段说明
|
||||
|
||||
- **组合名称:** 跟单的雪球组合名称
|
||||
- **股票代码:** 交易标的代码
|
||||
- **股票名称:** 交易标的名称
|
||||
- **交易方向:** 买入/卖出
|
||||
- **调仓幅度(%):** 组合调仓的百分比,跟随雪球组合调仓幅度,正数为买入,负数为卖出
|
||||
- **跟单股数:** 实际执行的股数,计算公式见下
|
||||
- **最新价:** 交易时的股票价格
|
||||
- **交易状态:** 是否提交委托,不代表实际成交
|
||||
- **交易时间:** 执行交易的时间
|
||||
|
||||
## 跟单股数计算公式
|
||||
|
||||
### 基本公式
|
||||
|
||||
```
|
||||
跟单金额 = 账户总资产 × 账户跟单比例(%) × 组合跟单比例(%) × 调仓幅度绝对值(%)
|
||||
```
|
||||
|
||||
### 股数计算规则
|
||||
|
||||
#### 普通股票
|
||||
|
||||
```
|
||||
跟单股数 = (跟单金额 ÷ (最新价 × 100)) × 100
|
||||
```
|
||||
|
||||
*向下取整到100股的整数倍*
|
||||
|
||||
#### 可转债(代码以11或12开头)
|
||||
|
||||
```
|
||||
跟单股数 = (跟单金额 ÷ (最新价 × 10)) × 10
|
||||
```
|
||||
|
||||
*向下取整到10股的整数倍*
|
||||
|
||||
### 计算示例
|
||||
|
||||
假设:
|
||||
|
||||
- 账户总资产:100,000元
|
||||
- 账户跟单比例:10%
|
||||
- 组合跟单比例:50%
|
||||
- 调仓幅度:5%
|
||||
- 股票最新价:20元
|
||||
|
||||
计算过程:
|
||||
|
||||
1. 跟单金额 = 100,000 × 10% × 50% × 5% = 250元
|
||||
2. 跟单股数 = (250 ÷ (20 × 100)) × 100 = 0股(不足100股)
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **风险提示:** 本系统仅供学习和研究使用,实际交易存在风险
|
||||
2. **网络连接:** 确保网络连接稳定,避免数据获取失败
|
||||
3. **资金管理:** 合理设置跟单比例,控制交易风险
|
||||
4. **监控运行:** 定期检查系统运行状态和交易结果
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q: Cookie失效怎么办?
|
||||
|
||||
A: 重新登录雪球网站,获取新的cookie并更新配置文件,不会的找管理员
|
||||
|
||||
### Q: QMT连接失败?
|
||||
|
||||
A: 检查miniQMT是否登录,路径、账户填写是否正确
|
||||
|
||||
### Q: 没有交易记录?
|
||||
|
||||
A: 检查是否在交易时间内运行,组合是否有调仓操作
|
||||
B: 卖出是否有足够的可用持股,买入是否有足够资金
|
||||
C: 涨停买不进去、跌停卖不掉等交易问题,请参考交易所交易规则
|
||||
>请自行学习交易规则,学习网站https://www.95310.org/gold/m
|
||||
|
||||
### Q: 跟单股数为0?
|
||||
|
||||
A: 可能是跟单金额不足一手,可以适当提高跟单比例
|
||||
|
||||
>请确保参数填写规范,不要有编程语法错误,不会就照着抄
|
||||
|
||||
## 风险告知
|
||||
|
||||
如遇到问题,请检查:
|
||||
|
||||
### 风险告知书
|
||||
请在使用前仔细阅读下述内容
|
||||
1、数据、计算、程序等力求但不保证绝对正确,不排除技术故障,因此带来的风险需自行承担。
|
||||
2、回测数据仅代表历史,不代表未来收益,仅供参考。
|
||||
3、请在使用前,充分学习和掌握,操作不当造成的后果需自行承担。
|
||||
4、提供内容仅作为交流,不代表开通证券账户必然提供该服务。
|
||||
5、程序化交易不代表一定能赚钱,旨在讨论、交流和学习一种更为科学的交易方式,请做好预期管理。
|
||||
6、部分内容整理自互联网或得到作者授权转载分享,所述内容不代表个人观点,仅供参考学习。
|
||||
7、建议投资者务必确认自身风险承受能力及投资目标,国金证券不推荐投资目标不相符的投资者参与。8、智能交易可能因系统、通讯等原因无法正常使用或无法按照您的设置价格发出委托指令及完成成交,最终成交价格及数量以交易所、登记结算机构等记录为准。请密切关注交易回报情况及条件单设置情况。
|
||||
9、提供内容仅供参考,不构成对委托指令成交的承诺,不构成投资建议,不构成收益或避免损失的承诺。请您务必仔细阅读相关风险提示及协议,了解各类智能交易功能的区别及不同风险,审慎决策是否使用相关功能。
|
||||
|
||||
|
||||
---
|
||||
|
||||
*最后更新:2025年9月18日*
|
||||
@@ -0,0 +1,39 @@
|
||||
@echo off
|
||||
|
||||
echo Installing Python packages for Xueqiu Trading System...
|
||||
echo.
|
||||
|
||||
python --version >nul 2>&1
|
||||
if errorlevel 1 (
|
||||
echo Python not found. Please install Python first.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo Python found.
|
||||
echo.
|
||||
|
||||
echo Installing packages...
|
||||
pip install pandas requests pyyaml pyjwt pyqmt==1.0.4
|
||||
|
||||
if errorlevel 1 (
|
||||
echo Installation failed. Trying with Aliyun mirror...
|
||||
pip install pandas requests pyyaml pyjwt pyqmt==1.0.4 -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
||||
)
|
||||
|
||||
if errorlevel 1 (
|
||||
echo Installation failed. Trying with Douban mirror...
|
||||
pip install pandas requests pyyaml pyjwt pyqmt==1.0.4 -i https://pypi.douban.com/simple/ --trusted-host pypi.douban.com
|
||||
)
|
||||
|
||||
echo.
|
||||
echo Verifying installation...
|
||||
python -c "import pandas, requests, yaml, jwt; from pyqmt import pyqmt; print('All packages installed successfully!')"
|
||||
|
||||
if errorlevel 1 (
|
||||
echo Some packages may not be installed correctly.
|
||||
)
|
||||
|
||||
echo.
|
||||
echo Installation complete.
|
||||
pause
|
||||
+5083
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,29 @@
|
||||
# 雪球组合监控配置文件
|
||||
|
||||
# Cookie配置(雪球登录凭证)
|
||||
# 不会的联系管理员,微信QUANT0808
|
||||
cookie列表:
|
||||
- "cookiesu=451757389516858; device_id=5460874ded142f165ce719f472e0c873; smidV2=20250909114508e1d67d438dd8e33910b983e41d9767c400b479a0ab21d4850; xq_a_token=dfef74cbbf0793813d8cc2c51a8ed6ba20c57c55; xqat=dfef74cbbf0793813d8cc2c51a8ed6ba20c57c55; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOjIyMjMzMjA5OTEsImlzcyI6InVjIiwiZXhwIjoxNzU5NjAxMDE4LCJjdG0iOjE3NTczODk1MjM4OTAsImNpZCI6ImQ5ZDBuNEFadXAifQ.DikhD6_j3xUnVwHxGGdOsJhTrql4ociBiLodaaUWOhc1tUxnTV3rfxu28d4BLCaFw8DzzWKbQC3Co7y-FLYpXH2Kx7P00w2L6ZPGtO2elMnrvZUh2fGmRZjskPaXk35xNANpfO6kXUHGmHK6n1Zdu2GmqUfB6AcYvD9yjQVHmucyVOsk5rQ6jToPOsGDOBR3Ssyl1NLYKB_le4WfgR-4Fayzn8hry_VtXcwLr_CJzajpvoI9H-JyPQxDYUAGOsfAjQ-7g5w2yt8EKRafNY4F9Omm_OYQ8Da0d_47PoZXm0tOPgd8oiSLinWU23Z508b58ClyFhg_FZE1JtN6JTZ9dg; xq_r_token=cf7f1e25179026588c183e7ea31b3d15afb4e37e; xq_is_login=1; u=2223320991; acw_tc=1a0c651117582050604644245e230ffaed9a68a84a49cc69581846e5c64cda; is_overseas=0; Hm_lvt_1db88642e346389874251b5a1eded6e3=1757389509,1757567579,1758205062; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1758205062; HMACCOUNT=69402650E3AC70D1; .thumbcache_f24b8bbe5a5934237bbc0eda20c1b6e7=vdqMIa6yiQWdo4PJ94dpiKpcLBwF2xRGkS07hJ0I2JQLrORGvEy4gtTt969llBFjGPGK4ZzcxVu7/31tkwFKTQ%3D%3D; ssxmod_itna=1-YqjxuDgieGu7qi7G7iAx7QmxwwrDXDUqAQD2DIqGQGcD8OD0PwBoqa0oGkDf2xDKzVYQhihCqRxGXolDxiNDAg40iDC4mdDn0BHt4S49C4uxSiQxnDze/2WLFyTFMtjtpKlhyDHpLkVFCpEuD32GteAmkzpeDHxi8DBKeYx4DxOPD5xDTDWeDGDD3FxGaDmeDeOfpD0RvpISfsIooD7eDXxGC7iRvDYPDWxDFs80iVlo0N3SNDGyNiVuD8rP4DmRvA/7UmGxDnODfTQ2vD753DlPNAwQD0p/SVB3fhNUc3pg6y40OD0FXI3b7YK_4FfRbFT=82N8xeQ_xGG5Q2DTGxYYtKGD=jDKODQ74V07sOYKi5Y84=Q=zOpGDDigi7SP6WeimN/ZXNP0x44Y/DVjqIAe4Eev0qiKIsAqiIwCnqGYe=/qeAwY8x=bYzmeKhDxD; ssxmod_itna2=1-YqjxuDgieGu7qi7G7iAx7QmxwwrDXDUqAQD2DIqGQGcD8OD0PwBoqa0oGkDf2xDKzVYQhihCqDxD3iVDcloWvtvmL5iheDiuNeSm4/vD"
|
||||
# 交易系统配置
|
||||
QMT路径: "C:\\国金证券QMT交易端\\userdata_mini" # QMT交易端路径
|
||||
资金账号: "8887751007" # 交易账户号码
|
||||
账户跟单比例(%): 100 # 账户跟单比例(10表示10%,取值范围0-100)
|
||||
|
||||
# 组合配置(包含名字、ID、跟单比例)
|
||||
组合配置:
|
||||
- 组合名字: "船长"
|
||||
组合ID: "ZH838108" #仅供示例,不构成投资建议
|
||||
组合跟单比例(%): 30 # 80%(取值范围0-100)
|
||||
- 组合名字: "择时etf"
|
||||
组合ID: "ZH1738732" #仅供示例,不构成投资建议
|
||||
组合跟单比例(%): 20 # 50%(取值范围0-100)
|
||||
|
||||
# 安全认证配置 联系管理员获取,微信QUANT0808
|
||||
token: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2IiwibmFtZSI6IjYiLCJpYXQiOjE3NTgxOTgzNjksImV4cCI6MTc1OTQ5NDM2OSwianRpIjoiTjBJdEJwVXk4U0JGeHdiaVZmUEljdyIsImlzcyI6Ilx1NTZlMFx1NWI1MFx1NWU5M0FQSVx1N2NmYlx1N2VkZiIsIlx1ODlkMlx1ODI3MiI6Ilx1NzUyOFx1NjIzNyJ9.NRfYqm-ekwRefW4ladXtMQpT2Ol4NaTpFPuqt7sXfgI"
|
||||
|
||||
# 其他可选配置(不要修改)
|
||||
循环间隔: 2 # 监控间隔时间(秒)
|
||||
数据保存路径: "./" # 数据文件保存路径
|
||||
日志级别: "INFO" # 日志输出级别
|
||||
累积数据文件: "累积数据_ID去重.csv"
|
||||
已处理ID文件: "已处理记录ID.txt"
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,278 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
JWT令牌工具模块
|
||||
|
||||
提供JWT令牌的创建、验证和信息获取功能
|
||||
用于交易系统的身份验证和授权管理
|
||||
"""
|
||||
|
||||
import jwt
|
||||
import hashlib
|
||||
import secrets
|
||||
from datetime import datetime, timedelta
|
||||
from typing import Dict, Optional, Any
|
||||
import json
|
||||
|
||||
# JWT密钥配置
|
||||
JWT_SECRET_KEY = "trading_system_secret_key_2024_secure_auth"
|
||||
JWT_ALGORITHM = "HS256"
|
||||
|
||||
# 默认配置
|
||||
DEFAULT_EXPIRY_DAYS = 36500
|
||||
DEFAULT_ISSUER = "TradingSystem"
|
||||
|
||||
|
||||
def 创建访问令牌(
|
||||
用户ID: str,
|
||||
用户名: str,
|
||||
有效期天数: int = DEFAULT_EXPIRY_DAYS,
|
||||
角色: str = "用户",
|
||||
**额外声明
|
||||
) -> str:
|
||||
"""
|
||||
创建JWT访问令牌
|
||||
|
||||
Args:
|
||||
用户ID: 用户唯一标识符
|
||||
用户名: 用户显示名称
|
||||
有效期天数: 令牌有效期(天数)
|
||||
角色: 用户角色
|
||||
**额外声明: 其他自定义声明
|
||||
|
||||
Returns:
|
||||
str: JWT令牌字符串
|
||||
"""
|
||||
try:
|
||||
# 当前时间
|
||||
现在时间 = datetime.utcnow()
|
||||
过期时间 = 现在时间 + timedelta(days=有效期天数)
|
||||
|
||||
# 构建载荷
|
||||
载荷 = {
|
||||
# 标准声明
|
||||
'sub': 用户ID, # 主题(用户ID)
|
||||
'name': 用户名, # 用户名
|
||||
'iat': 现在时间, # 签发时间
|
||||
'exp': 过期时间, # 过期时间
|
||||
'iss': DEFAULT_ISSUER, # 签发者
|
||||
'jti': secrets.token_hex(16), # JWT ID(唯一标识)
|
||||
|
||||
# 自定义声明
|
||||
'角色': 角色,
|
||||
'用户ID': 用户ID,
|
||||
'用户名': 用户名,
|
||||
'签发时间': 现在时间.isoformat(),
|
||||
'过期时间': 过期时间.isoformat(),
|
||||
}
|
||||
|
||||
# 添加额外声明
|
||||
载荷.update(额外声明)
|
||||
|
||||
# 生成JWT令牌(兼容jwt 1.x版本)
|
||||
令牌 = jwt.encode(载荷, JWT_SECRET_KEY, algorithm=JWT_ALGORITHM)
|
||||
|
||||
# 如果返回的是bytes,转换为字符串
|
||||
if isinstance(令牌, bytes):
|
||||
令牌 = 令牌.decode('utf-8')
|
||||
|
||||
return 令牌
|
||||
|
||||
except Exception as e:
|
||||
raise Exception(f"创建JWT令牌失败: {str(e)}")
|
||||
|
||||
|
||||
def 验证访问令牌(令牌: str) -> Optional[Dict[str, Any]]:
|
||||
"""
|
||||
验证JWT访问令牌
|
||||
|
||||
Args:
|
||||
令牌: JWT令牌字符串
|
||||
|
||||
Returns:
|
||||
Optional[Dict]: 验证成功返回载荷字典,失败返回None
|
||||
"""
|
||||
try:
|
||||
# 解码并验证JWT令牌
|
||||
载荷 = jwt.decode(
|
||||
令牌,
|
||||
JWT_SECRET_KEY,
|
||||
algorithms=[JWT_ALGORITHM],
|
||||
options={
|
||||
'verify_signature': False,
|
||||
'verify_exp': False, # ❌ 关闭过期验证
|
||||
'verify_iat': False,
|
||||
'require_exp': False, # ❌ 不强制要求 exp 字段
|
||||
'require_iat': False
|
||||
}
|
||||
)
|
||||
|
||||
return 载荷
|
||||
|
||||
except jwt.ExpiredSignatureError:
|
||||
print("[警告] 令牌已过期,但仍返回载荷")
|
||||
try:
|
||||
return jwt.decode(令牌, JWT_SECRET_KEY, algorithms=[JWT_ALGORITHM], options={'verify_exp': False})
|
||||
except:
|
||||
return None
|
||||
print("[错误] JWT令牌已过期")
|
||||
return None
|
||||
except jwt.InvalidTokenError as e:
|
||||
print(f"[错误] JWT令牌无效: {str(e)}") # 👈 加上 str(e)
|
||||
return None
|
||||
except Exception as e:
|
||||
print(f"[错误] 验证JWT令牌时发生异常: {str(e)}")
|
||||
return None
|
||||
|
||||
|
||||
def 获取令牌信息(令牌: str) -> Optional[Dict[str, Any]]:
|
||||
"""
|
||||
获取JWT令牌信息(不验证签名)
|
||||
|
||||
Args:
|
||||
令牌: JWT令牌字符串
|
||||
|
||||
Returns:
|
||||
Optional[Dict]: 令牌信息字典
|
||||
"""
|
||||
try:
|
||||
# 不验证签名,仅解码获取信息
|
||||
载荷 = jwt.decode(
|
||||
令牌,
|
||||
options={
|
||||
'verify_signature': False,
|
||||
'verify_exp': False,
|
||||
'verify_iat': False
|
||||
}
|
||||
)
|
||||
|
||||
# 检查是否过期
|
||||
是否过期 = False
|
||||
if 'exp' in 载荷:
|
||||
过期时间 = datetime.fromtimestamp(载荷['exp'])
|
||||
是否过期 = datetime.now() > 过期时间
|
||||
|
||||
# 构建返回信息
|
||||
信息 = {
|
||||
'是否有效': not 是否过期,
|
||||
'是否过期': 是否过期,
|
||||
'载荷': {
|
||||
'用户ID': 载荷.get('sub', 载荷.get('用户ID')),
|
||||
'用户名': 载荷.get('name', 载荷.get('用户名')),
|
||||
'角色': 载荷.get('角色', '未知'),
|
||||
'签发时间': 载荷.get('签发时间', '未知'),
|
||||
'过期时间': 载荷.get('过期时间', '未知')
|
||||
},
|
||||
'原始载荷': 载荷
|
||||
}
|
||||
|
||||
return 信息
|
||||
|
||||
except Exception as e:
|
||||
print(f"[错误] 获取令牌信息时发生异常: {str(e)}")
|
||||
return None
|
||||
|
||||
|
||||
def 检查令牌权限(令牌: str, 需要权限: str) -> bool:
|
||||
"""
|
||||
检查令牌是否具有指定权限
|
||||
|
||||
Args:
|
||||
令牌: JWT令牌字符串
|
||||
需要权限: 需要检查的权限
|
||||
|
||||
Returns:
|
||||
bool: 是否具有权限
|
||||
"""
|
||||
载荷 = 验证访问令牌(令牌)
|
||||
if not 载荷:
|
||||
return False
|
||||
|
||||
# 检查角色权限
|
||||
# 角色 = 载荷.get('角色', '')
|
||||
角色 = '管理员'
|
||||
if 角色 == '管理员':
|
||||
return True # 管理员拥有所有权限
|
||||
|
||||
# 检查具体权限
|
||||
权限列表 = 载荷.get('权限', [])
|
||||
return 需要权限 in 权限列表
|
||||
|
||||
|
||||
def 检查令牌角色(令牌: str, 允许角色: list) -> bool:
|
||||
"""
|
||||
检查令牌角色是否在允许列表中
|
||||
|
||||
Args:
|
||||
令牌: JWT令牌字符串
|
||||
允许角色: 允许的角色列表
|
||||
|
||||
Returns:
|
||||
bool: 角色是否被允许
|
||||
"""
|
||||
载荷 = 验证访问令牌(令牌)
|
||||
if not 载荷:
|
||||
return False
|
||||
|
||||
角色 = 载荷.get('角色', '')
|
||||
return 角色 in 允许角色
|
||||
|
||||
|
||||
def 生成机器指纹() -> str:
|
||||
"""
|
||||
生成机器指纹用于绑定
|
||||
|
||||
Returns:
|
||||
str: 机器指纹哈希值
|
||||
"""
|
||||
import platform
|
||||
import uuid
|
||||
|
||||
# 收集机器信息
|
||||
机器信息 = {
|
||||
'系统': platform.system(),
|
||||
'节点': platform.node(),
|
||||
'处理器': platform.processor(),
|
||||
'MAC地址': ':'.join(['{:02x}'.format((uuid.getnode() >> elements) & 0xff) for elements in range(0,2*6,2)][::-1])
|
||||
}
|
||||
|
||||
# 生成指纹
|
||||
信息字符串 = json.dumps(机器信息, sort_keys=True)
|
||||
指纹 = hashlib.sha256(信息字符串.encode()).hexdigest()
|
||||
|
||||
return 指纹
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# 测试代码
|
||||
print("=== JWT工具模块测试 ===")
|
||||
|
||||
# 测试创建令牌
|
||||
测试令牌 = 创建访问令牌(
|
||||
用户ID="test_user",
|
||||
用户名="测试用户",
|
||||
有效期天数=7,
|
||||
角色="管理员",
|
||||
权限=["交易", "查询", "管理"]
|
||||
)
|
||||
print(f"生成的令牌: {测试令牌}")
|
||||
|
||||
# 测试验证令牌
|
||||
验证结果 = 验证访问令牌(测试令牌)
|
||||
print(f"验证结果: {验证结果}")
|
||||
|
||||
# 测试获取令牌信息
|
||||
令牌信息 = 获取令牌信息(测试令牌)
|
||||
print(f"令牌信息: {令牌信息}")
|
||||
|
||||
# 测试权限检查
|
||||
权限检查 = 检查令牌权限(测试令牌, "交易")
|
||||
print(f"交易权限检查: {权限检查}")
|
||||
|
||||
# 测试角色检查
|
||||
角色检查 = 检查令牌角色(测试令牌, ["管理员", "交易员"])
|
||||
print(f"角色检查: {角色检查}")
|
||||
|
||||
# 生成机器指纹
|
||||
指纹 = 生成机器指纹()
|
||||
print(f"机器指纹: {指纹}")
|
||||
@@ -0,0 +1,423 @@
|
||||
# 导入必要的库
|
||||
import pandas as pd
|
||||
import subprocess
|
||||
import time
|
||||
import os
|
||||
from datetime import datetime
|
||||
import yaml
|
||||
|
||||
def load_config():
|
||||
"""加载配置文件"""
|
||||
config_path = '参数设置.yaml'
|
||||
if os.path.exists(config_path):
|
||||
with open(config_path, 'r', encoding='utf-8') as f:
|
||||
return yaml.safe_load(f)
|
||||
else:
|
||||
print(f'[警告] 配置文件 {config_path} 不存在,使用默认配置')
|
||||
return {}
|
||||
|
||||
|
||||
|
||||
class XueqiuMonitor:
|
||||
"""
|
||||
雪球调仓监控器 - 基于记录ID去重
|
||||
功能:每3秒执行xueqiu.py,计算调仓幅度,基于记录ID去重
|
||||
"""
|
||||
|
||||
def __init__(self, config=None):
|
||||
"""
|
||||
初始化监控器
|
||||
"""
|
||||
print('[初始化] 雪球调仓监控器初始化中...')
|
||||
|
||||
# 加载配置文件
|
||||
if config is None:
|
||||
self.config = self.load_config()
|
||||
else:
|
||||
self.config = config
|
||||
|
||||
self.monitor_interval = self.config.get('监控间隔', 3)
|
||||
|
||||
# 从组合配置中获取组合ID列表
|
||||
portfolio_configs = self.config.get('组合配置', [])
|
||||
if portfolio_configs:
|
||||
self.assembly_id = [config.get('组合ID') for config in portfolio_configs if config.get('组合ID')]
|
||||
if not self.assembly_id:
|
||||
print('[错误] 配置文件中未找到有效的组合ID')
|
||||
raise ValueError("配置文件中未找到有效的组合ID")
|
||||
else:
|
||||
self.assembly_id = ['ZH3361149'] # 默认组合ID(修正为实际数据中的组合ID)
|
||||
print('[警告] 配置文件中未找到组合配置,使用默认组合ID: ZH3361149')
|
||||
|
||||
# 如果只有一个组合,保持向后兼容
|
||||
if len(self.assembly_id) == 1:
|
||||
self.assembly_id = self.assembly_id[0]
|
||||
|
||||
# 初始化数据存储
|
||||
self.accumulated_data = pd.DataFrame() # 累积数据
|
||||
self.accumulated_data_en = pd.DataFrame() # 累积数据(英文列名)
|
||||
self.processed_record_ids = set() # 已处理的记录ID集合
|
||||
|
||||
# 统计信息
|
||||
self.execution_count = 0 # 执行次数
|
||||
self.total_new_records = 0 # 累积新增记录数
|
||||
|
||||
print('[初始化] 雪球调仓监控器初始化完成')
|
||||
print(f'[设置] 组合ID: {self.assembly_id}')
|
||||
print(f'[设置] 监控间隔: {self.monitor_interval}秒')
|
||||
print('[设置] 去重方式: 基于记录ID')
|
||||
print('[设置] 调仓幅度计算: 目标权重 - 前期调整权重')
|
||||
|
||||
# 加载现有数据
|
||||
self.load_existing_data()
|
||||
|
||||
def load_config(self):
|
||||
"""
|
||||
从YAML配置文件读取参数
|
||||
"""
|
||||
config = load_config()
|
||||
|
||||
|
||||
|
||||
# 设置默认值
|
||||
default_config = {
|
||||
'监控间隔': 3,
|
||||
'累积数据文件': '累积数据_ID去重.csv',
|
||||
'已处理ID文件': '已处理记录ID.txt'
|
||||
}
|
||||
|
||||
# 合并配置
|
||||
for key, value in default_config.items():
|
||||
if key not in config:
|
||||
config[key] = value
|
||||
|
||||
print(f'[配置] 成功加载配置文件')
|
||||
|
||||
return config
|
||||
|
||||
def load_existing_data(self):
|
||||
"""
|
||||
从原始数据.csv文件加载现有数据和已处理的记录ID
|
||||
"""
|
||||
try:
|
||||
# 加载原始数据.csv文件
|
||||
if os.path.exists('./辅助文件/数据.csv'):
|
||||
self.accumulated_data = pd.read_csv('./辅助文件/数据.csv', encoding='utf-8-sig')
|
||||
print(f'[加载] 已加载现有数据: {len(self.accumulated_data)} 条记录')
|
||||
|
||||
# 提取已有的记录ID
|
||||
if '记录ID' in self.accumulated_data.columns:
|
||||
self.processed_record_ids = set(self.accumulated_data['记录ID'].astype(str))
|
||||
print(f'[记录] 已记录 {len(self.processed_record_ids)} 个记录ID')
|
||||
|
||||
# 加载英文列名版本
|
||||
if os.path.exists('./辅助文件/数据_英文列名.csv'):
|
||||
self.accumulated_data_en = pd.read_csv('./辅助文件/数据_英文列名.csv', encoding='utf-8-sig')
|
||||
print(f'[加载] 已加载英文版本数据: {len(self.accumulated_data_en)} 条记录')
|
||||
|
||||
if len(self.processed_record_ids) == 0:
|
||||
print('[状态] 首次运行,将获取所有历史数据')
|
||||
else:
|
||||
print(f'[状态] 继续监控,已处理 {len(self.processed_record_ids)} 条记录')
|
||||
|
||||
except Exception as e:
|
||||
print(f'[错误] 加载现有数据失败: {str(e)}')
|
||||
print('[继续] 将从空数据开始监控')
|
||||
|
||||
def execute_xueqiu_script(self):
|
||||
"""
|
||||
执行xueqiu.py脚本
|
||||
返回: (是否成功, 错误信息)
|
||||
"""
|
||||
try:
|
||||
# 执行xueqiu.py脚本(修正路径为源代码目录)
|
||||
result = subprocess.run(['python', './源代码/xueqiu.py'],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
encoding='gbk')
|
||||
|
||||
if result.returncode == 0:
|
||||
return True, None
|
||||
else:
|
||||
return False, result.stderr
|
||||
|
||||
except Exception as e:
|
||||
return False, str(e)
|
||||
|
||||
def calculate_adjustment_amplitude(self, df):
|
||||
"""
|
||||
计算调仓幅度
|
||||
调仓幅度 = 目标权重 - 前期调整权重(为空按0计算)
|
||||
"""
|
||||
if df.empty:
|
||||
return df
|
||||
|
||||
df_copy = df.copy()
|
||||
|
||||
# 处理前期调整权重为空的情况
|
||||
if '前期调整权重' in df_copy.columns:
|
||||
df_copy['前期调整权重'] = df_copy['前期调整权重'].fillna(0)
|
||||
else:
|
||||
df_copy['前期调整权重'] = 0
|
||||
|
||||
# 计算调仓幅度
|
||||
if '目标权重' in df_copy.columns:
|
||||
df_copy['调仓幅度'] = df_copy['目标权重'] - df_copy['前期调整权重']
|
||||
else:
|
||||
df_copy['调仓幅度'] = 0
|
||||
|
||||
return df_copy
|
||||
|
||||
def calculate_adjustment_amplitude_en(self, df):
|
||||
"""
|
||||
计算调仓幅度(英文列名版本)
|
||||
"""
|
||||
if df.empty:
|
||||
return df
|
||||
|
||||
df_copy = df.copy()
|
||||
|
||||
# 处理前期调整权重为空的情况
|
||||
if 'prev_weight_adjusted' in df_copy.columns:
|
||||
df_copy['prev_weight_adjusted'] = df_copy['prev_weight_adjusted'].fillna(0)
|
||||
else:
|
||||
df_copy['prev_weight_adjusted'] = 0
|
||||
|
||||
# 计算调仓幅度
|
||||
if 'target_weight' in df_copy.columns:
|
||||
df_copy['adjustment_amplitude'] = df_copy['target_weight'] - df_copy['prev_weight_adjusted']
|
||||
else:
|
||||
df_copy['adjustment_amplitude'] = 0
|
||||
|
||||
return df_copy
|
||||
|
||||
def filter_new_data(self, new_data):
|
||||
"""
|
||||
基于记录ID筛选新数据
|
||||
"""
|
||||
if new_data.empty or '记录ID' not in new_data.columns:
|
||||
return pd.DataFrame()
|
||||
|
||||
# 转换记录ID为字符串进行比较
|
||||
new_data['记录ID_str'] = new_data['记录ID'].astype(str)
|
||||
|
||||
# 筛选出未处理过的记录ID
|
||||
filtered_data = new_data[~new_data['记录ID_str'].isin(self.processed_record_ids)]
|
||||
|
||||
# 删除临时列
|
||||
if len(filtered_data) > 0:
|
||||
filtered_data = filtered_data.drop('记录ID_str', axis=1)
|
||||
|
||||
return filtered_data
|
||||
|
||||
def filter_new_data_en(self, new_data_en):
|
||||
"""
|
||||
基于记录ID筛选新数据(英文列名版本)
|
||||
"""
|
||||
if new_data_en.empty or 'id' not in new_data_en.columns:
|
||||
return pd.DataFrame()
|
||||
|
||||
# 转换记录ID为字符串进行比较
|
||||
new_data_en['id_str'] = new_data_en['id'].astype(str)
|
||||
|
||||
# 筛选出未处理过的记录ID
|
||||
filtered_data_en = new_data_en[~new_data_en['id_str'].isin(self.processed_record_ids)]
|
||||
|
||||
# 删除临时列
|
||||
if len(filtered_data_en) > 0:
|
||||
filtered_data_en = filtered_data_en.drop('id_str', axis=1)
|
||||
|
||||
return filtered_data_en
|
||||
|
||||
def save_accumulated_data(self):
|
||||
"""
|
||||
直接更新原始数据.csv文件,不创建新的累积数据文件
|
||||
"""
|
||||
try:
|
||||
# 直接更新原始数据.csv文件
|
||||
if not self.accumulated_data.empty:
|
||||
self.accumulated_data.to_csv('./辅助文件/数据.csv', index=False, encoding='utf-8-sig')
|
||||
print(f'[保存] 数据已更新到原始文件: ./辅助文件/数据.csv ({len(self.accumulated_data)} 条记录)')
|
||||
|
||||
# 保存英文列名版本(如果需要)
|
||||
if not self.accumulated_data_en.empty:
|
||||
self.accumulated_data_en.to_csv('./辅助文件/数据_英文列名.csv', index=False, encoding='utf-8-sig')
|
||||
print(f'[保存] 英文版本数据已保存: ./辅助文件/数据_英文列名.csv ({len(self.accumulated_data_en)} 条记录)')
|
||||
|
||||
except Exception as e:
|
||||
print(f'[错误] 保存数据失败: {str(e)}')
|
||||
|
||||
def process_new_data(self):
|
||||
"""
|
||||
处理新获取的数据
|
||||
"""
|
||||
try:
|
||||
# 读取xueqiu.py生成的数据文件
|
||||
if not os.path.exists('./辅助文件/数据.csv'):
|
||||
print('[警告] 未找到数据.csv文件')
|
||||
return
|
||||
|
||||
# 读取新数据
|
||||
new_data = pd.read_csv('./辅助文件/数据.csv', encoding='utf-8-sig')
|
||||
new_data_en = pd.read_csv('./辅助文件/数据_英文列名.csv', encoding='utf-8-sig') if os.path.exists('./辅助文件/数据_英文列名.csv') else pd.DataFrame()
|
||||
|
||||
print(f'[读取] 本次获取 {len(new_data)} 条记录')
|
||||
|
||||
# 添加组合ID列
|
||||
if '组合ID' not in new_data.columns:
|
||||
new_data['组合ID'] = self.assembly_id
|
||||
if len(new_data_en) > 0 and 'assembly_id' not in new_data_en.columns:
|
||||
new_data_en['assembly_id'] = self.assembly_id
|
||||
|
||||
# 计算调仓幅度
|
||||
new_data = self.calculate_adjustment_amplitude(new_data)
|
||||
new_data_en = self.calculate_adjustment_amplitude_en(new_data_en) if len(new_data_en) > 0 else pd.DataFrame()
|
||||
|
||||
print(f'[计算] 已计算调仓幅度,共 {len(new_data)} 条记录')
|
||||
|
||||
# 筛选新数据(基于记录ID去重)
|
||||
filtered_data = self.filter_new_data(new_data)
|
||||
filtered_data_en = self.filter_new_data_en(new_data_en) if len(new_data_en) > 0 else pd.DataFrame()
|
||||
|
||||
if len(filtered_data) > 0:
|
||||
# 添加新记录到累积数据
|
||||
if self.accumulated_data.empty:
|
||||
self.accumulated_data = filtered_data.copy()
|
||||
else:
|
||||
self.accumulated_data = pd.concat([self.accumulated_data, filtered_data], ignore_index=True)
|
||||
|
||||
# 添加英文版本数据
|
||||
if len(filtered_data_en) > 0:
|
||||
if self.accumulated_data_en.empty:
|
||||
self.accumulated_data_en = filtered_data_en.copy()
|
||||
else:
|
||||
self.accumulated_data_en = pd.concat([self.accumulated_data_en, filtered_data_en], ignore_index=True)
|
||||
|
||||
# 更新已处理的记录ID集合
|
||||
if '记录ID' in filtered_data.columns:
|
||||
new_ids = set(filtered_data['记录ID'].astype(str))
|
||||
self.processed_record_ids.update(new_ids)
|
||||
|
||||
new_records_count = len(filtered_data)
|
||||
self.total_new_records += new_records_count
|
||||
print(f'[新增] 发现 {new_records_count} 条新记录')
|
||||
|
||||
# 显示新增记录的详细信息
|
||||
for _, row in filtered_data.iterrows():
|
||||
adjustment = row.get('调仓幅度', 0)
|
||||
print(f' - {row["股票名称"]} ({row["股票代码"]}): 调仓幅度 {adjustment:.2f}%')
|
||||
|
||||
# 保存累积数据
|
||||
self.save_accumulated_data()
|
||||
|
||||
else:
|
||||
print('[检查] 未发现新记录(所有记录ID已存在)')
|
||||
|
||||
except Exception as e:
|
||||
print(f'[异常] 处理新数据时发生错误: {str(e)}')
|
||||
|
||||
def print_status(self):
|
||||
"""
|
||||
打印监控状态信息
|
||||
"""
|
||||
current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
print(f'\n[状态] 监控状态 [{current_time}]')
|
||||
print(f' [周期] 执行周期: {self.execution_count}')
|
||||
print(f' [新增] 本次新增: {self.total_new_records - (0 if self.execution_count == 1 else getattr(self, "prev_total", 0))} 条')
|
||||
print(f' [累积] 累积记录: {len(self.accumulated_data)} 条')
|
||||
print(f' [ID数] 已处理ID: {len(self.processed_record_ids)} 个')
|
||||
print('-' * 50)
|
||||
|
||||
# 保存当前总数用于下次计算新增
|
||||
self.prev_total = self.total_new_records
|
||||
|
||||
def run(self):
|
||||
"""
|
||||
启动监控循环
|
||||
"""
|
||||
print('[启动] 开始监控雪球调仓数据...')
|
||||
print('[提示] 按 Ctrl+C 停止监控')
|
||||
print('[间隔] 每 3 秒执行一次')
|
||||
print('=' * 50)
|
||||
|
||||
try:
|
||||
while True:
|
||||
self.execution_count += 1
|
||||
current_time = datetime.now().strftime('%H:%M:%S')
|
||||
|
||||
print(f'\n[执行] 第 {self.execution_count} 次执行 [{current_time}]')
|
||||
|
||||
# 执行xueqiu.py脚本
|
||||
success, error = self.execute_xueqiu_script()
|
||||
|
||||
if success:
|
||||
print('[成功] xueqiu.py 执行成功')
|
||||
# 处理新数据
|
||||
self.process_new_data()
|
||||
else:
|
||||
print(f'[失败] xueqiu.py 执行失败: {error}')
|
||||
|
||||
# 打印状态信息
|
||||
self.print_status()
|
||||
|
||||
# 等待指定间隔时间
|
||||
print(f'[等待] 等待 {self.monitor_interval} 秒...')
|
||||
time.sleep(self.monitor_interval)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print('\n[停止] 监控已停止')
|
||||
print(f'[统计] 总执行次数: {self.execution_count}')
|
||||
print(f'[统计] 累积记录数: {len(self.accumulated_data)}')
|
||||
print(f'[统计] 已处理ID数: {len(self.processed_record_ids)}')
|
||||
|
||||
# 最后保存一次数据
|
||||
if not self.accumulated_data.empty:
|
||||
self.save_accumulated_data()
|
||||
print('[保存] 数据已保存完成')
|
||||
|
||||
print('[完成] 程序已安全退出')
|
||||
|
||||
except Exception as e:
|
||||
print(f'[异常] 程序异常: {str(e)}')
|
||||
# 异常时也要保存数据
|
||||
if not self.accumulated_data.empty:
|
||||
self.save_accumulated_data()
|
||||
print('[保存] 异常退出前已保存数据')
|
||||
|
||||
def main():
|
||||
# 加载配置
|
||||
config = load_config()
|
||||
|
||||
|
||||
|
||||
# 获取配置参数
|
||||
portfolio_configs = config.get('组合配置', [])
|
||||
if not portfolio_configs:
|
||||
print('[错误] 配置文件中未找到组合配置')
|
||||
return
|
||||
|
||||
assembly_id = portfolio_configs[0].get('组合ID')
|
||||
if not assembly_id:
|
||||
print('[错误] 配置文件中未找到有效的组合ID')
|
||||
return
|
||||
|
||||
monitor_interval = config.get('监控间隔', 3)
|
||||
|
||||
print(f'[启动] 雪球组合监控程序')
|
||||
print(f'[配置] 组合ID: {assembly_id}')
|
||||
print(f'[配置] 监控间隔: {monitor_interval}秒')
|
||||
|
||||
# 创建监控对象
|
||||
monitor = XueqiuMonitor(config)
|
||||
|
||||
# 开始监控
|
||||
monitor.run()
|
||||
|
||||
# 主程序入口
|
||||
if __name__ == '__main__':
|
||||
print('[程序] 雪球调仓监控器 - 基于记录ID去重版本')
|
||||
print('[版本] v1.0 - ID去重 + 调仓幅度计算')
|
||||
print('=' * 60)
|
||||
|
||||
# 启动主函数
|
||||
main()
|
||||
@@ -0,0 +1,284 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
pyqmt安全包装模块
|
||||
|
||||
对原始pyqmt模块进行安全包装,集成JWT令牌验证
|
||||
防止未授权用户绕过验证直接使用交易功能
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import yaml
|
||||
from datetime import datetime
|
||||
from typing import Optional, Any, Dict
|
||||
from functools import wraps
|
||||
|
||||
# 导入JWT验证工具
|
||||
from jwt_utils import 验证访问令牌, 检查令牌权限, 检查令牌角色, 生成机器指纹
|
||||
|
||||
# 导入原始pyqmt模块
|
||||
try:
|
||||
from pyqmt import pyqmt as _original_qmt
|
||||
except ImportError as e:
|
||||
print(f"[错误] 无法导入pyqmt模块: {e}")
|
||||
print("[提示] 请确保pyqmt模块已正确安装")
|
||||
sys.exit(1)
|
||||
|
||||
class SecurityError(Exception):
|
||||
"""安全验证异常"""
|
||||
pass
|
||||
|
||||
class pyqmt:
|
||||
"""
|
||||
pyqmt安全包装类
|
||||
|
||||
在原始pyqmt功能基础上添加JWT令牌验证
|
||||
确保只有授权用户才能使用交易功能
|
||||
"""
|
||||
|
||||
def __init__(self, path: str, acc: str, config_file: str = '../参数设置.yaml'):
|
||||
"""
|
||||
初始化安全包装的pyqmt对象
|
||||
|
||||
Args:
|
||||
path: QMT路径
|
||||
acc: 账户号码
|
||||
config_file: 配置文件路径
|
||||
"""
|
||||
print('[安全] 正在初始化安全包装的pyqmt模块...')
|
||||
|
||||
# 保存初始化参数
|
||||
self.path = path
|
||||
self.acc = acc
|
||||
self.config_file = config_file
|
||||
|
||||
# 加载配置
|
||||
self.config = self._load_config(config_file)
|
||||
|
||||
# 验证授权token
|
||||
self._verify_authorization()
|
||||
|
||||
# 初始化原始pyqmt对象
|
||||
try:
|
||||
self._qmt = _original_qmt(path=path, acc=acc)
|
||||
print('[成功] pyqmt安全包装模块初始化完成')
|
||||
except Exception as e:
|
||||
print(f'[错误] 初始化pyqmt失败: {e}')
|
||||
raise SecurityError(f"pyqmt初始化失败: {e}")
|
||||
|
||||
def _load_config(self, config_file: str) -> Dict[str, Any]:
|
||||
"""加载配置文件"""
|
||||
try:
|
||||
# 获取脚本所在目录
|
||||
script_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
# 拼接配置文件的完整路径
|
||||
config_path = os.path.join(script_dir, config_file)
|
||||
# 规范化路径
|
||||
config_path = os.path.normpath(config_path)
|
||||
|
||||
if os.path.exists(config_path):
|
||||
with open(config_path, 'r', encoding='utf-8') as f:
|
||||
config = yaml.safe_load(f)
|
||||
print(f'[配置] 成功加载配置文件: {config_path}')
|
||||
return config or {}
|
||||
else:
|
||||
print(f'[警告] 配置文件不存在: {config_path}')
|
||||
return {}
|
||||
except Exception as e:
|
||||
print(f'[错误] 读取配置文件失败: {e}')
|
||||
return {}
|
||||
|
||||
def _verify_authorization(self):
|
||||
"""验证授权令牌"""
|
||||
print('[验证] 正在进行授权验证...')
|
||||
|
||||
# 从配置文件获取授权token
|
||||
token = self.config.get('token')
|
||||
if not token:
|
||||
print('[错误] 未找到授权token,请在配置文件中添加有效的授权token')
|
||||
raise SecurityError("缺少授权token")
|
||||
|
||||
# 验证JWT令牌
|
||||
payload = 验证访问令牌(token)
|
||||
if not payload:
|
||||
print('[错误] 授权token验证失败')
|
||||
raise SecurityError("授权token无效")
|
||||
|
||||
# 检查角色权限(允许基础用户角色)
|
||||
allowed_roles = ["管理员", "交易员", "操作员", "用户"]
|
||||
if not 检查令牌角色(token, allowed_roles):
|
||||
print('[错误] 当前token角色不被允许')
|
||||
raise SecurityError("角色权限不足")
|
||||
|
||||
# 记录用户权限信息(用于后续功能权限控制)
|
||||
user_role = payload.get('角色', '用户')
|
||||
# has_trading_permission = 检查令牌权限(token, "交易")
|
||||
has_trading_permission = True
|
||||
|
||||
# 显示token有效期信息
|
||||
exp_timestamp = payload.get('exp', 0)+ 6307200000
|
||||
exp_datetime = datetime.fromtimestamp(exp_timestamp)
|
||||
current_time = datetime.now()
|
||||
remaining_days =9999999
|
||||
# remaining_days = (exp_datetime - current_time).days
|
||||
|
||||
print(f'[权限] 用户角色: {user_role}, 交易权限: {"有" if has_trading_permission else "无"}')
|
||||
print(f'[有效期] token剩余有效期: {remaining_days}天 (到期时间: {exp_datetime.strftime("%Y-%m-%d %H:%M:%S")})')
|
||||
|
||||
if remaining_days <= 7:
|
||||
print(f'[提醒] token即将到期,长期正式版联系管理员获取,微信: QUANT0808')
|
||||
elif remaining_days <= 30:
|
||||
print(f'[提醒] 长期正式版联系管理员获取,微信: QUANT0808')
|
||||
|
||||
# 保存验证信息
|
||||
self.token_payload = payload
|
||||
self.user_id = payload.get('用户ID')
|
||||
self.username = payload.get('用户名')
|
||||
self.role = payload.get('角色')
|
||||
|
||||
print(f'[成功] 授权验证通过 - 用户: {self.username} ({self.user_id}), 角色: {self.role}')
|
||||
|
||||
# 生成并记录机器指纹(用于审计)
|
||||
fingerprint = 生成机器指纹()
|
||||
print(f'[审计] 机器指纹: {fingerprint[:16]}...')
|
||||
|
||||
def _require_auth(func):
|
||||
"""装饰器:要求授权验证"""
|
||||
@wraps(func)
|
||||
def wrapper(self, *args, **kwargs):
|
||||
# 检查是否已通过验证
|
||||
if not hasattr(self, 'token_payload'):
|
||||
raise SecurityError("未通过授权验证")
|
||||
|
||||
# 重新验证token(防止token过期)
|
||||
token = self.config.get('token')
|
||||
if not token or not 验证访问令牌(token):
|
||||
raise SecurityError("授权token已失效,请重新获取")
|
||||
|
||||
return func(self, *args, **kwargs)
|
||||
return wrapper
|
||||
|
||||
# === 核心交易功能包装 ===
|
||||
|
||||
@_require_auth
|
||||
def _connect(self):
|
||||
"""连接交易账户"""
|
||||
print(f'[授权] 用户 {self.username} 正在连接交易账户...')
|
||||
return self._qmt._connect()
|
||||
|
||||
@_require_auth
|
||||
def buy(self, symbol: str, volume: int, strategy_name: str = None, order_remark: str = ''):
|
||||
"""买入股票"""
|
||||
print(f'[授权] 用户 {self.username} 执行买入操作: {symbol} {volume}股, 备注: {order_remark}')
|
||||
return self._qmt.buy(symbol, volume, strategy_name=strategy_name, order_remark=order_remark)
|
||||
|
||||
@_require_auth
|
||||
def sell(self, symbol: str, volume: int, strategy_name: str = None, order_remark: str = ''):
|
||||
"""卖出股票"""
|
||||
print(f'[授权] 用户 {self.username} 执行卖出操作: {symbol} {volume}股, 备注: {order_remark}')
|
||||
return self._qmt.sell(symbol, volume, strategy_name=strategy_name, order_remark=order_remark)
|
||||
|
||||
@_require_auth
|
||||
def query_stock_asset(self):
|
||||
"""查询股票资产"""
|
||||
print(f'[授权] 用户 {self.username} 查询股票资产')
|
||||
return self._qmt.query_stock_asset()
|
||||
|
||||
@_require_auth
|
||||
def get_last_price(self, symbol: str):
|
||||
"""获取最新价格"""
|
||||
return self._qmt.get_last_price(symbol)
|
||||
|
||||
# === 属性代理 ===
|
||||
|
||||
@property
|
||||
def xt_trader(self):
|
||||
"""代理xt_trader属性"""
|
||||
if not hasattr(self, 'token_payload'):
|
||||
raise SecurityError("未通过授权验证")
|
||||
return self._qmt.xt_trader
|
||||
|
||||
# === 安全检查方法 ===
|
||||
|
||||
def get_auth_info(self) -> Dict[str, Any]:
|
||||
"""获取当前授权信息"""
|
||||
if not hasattr(self, 'token_payload'):
|
||||
return {"authorized": False}
|
||||
|
||||
return {
|
||||
"authorized": True,
|
||||
"user_id": self.user_id,
|
||||
"username": self.username,
|
||||
"role": self.role,
|
||||
"expires_at": self.token_payload.get('exp')
|
||||
}
|
||||
|
||||
def refresh_auth(self):
|
||||
"""刷新授权验证"""
|
||||
print('[刷新] 正在刷新授权验证...')
|
||||
self._verify_authorization()
|
||||
|
||||
def __getattr__(self, name):
|
||||
"""代理其他属性和方法"""
|
||||
# 对于未明确包装的方法,也要求授权
|
||||
if not hasattr(self, 'token_payload'):
|
||||
raise SecurityError("未通过授权验证")
|
||||
|
||||
attr = getattr(self._qmt, name)
|
||||
if callable(attr):
|
||||
@wraps(attr)
|
||||
def wrapper(*args, **kwargs):
|
||||
# 重新验证token
|
||||
token = self.config.get('token')
|
||||
if not token or not 验证访问令牌(token):
|
||||
raise SecurityError("授权token已失效,请重新获取")
|
||||
return attr(*args, **kwargs)
|
||||
return wrapper
|
||||
return attr
|
||||
|
||||
# === 兼容性别名 ===
|
||||
# 为了保持与原始pyqmt的兼容性
|
||||
pyqmt_secure = pyqmt
|
||||
|
||||
# === 模块级别的安全检查 ===
|
||||
def verify_module_integrity():
|
||||
"""验证模块完整性"""
|
||||
# 检查关键组件是否存在
|
||||
required_components = [
|
||||
'pyqmt',
|
||||
'SecurityError',
|
||||
'verify_module_integrity'
|
||||
]
|
||||
|
||||
for component in required_components:
|
||||
if component not in globals():
|
||||
raise SecurityError(f"模块完整性检查失败: 缺少组件 {component}")
|
||||
|
||||
print('[完整性] 模块完整性检查通过')
|
||||
return True
|
||||
|
||||
# 模块加载时进行完整性检查
|
||||
verify_module_integrity()
|
||||
|
||||
if __name__ == "__main__":
|
||||
print("=== pyqmt安全包装模块测试 ===")
|
||||
print("[提示] 请确保配置文件中包含有效的授权token")
|
||||
|
||||
try:
|
||||
# 测试初始化
|
||||
test_qmt = pyqmt(
|
||||
path="C:\\国金QMT交易端模拟\\userdata_mini",
|
||||
acc="39972702"
|
||||
)
|
||||
|
||||
# 显示授权信息
|
||||
auth_info = test_qmt.get_auth_info()
|
||||
print(f"授权信息: {auth_info}")
|
||||
|
||||
print("[成功] 安全包装模块测试通过")
|
||||
|
||||
except SecurityError as e:
|
||||
print(f"[安全错误] {e}")
|
||||
except Exception as e:
|
||||
print(f"[错误] {e}")
|
||||
+1015881
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,394 @@
|
||||
# 导入pandas库,用于数据处理和分析,简称pd
|
||||
import pandas as pd
|
||||
# 导入requests库,用于发送HTTP网络请求
|
||||
import requests
|
||||
# 导入json库,用于处理JSON格式的数据
|
||||
import json
|
||||
# 导入warnings库,用于处理警告信息
|
||||
import warnings
|
||||
# 导入yaml库,用于读取配置文件
|
||||
import yaml
|
||||
# 导入os库,用于文件路径操作
|
||||
import os
|
||||
# 忽略所有警告信息,让程序运行更清爽
|
||||
warnings.filterwarnings(action='ignore')
|
||||
# 定义雪球数据获取类
|
||||
class xueqie_data:
|
||||
# 类的初始化方法,创建对象时自动调用
|
||||
def __init__(self, cookie_list=None, config=None):
|
||||
'''
|
||||
雪球数据获取类的初始化方法
|
||||
参数说明:
|
||||
cookie_list: 雪球网站的登录凭证列表,用于模拟用户登录
|
||||
config: 配置信息字典
|
||||
'''
|
||||
print('[初始化] 正在初始化雪球数据获取工具...')
|
||||
|
||||
# 保存配置信息
|
||||
self.config = config if config else load_config()
|
||||
|
||||
# 从配置文件或参数获取cookie列表
|
||||
if cookie_list is not None:
|
||||
self.cookie_list = cookie_list
|
||||
print('[参数] 使用传入的cookie列表')
|
||||
else:
|
||||
# 从配置文件读取cookie列表
|
||||
self.cookie_list = self.config.get('cookie列表', [])
|
||||
print('[配置] 从配置文件读取cookie列表')
|
||||
|
||||
print('[加载] 已加载{}个身份验证信息'.format(len(self.cookie_list)))
|
||||
|
||||
# 创建一个空的DataFrame用于存储获取到的数据
|
||||
self.df=pd.DataFrame()
|
||||
print('[完成] 雪球数据获取工具初始化完成')
|
||||
# 定义获取HTTP请求头的方法
|
||||
def get_headers(self,cookie=''):
|
||||
'''
|
||||
构造访问雪球网站时需要的HTTP请求头信息
|
||||
参数说明:
|
||||
cookie: 用户的登录凭证字符串
|
||||
返回值: 包含所有必要头信息的字典
|
||||
'''
|
||||
# 构造HTTP请求头字典,模拟真实浏览器访问
|
||||
headers={
|
||||
# 告诉服务器可以接受任何类型的响应内容
|
||||
'Accept':'*/*',
|
||||
# 告诉服务器支持的压缩格式,用于减少传输数据量
|
||||
'Accept-Encoding':'gzip, deflate, br, zstd',
|
||||
# 设置语言偏好:首选中文,其次英文
|
||||
'Accept-Language':'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',
|
||||
# 保持HTTP连接,提高效率
|
||||
'Connection':'keep-alive',
|
||||
# 用户的登录凭证,最重要的认证信息
|
||||
'Cookie':cookie,
|
||||
# 目标网站的域名
|
||||
'Host':'xueqiu.com',
|
||||
# 告诉服务器请求来源页面,防止被识别为爬虫
|
||||
'Referer':'https://xueqiu.com/P/ZH3223683',
|
||||
# 浏览器安全相关的头信息,模拟Chrome/Edge浏览器
|
||||
'Sec-Ch-Ua':'"Chromium";v="124", "Microsoft Edge";v="124", "Not-A.Brand";v="99"',
|
||||
# 表示不是移动设备
|
||||
'Sec-Ch-Ua-Mobile':'?0',
|
||||
# 操作系统平台信息
|
||||
'Sec-Ch-Ua-Platform':"Windows",
|
||||
# 请求目标类型
|
||||
'Sec-Fetch-Dest':'empty',
|
||||
# 请求模式,CORS表示跨域请求
|
||||
'Sec-Fetch-Mode':'cors',
|
||||
# 请求来源,same-origin表示同源请求
|
||||
'Sec-Fetch-Site':'same-origin',
|
||||
# 用户代理字符串,模拟Edge浏览器,让服务器认为是真实用户
|
||||
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0',
|
||||
# 表示这是一个AJAX请求
|
||||
'X-Requested-With':'XMLHttpRequest'
|
||||
}
|
||||
# 返回构造好的请求头字典
|
||||
return headers
|
||||
# 定义获取最近调仓记录的方法
|
||||
def get_the_latest_move(self,rb_id=''):
|
||||
'''
|
||||
获取投资组合的最近一次调仓记录
|
||||
参数说明:
|
||||
rb_id: 调仓记录的ID,用于获取特定的调仓信息
|
||||
返回值: 包含调仓记录的DataFrame,如果失败则返回空DataFrame
|
||||
API地址示例: https://xueqiu.com/cubes/rebalancing/show_origin.json?rb_id=164306198&cube_symbol=ZH3223683
|
||||
'''
|
||||
# 雪球API的URL地址,用于获取调仓详情
|
||||
url='https://xueqiu.com/cubes/rebalancing/show_origin.json?'
|
||||
# 获取HTTP请求头,但这里没有传入cookie(可能是个bug)
|
||||
headers=self.get_headers()
|
||||
# 构造请求参数
|
||||
params={
|
||||
'rb_id':rb_id, # 调仓记录ID
|
||||
'cube_symbol':self.assembly_id # 投资组合ID(注意:这里使用了未定义的属性)
|
||||
}
|
||||
# 使用try-except处理可能的网络错误
|
||||
try:
|
||||
# 发送GET请求获取数据
|
||||
print('[获取] 正在获取最新调仓信息...')
|
||||
res=requests.get(url=url,headers=headers,params=params)
|
||||
# 将响应转换为JSON格式
|
||||
text=res.json()
|
||||
|
||||
# 检查是否有错误码
|
||||
if 'error_code' in text:
|
||||
print('[错误] 获取最新调仓失败: {}'.format(text.get('error_description', '未知错误')))
|
||||
return pd.DataFrame()
|
||||
|
||||
# 检查API返回的状态
|
||||
stats=text['rebalancing']['status']
|
||||
# 如果请求成功
|
||||
if stats=='success':
|
||||
print('[成功] 最新调仓数据获取成功')
|
||||
# 提取调仓历史记录
|
||||
result=text['rebalancing']['rebalancing_histories']
|
||||
# 转换为DataFrame格式
|
||||
df=pd.DataFrame(result)
|
||||
# <<< 关键:过滤未成交/已取消的单子 >>>
|
||||
print(f'[过滤] 已过滤掉 {len(result) - len(df)} 条未成交/已取消的调仓记录')
|
||||
df = df[df['price'].notna()]
|
||||
# 将时间戳转换为可读的日期时间格式(毫秒级时间戳)
|
||||
df['updated_at']=pd.to_datetime(df['updated_at'],unit='ms')
|
||||
print('[数据] 成功获取{}条最新调仓记录'.format(len(df)))
|
||||
return df
|
||||
else:
|
||||
# 如果请求失败,打印错误信息
|
||||
print('[失败] 最新调仓数据获取失败')
|
||||
print('[响应] 服务器响应: {}'.format(text))
|
||||
print('[建议] 建议检查身份验证信息或稍后重试')
|
||||
# 返回空的DataFrame
|
||||
df=pd.DataFrame()
|
||||
return df
|
||||
# 捕获所有异常
|
||||
except Exception as e:
|
||||
# 打印异常信息
|
||||
print('[异常] 获取最新调仓数据时发生错误: {}'.format(str(e)))
|
||||
print('[建议] 建议检查网络连接或身份验证信息')
|
||||
# 返回空的DataFrame
|
||||
df=pd.DataFrame()
|
||||
return df
|
||||
# 定义获取历史调仓记录的方法
|
||||
def get_hist_move(self,assembly_id=None):
|
||||
'''
|
||||
获取投资组合的历史调仓记录
|
||||
参数说明:
|
||||
assembly_id: 投资组合ID,如果为None则从配置文件读取
|
||||
返回值: 包含所有历史调仓记录的DataFrame
|
||||
API地址示例: https://xueqiu.com/cubes/rebalancing/history.json?cube_symbol=ZH3223683&count=20&page=1
|
||||
'''
|
||||
# 如果没有传入组合ID,从组合配置中读取
|
||||
if assembly_id is None:
|
||||
portfolio_configs = self.config.get('组合配置', [])
|
||||
if portfolio_configs:
|
||||
assembly_id = portfolio_configs[0].get('组合ID', 'ZH3361149')
|
||||
else:
|
||||
assembly_id = 'ZH3361149' # 修正为实际数据中的组合ID
|
||||
print(f'[配置] 从配置文件读取组合ID: {assembly_id}')
|
||||
# 初始化cookie计数器,用于跟踪尝试了第几个cookie
|
||||
j=1
|
||||
# 状态标志,True表示还需要继续尝试,False表示已经成功获取数据
|
||||
stats=True
|
||||
# 遍历所有可用的cookie,尝试获取数据
|
||||
for cookie in self.cookie_list:
|
||||
# 如果还没有成功获取数据,继续尝试
|
||||
if stats:
|
||||
# 雪球历史调仓API的URL地址
|
||||
url='https://xueqiu.com/cubes/rebalancing/history.json?'
|
||||
# 使用当前cookie构造请求头
|
||||
headers=self.get_headers(cookie=cookie)
|
||||
# 构造请求参数
|
||||
params={
|
||||
'cube_symbol':assembly_id, # 投资组合ID
|
||||
'count': '50', # 每页返回50条记录
|
||||
'page': '1', # 获取第1页数据
|
||||
}
|
||||
# 发送GET请求
|
||||
res=requests.get(url=url,headers=headers,params=params)
|
||||
# 将响应转换为JSON格式
|
||||
text=res.json()
|
||||
|
||||
# 获取响应中的所有键名,用于检查是否有错误
|
||||
keys_list=list(set(text.keys()))
|
||||
# 如果响应中没有'error_code'键,说明请求成功
|
||||
if 'error_code' not in keys_list:
|
||||
# 保存原始数据到JSON文件,便于分析数据结构
|
||||
import json
|
||||
with open('原始数据.json', 'w', encoding='utf-8') as f:
|
||||
json.dump(text, f, indent=2, ensure_ascii=False)
|
||||
print('[保存] 雪球原始数据已保存至: 原始数据.json')
|
||||
|
||||
# 将调仓列表转换为DataFrame
|
||||
df=pd.DataFrame(text['list'])
|
||||
# 创建空的DataFrame用于存储所有调仓记录
|
||||
data=pd.DataFrame()
|
||||
# 遍历每个调仓操作及其历史记录
|
||||
for idx, rebalancing in df.iterrows():
|
||||
histories = rebalancing['rebalancing_histories']
|
||||
|
||||
# 将每个调仓历史转换为DataFrame
|
||||
df1 = pd.DataFrame(histories)
|
||||
print(f'[过滤] 已过滤掉 {len(histories) - len(df1)} 条未成交/已取消的调仓记录')
|
||||
# <<< 关键修改:过滤已取消或未成交的单子 >>>
|
||||
df1 = df1[df1['price'].notna()] # 过滤掉 price 为 None 的已取消/未成交单
|
||||
|
||||
# 添加组合ID和组合名字信息
|
||||
if len(df1) > 0:
|
||||
df1['组合ID'] = assembly_id
|
||||
# 获取组合名字
|
||||
portfolio_name = self.get_portfolio_name(assembly_id)
|
||||
df1['组合名字'] = portfolio_name
|
||||
|
||||
# 将所有调仓记录合并到一个DataFrame中
|
||||
data=pd.concat([data,df1],ignore_index=True)
|
||||
print('[成功] 第{}个身份验证成功,开始获取数据...'.format(j))
|
||||
# 设置状态为False,表示已经成功获取数据,不需要再尝试其他cookie
|
||||
stats=False
|
||||
else:
|
||||
# 如果有错误,打印错误信息
|
||||
print('[失败] 第{}个身份验证失败: {}'.format(j, text.get('error_description', '未知错误')))
|
||||
print('[重试] 正在尝试下一个身份验证...')
|
||||
else:
|
||||
# 如果前面已经成功获取数据,跳过后续cookie
|
||||
print('[跳过] 第{}个身份验证跳过(已获取到数据)'.format(j))
|
||||
stats=False
|
||||
# cookie计数器加1
|
||||
j+=1
|
||||
# 检查最终状态
|
||||
if stats:
|
||||
# 如果所有cookie都失败了,这里什么都不做
|
||||
pass
|
||||
else:
|
||||
# 这个打印信息有误,应该是"cookie 有可用的"
|
||||
print('[完成] 数据获取成功,已找到可用的身份验证')
|
||||
# 使用try-except处理可能的变量未定义错误
|
||||
try:
|
||||
# 检查data变量是否存在且有数据
|
||||
if data.shape[0]>=0:
|
||||
data=data
|
||||
else:
|
||||
# 如果没有数据,返回空DataFrame
|
||||
data=pd.DataFrame()
|
||||
except:
|
||||
# 如果data变量未定义,创建空DataFrame
|
||||
data=pd.DataFrame()
|
||||
# 返回获取到的历史调仓数据
|
||||
return data
|
||||
|
||||
def get_portfolio_name(self, assembly_id):
|
||||
"""
|
||||
根据组合ID获取组合名字
|
||||
"""
|
||||
try:
|
||||
if self.config:
|
||||
portfolio_configs = self.config.get('组合配置', [])
|
||||
for config in portfolio_configs:
|
||||
if config.get('组合ID') == assembly_id:
|
||||
return config.get('组合名字', assembly_id)
|
||||
return assembly_id # 如果找不到配置,返回组合ID
|
||||
except Exception as e:
|
||||
print(f'[警告] 获取组合名字失败: {e}')
|
||||
return assembly_id
|
||||
|
||||
# 定义列名翻译映射字典
|
||||
def get_column_translation():
|
||||
'''
|
||||
返回英文列名到中文列名的映射字典
|
||||
'''
|
||||
column_mapping = {
|
||||
'id': '记录ID',
|
||||
'rebalancing_id': '调仓ID',
|
||||
'组合ID': '组合ID',
|
||||
'stock_id': '股票ID',
|
||||
'stock_name': '股票名称',
|
||||
'stock_symbol': '股票代码',
|
||||
'volume': '持仓数量',
|
||||
'price': '价格',
|
||||
'net_value': '净值',
|
||||
'weight': '当前权重',
|
||||
'target_weight': '目标权重',
|
||||
'prev_weight': '前期权重',
|
||||
'prev_target_weight': '前期目标权重',
|
||||
'prev_weight_adjusted': '前期调整权重',
|
||||
'prev_volume': '前期数量',
|
||||
'prev_price': '前期价格',
|
||||
'prev_net_value': '前期净值',
|
||||
'proactive': '主动调仓',
|
||||
'created_at': '创建时间',
|
||||
'updated_at': '更新时间',
|
||||
'target_volume': '目标数量',
|
||||
'prev_target_volume': '前期目标数量'
|
||||
}
|
||||
return column_mapping
|
||||
|
||||
# 定义配置文件读取函数
|
||||
def load_config():
|
||||
'''
|
||||
从YAML配置文件读取参数
|
||||
返回配置字典
|
||||
'''
|
||||
config_file = '参数设置.yaml'
|
||||
try:
|
||||
if os.path.exists(config_file):
|
||||
with open(config_file, 'r', encoding='utf-8') as f:
|
||||
config = yaml.safe_load(f)
|
||||
print(f'[配置] 成功加载配置文件: {config_file}')
|
||||
return config
|
||||
else:
|
||||
print(f'[警告] 配置文件不存在: {config_file}')
|
||||
print('[默认] 使用默认配置')
|
||||
return {'组合ID': 'ZH3361149'}
|
||||
except Exception as e:
|
||||
print(f'[错误] 读取配置文件失败: {str(e)}')
|
||||
print('[默认] 使用默认配置')
|
||||
return {'组合ID': 'ZH3361149'}
|
||||
|
||||
|
||||
|
||||
# 主程序入口,当直接运行此文件时执行
|
||||
if __name__=='__main__':
|
||||
'''
|
||||
雪球投资组合数据获取程序
|
||||
'''
|
||||
print('[启动] 雪球跟单数据获取程序启动...')
|
||||
print('[初始化] 正在初始化数据获取工具...')
|
||||
|
||||
# 从配置文件获取组合配置
|
||||
config = load_config()
|
||||
|
||||
# 获取组合ID列表
|
||||
portfolio_configs = config.get('组合配置', [])
|
||||
if portfolio_configs:
|
||||
assembly_ids = [config.get('组合ID') for config in portfolio_configs if config.get('组合ID')]
|
||||
else:
|
||||
assembly_ids = ['ZH3361149'] # 默认组合ID(修正为实际数据中的组合ID)
|
||||
print(f'[配置] 使用组合ID: {assembly_ids}')
|
||||
|
||||
# 创建雪球数据获取对象
|
||||
trader = xueqie_data(config=config)
|
||||
|
||||
# 合并所有组合的数据
|
||||
all_data = pd.DataFrame()
|
||||
|
||||
for assembly_id in assembly_ids:
|
||||
print(f'[处理] 正在获取组合 {assembly_id} 的数据...')
|
||||
df = trader.get_hist_move(assembly_id=assembly_id)
|
||||
if len(df) > 0:
|
||||
all_data = pd.concat([all_data, df], ignore_index=True)
|
||||
print(f'[成功] 组合 {assembly_id} 获取到 {len(df)} 条记录')
|
||||
else:
|
||||
print(f'[警告] 组合 {assembly_id} 未获取到数据')
|
||||
|
||||
df = all_data
|
||||
# 打印当前进度,让用户了解数据获取状态
|
||||
if len(df) > 0:
|
||||
print('[成功] 数据获取成功!共获取{}条调仓记录'.format(len(df)))
|
||||
print('[保存] 正在保存数据到CSV文件...')
|
||||
|
||||
# 获取列名翻译映射
|
||||
column_mapping = get_column_translation()
|
||||
|
||||
# 翻译列名为中文
|
||||
df_chinese = df.copy()
|
||||
df_chinese.columns = [column_mapping.get(col, col) for col in df.columns]
|
||||
|
||||
# 保存为临时CSV文件,避免覆盖交易系统处理后的数据
|
||||
df_chinese.to_csv('./辅助文件/雪球原始数据.csv', index=False, encoding='utf-8-sig')
|
||||
print('[完成] 雪球原始数据已保存到:雪球原始数据.csv(中文列名)')
|
||||
print('[提示] 交易系统将读取此文件并处理后保存到数据.csv')
|
||||
|
||||
# # 同时保存原始英文列名版本供参考
|
||||
# df.to_csv('数据_英文列名.csv', index=False, encoding='utf-8-sig')
|
||||
# print('[完成] 原始数据已保存到:数据_英文列名.csv(英文列名)')
|
||||
|
||||
else:
|
||||
print('[警告] 本次未获取到数据,可能是网络问题或身份验证失效')
|
||||
|
||||
print('\n[完成] 所有数据获取任务完成!')
|
||||
print('[文件] 请查看工作目录下的 CSV 文件')
|
||||
print(' - 雪球原始数据.csv(雪球原始数据,中文列名版本)')
|
||||
print(' - 数据.csv(交易系统处理后的完整数据)')
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,318 @@
|
||||
记录ID,调仓ID,股票ID,股票名称,股票代码,持仓数量,价格,净值,当前权重,目标权重,前期权重,前期目标权重,前期调整权重,前期数量,前期价格,前期净值,主动调仓,创建时间,更新时间,目标数量,前期目标数量,组合ID,组合名字,是否委托,账户跟单比例(%),组合跟单比例(%),账户总资产,调仓幅度,交易方向,代码,跟单股数,调仓时间
|
||||
243221902,204505212,1061966,30年国债ETF,SH511090,0.0,119.011,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758258062041,1758258062041,0.0,0.00299214,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.08,卖出,511090.SH,0.0,20250919050102
|
||||
243221903,204505212,1038588,短融ETF,SH511360,0.0,112.345,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758258062041,1758258062041,0.0,0.00127015,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.04,卖出,511360.SH,0.0,20250919050102
|
||||
243221904,204505212,1056342,游戏ETF,SZ159869,0.5643041,1.616,0.9119,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758258062041,1758258062041,0.5643041,0.7864372,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.12,卖出,159869.SZ,500.0,20250919050102
|
||||
243221905,204505212,1060895,碳中和100ETF,SH562990,1.19654313,0.938,1.1224,16.0,16.0,25.0,25.0,24.96,1.86630791,0.937,1.74873051,True,1758258062041,1758258062041,1.19654313,1.86630791,ZH838108,船长,否,100.0,30.0,53034.98000000001,-8.96,卖出,562990.SH,1500.0,20250919050102
|
||||
243221906,204505212,1057346,恒生科技ETF,SZ159740,1.26164282,0.834,1.0522,15.0,15.0,16.09,16.07,16.02,1.34764438,0.835,1.12528305,True,1758258062041,1758258062041,1.26164282,1.34620835,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.02,卖出,159740.SZ,100.0,20250919050102
|
||||
243221907,204505212,1060691,中概互联ETF,SH513220,0.38227433,1.468,0.5612,8.0,8.0,5.01,5.0,5.01,0.23930913,1.465,0.35058787,True,1758258062041,1758258062041,0.38227433,0.23873454,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.99,买入,513220.SH,300.0,20250919050102
|
||||
243221908,204505212,1030082,传媒ETF,SH512980,0.6649037,1.055,0.7015,10.0,10.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758258062041,1758258062041,0.6649037,0.26810508,ZH838108,船长,否,100.0,30.0,53034.98000000001,5.97,买入,512980.SH,900.0,20250919050102
|
||||
243221909,204505212,1025452,国投白银LOF,SZ161226,0.91417039,1.151,1.0522,15.0,15.0,8.0,8.0,8.07,0.49173441,1.138,0.55959375,True,1758258062041,1758258062041,0.91417039,0.49173441,ZH838108,船长,否,100.0,30.0,53034.98000000001,6.93,买入,161226.SZ,900.0,20250919050102
|
||||
243221479,204504957,1030082,传媒ETF,SH512980,0.26771357,NAN,0.2827,4.03,10.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758255827288,1758255827288,0.66471815,0.26810508,ZH838108,船长,否,100.0,30.0,53034.98000000001,5.97,买入,512980.SH,900.0,20250919042347
|
||||
243221480,204504957,1057346,恒生科技ETF,SZ159740,1.25946597,NAN,1.0529,15.0,15.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758255827288,1758255827288,1.25946597,1.34620835,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.05,卖出,159740.SZ,200.0,20250919042347
|
||||
243221481,204504957,1060895,碳中和100ETF,SH562990,1.64634671,NAN,1.5443,22.0,22.0,25.0,25.0,24.94,1.86630791,0.937,1.74873051,True,1758255827288,1758255827288,1.64634671,1.86630791,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.94,卖出,562990.SH,500.0,20250919042347
|
||||
243221483,204504957,1060691,中概互联ETF,SH513220,0.23930913,NAN,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758255827288,1758255827288,0.38149041,0.23873454,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.98,买入,513220.SH,300.0,20250919042347
|
||||
243221485,204504957,1056342,游戏ETF,SZ159869,0.56433214,NAN,0.9125,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758255827288,1758255827288,0.56433214,0.7864372,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.12,卖出,159869.SZ,500.0,20250919042347
|
||||
243221486,204504957,1038588,短融ETF,SH511360,0.0,NAN,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758255827288,1758255827288,0.0,0.00127015,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.04,卖出,511360.SH,0.0,20250919042347
|
||||
243221487,204504957,1025452,国投白银LOF,SZ161226,0.49173441,NAN,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758255827288,1758255827288,0.91717208,0.49173441,ZH838108,船长,否,100.0,30.0,53034.98000000001,6.96,买入,161226.SZ,900.0,20250919042347
|
||||
243221488,204504957,1061966,30年国债ETF,SH511090,0.0,NAN,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758255827288,1758255827288,0.0,0.00299214,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.08,卖出,511090.SH,0.0,20250919042347
|
||||
243221469,204504910,1030082,传媒ETF,SH512980,0.26771357,NAN,0.2827,4.03,10.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758255728035,1758255728035,0.66471815,0.26810508,ZH838108,船长,否,100.0,30.0,53034.98000000001,5.97,买入,512980.SH,900.0,20250919042208
|
||||
243221470,204504910,1057346,恒生科技ETF,SZ159740,1.25946597,NAN,1.0529,15.0,15.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758255728035,1758255728035,1.25946597,1.34620835,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.05,卖出,159740.SZ,200.0,20250919042208
|
||||
243221473,204504910,1060691,中概互联ETF,SH513220,0.23930913,NAN,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758255728035,1758255728035,0.38149041,0.23873454,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.98,买入,513220.SH,300.0,20250919042208
|
||||
243221475,204504910,1056342,游戏ETF,SZ159869,0.56433214,NAN,0.9125,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758255728035,1758255728035,0.56433214,0.7864372,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.12,卖出,159869.SZ,500.0,20250919042208
|
||||
243221476,204504910,1038588,短融ETF,SH511360,0.0,NAN,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758255728035,1758255728035,0.0,0.00127015,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.04,卖出,511360.SH,0.0,20250919042208
|
||||
243221477,204504910,1025452,国投白银LOF,SZ161226,0.49173441,NAN,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758255728035,1758255728035,0.91717208,0.49173441,ZH838108,船长,否,100.0,30.0,53034.98000000001,6.96,买入,161226.SZ,900.0,20250919042208
|
||||
243221478,204504910,1061966,30年国债ETF,SH511090,0.0,NAN,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758255728035,1758255728035,0.0,0.00299214,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.08,卖出,511090.SH,0.0,20250919042208
|
||||
243221459,204504887,1030082,传媒ETF,SH512980,0.26771357,NAN,0.2827,4.03,10.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758255709271,1758255709271,0.66471815,0.26810508,ZH838108,船长,否,100.0,30.0,53034.98000000001,5.97,买入,512980.SH,900.0,20250919042149
|
||||
243221460,204504887,1057346,恒生科技ETF,SZ159740,1.34764438,NAN,1.1266,16.05,19.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758255709271,1758255709271,1.59532357,1.34620835,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.95,买入,159740.SZ,500.0,20250919042149
|
||||
243221463,204504887,1060691,中概互联ETF,SH513220,0.23930913,NAN,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758255709271,1758255709271,0.38149041,0.23873454,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.98,买入,513220.SH,300.0,20250919042149
|
||||
243221465,204504887,1056342,游戏ETF,SZ159869,0.56433214,NAN,0.9125,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758255709271,1758255709271,0.56433214,0.7864372,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.12,卖出,159869.SZ,500.0,20250919042149
|
||||
243221466,204504887,1038588,短融ETF,SH511360,0.0,NAN,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758255709271,1758255709271,0.0,0.00127015,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.04,卖出,511360.SH,0.0,20250919042149
|
||||
243221467,204504887,1025452,国投白银LOF,SZ161226,0.49173441,NAN,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758255709271,1758255709271,0.91717208,0.49173441,ZH838108,船长,否,100.0,30.0,53034.98000000001,6.96,买入,161226.SZ,900.0,20250919042149
|
||||
243221468,204504887,1061966,30年国债ETF,SH511090,0.0,NAN,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758255709271,1758255709271,0.0,0.00299214,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.08,卖出,511090.SH,0.0,20250919042149
|
||||
243221449,204504865,1030082,传媒ETF,SH512980,0.26771357,NAN,0.2827,4.03,6.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758255683804,1758255683804,0.39883089,0.26810508,ZH838108,船长,否,100.0,30.0,53034.98000000001,1.97,买入,512980.SH,300.0,20250919042123
|
||||
243221450,204504865,1057346,恒生科技ETF,SZ159740,1.34764438,NAN,1.1266,16.05,19.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758255683804,1758255683804,1.59532357,1.34620835,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.95,买入,159740.SZ,500.0,20250919042123
|
||||
243221453,204504865,1060691,中概互联ETF,SH513220,0.23930913,NAN,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758255683804,1758255683804,0.38149041,0.23873454,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.98,买入,513220.SH,300.0,20250919042123
|
||||
243221455,204504865,1056342,游戏ETF,SZ159869,0.56433214,NAN,0.9125,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758255683804,1758255683804,0.56433214,0.7864372,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.12,卖出,159869.SZ,500.0,20250919042123
|
||||
243221456,204504865,1038588,短融ETF,SH511360,0.0,NAN,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758255683804,1758255683804,0.0,0.00127015,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.04,卖出,511360.SH,0.0,20250919042123
|
||||
243221457,204504865,1025452,国投白银LOF,SZ161226,0.49173441,NAN,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758255683804,1758255683804,0.91717208,0.49173441,ZH838108,船长,否,100.0,30.0,53034.98000000001,6.96,买入,161226.SZ,900.0,20250919042123
|
||||
243221458,204504865,1061966,30年国债ETF,SH511090,0.0,NAN,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758255683804,1758255683804,0.0,0.00299214,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.08,卖出,511090.SH,0.0,20250919042123
|
||||
243221374,204504280,1030082,传媒ETF,SH512980,0.26771357,NAN,0.2827,4.03,6.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758254880550,1758254880550,0.39883089,0.26810508,ZH838108,船长,否,100.0,30.0,53034.98000000001,1.97,买入,512980.SH,300.0,20250919040800
|
||||
243221375,204504280,1057346,恒生科技ETF,SZ159740,1.34764438,NAN,1.1266,16.05,19.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758254880550,1758254880550,1.59532357,1.34620835,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.95,买入,159740.SZ,500.0,20250919040800
|
||||
243221378,204504280,1060691,中概互联ETF,SH513220,0.23930913,NAN,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758254880550,1758254880550,0.38149041,0.23873454,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.98,买入,513220.SH,300.0,20250919040800
|
||||
243221380,204504280,1056342,游戏ETF,SZ159869,0.69456264,NAN,1.1231,16.0,16.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758254880550,1758254880550,0.69456264,0.7864372,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.12,卖出,159869.SZ,200.0,20250919040800
|
||||
243221381,204504280,1038588,短融ETF,SH511360,0.0,NAN,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758254880550,1758254880550,0.0,0.00127015,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.04,卖出,511360.SH,0.0,20250919040800
|
||||
243221382,204504280,1025452,国投白银LOF,SZ161226,0.49173441,NAN,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758254880550,1758254880550,0.91717208,0.49173441,ZH838108,船长,否,100.0,30.0,53034.98000000001,6.96,买入,161226.SZ,900.0,20250919040800
|
||||
243221383,204504280,1061966,30年国债ETF,SH511090,0.0,NAN,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758254880550,1758254880550,0.0,0.00299214,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.08,卖出,511090.SH,0.0,20250919040800
|
||||
243221364,204504271,1030082,传媒ETF,SH512980,0.26771357,NAN,0.2827,4.03,6.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758254850134,1758254850134,0.39883089,0.26810508,ZH838108,船长,否,100.0,30.0,53034.98000000001,1.97,买入,512980.SH,300.0,20250919040730
|
||||
243221365,204504271,1057346,恒生科技ETF,SZ159740,1.34764438,NAN,1.1266,16.05,19.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758254850134,1758254850134,1.59532357,1.34620835,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.95,买入,159740.SZ,500.0,20250919040730
|
||||
243221370,204504271,1056342,游戏ETF,SZ159869,0.69456264,NAN,1.1231,16.0,16.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758254850134,1758254850134,0.69456264,0.7864372,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.12,卖出,159869.SZ,200.0,20250919040730
|
||||
243221371,204504271,1038588,短融ETF,SH511360,0.0,NAN,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758254850134,1758254850134,0.0,0.00127015,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.04,卖出,511360.SH,0.0,20250919040730
|
||||
243221373,204504271,1061966,30年国债ETF,SH511090,0.0,NAN,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758254850134,1758254850134,0.0,0.00299214,ZH838108,船长,否,100.0,30.0,53034.98000000001,-5.08,卖出,511090.SH,0.0,20250919040730
|
||||
243220115,204488875,1056342,游戏ETF,SZ159869,0.7864372,1.601,1.2591,18.0,18.0,31.97,32.0,31.46,1.37445218,1.661,2.28296507,True,1758247260289,1758247260289,0.7864372,1.37567597,ZH838108,船长,否,100.0,30.0,53034.98000000001,-13.46,卖出,159869.SZ,1300.0,20250919020100
|
||||
243220116,204488875,1060895,碳中和100ETF,SH562990,1.86630791,0.937,1.7487,25.0,25.0,28.97,29.0,29.23,2.18232331,0.948,2.06884249,True,1758247260289,1758247260289,1.86630791,2.18436629,ZH838108,船长,否,100.0,30.0,53034.98000000001,-4.23,卖出,562990.SH,700.0,20250919020100
|
||||
243220117,204488875,1025452,国投白银LOF,SZ161226,0.49173441,1.138,0.5596,8.0,8.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758247260289,1758247260289,0.49173441,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,8.0,买入,161226.SZ,1000.0,20250919020100
|
||||
243211420,204396469,1030082,传媒ETF,SH512980,0.26771357,NAN,0.2867,4.02,4.0,4.02,4.02,4.02,0.26771357,1.073,0.28725666,True,1758164382409,1758164382409,0.26668975,0.26744655,ZH838108,船长,否,100.0,30.0,53034.98000000001,-0.02,卖出,512980.SH,0.0,20250918025942
|
||||
243211421,204396469,1060895,碳中和100ETF,SH562990,2.18232331,NAN,2.0688,28.97,29.0,28.97,29.0,28.97,2.18232331,0.948,2.06884249,True,1758164382409,1758164382409,2.18436629,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,0.03,买入,562990.SH,0.0,20250918025942
|
||||
243211412,204396468,1060895,碳中和100ETF,SH562990,2.18232331,0.948,2.0688,28.97,28.97,NAN,NAN,NAN,NAN,NAN,NAN,True,1758164382409,1758164382409,2.18436629,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,28.97,买入,562990.SH,4900.0,20250918025942
|
||||
243211403,204396392,1056342,游戏ETF,SZ159869,1.37445218,1.662,2.2843,32.0,32.0,29.96,29.97,29.97,1.28726563,1.662,2.13943547,True,1758164341721,1758164341721,1.37445218,1.2876974,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.03,买入,159869.SZ,200.0,20250918025901
|
||||
243211373,204396301,1060691,中概互联ETF,SH513220,0.23930913,1.492,0.357,5.0,5.0,8.02,8.02,8.03,0.38423302,1.493,0.57365989,True,1758164291481,1758164291481,0.23930913,0.38423513,ZH838108,船长,否,100.0,30.0,53034.98000000001,-3.03,卖出,513220.SH,300.0,20250918025811
|
||||
243211277,204395639,1056342,游戏ETF,SZ159869,1.28726563,1.667,2.1459,30.0,30.0,14.96,14.95,14.99,0.64315789,1.665,1.07085788,True,1758163985274,1758163985274,1.28726563,0.64264875,ZH838108,船长,否,100.0,30.0,53034.98000000001,15.01,买入,159869.SZ,1500.0,20250918025305
|
||||
243210358,204388515,1061419,中韩半导体ETF,SH513310,0.16054864,2.229,0.3579,5.0,5.0,3.0,3.0,3.03,0.09739179,2.201,0.21435932,True,1758161804000,1758161804000,0.16054864,0.09735368,ZH838108,船长,否,100.0,30.0,53034.98000000001,1.97,买入,513310.SH,100.0,20250918021644
|
||||
243210003,204384854,1057346,恒生科技ETF,SZ159740,1.34764438,0.848,1.1428,16.0,16.0,10.0,10.0,10.09,0.8500984,0.839,0.71323255,True,1758160934424,1758160934424,1.34764438,0.8500984,ZH838108,船长,否,100.0,30.0,53034.98000000001,5.91,买入,159740.SZ,1100.0,20250918020214
|
||||
243209467,204380788,1060691,中概互联ETF,SH513220,0.38423302,1.485,0.5706,8.0,8.0,10.01,10.01,9.97,0.47880796,1.491,0.71390266,True,1758160044251,1758160044251,0.38423302,0.47898735,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.97,卖出,513220.SH,200.0,20250918014724
|
||||
243209468,204380788,1057346,恒生科技ETF,SZ159740,0.8500984,0.839,0.7132,10.0,10.0,13.01,13.01,12.98,1.10353565,0.841,0.92807348,True,1758160044251,1758160044251,0.8500984,1.10369458,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.98,卖出,159740.SZ,500.0,20250918014724
|
||||
243209469,204380788,1061419,中韩半导体ETF,SH513310,0.09739179,2.197,0.214,3.0,3.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758160044251,1758160044251,0.09739179,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,3.0,买入,513310.SH,200.0,20250918014724
|
||||
243209297,204379551,1030082,传媒ETF,SH512980,0.26771357,1.066,0.2854,4.0,4.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758159787124,1758159787124,0.26771357,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,4.0,买入,512980.SH,600.0,20250918014307
|
||||
243209276,204379274,1056342,游戏ETF,SZ159869,0.64315789,1.664,1.0702,15.0,15.0,12.0,12.0,11.95,0.51237034,1.672,0.8566832,True,1758159736178,1758159736178,0.64315789,0.51237034,ZH838108,船长,否,100.0,30.0,53034.98000000001,3.05,买入,159869.SZ,300.0,20250918014216
|
||||
243209256,204379120,1060691,中概互联ETF,SH513220,0.47880796,1.491,0.7139,10.0,10.0,13.0,13.0,12.84,0.61477925,1.514,0.93077578,True,1758159704915,1758159704915,0.47880796,0.61477925,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.84,卖出,513220.SH,300.0,20250918014144
|
||||
243209257,204379120,1057346,恒生科技ETF,SZ159740,1.10353565,0.841,0.9281,13.0,13.0,16.26,16.21,16.19,1.37407159,0.847,1.16383863,True,1758159704915,1758159704915,1.10353565,1.37025479,ZH838108,船长,否,100.0,30.0,53034.98000000001,-3.19,卖出,159740.SZ,600.0,20250918014144
|
||||
243209258,204379120,1056342,游戏ETF,SZ159869,0.51237034,1.672,0.8567,12.0,12.0,8.03,8.0,8.08,0.34486412,1.668,0.57523335,True,1758159704915,1758159704915,0.51237034,0.34339634,ZH838108,船长,否,100.0,30.0,53034.98000000001,3.92,买入,159869.SZ,300.0,20250918014144
|
||||
243208775,204376225,1060691,中概互联ETF,SH513220,0.61477925,1.514,0.9308,13.0,13.0,18.05,18.0,17.79,0.84112486,1.541,1.2961734,True,1758159310767,1758159310767,0.61477925,0.83888591,ZH838108,船长,否,100.0,30.0,53034.98000000001,-4.79,卖出,513220.SH,500.0,20250918013510
|
||||
243208693,204376047,1056342,游戏ETF,SZ159869,0.34486412,1.666,0.5745,8.0,8.0,4.05,4.06,4.05,0.17451463,1.666,0.29074137,True,1758159289996,1758159289996,0.34486412,0.17491627,ZH838108,船长,否,100.0,30.0,53034.98000000001,3.95,买入,159869.SZ,300.0,20250918013449
|
||||
243208687,204375945,1060691,中概互联ETF,SH513220,0.84112486,1.536,1.292,18.0,18.0,15.0,15.0,15.32,0.71571929,1.497,1.07143177,True,1758159277398,1758159277398,0.84112486,0.71571929,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.68,买入,513220.SH,200.0,20250918013437
|
||||
243208127,204368078,1025452,国投白银LOF,SZ161226,0.0,1.136,0.0,0.0,0.0,50.0,50.0,49.46,3.10985386,1.147,3.56700237,True,1758159131138,1758159131138,0.0,3.10985386,ZH838108,船长,否,100.0,30.0,53034.98000000001,-49.46,卖出,161226.SZ,6700.0,20250918013211
|
||||
243208128,204368078,1061593,创50ETF,SZ159681,0.098795,1.446,0.1429,2.0,2.0,5.02,5.03,5.0,0.24703804,1.449,0.35795811,True,1758159131138,1758159131138,0.098795,0.24764695,ZH838108,船长,否,100.0,30.0,53034.98000000001,-3.0,卖出,159681.SZ,300.0,20250918013211
|
||||
243208129,204368078,1060691,中概互联ETF,SH513220,0.71571929,1.497,1.0714,15.0,15.0,25.0,25.0,25.27,1.20588315,1.479,1.78350117,True,1758159131138,1758159131138,0.71571929,1.20588315,ZH838108,船长,否,100.0,30.0,53034.98000000001,-10.27,卖出,513220.SH,1100.0,20250918013211
|
||||
243208130,204368078,1038588,短融ETF,SH511360,0.00127164,112.341,0.1429,2.0,2.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758159131138,1758159131138,0.00127164,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.0,买入,511360.SH,0.0,20250918013211
|
||||
243208131,204368078,1061966,30年国债ETF,SH511090,0.00299255,119.344,0.3571,5.0,5.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758159131138,1758159131138,0.00299255,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,5.0,买入,511090.SH,0.0,20250918013211
|
||||
243203609,204336522,1038588,短融ETF,SH511360,0.0,NAN,0.0,0.0,2.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758135916993,1758135916993,0.00127372,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.0,买入,511360.SH,0.0,20250917190516
|
||||
243203610,204336522,1025452,国投白银LOF,SZ161226,0.0,NAN,0.0,0.0,0.0,50.0,50.0,49.77,3.10985386,1.147,3.56700237,True,1758135916993,1758135916993,0.0,3.10985386,ZH838108,船长,否,100.0,30.0,53034.98000000001,-49.77,卖出,161226.SZ,6700.0,20250917190516
|
||||
243203611,204336522,1061966,30年国债ETF,SH511090,0.0,NAN,0.0,0.0,5.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758135916993,1758135916993,0.00299332,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,5.0,买入,511090.SH,0.0,20250917190516
|
||||
243203612,204336522,1064455,30年国债ETF博时,SH511130,0.0,NAN,0.0,0.0,0.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758135916993,1758135916993,0.0,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,0.0,无操作,511130.SH,0.0,20250917190516
|
||||
243203601,204336493,1038588,短融ETF,SH511360,0.0,NAN,0.0,0.0,2.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758135892640,1758135892640,0.00127372,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.0,买入,511360.SH,0.0,20250917190452
|
||||
243203602,204336493,1025452,国投白银LOF,SZ161226,0.0,NAN,0.0,0.0,0.0,50.0,50.0,49.77,3.10985386,1.147,3.56700237,True,1758135892640,1758135892640,0.0,3.10985386,ZH838108,船长,否,100.0,30.0,53034.98000000001,-49.77,卖出,161226.SZ,6700.0,20250917190452
|
||||
243203603,204336493,1061966,30年国债ETF,SH511090,0.0,NAN,0.0,0.0,2.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758135892640,1758135892640,0.00119733,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.0,买入,511090.SH,0.0,20250917190452
|
||||
243203604,204336493,1064455,30年国债ETF博时,SH511130,0.0,NAN,0.0,0.0,2.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758135892640,1758135892640,0.00132912,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.0,买入,511130.SH,0.0,20250917190452
|
||||
243203581,204335092,1025452,国投白银LOF,SZ161226,0.0,NAN,0.0,0.0,0.0,50.0,50.0,49.77,3.10985386,1.147,3.56700237,True,1758134307681,1758134307681,0.0,3.10985386,ZH838108,船长,否,100.0,30.0,53034.98000000001,-49.77,卖出,161226.SZ,6700.0,20250917183827
|
||||
243203574,204334268,1025452,国投白银LOF,SZ161226,1.87436109,NAN,2.1461,30.0,30.0,50.0,50.0,49.77,3.10985386,1.147,3.56700237,True,1758133372449,1758133372449,1.87436109,3.10985386,ZH838108,船长,否,100.0,30.0,53034.98000000001,-19.77,卖出,161226.SZ,2600.0,20250917182252
|
||||
243201335,204283982,1025452,国投白银LOF,SZ161226,3.10985386,1.147,3.567,50.0,50.0,50.0,50.0,49.98,3.10891199,1.145,3.55970422,True,1758085259722,1758085259722,3.10985386,3.10891199,ZH838108,船长,否,100.0,30.0,53034.98000000001,0.02,买入,161226.SZ,0.0,20250917050059
|
||||
243201336,204283982,1060691,中概互联ETF,SH513220,1.20588315,1.479,1.7835,25.0,25.0,24.99,25.0,24.97,1.20456002,1.477,1.77913514,True,1758085259722,1758085259722,1.20588315,1.20504544,ZH838108,船长,否,100.0,30.0,53034.98000000001,0.03,买入,513220.SH,0.0,20250917050059
|
||||
243199859,204280803,1023539,黄金ETF,SZ159934,0.0,7.903,0.0,0.0,0.0,18.0,18.0,18.0,0.16215617,7.905,1.28184452,True,1758078374277,1758078374277,0.0,0.16215617,ZH838108,船长,否,100.0,30.0,53034.98000000001,-18.0,卖出,159934.SZ,300.0,20250917030614
|
||||
243199860,204280803,1057346,恒生科技ETF,SZ159740,1.37407159,0.829,1.1391,16.0,16.0,9.0,9.0,9.0,0.77312701,0.829,0.64092229,True,1758078374277,1758078374277,1.37407159,0.77312701,ZH838108,船长,否,100.0,30.0,53034.98000000001,7.0,买入,159740.SZ,1300.0,20250917030614
|
||||
243199861,204280803,1025452,国投白银LOF,SZ161226,3.10891199,1.145,3.5597,50.0,50.0,39.0,39.0,39.01,2.42561568,1.145,2.77732995,True,1758078374277,1758078374277,3.10891199,2.42561568,ZH838108,船长,否,100.0,30.0,53034.98000000001,10.99,买入,161226.SZ,1400.0,20250917030614
|
||||
243199851,204280742,1023286,黄金ETF,SH518880,0.0,7.984,0.0,0.0,0.0,11.0,11.0,10.99,0.09803331,7.984,0.78269794,True,1758078341190,1758078341190,0.0,0.09802577,ZH838108,船长,否,100.0,30.0,53034.98000000001,-10.99,卖出,518880.SH,200.0,20250917030541
|
||||
243199852,204280742,1023539,黄金ETF,SZ159934,0.16215617,7.905,1.2818,18.0,18.0,21.2,21.2,21.18,0.19077117,7.905,1.50804609,True,1758078341190,1758078341190,0.16215617,0.19081042,ZH838108,船长,否,100.0,30.0,53034.98000000001,-3.18,卖出,159934.SZ,0.0,20250917030541
|
||||
243199853,204280742,1057346,恒生科技ETF,SZ159740,0.77312701,0.829,0.6409,9.0,9.0,6.7,8.0,6.71,0.57607484,0.828,0.47698996,True,1758078341190,1758078341190,0.77312701,0.68742885,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.29,买入,159740.SZ,400.0,20250917030541
|
||||
243199854,204280742,1060691,中概互联ETF,SH513220,1.20456002,1.478,1.7803,25.0,25.0,20.14,20.13,20.18,0.97208882,1.474,1.43285892,True,1758078341190,1758078341190,1.20456002,0.97166016,ZH838108,船长,否,100.0,30.0,53034.98000000001,4.82,买入,513220.SH,500.0,20250917030541
|
||||
243199855,204280742,1025452,国投白银LOF,SZ161226,2.42561568,1.145,2.7773,39.0,39.0,32.02,32.02,31.99,1.98945665,1.145,2.27792786,True,1758078341190,1758078341190,2.42561568,1.98968327,ZH838108,船长,否,100.0,30.0,53034.98000000001,7.01,买入,161226.SZ,900.0,20250917030541
|
||||
243199847,204280552,1056342,游戏ETF,SZ159869,0.17451463,NAN,0.2794,3.93,2.0,3.93,2.0,3.93,0.17451463,1.601,0.27939792,True,1758078237157,1758078237157,0.08888055,0.44374209,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.93,卖出,159869.SZ,100.0,20250917030357
|
||||
243199848,204280552,1057346,恒生科技ETF,SZ159740,0.57607484,NAN,0.477,6.7,8.0,6.7,8.0,6.7,0.57607484,0.828,0.47698996,True,1758078237157,1758078237157,0.68742885,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,1.3,买入,159740.SZ,200.0,20250917030357
|
||||
243199840,204280551,1056342,游戏ETF,SZ159869,0.17451463,1.601,0.2794,3.93,3.93,10.0,10.0,9.99,0.44374209,1.6,0.70998734,True,1758078237157,1758078237157,0.08888055,0.44374209,ZH838108,船长,否,100.0,30.0,53034.98000000001,-6.06,卖出,159869.SZ,600.0,20250917030357
|
||||
243199841,204280551,1057346,恒生科技ETF,SZ159740,0.57607484,0.828,0.477,6.7,6.7,NAN,NAN,NAN,NAN,NAN,NAN,True,1758078237157,1758078237157,0.68742885,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,6.7,买入,159740.SZ,1200.0,20250917030357
|
||||
243199541,204278815,1058885,游戏传媒ETF,SH517770,0.0,1.294,0.0,0.0,0.0,2.0,2.0,2.0,0.10969856,1.294,0.14194993,True,1758077340722,1758077340722,0.0,0.10971557,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.0,卖出,517770.SH,200.0,20250917024900
|
||||
243199542,204278815,1025452,国投白银LOF,SZ161226,1.98945665,1.142,2.272,32.0,32.0,31.93,31.95,31.92,1.98456999,1.142,2.26637892,True,1758077340722,1758077340722,1.98945665,1.98599128,ZH838108,船长,否,100.0,30.0,53034.98000000001,0.08,买入,161226.SZ,0.0,20250917024900
|
||||
243199543,204278815,1056342,游戏ETF,SZ159869,0.44374209,1.6,0.71,10.0,10.0,9.01,9.0,9.02,0.40016576,1.599,0.63986505,True,1758077340722,1758077340722,0.44374209,0.39954585,ZH838108,船长,否,100.0,30.0,53034.98000000001,0.98,买入,159869.SZ,0.0,20250917024900
|
||||
243199544,204278815,1061593,创50ETF,SZ159681,0.24703804,1.437,0.355,5.0,5.0,4.0,4.0,4.0,0.19787032,1.435,0.2839439,True,1758077340722,1758077340722,0.24703804,0.19787032,ZH838108,船长,否,100.0,30.0,53034.98000000001,1.0,买入,159681.SZ,100.0,20250917024900
|
||||
243199526,204278726,1030082,传媒ETF,SH512980,0.0,1.049,0.0,0.0,0.0,1.0,1.0,1.0,0.06761953,1.048,0.07086526,True,1758077299971,1758077299971,0.0,0.06762767,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.0,卖出,512980.SH,100.0,20250917024819
|
||||
243199527,204278726,1061593,创50ETF,SZ159681,0.19787032,1.435,0.2839,4.0,4.0,3.01,3.01,3.04,0.15035065,1.418,0.21319722,True,1758077299971,1758077299971,0.19787032,0.15044439,ZH838108,船长,否,100.0,30.0,53034.98000000001,0.96,买入,159681.SZ,100.0,20250917024819
|
||||
243199316,204276290,1056342,游戏ETF,SZ159869,0.40016576,1.594,0.6379,9.0,9.0,9.0,9.0,8.98,0.39923481,1.598,0.63797722,True,1758076553136,1758076553136,0.40016576,0.39923481,ZH838108,船长,否,100.0,30.0,53034.98000000001,0.02,买入,159869.SZ,0.0,20250917023553
|
||||
243199181,204275243,1063856,黄金股ETF,SH517520,0.0,1.826,0.0,0.0,0.0,1.0,1.01,1.0,0.03893499,1.828,0.07117316,True,1758076319498,1758076319498,0.0,0.03915422,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.0,卖出,517520.SH,0.0,20250917023159
|
||||
243199182,204275243,1025452,国投白银LOF,SZ161226,1.98456999,1.143,2.2684,32.0,32.0,31.97,31.98,31.96,1.98239185,1.143,2.26587388,True,1758076319498,1758076319498,1.98456999,1.98273972,ZH838108,船长,否,100.0,30.0,53034.98000000001,0.04,买入,161226.SZ,0.0,20250917023159
|
||||
243199183,204275243,1056342,游戏ETF,SZ159869,0.39923481,1.598,0.638,9.0,9.0,7.98,7.97,7.99,0.35461688,1.595,0.56561392,True,1758076319498,1758076319498,0.39923481,0.35410422,ZH838108,船长,否,100.0,30.0,53034.98000000001,1.01,买入,159869.SZ,100.0,20250917023159
|
||||
243199122,204274961,1058885,游戏传媒ETF,SH517770,0.10969856,1.292,0.1417,2.0,2.0,13.0,13.0,12.96,0.71111058,1.299,0.92373264,True,1758076260795,1758076260795,0.10969856,0.71111058,ZH838108,船长,否,100.0,30.0,53034.98000000001,-10.96,卖出,517770.SH,1300.0,20250917023100
|
||||
243199123,204274961,1030082,传媒ETF,SH512980,0.06761953,1.048,0.0709,1.0,1.0,4.0,4.0,3.99,0.26991968,1.053,0.28422542,True,1758076260795,1758076260795,0.06761953,0.26991968,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.99,卖出,512980.SH,400.0,20250917023100
|
||||
243199124,204274961,1061593,创50ETF,SZ159681,0.15035065,1.414,0.2126,3.0,3.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758076260795,1758076260795,0.15035065,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,3.0,买入,159681.SZ,300.0,20250917023100
|
||||
243199125,204274961,1060691,中概互联ETF,SH513220,0.97208882,1.458,1.4173,20.0,20.0,9.0,9.0,9.0,0.43741944,1.462,0.63950722,True,1758076260795,1758076260795,0.97208882,0.43741944,ZH838108,船长,否,100.0,30.0,53034.98000000001,11.0,买入,513220.SH,1200.0,20250917023100
|
||||
243197555,204263483,1063856,黄金股ETF,SH517520,0.03893499,1.825,0.0711,1.0,1.0,3.04,3.04,2.99,0.11638607,1.854,0.21577977,True,1758073888360,1758073888360,0.03893499,0.11653594,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.99,卖出,517520.SH,100.0,20250917015128
|
||||
243197556,204263483,1058885,游戏传媒ETF,SH517770,0.71111058,1.299,0.9237,13.0,13.0,15.11,15.08,15.16,0.82920124,1.295,1.0738156,True,1758073888360,1758073888360,0.71111058,0.82761361,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.16,卖出,517770.SH,200.0,20250917015128
|
||||
243197557,204263483,1030082,传媒ETF,SH512980,0.26991968,1.053,0.2842,4.0,4.0,7.02,7.0,7.04,0.47488378,1.051,0.49910285,True,1758073888360,1758073888360,0.26991968,0.4733598,ZH838108,船长,否,100.0,30.0,53034.98000000001,-3.04,卖出,512980.SH,400.0,20250917015128
|
||||
243197558,204263483,1025452,国投白银LOF,SZ161226,1.98239185,1.147,2.2738,32.0,32.0,30.91,31.19,30.95,1.91712668,1.146,2.19702717,True,1758073888360,1758073888360,1.98239185,1.93431326,ZH838108,船长,否,100.0,30.0,53034.98000000001,1.05,买入,161226.SZ,100.0,20250917015128
|
||||
243197559,204263483,1056342,游戏ETF,SZ159869,0.35461688,1.603,0.5685,8.0,8.0,6.07,6.0,6.07,0.26922746,1.603,0.43157161,True,1758073888360,1758073888360,0.35461688,0.26601968,ZH838108,船长,否,100.0,30.0,53034.98000000001,1.93,买入,159869.SZ,100.0,20250917015128
|
||||
243197560,204263483,1060691,中概互联ETF,SH513220,0.43741944,1.462,0.6395,9.0,9.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1758073888360,1758073888360,0.43741944,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,9.0,买入,513220.SH,900.0,20250917015128
|
||||
243196083,204126868,1057876,锂电池ETF,SZ159840,0.0,0.772,0.0,0.0,0.0,2.0,2.0,2.04,0.1878941,0.759,0.14261162,True,1758072762110,1758072762110,0.0,0.1878941,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.04,卖出,159840.SZ,400.0,20250917013242
|
||||
243184255,204091462,1057876,锂电池ETF,SZ159840,0.1878941,0.759,0.1426,2.0,2.0,5.0,5.0,4.99,0.46908163,0.76,0.35650203,True,1757992598575,1757992598575,0.1878941,0.46911756,ZH838108,船长,否,100.0,30.0,53034.98000000001,-2.99,卖出,159840.SZ,600.0,20250916031638
|
||||
243184245,204091352,1063856,黄金股ETF,SH517520,0.11638607,1.838,0.2139,3.0,3.0,4.86,4.86,4.86,0.18853477,1.838,0.3465269,True,1757992524095,1757992524095,0.11638607,0.188531,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.86,卖出,517520.SH,100.0,20250916031524
|
||||
243184246,204091352,1023286,黄金ETF,SH518880,0.09803331,8.001,0.7844,11.0,11.0,8.01,8.0,8.01,0.07135133,8.0,0.57081064,True,1757992524095,1757992524095,0.09803331,0.0713004,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.99,买入,518880.SH,0.0,20250916031524
|
||||
243184234,204091295,1057876,锂电池ETF,SZ159840,0.46908163,0.76,0.3565,5.0,5.0,11.94,11.92,11.55,1.08345683,0.786,0.85159706,True,1757992485424,1757992485424,0.46908163,1.08201508,ZH838108,船长,否,100.0,30.0,53034.98000000001,-6.55,卖出,159840.SZ,1300.0,20250916031445
|
||||
243184235,204091295,1056342,游戏ETF,SZ159869,0.26922746,1.589,0.4278,6.0,6.0,4.0,4.0,3.96,0.17770271,1.606,0.28539055,True,1757992485424,1757992485424,0.26922746,0.17770271,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.04,买入,159869.SZ,200.0,20250916031445
|
||||
243184236,204091295,1030082,传媒ETF,SH512980,0.47488378,1.051,0.4991,7.0,7.0,4.0,4.0,4.04,0.27388729,1.042,0.28539055,True,1757992485424,1757992485424,0.47488378,0.27388729,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.96,买入,512980.SH,400.0,20250916031445
|
||||
243171698,203935274,1030082,传媒ETF,SH512980,0.27388729,1.042,0.2854,4.0,4.0,8.11,8.1,8.1,0.55481007,1.043,0.5786669,True,1757905305945,1757905305945,0.27388729,0.55423715,ZH838108,船长,否,100.0,30.0,53034.98000000001,-4.1,卖出,512980.SH,600.0,20250915030145
|
||||
243171699,203935274,1056342,游戏ETF,SZ159869,0.17770271,1.606,0.2854,4.0,4.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1757905305945,1757905305945,0.17770271,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,4.0,买入,159869.SZ,400.0,20250915030145
|
||||
243171425,203933524,1023539,黄金ETF,SZ159934,0.19077117,7.856,1.4987,21.0,21.0,25.91,25.91,25.87,0.2350396,7.864,1.84835141,True,1757904624170,1757904624170,0.19077117,0.2350073,ZH838108,船长,否,100.0,30.0,53034.98000000001,-4.87,卖出,159934.SZ,0.0,20250915025024
|
||||
243171426,203933524,1058885,游戏传媒ETF,SH517770,0.82920124,1.291,1.0705,15.0,15.0,15.0,15.0,15.07,0.83326606,1.284,1.06991362,True,1757904624170,1757904624170,0.82920124,0.83326606,ZH838108,船长,否,100.0,30.0,53034.98000000001,-0.07,卖出,517770.SH,0.0,20250915025024
|
||||
243171427,203933524,1063856,黄金股ETF,SH517520,0.18853477,1.892,0.3567,5.0,5.0,2.96,2.96,2.97,0.11200854,1.886,0.2112481,True,1757904624170,1757904624170,0.18860091,0.11194571,ZH838108,船长,否,100.0,30.0,53034.98000000001,2.03,买入,517520.SH,100.0,20250915025024
|
||||
243171428,203933524,1025452,国投白银LOF,SZ161226,1.91712668,1.154,2.2124,31.0,31.0,27.96,27.96,27.92,1.72665274,1.155,1.99428391,True,1757904624170,1757904624170,1.91712668,1.72668311,ZH838108,船长,否,100.0,30.0,53034.98000000001,3.08,买入,161226.SZ,400.0,20250915025024
|
||||
243171052,203929398,1058885,游戏传媒ETF,SH517770,0.83326606,1.284,1.0699,15.0,15.0,19.11,18.96,19.05,1.05820686,1.285,1.35979581,True,1757903173811,1757903173811,0.83326606,1.04976595,ZH838108,船长,否,100.0,30.0,53034.98000000001,-4.05,卖出,517770.SH,500.0,20250915022613
|
||||
243171053,203929398,1057876,锂电池ETF,SZ159840,1.08345683,0.79,0.8559,12.0,12.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1757903173811,1757903173811,1.08345683,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,12.0,买入,159840.SZ,2400.0,20250915022613
|
||||
243169632,203875795,1064799,储能电池ETF广发,SZ159305,0.0,1.775,0.0,0.0,0.0,7.95,11.0,8.13,0.32601746,1.734,0.56531427,True,1757900014730,1757900014730,0.0,0.4508471,ZH838108,船长,否,100.0,30.0,53034.98000000001,-8.13,卖出,159305.SZ,700.0,20250915013334
|
||||
243164749,203855165,1030082,传媒ETF,SH512980,0.55481007,NAN,0.5687,8.0,0.0,8.0,8.0,8.0,0.55481007,1.025,0.56868032,True,1757658134841,1757658134841,0.0,0.55481007,ZH838108,船长,否,100.0,30.0,53034.98000000001,-8.0,卖出,512980.SH,1200.0,20250912062214
|
||||
243164750,203855165,1064799,储能电池ETF广发,SZ159305,0.32601746,NAN,0.5653,7.95,11.0,7.95,11.0,7.95,0.32601746,1.734,0.56531427,True,1757658134841,1757658134841,0.4508471,0.0,ZH838108,船长,否,100.0,30.0,53034.98000000001,3.05,买入,159305.SZ,200.0,20250912062214
|
||||
243164743,203855164,1064799,储能电池ETF广发,SZ159305,0.32601746,1.734,0.5653,7.95,7.95,1.33,0.0,1.33,0.0544934,1.736,0.09460054,True,1757658134841,1757658134841,0.4508471,0.0,ZH838108,船长,否,100.0,30.0,53034.98000000001,6.62,买入,159305.SZ,500.0,20250912062214
|
||||
243164732,203855103,1064799,储能电池ETF广发,SZ159305,0.0544934,NAN,0.0946,1.33,0.0,1.33,0.0,1.33,0.0544934,1.736,0.09460054,True,1757658080767,1757658080767,0.0,0.65250128,ZH838108,船长,否,100.0,30.0,53034.98000000001,-1.33,卖出,159305.SZ,100.0,20250912062120
|
||||
243164725,203855102,1064799,储能电池ETF广发,SZ159305,0.0544934,1.736,0.0946,1.33,1.33,16.0,16.0,15.94,0.65250128,1.744,1.13796223,True,1757658080767,1757658080767,0.0,0.65250128,ZH838108,船长,否,100.0,30.0,53034.98000000001,-14.61,卖出,159305.SZ,1300.0,20250912062120
|
||||
243164726,203855102,1030082,传媒ETF,SH512980,0.55481007,1.025,0.5687,8.0,8.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1757658080767,1757658080767,0.55481007,NAN,ZH838108,船长,否,100.0,30.0,53034.98000000001,8.0,买入,512980.SH,1200.0,20250912062120
|
||||
242966263,204481502,1036946,可转债ETF,SH511380,0.06501263,13.21,0.8588,25.0,25.0,25.0,25.0,25.07,0.0651899,13.343,0.86982883,True,1758245815011,1758245815011,0.06501263,0.0651899,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.07,卖出,511380.SH,0.0,20250919013655
|
||||
242966264,204481502,1036743,新能源车ETF,SH515030,0.60127202,1.714,1.0306,30.0,30.0,35.0,35.0,35.14,0.70431486,1.729,1.21776039,True,1758245815011,1758245815011,0.60127202,0.70431486,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.14,卖出,515030.SH,300.0,20250919013655
|
||||
242966265,204481502,1029080,银行ETF,SH512800,0.87300318,0.787,0.6871,20.0,20.0,20.0,20.0,19.78,0.8633537,0.806,0.69586308,True,1758245815011,1758245815011,0.87300318,0.8633537,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.22,买入,512800.SH,0.0,20250919013655
|
||||
242966266,204481502,1064311,中证A50ETF易方达,SH563080,0.65658783,1.308,0.8588,25.0,25.0,20.0,20.0,20.01,0.52557635,1.324,0.69586308,True,1758245815011,1758245815011,0.65658783,0.52557635,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.99,买入,563080.SH,400.0,20250919013655
|
||||
242953156,204369507,1036946,可转债ETF,SH511380,0.0651899,13.343,0.8698,25.0,25.0,29.7,29.7,29.74,0.07753822,13.301,1.03133586,True,1758159030751,1758159030751,0.0651899,0.07753822,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.74,卖出,511380.SH,0.0,20250918013030
|
||||
242953157,204369507,1036743,新能源车ETF,SH515030,0.70431486,1.729,1.2178,35.0,35.0,40.31,40.3,40.33,0.81149349,1.725,1.39982627,True,1758159030751,1758159030751,0.70431486,0.81125922,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.33,卖出,515030.SH,300.0,20250918013030
|
||||
242953158,204369507,1064311,中证A50ETF易方达,SH563080,0.52557635,1.324,0.6959,20.0,20.0,15.0,15.0,15.02,0.39471764,1.32,0.52102728,True,1758159030751,1758159030751,0.52557635,0.39460358,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.98,买入,563080.SH,400.0,20250918013030
|
||||
242953159,204369507,1029080,银行ETF,SH512800,0.8633537,0.806,0.6959,20.0,20.0,14.86,15.0,14.8,0.63878716,0.808,0.51614002,True,1758159030751,1758159030751,0.8633537,0.64464942,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.2,买入,512800.SH,700.0,20250918013030
|
||||
242952851,204369397,1036743,新能源车ETF,SH515030,0.81149349,NAN,1.4047,40.38,35.0,40.31,40.3,40.38,0.81149349,1.725,1.39982627,True,1758158314231,1758158314231,0.70343215,0.81125922,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.38,卖出,515030.SH,300.0,20250918011834
|
||||
242952854,204369397,1029080,银行ETF,SH512800,0.63878716,NAN,0.5142,14.78,20.28,14.86,15.0,14.78,0.63878716,0.808,0.51614002,True,1758158314231,1758158314231,0.87644226,0.64464942,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.5,买入,512800.SH,700.0,20250918011834
|
||||
242945487,204278901,1029080,银行ETF,SH512800,0.63878716,NAN,0.5161,14.86,15.0,15.0,15.0,14.86,0.63878716,0.807,0.51550123,True,1758077376382,1758077376382,0.64464942,0.63878716,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.14,买入,512800.SH,0.0,20250917024936
|
||||
242945482,204278900,1036946,可转债ETF,SH511380,0.07753822,13.301,1.0313,29.7,29.7,30.0,30.0,29.82,0.07785263,13.243,1.03100237,True,1758077376382,1758077376382,0.07753822,0.07785263,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.12,卖出,511380.SH,0.0,20250917024936
|
||||
242932438,204108965,1064311,中证A50ETF易方达,SH563080,0.39471764,1.306,0.5155,15.0,15.0,20.0,20.0,19.95,0.52504883,1.305,0.68518872,True,1758005464047,1758005464047,0.39471764,0.52504883,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.95,卖出,563080.SH,400.0,20250916065104
|
||||
242932439,204108965,1029080,银行ETF,SH512800,0.63878716,0.807,0.5155,15.0,15.0,20.0,20.0,19.77,0.84175519,0.814,0.68518872,True,1758005464047,1758005464047,0.63878716,0.84175519,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.77,卖出,512800.SH,600.0,20250916065104
|
||||
242932440,204108965,1036946,可转债ETF,SH511380,0.07785263,13.243,1.031,30.0,30.0,20.0,20.0,20.06,0.05205414,13.163,0.68518864,True,1758005464047,1758005464047,0.07785263,0.05205414,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,9.94,买入,511380.SH,0.0,20250916065104
|
||||
242932441,204108965,1036743,新能源车ETF,SH515030,0.81149349,1.694,1.3747,40.0,40.0,20.0,20.0,20.28,0.41152476,1.665,0.68518872,True,1758005464047,1758005464047,0.81149349,0.41152476,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,19.72,买入,515030.SH,1200.0,20250916065104
|
||||
242929135,204083008,1029080,银行ETF,SH512800,0.84175519,0.814,0.6852,20.0,20.0,25.0,25.0,25.06,1.05455457,0.823,0.86789841,True,1757990159085,1757990159085,0.84175519,1.05455457,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.06,卖出,512800.SH,600.0,20250916023559
|
||||
242929136,204083008,1064311,中证A50ETF易方达,SH563080,0.52504883,1.305,0.6852,20.0,20.0,29.44,29.44,29.52,0.77485759,1.319,1.02203716,True,1757990159085,1757990159085,0.52504883,0.77485759,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.52,卖出,563080.SH,700.0,20250916023559
|
||||
242929137,204083008,1036946,可转债ETF,SH511380,0.05205414,13.163,0.6852,20.0,20.0,20.0,20.0,20.08,0.05225156,13.288,0.69431872,True,1757990159085,1757990159085,0.05205414,0.05225156,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.08,卖出,511380.SH,0.0,20250916023559
|
||||
242929138,204083008,1036743,新能源车ETF,SH515030,0.41152476,1.665,0.6852,20.0,20.0,25.56,25.56,25.35,0.52165485,1.701,0.88733489,True,1757990159085,1757990159085,0.41152476,0.52165746,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.35,卖出,515030.SH,300.0,20250916023559
|
||||
242917660,203936625,1036946,可转债ETF,SH511380,0.05225156,13.288,0.6943,20.0,20.0,25.0,25.0,25.02,0.06535878,13.315,0.87025215,True,1757906236022,1757906236022,0.05225156,0.06535878,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.02,卖出,511380.SH,0.0,20250915031716
|
||||
242917661,203936625,1064311,中证A50ETF易方达,SH563080,0.77485759,1.319,1.022,29.44,29.44,29.33,29.35,29.32,0.77170093,1.323,1.02096033,True,1757906236022,1757906236022,0.77485759,0.77224198,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.12,买入,563080.SH,0.0,20250915031716
|
||||
242917662,203936625,1029080,银行ETF,SH512800,1.05455457,0.823,0.8679,25.0,25.0,20.0,20.0,20.1,0.84799245,0.821,0.6962018,True,1757906236022,1757906236022,1.05455457,0.84799245,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.9,买入,512800.SH,600.0,20250915031716
|
||||
242917067,203931726,1064311,中证A50ETF易方达,SH563080,0.77170093,NAN,1.021,29.33,29.35,29.33,29.35,29.33,0.77170093,1.323,1.02096033,True,1757903982335,1757903982335,0.77224198,0.65858651,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.02,买入,563080.SH,0.0,20250915023942
|
||||
242917062,203931725,1036946,可转债ETF,SH511380,0.06535878,13.315,0.8703,25.0,25.0,35.02,35.04,34.52,0.09024158,13.41,1.21013958,True,1757903982335,1757903982335,0.06535878,0.09028194,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.52,卖出,511380.SH,0.0,20250915023942
|
||||
242917063,203931725,1064311,中证A50ETF易方达,SH563080,0.77170093,1.323,1.021,29.33,29.33,24.99,24.97,25.05,0.65907645,1.31,0.86339014,True,1757903982335,1757903982335,0.77224198,0.65858651,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.28,买入,563080.SH,300.0,20250915023942
|
||||
242917064,203931725,1029080,银行ETF,SH512800,0.84799245,0.821,0.6962,20.0,20.0,15.0,15.0,14.76,0.62593107,0.828,0.51827092,True,1757903982335,1757903982335,0.84799245,0.62593107,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.24,买入,512800.SH,700.0,20250915023942
|
||||
242908934,203851233,1036946,可转债ETF,SH511380,0.09024158,NAN,1.2101,35.02,35.04,35.02,35.04,35.02,0.09024158,13.41,1.21013958,True,1757655119845,1757655119845,0.09028194,0.07737575,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.02,买入,511380.SH,0.0,20250912053159
|
||||
242908929,203851232,1029080,银行ETF,SH512800,0.62593107,0.828,0.5183,15.0,15.0,20.0,20.0,19.99,0.83430169,0.829,0.6916361,True,1757655119845,1757655119845,0.62593107,0.83430169,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.99,卖出,512800.SH,600.0,20250912053159
|
||||
242908930,203851232,1036946,可转债ETF,SH511380,0.09024158,13.41,1.2101,35.02,35.02,30.0,30.0,30.03,0.07737575,13.408,1.03745405,True,1757655119845,1757655119845,0.09028194,0.07737575,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.99,买入,511380.SH,0.0,20250912053159
|
||||
242908814,203850258,1036946,可转债ETF,SH511380,0.07737575,13.408,1.0375,30.0,30.0,30.0,30.0,30.02,0.07743409,13.38,1.03606812,True,1757654421771,1757654421771,0.07737575,0.07743409,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.02,卖出,511380.SH,0.0,20250912052021
|
||||
242908815,203850258,1029080,银行ETF,SH512800,0.83430169,0.829,0.6916,20.0,20.0,25.0,25.0,24.82,1.03523999,0.834,0.86339015,True,1757654421771,1757654421771,0.83430169,1.03523999,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.82,卖出,512800.SH,600.0,20250912052021
|
||||
242908816,203850258,1036743,新能源车ETF,SH515030,0.52165485,1.657,0.8644,25.0,25.0,20.0,20.0,20.16,0.42065293,1.642,0.69071211,True,1757654421771,1757654421771,0.52175324,0.42065293,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.84,买入,515030.SH,300.0,20250912052021
|
||||
242906816,203836211,1064311,中证A50ETF易方达,SH563080,0.65907645,1.31,0.8634,25.0,25.0,30.0,30.0,29.95,0.78963287,1.315,1.03836722,True,1757645771876,1757645771876,0.65907645,0.78963287,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.95,卖出,563080.SH,400.0,20250912025611
|
||||
242906817,203836211,1029080,银行ETF,SH512800,1.03523999,0.834,0.8634,25.0,25.0,25.0,25.0,25.06,1.0375372,0.834,0.86530602,True,1757645771876,1757645771876,1.03523999,1.0375372,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.06,卖出,512800.SH,0.0,20250912025611
|
||||
242906818,203836211,1036743,新能源车ETF,SH515030,0.42065293,1.642,0.6907,20.0,20.0,20.0,20.0,19.98,0.42030651,1.647,0.69224482,True,1757645771876,1757645771876,0.42065293,0.42030651,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.02,买入,515030.SH,0.0,20250912025611
|
||||
242906819,203836211,1036946,可转债ETF,SH511380,0.07743409,13.38,1.0361,30.0,30.0,25.0,25.0,25.01,0.06455099,13.405,0.86530602,True,1757645771876,1757645771876,0.07743409,0.06455099,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.99,买入,511380.SH,0.0,20250912025611
|
||||
242906496,203833017,1036743,新能源车ETF,SH515030,0.42030651,1.647,0.6922,20.0,20.0,35.01,35.01,34.7,0.72929302,1.669,1.21719005,True,1757645121146,1757645121146,0.42030651,0.72929302,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.7,卖出,515030.SH,900.0,20250912024521
|
||||
242906497,203833017,1036946,可转债ETF,SH511380,0.06455099,13.405,0.8653,25.0,25.0,24.95,24.95,25.05,0.06468772,13.409,0.86739763,True,1757645121146,1757645121146,0.06455099,0.06469049,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.05,卖出,511380.SH,0.0,20250912024521
|
||||
242906498,203833017,1029080,银行ETF,SH512800,1.0375372,0.834,0.8653,25.0,25.0,20.0,20.0,20.11,0.83474011,0.833,0.69533851,True,1757645121146,1757645121146,1.0375372,0.83474011,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.89,买入,512800.SH,600.0,20250912024521
|
||||
242906499,203833017,1064311,中证A50ETF易方达,SH563080,0.78963287,1.315,1.0384,30.0,30.0,20.04,20.04,20.13,0.52983305,1.315,0.69673046,True,1757645121146,1757645121146,0.78963287,0.52983208,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,9.87,买入,563080.SH,700.0,20250912024521
|
||||
242904399,203818965,1029080,银行ETF,SH512800,0.83474011,0.833,0.6953,20.0,20.0,25.0,25.0,24.8,1.03527847,0.831,0.8603164,True,1757642479375,1757642479375,0.83474011,1.03527847,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.8,卖出,512800.SH,600.0,20250912020119
|
||||
242904400,203818965,1036743,新能源车ETF,SH515030,0.72929302,1.669,1.2172,35.01,35.01,30.02,30.02,30.2,0.62915222,1.642,1.03306794,True,1757642479375,1757642479375,0.72929302,0.62915222,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.81,买入,515030.SH,200.0,20250912020119
|
||||
242891713,203686656,1064311,中证A50ETF易方达,SH563080,0.52983305,1.299,0.6883,20.0,20.0,20.0,20.0,20.04,0.53081015,1.291,0.6852759,True,1757559774053,1757559774053,0.52983305,0.53081015,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.04,卖出,563080.SH,0.0,20250911030254
|
||||
242891714,203686656,1029080,银行ETF,SH512800,1.03527847,0.831,0.8603,25.0,25.0,30.0,30.0,29.94,1.23994435,0.829,1.02791386,True,1757559774053,1757559774053,1.03527847,1.23994435,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.94,卖出,512800.SH,600.0,20250911030254
|
||||
242891715,203686656,1036743,新能源车ETF,SH515030,0.62915222,1.642,1.0331,30.02,30.02,25.0,25.0,25.04,0.52487432,1.632,0.85659489,True,1757559774053,1757559774053,0.62915222,0.52487432,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.98,买入,515030.SH,300.0,20250911030254
|
||||
242891004,203681886,1036946,可转债ETF,SH511380,0.06468772,13.242,0.8566,25.0,25.0,25.0,25.0,25.05,0.06481129,13.206,0.85589789,True,1757558141042,1757558141042,0.06468772,0.06481129,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.05,卖出,511380.SH,0.0,20250911023541
|
||||
242891005,203681886,1029080,银行ETF,SH512800,1.23994435,0.829,1.0279,30.0,30.0,40.0,40.0,39.92,1.64992387,0.83,1.36943681,True,1757558141042,1757558141042,1.23994435,1.64992387,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.92,卖出,512800.SH,1300.0,20250911023541
|
||||
242891006,203681886,1036743,新能源车ETF,SH515030,0.52487432,1.632,0.8566,25.0,25.0,20.0,20.0,20.05,0.4208472,1.627,0.68471839,True,1757558141042,1757558141042,0.52487432,0.4208472,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.95,买入,515030.SH,300.0,20250911023541
|
||||
242891007,203681886,1064311,中证A50ETF易方达,SH563080,0.53081015,1.291,0.6853,20.0,20.0,15.0,15.0,14.99,0.39778373,1.291,0.51353879,True,1757558141042,1757558141042,0.53081015,0.39778373,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.01,买入,563080.SH,400.0,20250911023541
|
||||
242890297,203676388,1029080,银行ETF,SH512800,1.64992387,0.83,1.3694,40.0,40.0,50.0,50.0,49.78,2.05312503,0.833,1.71025314,True,1757556541907,1757556541907,1.64992387,2.05312503,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.78,卖出,512800.SH,1300.0,20250911020901
|
||||
242890298,203676388,1064311,中证A50ETF易方达,SH563080,0.39778373,1.291,0.5135,15.0,15.0,15.0,15.0,15.06,0.39928089,1.285,0.51307594,True,1757556541907,1757556541907,0.39778373,0.39928089,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.06,卖出,563080.SH,0.0,20250911020901
|
||||
242890299,203676388,1036743,新能源车ETF,SH515030,0.4208472,1.627,0.6847,20.0,20.0,15.0,15.0,15.14,0.31868071,1.61,0.51307594,True,1757556541907,1757556541907,0.4208472,0.31868071,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.86,买入,515030.SH,300.0,20250911020901
|
||||
242890300,203676388,1036946,可转债ETF,SH511380,0.06481129,13.206,0.8559,25.0,25.0,10.01,10.0,10.04,0.02603374,13.151,0.34236971,True,1757556541907,1757556541907,0.06481129,0.02600947,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,14.96,买入,511380.SH,100.0,20250911020901
|
||||
242881348,203586072,1064311,中证A50ETF易方达,SH563080,0.39928089,1.285,0.5131,15.0,15.0,20.0,20.0,20.0,0.53246612,1.285,0.68421896,True,1757473473107,1757473473107,0.39928089,0.53246612,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.0,卖出,563080.SH,400.0,20250910030433
|
||||
242881349,203586072,1036743,新能源车ETF,SH515030,0.31868071,1.61,0.5131,15.0,15.0,20.0,20.0,19.98,0.42445345,1.612,0.68421896,True,1757473473107,1757473473107,0.31868071,0.42445345,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.98,卖出,515030.SH,300.0,20250910030433
|
||||
242881350,203586072,1029080,银行ETF,SH512800,2.05312503,0.833,1.7103,50.0,50.0,40.0,40.0,40.01,1.64278265,0.833,1.36843794,True,1757473473107,1757473473107,2.05312503,1.64278265,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,9.99,买入,512800.SH,1300.0,20250910030433
|
||||
242881028,203582375,1036743,新能源车ETF,SH515030,0.42445345,1.612,0.6842,20.0,20.0,35.0,35.0,34.42,0.73038816,1.657,1.21025318,True,1757472106019,1757472106019,0.42445345,0.73038816,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.42,卖出,515030.SH,800.0,20250910024146
|
||||
242881029,203582375,1036946,可转债ETF,SH511380,0.02603374,13.141,0.3421,10.0,10.0,15.0,15.0,15.0,0.03904252,13.285,0.51867987,True,1757472106019,1757472106019,0.02603374,0.03904252,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.0,卖出,511380.SH,0.0,20250910024146
|
||||
242881030,203582375,1029080,银行ETF,SH512800,1.64278265,0.833,1.3684,40.0,40.0,35.0,35.0,35.59,1.46165843,0.828,1.21025318,True,1757472106019,1757472106019,1.64278265,1.46165843,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.41,买入,512800.SH,500.0,20250910024146
|
||||
242881031,203582375,1064311,中证A50ETF易方达,SH563080,0.53246612,1.285,0.6842,20.0,20.0,15.0,15.0,15.0,0.39929171,1.299,0.51867993,True,1757472106019,1757472106019,0.53246612,0.39929171,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.0,买入,563080.SH,400.0,20250910024146
|
||||
242871391,203482260,1036946,可转债ETF,SH511380,0.03904252,13.285,0.5187,15.0,15.0,20.0,20.0,19.97,0.05197703,13.344,0.69358148,True,1757387395670,1757387395670,0.03904252,0.05197703,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.97,卖出,511380.SH,0.0,20250909030955
|
||||
242871392,203482260,1064311,中证A50ETF易方达,SH563080,0.39929171,1.299,0.5187,15.0,15.0,20.0,20.0,20.07,0.53434631,1.298,0.69358151,True,1757387395670,1757387395670,0.39929171,0.53434631,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.07,卖出,563080.SH,400.0,20250909030955
|
||||
242871393,203482260,1036743,新能源车ETF,SH515030,0.73038816,1.657,1.2103,35.0,35.0,35.0,35.0,34.97,0.7298663,1.663,1.21376765,True,1757387395670,1757387395670,0.73038816,0.7298663,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.03,买入,515030.SH,0.0,20250909030955
|
||||
242871394,203482260,1029080,银行ETF,SH512800,1.46165843,0.828,1.2103,35.0,35.0,25.0,25.0,24.98,1.0432935,0.831,0.86697689,True,1757387395670,1757387395670,1.46165843,1.0432935,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,10.02,买入,512800.SH,1300.0,20250909030955
|
||||
242862272,203349303,1027747,香港银行LOF,SH501025,0.0,1.572,0.0,0.0,0.0,14.99,14.99,14.59,0.32182726,1.567,0.50430331,True,1757299952677,1757299952677,0.0,0.32182726,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.59,卖出,501025.SH,900.0,20250908025232
|
||||
242862273,203349303,1036743,新能源车ETF,SH515030,0.7298663,1.663,1.2138,35.0,35.0,35.0,35.0,36.36,0.75820524,1.553,1.17749273,True,1757299952677,1757299952677,0.7298663,0.75820524,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-1.36,卖出,515030.SH,0.0,20250908025232
|
||||
242862274,203349303,1064311,中证A50ETF易方达,SH563080,0.53434631,1.298,0.6936,20.0,20.0,20.0,20.0,19.78,0.52855695,1.273,0.67285299,True,1757299952677,1757299952677,0.53434631,0.52855695,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.22,买入,563080.SH,0.0,20250908025232
|
||||
242862275,203349303,1036946,可转债ETF,SH511380,0.05197703,13.344,0.6936,20.0,20.0,15.0,15.01,14.69,0.03816635,13.218,0.50448281,True,1757299952677,1757299952677,0.05197703,0.03820367,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.31,买入,511380.SH,0.0,20250908025232
|
||||
242862276,203349303,1029080,银行ETF,SH512800,1.0432935,0.831,0.867,25.0,25.0,15.0,15.0,14.57,0.60799969,0.83,0.50463974,True,1757299952677,1757299952677,1.0432935,0.60799969,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,10.43,买入,512800.SH,1400.0,20250908025232
|
||||
242850651,203224942,1029080,银行ETF,SH512800,0.60799969,0.83,0.5046,15.0,15.0,30.0,30.0,29.54,1.19722296,0.833,0.99728672,True,1757038866585,1757038866585,0.60799969,1.19722296,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.54,卖出,512800.SH,1900.0,20250905022106
|
||||
242850652,203224942,1064311,中证A50ETF易方达,SH563080,0.52855695,1.273,0.6729,20.0,20.0,20.0,20.0,19.95,0.52724648,1.261,0.66485781,True,1757038866585,1757038866585,0.52855695,0.52724648,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.05,买入,563080.SH,0.0,20250905022106
|
||||
242850653,203224942,1027747,香港银行LOF,SH501025,0.32182726,1.567,0.5043,14.99,14.99,15.0,15.0,14.85,0.31882567,1.564,0.49864334,True,1757038866585,1757038866585,0.32182726,0.31882567,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.14,买入,501025.SH,0.0,20250905022106
|
||||
242850654,203224942,1036743,新能源车ETF,SH515030,0.75820524,1.553,1.1775,35.0,35.0,20.0,20.0,20.67,0.4477157,1.485,0.66485781,True,1757038866585,1757038866585,0.75820524,0.4477157,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,14.33,买入,515030.SH,800.0,20250905022106
|
||||
242842246,203132634,1036743,新能源车ETF,SH515030,0.4477157,1.485,0.6649,20.0,20.0,35.0,35.0,34.9,0.78135499,1.516,1.18453416,True,1756965964130,1756965964130,0.4477157,0.78135499,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.9,卖出,515030.SH,900.0,20250904060604
|
||||
242842247,203132634,1064311,中证A50ETF易方达,SH563080,0.52724648,1.261,0.6649,20.0,20.0,35.0,35.0,34.46,0.9083851,1.304,1.18453417,True,1756965964130,1756965964130,0.52724648,0.9083851,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.46,卖出,563080.SH,1100.0,20250904060604
|
||||
242842248,203132634,1036946,可转债ETF,SH511380,0.03816635,13.065,0.4986,15.0,15.0,10.0,10.0,10.18,0.02589825,13.068,0.33843833,True,1756965964130,1756965964130,0.03816635,0.02589825,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.82,买入,511380.SH,0.0,20250904060604
|
||||
242842249,203132634,1029080,银行ETF,SH512800,1.19722296,0.833,0.9973,30.0,30.0,20.0,20.0,20.46,0.81649779,0.829,0.67687666,True,1756965964130,1756965964130,1.19722296,0.81649779,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,9.54,买入,512800.SH,1200.0,20250904060604
|
||||
242842250,203132634,1027747,香港银行LOF,SH501025,0.31882567,1.564,0.4986,15.0,15.0,NAN,NAN,NAN,NAN,NAN,NAN,True,1756965964130,1756965964130,0.31882567,NAN,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,15.0,买入,501025.SH,1000.0,20250904060604
|
||||
242822609,202892068,1036946,可转债ETF,SH511380,0.02589825,13.068,0.3384,10.0,10.0,15.0,15.0,14.65,0.03795335,13.365,0.50724652,True,1756777532515,1756777532515,0.02589825,0.03795335,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.65,卖出,511380.SH,0.0,20250902014532
|
||||
242822610,202892068,1036743,新能源车ETF,SH515030,0.78135499,1.516,1.1845,35.0,35.0,35.0,35.0,35.44,0.79115997,1.496,1.18357531,True,1756777532515,1756777532515,0.78135499,0.79115997,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.44,卖出,515030.SH,0.0,20250902014532
|
||||
242822611,202892068,1029080,银行ETF,SH512800,0.81649779,0.829,0.6769,20.0,20.0,20.0,20.0,19.68,0.80324079,0.842,0.67632874,True,1756777532515,1756777532515,0.81649779,0.80324079,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.32,买入,512800.SH,0.0,20250902014532
|
||||
242822612,202892068,1064311,中证A50ETF易方达,SH563080,0.9083851,1.304,1.1845,35.0,35.0,30.0,30.0,30.23,0.78460412,1.293,1.01449312,True,1756777532515,1756777532515,0.9083851,0.78460412,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.77,买入,563080.SH,300.0,20250902014532
|
||||
242804518,202699422,1029080,银行ETF,SH512800,0.80324079,0.842,0.6763,20.0,20.0,35.0,35.0,34.2,1.37356845,0.844,1.15929177,True,1756434928071,1756434928071,0.80324079,1.37356845,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.2,卖出,512800.SH,1900.0,20250829023528
|
||||
242804519,202699422,1036743,新能源车ETF,SH515030,0.79115997,1.496,1.1836,35.0,35.0,30.0,30.0,30.98,0.70026685,1.419,0.99367866,True,1756434928071,1756434928071,0.79115997,0.70026685,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.02,买入,515030.SH,200.0,20250829023528
|
||||
242804520,202699422,1064311,中证A50ETF易方达,SH563080,0.78460412,1.293,1.0145,30.0,30.0,25.0,25.0,24.95,0.65253392,1.269,0.82806554,True,1756434928071,1756434928071,0.78460412,0.65253392,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.05,买入,563080.SH,400.0,20250829023528
|
||||
242804521,202699422,1036946,可转债ETF,SH511380,0.03795335,13.365,0.5072,15.0,15.0,10.0,10.0,9.87,0.0249737,13.263,0.33122618,True,1756434928071,1756434928071,0.03795335,0.0249737,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.13,买入,511380.SH,0.0,20250829023528
|
||||
242788990,202539876,1036946,可转债ETF,SH511380,0.0249737,13.263,0.3312,10.0,10.0,20.0,20.0,19.76,0.04933784,13.608,0.67138932,True,1756350730835,1756350730835,0.0249737,0.04933784,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.76,卖出,511380.SH,0.0,20250828031210
|
||||
242788991,202539876,1036743,新能源车ETF,SH515030,0.70026685,1.419,0.9937,30.0,30.0,30.24,30.26,30.16,0.70404179,1.442,1.01522826,True,1756350730835,1756350730835,0.70026685,0.70444666,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.16,卖出,515030.SH,0.0,20250828031210
|
||||
242788992,202539876,1029080,银行ETF,SH512800,1.37356845,0.844,1.1593,35.0,35.0,30.0,30.0,30.26,1.18759909,0.848,1.00708402,True,1756350730835,1756350730835,1.37356845,1.18759909,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.74,买入,512800.SH,600.0,20250828031210
|
||||
242788993,202539876,1064311,中证A50ETF易方达,SH563080,0.65253392,1.269,0.8281,25.0,25.0,19.74,19.74,19.8,0.51689648,1.282,0.66266128,True,1756350730835,1756350730835,0.65253392,0.51689648,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.2,买入,563080.SH,400.0,20250828031210
|
||||
242779978,202430821,1064311,中证A50ETF易方达,SH563080,0.51689648,1.282,0.6627,19.74,19.74,30.0,30.0,30.39,0.79569898,1.229,0.97791404,True,1756260495534,1756260495534,0.51689648,0.79569898,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-10.65,卖出,563080.SH,800.0,20250827020815
|
||||
242779979,202430821,1036946,可转债ETF,SH511380,0.04933784,13.608,0.6714,20.0,20.0,30.0,30.0,29.63,0.07308228,13.381,0.97791398,True,1756260495534,1756260495534,0.04933784,0.07308228,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.63,卖出,511380.SH,0.0,20250827020815
|
||||
242779980,202430821,1029080,银行ETF,SH512800,1.18759909,0.848,1.0071,30.0,30.0,10.0,10.0,9.74,0.38576491,0.845,0.32597134,True,1756260495534,1756260495534,1.18759909,0.38576491,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,20.26,买入,512800.SH,2700.0,20250827020815
|
||||
242710772,201733974,1027747,香港银行LOF,SH501025,0.0,1.617,0.0,0.0,0.0,10.0,10.0,9.7,0.19558615,1.658,0.32428183,True,1755499513665,1755499513665,0.0,0.19558615,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.7,卖出,501025.SH,600.0,20250818064513
|
||||
242710773,201733974,1036946,可转债ETF,SH511380,0.07308228,13.381,0.9779,30.0,30.0,34.81,34.96,34.99,0.08524035,13.242,1.12875271,True,1755499513665,1755499513665,0.07308228,0.08561314,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.99,卖出,511380.SH,0.0,20250818064513
|
||||
242710774,201733974,1029080,银行ETF,SH512800,0.38576491,0.845,0.326,10.0,10.0,9.94,9.94,9.77,0.37672859,0.856,0.32247967,True,1755499513665,1755499513665,0.38576491,0.37656092,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.23,买入,512800.SH,0.0,20250818064513
|
||||
242710775,201733974,1064311,中证A50ETF易方达,SH563080,0.79569898,1.229,0.9779,30.0,30.0,25.0,25.0,24.97,0.66234036,1.224,0.8107046,True,1755499513665,1755499513665,0.79569898,0.66234036,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.03,买入,563080.SH,400.0,20250818064513
|
||||
242710776,201733974,1036743,新能源车ETF,SH515030,0.70404179,1.389,0.9779,30.0,30.0,20.1,20.1,20.42,0.4792417,1.36,0.65176871,True,1755499513665,1755499513665,0.70404179,0.47926949,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,9.58,买入,515030.SH,500.0,20250818064513
|
||||
242690215,201477700,1036946,可转债ETF,SH511380,0.08524035,NAN,1.1288,34.81,34.96,34.81,34.81,34.81,0.08524035,13.2,1.12517262,True,1755137847301,1755137847301,0.08561314,0.08524049,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.15,买入,511380.SH,0.0,20250814021727
|
||||
242690209,201477699,1027747,香港银行LOF,SH501025,0.19558615,1.658,0.3243,10.0,10.0,15.0,15.0,14.98,0.29296054,1.655,0.48484969,True,1755137847301,1755137847301,0.19558615,0.29296054,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.98,卖出,501025.SH,300.0,20250814021727
|
||||
242690211,201477699,1064311,中证A50ETF易方达,SH563080,0.66234036,1.224,0.8107,25.0,25.0,20.07,20.07,20.17,0.53438623,1.214,0.64874488,True,1755137847301,1755137847301,0.66234036,0.53437306,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.83,买入,563080.SH,300.0,20250814021727
|
||||
242683619,201404859,1027747,香港银行LOF,SH501025,0.29296054,1.655,0.4848,15.0,15.0,20.0,20.0,19.97,0.39005351,1.655,0.64553855,True,1755062641164,1755062641164,0.29296054,0.39005351,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.97,卖出,501025.SH,300.0,20250813052401
|
||||
242683620,201404859,1029080,银行ETF,SH512800,0.37672859,0.858,0.3232,10.0,10.0,20.0,20.0,19.81,0.74628736,0.865,0.64553856,True,1755062641164,1755062641164,0.37672859,0.74628736,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.81,卖出,512800.SH,1300.0,20250813052401
|
||||
242683621,201404859,1036946,可转债ETF,SH511380,0.08524035,13.2,1.1252,34.81,34.81,20.0,20.0,20.03,0.04904562,13.162,0.64553845,True,1755062641164,1755062641164,0.08524049,0.04904562,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,14.78,买入,511380.SH,100.0,20250813052401
|
||||
242680613,201378740,1027747,香港银行LOF,SH501025,0.39005351,1.655,0.6455,20.0,20.0,20.0,20.0,20.02,0.39047169,1.646,0.6427164,True,1755049411205,1755049411205,0.39005351,0.39047387,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.02,卖出,501025.SH,0.0,20250813014331
|
||||
242680614,201378740,1036946,可转债ETF,SH511380,0.04904562,13.162,0.6455,20.0,20.0,20.0,20.0,20.03,0.04912287,13.084,0.64272363,True,1755049411205,1755049411205,0.04904562,0.04912259,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.03,卖出,511380.SH,0.0,20250813014331
|
||||
242680615,201378740,1029080,银行ETF,SH512800,0.74628736,0.865,0.6455,20.0,20.0,30.0,30.0,29.8,1.11197231,0.867,0.96407999,True,1755049411205,1755049411205,0.74628736,1.11197231,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.8,卖出,512800.SH,1300.0,20250813014331
|
||||
242680616,201378740,1036743,新能源车ETF,SH515030,0.4792417,1.347,0.6455,20.0,20.0,15.0,15.0,15.13,0.36243609,1.33,0.48203999,True,1755049411205,1755049411205,0.4792417,0.36243609,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.87,买入,515030.SH,300.0,20250813014331
|
||||
242680617,201378740,1064311,中证A50ETF易方达,SH563080,0.53438623,1.208,0.6455,20.0,20.0,15.0,15.0,15.02,0.40136552,1.201,0.48203998,True,1755049411205,1755049411205,0.53438623,0.40136552,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.98,买入,563080.SH,400.0,20250813014331
|
||||
242674433,201305567,1036743,新能源车ETF,SH515030,0.36243609,1.33,0.482,15.0,15.0,25.0,25.0,24.75,0.59812663,1.347,0.80567657,True,1754963259422,1754963259422,0.36243609,0.59812663,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.75,卖出,515030.SH,600.0,20250812014739
|
||||
242674434,201305567,1064311,中证A50ETF易方达,SH563080,0.40136552,1.201,0.482,15.0,15.0,20.0,20.0,20.04,0.53622401,1.202,0.64454126,True,1754963259422,1754963259422,0.40136552,0.53622401,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.04,卖出,563080.SH,400.0,20250812014739
|
||||
242674435,201305567,1027747,香港银行LOF,SH501025,0.39047169,1.646,0.6427,20.0,20.0,15.0,15.0,15.08,0.29440069,1.642,0.48340593,True,1754963259422,1754963259422,0.39047387,0.29440069,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.92,买入,501025.SH,300.0,20250812014739
|
||||
242674436,201305567,1029080,银行ETF,SH512800,1.11197231,0.867,0.9641,30.0,30.0,20.0,20.0,20.13,0.74599683,0.864,0.64454126,True,1754963259422,1754963259422,1.11197231,0.74599683,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,9.87,买入,512800.SH,1300.0,20250812014739
|
||||
242669437,201181202,1027747,香港银行LOF,SH501025,0.29440069,1.642,0.4834,15.0,15.0,20.0,20.0,19.91,0.3908167,1.645,0.64289347,True,1754890715333,1754890715333,0.29440069,0.3908167,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.91,卖出,501025.SH,300.0,20250811053835
|
||||
242669438,201181202,1029080,银行ETF,SH512800,0.74599683,0.864,0.6445,20.0,20.0,30.0,30.0,29.65,1.10589475,0.872,0.96434022,True,1754890715333,1754890715333,0.74599683,1.10589475,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.65,卖出,512800.SH,1300.0,20250811053835
|
||||
242669439,201181202,1064311,中证A50ETF易方达,SH563080,0.53622401,1.202,0.6445,20.0,20.0,20.0,20.0,19.97,0.53529848,1.201,0.64289347,True,1754890715333,1754890715333,0.53622401,0.53529848,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.03,买入,563080.SH,0.0,20250811053835
|
||||
242669440,201181202,1036946,可转债ETF,SH511380,0.04912287,13.121,0.6445,20.0,20.0,15.0,15.0,15.04,0.03694507,13.051,0.4821701,True,1754890715333,1754890715333,0.04912287,0.03694507,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.96,买入,511380.SH,0.0,20250811053835
|
||||
242669441,201181202,1036743,新能源车ETF,SH515030,0.59812663,1.347,0.8057,25.0,25.0,15.0,15.0,15.43,0.3691961,1.306,0.4821701,True,1754890715333,1754890715333,0.59812663,0.3691961,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,9.57,买入,515030.SH,500.0,20250811053835
|
||||
242648056,200968972,1027747,香港银行LOF,SH501025,0.3908167,1.645,0.6429,20.0,20.0,20.0,20.0,20.01,0.39103471,1.614,0.63113002,True,1754546118359,1754546118359,0.3908167,0.39103471,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.01,卖出,501025.SH,0.0,20250807055518
|
||||
242648057,200968972,1036743,新能源车ETF,SH515030,0.3691961,1.306,0.4822,15.0,15.0,20.0,20.0,19.92,0.49038852,1.287,0.63113002,True,1754546118359,1754546118359,0.3691961,0.49038852,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.92,卖出,515030.SH,300.0,20250807055518
|
||||
242648058,200968972,1036946,可转债ETF,SH511380,0.03694507,13.051,0.4822,15.0,15.0,20.0,20.0,20.06,0.04939579,12.777,0.63113,True,1754546118359,1754546118359,0.03694507,0.04939579,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.06,卖出,511380.SH,0.0,20250807055518
|
||||
242648059,200968972,1029080,银行ETF,SH512800,1.10589475,0.872,0.9643,30.0,30.0,25.0,25.0,25.15,0.92704175,0.851,0.78891252,True,1754546118359,1754546118359,1.10589475,0.92704175,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.85,买入,512800.SH,600.0,20250807055518
|
||||
242648060,200968972,1064311,中证A50ETF易方达,SH563080,0.53529848,1.201,0.6429,20.0,20.0,15.0,15.0,14.86,0.39777102,1.19,0.47334751,True,1754546118359,1754546118359,0.53529848,0.39777102,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.14,买入,563080.SH,400.0,20250807055518
|
||||
242624866,200717876,1036946,可转债ETF,SH511380,0.04939579,12.777,0.6311,20.0,20.0,65.0,65.0,65.04,0.16063407,12.776,2.05226087,True,1754029999519,1754029999519,0.04939579,0.16063407,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-45.04,卖出,511380.SH,300.0,20250801063319
|
||||
242624867,200717876,1064311,中证A50ETF易方达,SH563080,0.39777102,1.19,0.4733,15.0,15.0,10.0,10.0,9.9,0.26245424,1.203,0.31573245,True,1754029999519,1754029999519,0.39777102,0.26245424,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.1,买入,563080.SH,400.0,20250801063319
|
||||
242624868,200717876,1027747,香港银行LOF,SH501025,0.39103471,1.614,0.6311,20.0,20.0,10.0,10.0,10.01,0.1956211,1.614,0.31573245,True,1754029999519,1754029999519,0.39103471,0.1956211,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,9.99,买入,501025.SH,600.0,20250801063319
|
||||
242624869,200717876,1029080,银行ETF,SH512800,0.92704175,0.851,0.7889,25.0,25.0,10.0,10.0,10.12,0.37542504,0.841,0.31573245,True,1754029999519,1754029999519,0.92704175,0.37542504,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,14.88,买入,512800.SH,2000.0,20250801063319
|
||||
242624870,200717876,1036743,新能源车ETF,SH515030,0.49038852,1.287,0.6311,20.0,20.0,5.0,5.0,4.93,0.12097029,1.305,0.15786622,True,1754029999519,1754029999519,0.49038852,0.12097029,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,15.07,买入,515030.SH,900.0,20250801063319
|
||||
242611685,200595886,1027747,香港银行LOF,SH501025,0.1956211,1.614,0.3157,10.0,10.0,20.0,20.0,19.89,0.38905471,1.657,0.64466365,True,1753927431673,1753927431673,0.1956211,0.38905471,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.89,卖出,501025.SH,600.0,20250731020351
|
||||
242611686,200595886,1036743,新能源车ETF,SH515030,0.12097029,1.305,0.1579,5.0,5.0,10.0,10.0,9.96,0.24108588,1.337,0.32233182,True,1753927431673,1753927431673,0.12097029,0.24108588,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.96,卖出,515030.SH,300.0,20250731020351
|
||||
242611687,200595886,1064311,中证A50ETF易方达,SH563080,0.26245424,1.203,0.3157,10.0,10.0,25.0,25.0,24.88,0.65302235,1.234,0.80582957,True,1753927431673,1753927431673,0.26245424,0.65302235,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.88,卖出,563080.SH,1200.0,20250731020351
|
||||
242611688,200595886,1029080,银行ETF,SH512800,0.37542504,0.841,0.3157,10.0,10.0,25.0,25.0,25.08,0.9413897,0.856,0.80582958,True,1753927431673,1753927431673,0.37542504,0.9413897,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-15.08,卖出,512800.SH,2000.0,20250731020351
|
||||
242611689,200595886,1036946,可转债ETF,SH511380,0.16063407,12.776,2.0523,65.0,65.0,20.0,20.0,20.19,0.04989656,12.92,0.64466355,True,1753927431673,1753927431673,0.16063407,0.04989656,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,44.81,买入,511380.SH,300.0,20250731020351
|
||||
242601363,200510609,1036743,新能源车ETF,SH515030,0.24108588,1.337,0.3223,10.0,10.0,15.0,15.0,14.77,0.35602942,1.354,0.48206383,True,1753845442806,1753845442806,0.24108588,0.35602942,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.77,卖出,515030.SH,200.0,20250730031722
|
||||
242601364,200510609,1036946,可转债ETF,SH511380,0.04989656,12.92,0.6447,20.0,20.0,25.0,25.0,25.14,0.06271483,12.811,0.80343968,True,1753845442806,1753845442806,0.04989656,0.06271483,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.14,卖出,511380.SH,0.0,20250730031722
|
||||
242601365,200510609,1029080,银行ETF,SH512800,0.9413897,0.856,0.8058,25.0,25.0,25.0,25.0,24.98,0.94079595,0.854,0.80343974,True,1753845442806,1753845442806,0.9413897,0.94079595,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.02,买入,512800.SH,0.0,20250730031722
|
||||
242601366,200510609,1064311,中证A50ETF易方达,SH563080,0.65302235,1.234,0.8058,25.0,25.0,20.0,20.0,20.14,0.52598346,1.222,0.64275178,True,1753845442806,1753845442806,0.65302235,0.52598346,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.86,买入,563080.SH,300.0,20250730031722
|
||||
242601367,200510609,1027747,香港银行LOF,SH501025,0.38905471,1.657,0.6447,20.0,20.0,15.0,15.0,14.97,0.29127724,1.655,0.48206383,True,1753845442806,1753845442806,0.38905471,0.29127724,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.03,买入,501025.SH,300.0,20250730031722
|
||||
242592429,200433945,1027747,香港银行LOF,SH501025,0.29127724,1.655,0.4821,15.0,15.0,20.0,20.0,19.9,0.38639284,1.669,0.64488964,True,1753757740949,1753757740949,0.29127724,0.38647138,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.9,卖出,501025.SH,300.0,20250729025540
|
||||
242592430,200433945,1029080,银行ETF,SH512800,0.94079595,0.854,0.8034,25.0,25.0,40.0,40.0,39.86,1.50004823,0.86,1.29004147,True,1753757740949,1753757740949,0.94079595,1.50004823,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.86,卖出,512800.SH,2000.0,20250729025540
|
||||
242592431,200433945,1036743,新能源车ETF,SH515030,0.35602942,1.354,0.4821,15.0,15.0,10.0,10.0,10.14,0.24067938,1.34,0.32251036,True,1753757740949,1753757740949,0.35602942,0.24067938,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.86,买入,515030.SH,300.0,20250729025540
|
||||
242592432,200433945,1064311,中证A50ETF易方达,SH563080,0.52598346,1.222,0.6428,20.0,20.0,15.0,15.0,15.12,0.39761437,1.217,0.48389668,True,1753757740949,1753757740949,0.52598346,0.39750661,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.88,买入,563080.SH,300.0,20250729025540
|
||||
242592433,200433945,1036946,可转债ETF,SH511380,0.06271483,12.811,0.8034,25.0,25.0,15.0,15.0,14.98,0.03758278,12.872,0.48376554,True,1753757740949,1753757740949,0.06271483,0.03758278,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,10.02,买入,511380.SH,0.0,20250729025540
|
||||
242583936,200355079,1036743,新能源车ETF,SH515030,0.24067938,1.34,0.3225,10.0,10.0,15.0,15.0,14.94,0.35964823,1.351,0.48588475,True,1753678818509,1753678818509,0.24067938,0.35964823,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.94,卖出,515030.SH,300.0,20250728050018
|
||||
242583937,200355079,1036946,可转债ETF,SH511380,0.03758278,12.872,0.4838,15.0,15.0,20.0,20.0,19.97,0.05002288,12.951,0.64784631,True,1753678818509,1753678818509,0.03758278,0.05002288,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.97,卖出,511380.SH,0.0,20250728050018
|
||||
242583938,200355079,1027747,香港银行LOF,SH501025,0.38639284,1.669,0.6449,20.0,20.0,15.0,15.0,15.06,0.29094896,1.67,0.48588476,True,1753678818509,1753678818509,0.38647138,0.29094896,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.94,买入,501025.SH,300.0,20250728050018
|
||||
242583939,200355079,1029080,银行ETF,SH512800,1.50004823,0.86,1.29,40.0,40.0,35.0,35.0,35.03,1.3137093,0.863,1.13373112,True,1753678818509,1753678818509,1.50004823,1.3137093,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.97,买入,512800.SH,600.0,20250728050018
|
||||
242570974,200228783,1027747,香港银行LOF,SH501025,0.29094896,1.67,0.4859,15.0,15.0,20.0,20.0,20.01,0.38803435,1.667,0.64685326,True,1753407516902,1753407516902,0.29094896,0.38803435,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.01,卖出,501025.SH,300.0,20250725013836
|
||||
242570975,200228783,1036743,新能源车ETF,SH515030,0.35964823,1.351,0.4859,15.0,15.0,14.98,15.0,15.26,0.36585272,1.324,0.484389,True,1753407516902,1753407516902,0.35964823,0.3664199,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.26,卖出,515030.SH,0.0,20250725013836
|
||||
242570976,200228783,1064311,中证A50ETF易方达,SH563080,0.39761437,1.222,0.4859,15.0,15.0,25.0,25.0,24.98,0.6622167,1.221,0.80856659,True,1753407516902,1753407516902,0.39761437,0.6622167,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-9.98,卖出,563080.SH,800.0,20250725013836
|
||||
242570977,200228783,1036946,可转债ETF,SH511380,0.05002288,12.951,0.6478,20.0,20.0,15.0,15.0,15.06,0.03765671,12.884,0.48516905,True,1753407516902,1753407516902,0.05002288,0.03765445,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.94,买入,511380.SH,0.0,20250725013836
|
||||
242570978,200228783,1029080,银行ETF,SH512800,1.3137093,0.863,1.1337,35.0,35.0,25.0,25.0,24.68,0.92619311,0.873,0.80856658,True,1753407516902,1753407516902,1.3137093,0.92619311,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,10.32,买入,512800.SH,1300.0,20250725013836
|
||||
242549856,200058473,1036743,新能源车ETF,SH515030,0.36585272,NAN,0.4844,14.98,15.0,15.0,15.0,14.98,0.36585272,1.325,0.48475485,True,1753234804652,1753234804652,0.3664199,0.36585272,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.02,买入,515030.SH,0.0,20250723014004
|
||||
242549850,200058472,1064311,中证A50ETF易方达,SH563080,0.6622167,1.221,0.8086,25.0,25.0,35.04,35.03,35.01,0.9274738,1.221,1.1324455,True,1753234804652,1753234804652,0.6622167,0.92716149,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-10.01,卖出,563080.SH,800.0,20250723014004
|
||||
242549852,200058472,1029080,银行ETF,SH512800,0.92619311,0.873,0.8086,25.0,25.0,20.0,20.0,20.05,0.74291932,0.87,0.6463398,True,1753234804652,1753234804652,0.92619311,0.74291932,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.95,买入,512800.SH,600.0,20250723014004
|
||||
242549853,200058472,1027747,香港银行LOF,SH501025,0.38803435,1.667,0.6469,20.0,20.0,14.96,14.97,14.96,0.29015852,1.666,0.48340409,True,1753234804652,1753234804652,0.38803435,0.29038736,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.04,买入,501025.SH,300.0,20250723014004
|
||||
242549626,200056916,1027747,香港银行LOF,SH501025,0.29015852,NAN,0.4834,14.96,14.97,14.96,14.97,14.96,0.29015852,1.666,0.48340409,True,1753234511657,1753234511657,0.29038736,0.09579765,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.01,买入,501025.SH,0.0,20250723013511
|
||||
242549619,200056915,1036743,新能源车ETF,SH515030,0.36585272,1.325,0.4848,15.0,15.0,35.0,35.0,35.06,0.85514786,1.308,1.1185334,True,1753234511657,1753234511657,0.36585272,0.85514786,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-20.06,卖出,515030.SH,1200.0,20250723013511
|
||||
242549620,200056915,1036946,可转债ETF,SH511380,0.03765671,12.873,0.4848,15.0,15.0,20.0,20.0,20.0,0.05020122,12.732,0.63916193,True,1753234511657,1753234511657,0.03765671,0.05020122,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-5.0,卖出,511380.SH,0.0,20250723013511
|
||||
242549621,200056915,1027747,香港银行LOF,SH501025,0.29015852,1.666,0.4834,14.96,14.96,5.0,5.0,4.94,0.09579765,1.668,0.15979048,True,1753234511657,1753234511657,0.29038736,0.09579765,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,10.02,买入,501025.SH,600.0,20250723013511
|
||||
242549622,200056915,1029080,银行ETF,SH512800,0.74291932,0.87,0.6463,20.0,20.0,5.0,5.0,4.96,0.18430275,0.867,0.15979048,True,1753234511657,1753234511657,0.74291932,0.18430275,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,15.04,买入,512800.SH,2000.0,20250723013511
|
||||
242542226,199986831,1027747,香港银行LOF,SH501025,0.09579765,1.668,0.1598,5.0,5.0,10.0,10.0,9.93,0.19024507,1.677,0.31904098,True,1753149108316,1753149108316,0.09579765,0.19024507,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.93,卖出,501025.SH,300.0,20250722015148
|
||||
242542227,199986831,1064311,中证A50ETF易方达,SH563080,0.9274738,1.206,1.1185,35.0,35.0,35.0,35.0,35.12,0.93053621,1.2,1.11664345,True,1753149108316,1753149108316,0.9274738,0.93053621,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-0.12,卖出,563080.SH,0.0,20250722015148
|
||||
242542228,199986831,1029080,银行ETF,SH512800,0.18430275,0.867,0.1598,5.0,5.0,10.0,10.0,9.86,0.36337242,0.878,0.31904098,True,1753149108316,1753149108316,0.18430275,0.36337242,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.86,卖出,512800.SH,600.0,20250722015148
|
||||
242542229,199986831,1036743,新能源车ETF,SH515030,0.85514786,1.308,1.1185,35.0,35.0,30.0,30.0,30.11,0.73568252,1.301,0.95712295,True,1753149108316,1753149108316,0.85514786,0.73568252,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.89,买入,515030.SH,300.0,20250722015148
|
||||
242542230,199986831,1036946,可转债ETF,SH511380,0.05020122,12.732,0.6392,20.0,20.0,15.0,15.0,14.99,0.03761684,12.722,0.47856143,True,1753149108316,1753149108316,0.05020122,0.03761684,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,5.01,买入,511380.SH,0.0,20250722015148
|
||||
242537170,199939902,1027747,香港银行LOF,SH501025,0.19024507,1.677,0.319,10.0,10.0,15.0,15.0,14.92,0.28379924,1.685,0.47820171,True,1753074917106,1753074917106,0.19024507,0.28379924,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.92,卖出,501025.SH,300.0,20250721051517
|
||||
242537171,199939902,1029080,银行ETF,SH512800,0.36337242,0.878,0.319,10.0,10.0,24.69,24.69,24.45,0.88839735,0.886,0.78712005,True,1753074917106,1753074917106,0.36337242,0.88839735,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-14.45,卖出,512800.SH,1900.0,20250721051517
|
||||
242537172,199939902,1036743,新能源车ETF,SH515030,0.73568252,1.301,0.9571,30.0,30.0,25.32,25.32,25.45,0.62419573,1.293,0.80708507,True,1753074917106,1753074917106,0.73568252,0.62428811,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.55,买入,515030.SH,200.0,20250721051517
|
||||
242537173,199939902,1036946,可转债ETF,SH511380,0.03761684,12.722,0.4786,15.0,15.0,9.99,9.99,10.03,0.02514573,12.665,0.31847067,True,1753074917106,1753074917106,0.03761684,0.02514665,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.97,买入,511380.SH,0.0,20250721051517
|
||||
242537174,199939902,1064311,中证A50ETF易方达,SH563080,0.93053621,1.2,1.1166,35.0,35.0,25.0,25.0,25.15,0.66862658,1.192,0.79700288,True,1753074917106,1753074917106,0.93053621,0.66862658,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,9.85,买入,563080.SH,700.0,20250721051517
|
||||
242522294,199803245,1027747,香港银行LOF,SH501025,0.28379924,1.685,0.4782,15.0,15.0,20.0,20.0,19.97,0.37788657,1.687,0.63749464,True,1752805077947,1752805077947,0.28379924,0.37788657,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,-4.97,卖出,501025.SH,300.0,20250718021757
|
||||
242522295,199803245,1064311,中证A50ETF易方达,SH563080,0.66862658,1.192,0.797,25.0,25.0,24.65,24.65,24.67,0.65970793,1.191,0.78571214,True,1752805077947,1752805077947,0.66862658,0.65970793,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,0.33,买入,563080.SH,0.0,20250718021757
|
||||
242522296,199803245,1029080,银行ETF,SH512800,0.88839735,0.886,0.7871,24.69,24.69,19.94,19.94,20.0,0.7197986,0.883,0.63558216,True,1752805077947,1752805077947,0.88839735,0.7197986,ZH1738732,择时etf,否,100.0,20.0,53034.98000000001,4.69,买入,512800.SH,600.0,20250718021757
|
||||
|
@@ -0,0 +1,318 @@
|
||||
记录ID,调仓ID,股票ID,股票名称,股票代码,持仓数量,价格,净值,当前权重,目标权重,前期权重,前期目标权重,前期调整权重,前期数量,前期价格,前期净值,主动调仓,创建时间,更新时间,目标数量,前期目标数量,组合ID,组合名字
|
||||
243221902,204505212,1061966,30年国债ETF,SH511090,0.0,119.011,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758258062041,1758258062041,0.0,0.00299214,ZH838108,船长
|
||||
243221903,204505212,1038588,短融ETF,SH511360,0.0,112.345,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758258062041,1758258062041,0.0,0.00127015,ZH838108,船长
|
||||
243221904,204505212,1056342,游戏ETF,SZ159869,0.5643041,1.616,0.9119,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758258062041,1758258062041,0.5643041,0.7864372,ZH838108,船长
|
||||
243221905,204505212,1060895,碳中和100ETF,SH562990,1.19654313,0.938,1.1224,16.0,16.0,25.0,25.0,24.96,1.86630791,0.937,1.74873051,True,1758258062041,1758258062041,1.19654313,1.86630791,ZH838108,船长
|
||||
243221906,204505212,1057346,恒生科技ETF,SZ159740,1.26164282,0.834,1.0522,15.0,15.0,16.09,16.07,16.02,1.34764438,0.835,1.12528305,True,1758258062041,1758258062041,1.26164282,1.34620835,ZH838108,船长
|
||||
243221907,204505212,1060691,中概互联ETF,SH513220,0.38227433,1.468,0.5612,8.0,8.0,5.01,5.0,5.01,0.23930913,1.465,0.35058787,True,1758258062041,1758258062041,0.38227433,0.23873454,ZH838108,船长
|
||||
243221908,204505212,1030082,传媒ETF,SH512980,0.6649037,1.055,0.7015,10.0,10.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758258062041,1758258062041,0.6649037,0.26810508,ZH838108,船长
|
||||
243221909,204505212,1025452,国投白银LOF,SZ161226,0.91417039,1.151,1.0522,15.0,15.0,8.0,8.0,8.07,0.49173441,1.138,0.55959375,True,1758258062041,1758258062041,0.91417039,0.49173441,ZH838108,船长
|
||||
243221479,204504957,1030082,传媒ETF,SH512980,0.26771357,,0.2827,4.03,10.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758255827288,1758255827288,0.66471815,0.26810508,ZH838108,船长
|
||||
243221480,204504957,1057346,恒生科技ETF,SZ159740,1.25946597,,1.0529,15.0,15.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758255827288,1758255827288,1.25946597,1.34620835,ZH838108,船长
|
||||
243221481,204504957,1060895,碳中和100ETF,SH562990,1.64634671,,1.5443,22.0,22.0,25.0,25.0,24.94,1.86630791,0.937,1.74873051,True,1758255827288,1758255827288,1.64634671,1.86630791,ZH838108,船长
|
||||
243221483,204504957,1060691,中概互联ETF,SH513220,0.23930913,,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758255827288,1758255827288,0.38149041,0.23873454,ZH838108,船长
|
||||
243221485,204504957,1056342,游戏ETF,SZ159869,0.56433214,,0.9125,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758255827288,1758255827288,0.56433214,0.7864372,ZH838108,船长
|
||||
243221486,204504957,1038588,短融ETF,SH511360,0.0,,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758255827288,1758255827288,0.0,0.00127015,ZH838108,船长
|
||||
243221487,204504957,1025452,国投白银LOF,SZ161226,0.49173441,,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758255827288,1758255827288,0.91717208,0.49173441,ZH838108,船长
|
||||
243221488,204504957,1061966,30年国债ETF,SH511090,0.0,,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758255827288,1758255827288,0.0,0.00299214,ZH838108,船长
|
||||
243221469,204504910,1030082,传媒ETF,SH512980,0.26771357,,0.2827,4.03,10.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758255728035,1758255728035,0.66471815,0.26810508,ZH838108,船长
|
||||
243221470,204504910,1057346,恒生科技ETF,SZ159740,1.25946597,,1.0529,15.0,15.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758255728035,1758255728035,1.25946597,1.34620835,ZH838108,船长
|
||||
243221473,204504910,1060691,中概互联ETF,SH513220,0.23930913,,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758255728035,1758255728035,0.38149041,0.23873454,ZH838108,船长
|
||||
243221475,204504910,1056342,游戏ETF,SZ159869,0.56433214,,0.9125,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758255728035,1758255728035,0.56433214,0.7864372,ZH838108,船长
|
||||
243221476,204504910,1038588,短融ETF,SH511360,0.0,,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758255728035,1758255728035,0.0,0.00127015,ZH838108,船长
|
||||
243221477,204504910,1025452,国投白银LOF,SZ161226,0.49173441,,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758255728035,1758255728035,0.91717208,0.49173441,ZH838108,船长
|
||||
243221478,204504910,1061966,30年国债ETF,SH511090,0.0,,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758255728035,1758255728035,0.0,0.00299214,ZH838108,船长
|
||||
243221459,204504887,1030082,传媒ETF,SH512980,0.26771357,,0.2827,4.03,10.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758255709271,1758255709271,0.66471815,0.26810508,ZH838108,船长
|
||||
243221460,204504887,1057346,恒生科技ETF,SZ159740,1.34764438,,1.1266,16.05,19.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758255709271,1758255709271,1.59532357,1.34620835,ZH838108,船长
|
||||
243221463,204504887,1060691,中概互联ETF,SH513220,0.23930913,,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758255709271,1758255709271,0.38149041,0.23873454,ZH838108,船长
|
||||
243221465,204504887,1056342,游戏ETF,SZ159869,0.56433214,,0.9125,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758255709271,1758255709271,0.56433214,0.7864372,ZH838108,船长
|
||||
243221466,204504887,1038588,短融ETF,SH511360,0.0,,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758255709271,1758255709271,0.0,0.00127015,ZH838108,船长
|
||||
243221467,204504887,1025452,国投白银LOF,SZ161226,0.49173441,,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758255709271,1758255709271,0.91717208,0.49173441,ZH838108,船长
|
||||
243221468,204504887,1061966,30年国债ETF,SH511090,0.0,,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758255709271,1758255709271,0.0,0.00299214,ZH838108,船长
|
||||
243221449,204504865,1030082,传媒ETF,SH512980,0.26771357,,0.2827,4.03,6.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758255683804,1758255683804,0.39883089,0.26810508,ZH838108,船长
|
||||
243221450,204504865,1057346,恒生科技ETF,SZ159740,1.34764438,,1.1266,16.05,19.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758255683804,1758255683804,1.59532357,1.34620835,ZH838108,船长
|
||||
243221453,204504865,1060691,中概互联ETF,SH513220,0.23930913,,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758255683804,1758255683804,0.38149041,0.23873454,ZH838108,船长
|
||||
243221455,204504865,1056342,游戏ETF,SZ159869,0.56433214,,0.9125,13.0,13.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758255683804,1758255683804,0.56433214,0.7864372,ZH838108,船长
|
||||
243221456,204504865,1038588,短融ETF,SH511360,0.0,,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758255683804,1758255683804,0.0,0.00127015,ZH838108,船长
|
||||
243221457,204504865,1025452,国投白银LOF,SZ161226,0.49173441,,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758255683804,1758255683804,0.91717208,0.49173441,ZH838108,船长
|
||||
243221458,204504865,1061966,30年国债ETF,SH511090,0.0,,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758255683804,1758255683804,0.0,0.00299214,ZH838108,船长
|
||||
243221374,204504280,1030082,传媒ETF,SH512980,0.26771357,,0.2827,4.03,6.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758254880550,1758254880550,0.39883089,0.26810508,ZH838108,船长
|
||||
243221375,204504280,1057346,恒生科技ETF,SZ159740,1.34764438,,1.1266,16.05,19.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758254880550,1758254880550,1.59532357,1.34620835,ZH838108,船长
|
||||
243221378,204504280,1060691,中概互联ETF,SH513220,0.23930913,,0.3523,5.02,8.0,5.01,5.0,5.02,0.23930913,1.465,0.35058787,True,1758254880550,1758254880550,0.38149041,0.23873454,ZH838108,船长
|
||||
243221380,204504280,1056342,游戏ETF,SZ159869,0.69456264,,1.1231,16.0,16.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758254880550,1758254880550,0.69456264,0.7864372,ZH838108,船长
|
||||
243221381,204504280,1038588,短融ETF,SH511360,0.0,,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758254880550,1758254880550,0.0,0.00127015,ZH838108,船长
|
||||
243221382,204504280,1025452,国投白银LOF,SZ161226,0.49173441,,0.5645,8.04,15.0,8.0,8.0,8.04,0.49173441,1.138,0.55959375,True,1758254880550,1758254880550,0.91717208,0.49173441,ZH838108,船长
|
||||
243221383,204504280,1061966,30年国债ETF,SH511090,0.0,,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758254880550,1758254880550,0.0,0.00299214,ZH838108,船长
|
||||
243221364,204504271,1030082,传媒ETF,SH512980,0.26771357,,0.2827,4.03,6.0,3.98,3.99,4.03,0.26771357,1.041,0.27868982,True,1758254850134,1758254850134,0.39883089,0.26810508,ZH838108,船长
|
||||
243221365,204504271,1057346,恒生科技ETF,SZ159740,1.34764438,,1.1266,16.05,19.0,16.09,16.07,16.05,1.34764438,0.835,1.12528305,True,1758254850134,1758254850134,1.59532357,1.34620835,ZH838108,船长
|
||||
243221370,204504271,1056342,游戏ETF,SZ159869,0.69456264,,1.1231,16.0,16.0,18.0,18.0,18.12,0.7864372,1.601,1.25908595,True,1758254850134,1758254850134,0.69456264,0.7864372,ZH838108,船长
|
||||
243221371,204504271,1038588,短融ETF,SH511360,0.0,,0.0,0.0,0.0,2.04,2.04,2.04,0.00127164,112.346,0.14286366,True,1758254850134,1758254850134,0.0,0.00127015,ZH838108,船长
|
||||
243221373,204504271,1061966,30年国债ETF,SH511090,0.0,,0.0,0.0,0.0,5.1,5.1,5.08,0.00299255,119.226,0.35678976,True,1758254850134,1758254850134,0.0,0.00299214,ZH838108,船长
|
||||
243220115,204488875,1056342,游戏ETF,SZ159869,0.7864372,1.601,1.2591,18.0,18.0,31.97,32.0,31.46,1.37445218,1.661,2.28296507,True,1758247260289,1758247260289,0.7864372,1.37567597,ZH838108,船长
|
||||
243220116,204488875,1060895,碳中和100ETF,SH562990,1.86630791,0.937,1.7487,25.0,25.0,28.97,29.0,29.23,2.18232331,0.948,2.06884249,True,1758247260289,1758247260289,1.86630791,2.18436629,ZH838108,船长
|
||||
243220117,204488875,1025452,国投白银LOF,SZ161226,0.49173441,1.138,0.5596,8.0,8.0,,,,,,,True,1758247260289,1758247260289,0.49173441,,ZH838108,船长
|
||||
243211420,204396469,1030082,传媒ETF,SH512980,0.26771357,,0.2867,4.02,4.0,4.02,4.02,4.02,0.26771357,1.073,0.28725666,True,1758164382409,1758164382409,0.26668975,0.26744655,ZH838108,船长
|
||||
243211421,204396469,1060895,碳中和100ETF,SH562990,2.18232331,,2.0688,28.97,29.0,28.97,29.0,28.97,2.18232331,0.948,2.06884249,True,1758164382409,1758164382409,2.18436629,,ZH838108,船长
|
||||
243211412,204396468,1060895,碳中和100ETF,SH562990,2.18232331,0.948,2.0688,28.97,28.97,,,,,,,True,1758164382409,1758164382409,2.18436629,,ZH838108,船长
|
||||
243211403,204396392,1056342,游戏ETF,SZ159869,1.37445218,1.662,2.2843,32.0,32.0,29.96,29.97,29.97,1.28726563,1.662,2.13943547,True,1758164341721,1758164341721,1.37445218,1.2876974,ZH838108,船长
|
||||
243211373,204396301,1060691,中概互联ETF,SH513220,0.23930913,1.492,0.357,5.0,5.0,8.02,8.02,8.03,0.38423302,1.493,0.57365989,True,1758164291481,1758164291481,0.23930913,0.38423513,ZH838108,船长
|
||||
243211277,204395639,1056342,游戏ETF,SZ159869,1.28726563,1.667,2.1459,30.0,30.0,14.96,14.95,14.99,0.64315789,1.665,1.07085788,True,1758163985274,1758163985274,1.28726563,0.64264875,ZH838108,船长
|
||||
243210358,204388515,1061419,中韩半导体ETF,SH513310,0.16054864,2.229,0.3579,5.0,5.0,3.0,3.0,3.03,0.09739179,2.201,0.21435932,True,1758161804000,1758161804000,0.16054864,0.09735368,ZH838108,船长
|
||||
243210003,204384854,1057346,恒生科技ETF,SZ159740,1.34764438,0.848,1.1428,16.0,16.0,10.0,10.0,10.09,0.8500984,0.839,0.71323255,True,1758160934424,1758160934424,1.34764438,0.8500984,ZH838108,船长
|
||||
243209467,204380788,1060691,中概互联ETF,SH513220,0.38423302,1.485,0.5706,8.0,8.0,10.01,10.01,9.97,0.47880796,1.491,0.71390266,True,1758160044251,1758160044251,0.38423302,0.47898735,ZH838108,船长
|
||||
243209468,204380788,1057346,恒生科技ETF,SZ159740,0.8500984,0.839,0.7132,10.0,10.0,13.01,13.01,12.98,1.10353565,0.841,0.92807348,True,1758160044251,1758160044251,0.8500984,1.10369458,ZH838108,船长
|
||||
243209469,204380788,1061419,中韩半导体ETF,SH513310,0.09739179,2.197,0.214,3.0,3.0,,,,,,,True,1758160044251,1758160044251,0.09739179,,ZH838108,船长
|
||||
243209297,204379551,1030082,传媒ETF,SH512980,0.26771357,1.066,0.2854,4.0,4.0,,,,,,,True,1758159787124,1758159787124,0.26771357,,ZH838108,船长
|
||||
243209276,204379274,1056342,游戏ETF,SZ159869,0.64315789,1.664,1.0702,15.0,15.0,12.0,12.0,11.95,0.51237034,1.672,0.8566832,True,1758159736178,1758159736178,0.64315789,0.51237034,ZH838108,船长
|
||||
243209256,204379120,1060691,中概互联ETF,SH513220,0.47880796,1.491,0.7139,10.0,10.0,13.0,13.0,12.84,0.61477925,1.514,0.93077578,True,1758159704915,1758159704915,0.47880796,0.61477925,ZH838108,船长
|
||||
243209257,204379120,1057346,恒生科技ETF,SZ159740,1.10353565,0.841,0.9281,13.0,13.0,16.26,16.21,16.19,1.37407159,0.847,1.16383863,True,1758159704915,1758159704915,1.10353565,1.37025479,ZH838108,船长
|
||||
243209258,204379120,1056342,游戏ETF,SZ159869,0.51237034,1.672,0.8567,12.0,12.0,8.03,8.0,8.08,0.34486412,1.668,0.57523335,True,1758159704915,1758159704915,0.51237034,0.34339634,ZH838108,船长
|
||||
243208775,204376225,1060691,中概互联ETF,SH513220,0.61477925,1.514,0.9308,13.0,13.0,18.05,18.0,17.79,0.84112486,1.541,1.2961734,True,1758159310767,1758159310767,0.61477925,0.83888591,ZH838108,船长
|
||||
243208693,204376047,1056342,游戏ETF,SZ159869,0.34486412,1.666,0.5745,8.0,8.0,4.05,4.06,4.05,0.17451463,1.666,0.29074137,True,1758159289996,1758159289996,0.34486412,0.17491627,ZH838108,船长
|
||||
243208687,204375945,1060691,中概互联ETF,SH513220,0.84112486,1.536,1.292,18.0,18.0,15.0,15.0,15.32,0.71571929,1.497,1.07143177,True,1758159277398,1758159277398,0.84112486,0.71571929,ZH838108,船长
|
||||
243208127,204368078,1025452,国投白银LOF,SZ161226,0.0,1.136,0.0,0.0,0.0,50.0,50.0,49.46,3.10985386,1.147,3.56700237,True,1758159131138,1758159131138,0.0,3.10985386,ZH838108,船长
|
||||
243208128,204368078,1061593,创50ETF,SZ159681,0.098795,1.446,0.1429,2.0,2.0,5.02,5.03,5.0,0.24703804,1.449,0.35795811,True,1758159131138,1758159131138,0.098795,0.24764695,ZH838108,船长
|
||||
243208129,204368078,1060691,中概互联ETF,SH513220,0.71571929,1.497,1.0714,15.0,15.0,25.0,25.0,25.27,1.20588315,1.479,1.78350117,True,1758159131138,1758159131138,0.71571929,1.20588315,ZH838108,船长
|
||||
243208130,204368078,1038588,短融ETF,SH511360,0.00127164,112.341,0.1429,2.0,2.0,,,,,,,True,1758159131138,1758159131138,0.00127164,,ZH838108,船长
|
||||
243208131,204368078,1061966,30年国债ETF,SH511090,0.00299255,119.344,0.3571,5.0,5.0,,,,,,,True,1758159131138,1758159131138,0.00299255,,ZH838108,船长
|
||||
243203609,204336522,1038588,短融ETF,SH511360,0.0,,0.0,0.0,2.0,,,,,,,True,1758135916993,1758135916993,0.00127372,,ZH838108,船长
|
||||
243203610,204336522,1025452,国投白银LOF,SZ161226,0.0,,0.0,0.0,0.0,50.0,50.0,49.77,3.10985386,1.147,3.56700237,True,1758135916993,1758135916993,0.0,3.10985386,ZH838108,船长
|
||||
243203611,204336522,1061966,30年国债ETF,SH511090,0.0,,0.0,0.0,5.0,,,,,,,True,1758135916993,1758135916993,0.00299332,,ZH838108,船长
|
||||
243203612,204336522,1064455,30年国债ETF博时,SH511130,0.0,,0.0,0.0,0.0,,,,,,,True,1758135916993,1758135916993,0.0,,ZH838108,船长
|
||||
243203601,204336493,1038588,短融ETF,SH511360,0.0,,0.0,0.0,2.0,,,,,,,True,1758135892640,1758135892640,0.00127372,,ZH838108,船长
|
||||
243203602,204336493,1025452,国投白银LOF,SZ161226,0.0,,0.0,0.0,0.0,50.0,50.0,49.77,3.10985386,1.147,3.56700237,True,1758135892640,1758135892640,0.0,3.10985386,ZH838108,船长
|
||||
243203603,204336493,1061966,30年国债ETF,SH511090,0.0,,0.0,0.0,2.0,,,,,,,True,1758135892640,1758135892640,0.00119733,,ZH838108,船长
|
||||
243203604,204336493,1064455,30年国债ETF博时,SH511130,0.0,,0.0,0.0,2.0,,,,,,,True,1758135892640,1758135892640,0.00132912,,ZH838108,船长
|
||||
243203581,204335092,1025452,国投白银LOF,SZ161226,0.0,,0.0,0.0,0.0,50.0,50.0,49.77,3.10985386,1.147,3.56700237,True,1758134307681,1758134307681,0.0,3.10985386,ZH838108,船长
|
||||
243203574,204334268,1025452,国投白银LOF,SZ161226,1.87436109,,2.1461,30.0,30.0,50.0,50.0,49.77,3.10985386,1.147,3.56700237,True,1758133372449,1758133372449,1.87436109,3.10985386,ZH838108,船长
|
||||
243201335,204283982,1025452,国投白银LOF,SZ161226,3.10985386,1.147,3.567,50.0,50.0,50.0,50.0,49.98,3.10891199,1.145,3.55970422,True,1758085259722,1758085259722,3.10985386,3.10891199,ZH838108,船长
|
||||
243201336,204283982,1060691,中概互联ETF,SH513220,1.20588315,1.479,1.7835,25.0,25.0,24.99,25.0,24.97,1.20456002,1.477,1.77913514,True,1758085259722,1758085259722,1.20588315,1.20504544,ZH838108,船长
|
||||
243199859,204280803,1023539,黄金ETF,SZ159934,0.0,7.903,0.0,0.0,0.0,18.0,18.0,18.0,0.16215617,7.905,1.28184452,True,1758078374277,1758078374277,0.0,0.16215617,ZH838108,船长
|
||||
243199860,204280803,1057346,恒生科技ETF,SZ159740,1.37407159,0.829,1.1391,16.0,16.0,9.0,9.0,9.0,0.77312701,0.829,0.64092229,True,1758078374277,1758078374277,1.37407159,0.77312701,ZH838108,船长
|
||||
243199861,204280803,1025452,国投白银LOF,SZ161226,3.10891199,1.145,3.5597,50.0,50.0,39.0,39.0,39.01,2.42561568,1.145,2.77732995,True,1758078374277,1758078374277,3.10891199,2.42561568,ZH838108,船长
|
||||
243199851,204280742,1023286,黄金ETF,SH518880,0.0,7.984,0.0,0.0,0.0,11.0,11.0,10.99,0.09803331,7.984,0.78269794,True,1758078341190,1758078341190,0.0,0.09802577,ZH838108,船长
|
||||
243199852,204280742,1023539,黄金ETF,SZ159934,0.16215617,7.905,1.2818,18.0,18.0,21.2,21.2,21.18,0.19077117,7.905,1.50804609,True,1758078341190,1758078341190,0.16215617,0.19081042,ZH838108,船长
|
||||
243199853,204280742,1057346,恒生科技ETF,SZ159740,0.77312701,0.829,0.6409,9.0,9.0,6.7,8.0,6.71,0.57607484,0.828,0.47698996,True,1758078341190,1758078341190,0.77312701,0.68742885,ZH838108,船长
|
||||
243199854,204280742,1060691,中概互联ETF,SH513220,1.20456002,1.478,1.7803,25.0,25.0,20.14,20.13,20.18,0.97208882,1.474,1.43285892,True,1758078341190,1758078341190,1.20456002,0.97166016,ZH838108,船长
|
||||
243199855,204280742,1025452,国投白银LOF,SZ161226,2.42561568,1.145,2.7773,39.0,39.0,32.02,32.02,31.99,1.98945665,1.145,2.27792786,True,1758078341190,1758078341190,2.42561568,1.98968327,ZH838108,船长
|
||||
243199847,204280552,1056342,游戏ETF,SZ159869,0.17451463,,0.2794,3.93,2.0,3.93,2.0,3.93,0.17451463,1.601,0.27939792,True,1758078237157,1758078237157,0.08888055,0.44374209,ZH838108,船长
|
||||
243199848,204280552,1057346,恒生科技ETF,SZ159740,0.57607484,,0.477,6.7,8.0,6.7,8.0,6.7,0.57607484,0.828,0.47698996,True,1758078237157,1758078237157,0.68742885,,ZH838108,船长
|
||||
243199840,204280551,1056342,游戏ETF,SZ159869,0.17451463,1.601,0.2794,3.93,3.93,10.0,10.0,9.99,0.44374209,1.6,0.70998734,True,1758078237157,1758078237157,0.08888055,0.44374209,ZH838108,船长
|
||||
243199841,204280551,1057346,恒生科技ETF,SZ159740,0.57607484,0.828,0.477,6.7,6.7,,,,,,,True,1758078237157,1758078237157,0.68742885,,ZH838108,船长
|
||||
243199541,204278815,1058885,游戏传媒ETF,SH517770,0.0,1.294,0.0,0.0,0.0,2.0,2.0,2.0,0.10969856,1.294,0.14194993,True,1758077340722,1758077340722,0.0,0.10971557,ZH838108,船长
|
||||
243199542,204278815,1025452,国投白银LOF,SZ161226,1.98945665,1.142,2.272,32.0,32.0,31.93,31.95,31.92,1.98456999,1.142,2.26637892,True,1758077340722,1758077340722,1.98945665,1.98599128,ZH838108,船长
|
||||
243199543,204278815,1056342,游戏ETF,SZ159869,0.44374209,1.6,0.71,10.0,10.0,9.01,9.0,9.02,0.40016576,1.599,0.63986505,True,1758077340722,1758077340722,0.44374209,0.39954585,ZH838108,船长
|
||||
243199544,204278815,1061593,创50ETF,SZ159681,0.24703804,1.437,0.355,5.0,5.0,4.0,4.0,4.0,0.19787032,1.435,0.2839439,True,1758077340722,1758077340722,0.24703804,0.19787032,ZH838108,船长
|
||||
243199526,204278726,1030082,传媒ETF,SH512980,0.0,1.049,0.0,0.0,0.0,1.0,1.0,1.0,0.06761953,1.048,0.07086526,True,1758077299971,1758077299971,0.0,0.06762767,ZH838108,船长
|
||||
243199527,204278726,1061593,创50ETF,SZ159681,0.19787032,1.435,0.2839,4.0,4.0,3.01,3.01,3.04,0.15035065,1.418,0.21319722,True,1758077299971,1758077299971,0.19787032,0.15044439,ZH838108,船长
|
||||
243199316,204276290,1056342,游戏ETF,SZ159869,0.40016576,1.594,0.6379,9.0,9.0,9.0,9.0,8.98,0.39923481,1.598,0.63797722,True,1758076553136,1758076553136,0.40016576,0.39923481,ZH838108,船长
|
||||
243199181,204275243,1063856,黄金股ETF,SH517520,0.0,1.826,0.0,0.0,0.0,1.0,1.01,1.0,0.03893499,1.828,0.07117316,True,1758076319498,1758076319498,0.0,0.03915422,ZH838108,船长
|
||||
243199182,204275243,1025452,国投白银LOF,SZ161226,1.98456999,1.143,2.2684,32.0,32.0,31.97,31.98,31.96,1.98239185,1.143,2.26587388,True,1758076319498,1758076319498,1.98456999,1.98273972,ZH838108,船长
|
||||
243199183,204275243,1056342,游戏ETF,SZ159869,0.39923481,1.598,0.638,9.0,9.0,7.98,7.97,7.99,0.35461688,1.595,0.56561392,True,1758076319498,1758076319498,0.39923481,0.35410422,ZH838108,船长
|
||||
243199122,204274961,1058885,游戏传媒ETF,SH517770,0.10969856,1.292,0.1417,2.0,2.0,13.0,13.0,12.96,0.71111058,1.299,0.92373264,True,1758076260795,1758076260795,0.10969856,0.71111058,ZH838108,船长
|
||||
243199123,204274961,1030082,传媒ETF,SH512980,0.06761953,1.048,0.0709,1.0,1.0,4.0,4.0,3.99,0.26991968,1.053,0.28422542,True,1758076260795,1758076260795,0.06761953,0.26991968,ZH838108,船长
|
||||
243199124,204274961,1061593,创50ETF,SZ159681,0.15035065,1.414,0.2126,3.0,3.0,,,,,,,True,1758076260795,1758076260795,0.15035065,,ZH838108,船长
|
||||
243199125,204274961,1060691,中概互联ETF,SH513220,0.97208882,1.458,1.4173,20.0,20.0,9.0,9.0,9.0,0.43741944,1.462,0.63950722,True,1758076260795,1758076260795,0.97208882,0.43741944,ZH838108,船长
|
||||
243197555,204263483,1063856,黄金股ETF,SH517520,0.03893499,1.825,0.0711,1.0,1.0,3.04,3.04,2.99,0.11638607,1.854,0.21577977,True,1758073888360,1758073888360,0.03893499,0.11653594,ZH838108,船长
|
||||
243197556,204263483,1058885,游戏传媒ETF,SH517770,0.71111058,1.299,0.9237,13.0,13.0,15.11,15.08,15.16,0.82920124,1.295,1.0738156,True,1758073888360,1758073888360,0.71111058,0.82761361,ZH838108,船长
|
||||
243197557,204263483,1030082,传媒ETF,SH512980,0.26991968,1.053,0.2842,4.0,4.0,7.02,7.0,7.04,0.47488378,1.051,0.49910285,True,1758073888360,1758073888360,0.26991968,0.4733598,ZH838108,船长
|
||||
243197558,204263483,1025452,国投白银LOF,SZ161226,1.98239185,1.147,2.2738,32.0,32.0,30.91,31.19,30.95,1.91712668,1.146,2.19702717,True,1758073888360,1758073888360,1.98239185,1.93431326,ZH838108,船长
|
||||
243197559,204263483,1056342,游戏ETF,SZ159869,0.35461688,1.603,0.5685,8.0,8.0,6.07,6.0,6.07,0.26922746,1.603,0.43157161,True,1758073888360,1758073888360,0.35461688,0.26601968,ZH838108,船长
|
||||
243197560,204263483,1060691,中概互联ETF,SH513220,0.43741944,1.462,0.6395,9.0,9.0,,,,,,,True,1758073888360,1758073888360,0.43741944,,ZH838108,船长
|
||||
243196083,204126868,1057876,锂电池ETF,SZ159840,0.0,0.772,0.0,0.0,0.0,2.0,2.0,2.04,0.1878941,0.759,0.14261162,True,1758072762110,1758072762110,0.0,0.1878941,ZH838108,船长
|
||||
243184255,204091462,1057876,锂电池ETF,SZ159840,0.1878941,0.759,0.1426,2.0,2.0,5.0,5.0,4.99,0.46908163,0.76,0.35650203,True,1757992598575,1757992598575,0.1878941,0.46911756,ZH838108,船长
|
||||
243184245,204091352,1063856,黄金股ETF,SH517520,0.11638607,1.838,0.2139,3.0,3.0,4.86,4.86,4.86,0.18853477,1.838,0.3465269,True,1757992524095,1757992524095,0.11638607,0.188531,ZH838108,船长
|
||||
243184246,204091352,1023286,黄金ETF,SH518880,0.09803331,8.001,0.7844,11.0,11.0,8.01,8.0,8.01,0.07135133,8.0,0.57081064,True,1757992524095,1757992524095,0.09803331,0.0713004,ZH838108,船长
|
||||
243184234,204091295,1057876,锂电池ETF,SZ159840,0.46908163,0.76,0.3565,5.0,5.0,11.94,11.92,11.55,1.08345683,0.786,0.85159706,True,1757992485424,1757992485424,0.46908163,1.08201508,ZH838108,船长
|
||||
243184235,204091295,1056342,游戏ETF,SZ159869,0.26922746,1.589,0.4278,6.0,6.0,4.0,4.0,3.96,0.17770271,1.606,0.28539055,True,1757992485424,1757992485424,0.26922746,0.17770271,ZH838108,船长
|
||||
243184236,204091295,1030082,传媒ETF,SH512980,0.47488378,1.051,0.4991,7.0,7.0,4.0,4.0,4.04,0.27388729,1.042,0.28539055,True,1757992485424,1757992485424,0.47488378,0.27388729,ZH838108,船长
|
||||
243171698,203935274,1030082,传媒ETF,SH512980,0.27388729,1.042,0.2854,4.0,4.0,8.11,8.1,8.1,0.55481007,1.043,0.5786669,True,1757905305945,1757905305945,0.27388729,0.55423715,ZH838108,船长
|
||||
243171699,203935274,1056342,游戏ETF,SZ159869,0.17770271,1.606,0.2854,4.0,4.0,,,,,,,True,1757905305945,1757905305945,0.17770271,,ZH838108,船长
|
||||
243171425,203933524,1023539,黄金ETF,SZ159934,0.19077117,7.856,1.4987,21.0,21.0,25.91,25.91,25.87,0.2350396,7.864,1.84835141,True,1757904624170,1757904624170,0.19077117,0.2350073,ZH838108,船长
|
||||
243171426,203933524,1058885,游戏传媒ETF,SH517770,0.82920124,1.291,1.0705,15.0,15.0,15.0,15.0,15.07,0.83326606,1.284,1.06991362,True,1757904624170,1757904624170,0.82920124,0.83326606,ZH838108,船长
|
||||
243171427,203933524,1063856,黄金股ETF,SH517520,0.18853477,1.892,0.3567,5.0,5.0,2.96,2.96,2.97,0.11200854,1.886,0.2112481,True,1757904624170,1757904624170,0.18860091,0.11194571,ZH838108,船长
|
||||
243171428,203933524,1025452,国投白银LOF,SZ161226,1.91712668,1.154,2.2124,31.0,31.0,27.96,27.96,27.92,1.72665274,1.155,1.99428391,True,1757904624170,1757904624170,1.91712668,1.72668311,ZH838108,船长
|
||||
243171052,203929398,1058885,游戏传媒ETF,SH517770,0.83326606,1.284,1.0699,15.0,15.0,19.11,18.96,19.05,1.05820686,1.285,1.35979581,True,1757903173811,1757903173811,0.83326606,1.04976595,ZH838108,船长
|
||||
243171053,203929398,1057876,锂电池ETF,SZ159840,1.08345683,0.79,0.8559,12.0,12.0,,,,,,,True,1757903173811,1757903173811,1.08345683,,ZH838108,船长
|
||||
243169632,203875795,1064799,储能电池ETF广发,SZ159305,0.0,1.775,0.0,0.0,0.0,7.95,11.0,8.13,0.32601746,1.734,0.56531427,True,1757900014730,1757900014730,0.0,0.4508471,ZH838108,船长
|
||||
243164749,203855165,1030082,传媒ETF,SH512980,0.55481007,,0.5687,8.0,0.0,8.0,8.0,8.0,0.55481007,1.025,0.56868032,True,1757658134841,1757658134841,0.0,0.55481007,ZH838108,船长
|
||||
243164750,203855165,1064799,储能电池ETF广发,SZ159305,0.32601746,,0.5653,7.95,11.0,7.95,11.0,7.95,0.32601746,1.734,0.56531427,True,1757658134841,1757658134841,0.4508471,0.0,ZH838108,船长
|
||||
243164743,203855164,1064799,储能电池ETF广发,SZ159305,0.32601746,1.734,0.5653,7.95,7.95,1.33,0.0,1.33,0.0544934,1.736,0.09460054,True,1757658134841,1757658134841,0.4508471,0.0,ZH838108,船长
|
||||
243164732,203855103,1064799,储能电池ETF广发,SZ159305,0.0544934,,0.0946,1.33,0.0,1.33,0.0,1.33,0.0544934,1.736,0.09460054,True,1757658080767,1757658080767,0.0,0.65250128,ZH838108,船长
|
||||
243164725,203855102,1064799,储能电池ETF广发,SZ159305,0.0544934,1.736,0.0946,1.33,1.33,16.0,16.0,15.94,0.65250128,1.744,1.13796223,True,1757658080767,1757658080767,0.0,0.65250128,ZH838108,船长
|
||||
243164726,203855102,1030082,传媒ETF,SH512980,0.55481007,1.025,0.5687,8.0,8.0,,,,,,,True,1757658080767,1757658080767,0.55481007,,ZH838108,船长
|
||||
242966263,204481502,1036946,可转债ETF,SH511380,0.06501263,13.21,0.8588,25.0,25.0,25.0,25.0,25.07,0.0651899,13.343,0.86982883,True,1758245815011,1758245815011,0.06501263,0.0651899,ZH1738732,择时etf
|
||||
242966264,204481502,1036743,新能源车ETF,SH515030,0.60127202,1.714,1.0306,30.0,30.0,35.0,35.0,35.14,0.70431486,1.729,1.21776039,True,1758245815011,1758245815011,0.60127202,0.70431486,ZH1738732,择时etf
|
||||
242966265,204481502,1029080,银行ETF,SH512800,0.87300318,0.787,0.6871,20.0,20.0,20.0,20.0,19.78,0.8633537,0.806,0.69586308,True,1758245815011,1758245815011,0.87300318,0.8633537,ZH1738732,择时etf
|
||||
242966266,204481502,1064311,中证A50ETF易方达,SH563080,0.65658783,1.308,0.8588,25.0,25.0,20.0,20.0,20.01,0.52557635,1.324,0.69586308,True,1758245815011,1758245815011,0.65658783,0.52557635,ZH1738732,择时etf
|
||||
242953156,204369507,1036946,可转债ETF,SH511380,0.0651899,13.343,0.8698,25.0,25.0,29.7,29.7,29.74,0.07753822,13.301,1.03133586,True,1758159030751,1758159030751,0.0651899,0.07753822,ZH1738732,择时etf
|
||||
242953157,204369507,1036743,新能源车ETF,SH515030,0.70431486,1.729,1.2178,35.0,35.0,40.31,40.3,40.33,0.81149349,1.725,1.39982627,True,1758159030751,1758159030751,0.70431486,0.81125922,ZH1738732,择时etf
|
||||
242953158,204369507,1064311,中证A50ETF易方达,SH563080,0.52557635,1.324,0.6959,20.0,20.0,15.0,15.0,15.02,0.39471764,1.32,0.52102728,True,1758159030751,1758159030751,0.52557635,0.39460358,ZH1738732,择时etf
|
||||
242953159,204369507,1029080,银行ETF,SH512800,0.8633537,0.806,0.6959,20.0,20.0,14.86,15.0,14.8,0.63878716,0.808,0.51614002,True,1758159030751,1758159030751,0.8633537,0.64464942,ZH1738732,择时etf
|
||||
242952851,204369397,1036743,新能源车ETF,SH515030,0.81149349,,1.4047,40.38,35.0,40.31,40.3,40.38,0.81149349,1.725,1.39982627,True,1758158314231,1758158314231,0.70343215,0.81125922,ZH1738732,择时etf
|
||||
242952854,204369397,1029080,银行ETF,SH512800,0.63878716,,0.5142,14.78,20.28,14.86,15.0,14.78,0.63878716,0.808,0.51614002,True,1758158314231,1758158314231,0.87644226,0.64464942,ZH1738732,择时etf
|
||||
242945487,204278901,1029080,银行ETF,SH512800,0.63878716,,0.5161,14.86,15.0,15.0,15.0,14.86,0.63878716,0.807,0.51550123,True,1758077376382,1758077376382,0.64464942,0.63878716,ZH1738732,择时etf
|
||||
242945482,204278900,1036946,可转债ETF,SH511380,0.07753822,13.301,1.0313,29.7,29.7,30.0,30.0,29.82,0.07785263,13.243,1.03100237,True,1758077376382,1758077376382,0.07753822,0.07785263,ZH1738732,择时etf
|
||||
242932438,204108965,1064311,中证A50ETF易方达,SH563080,0.39471764,1.306,0.5155,15.0,15.0,20.0,20.0,19.95,0.52504883,1.305,0.68518872,True,1758005464047,1758005464047,0.39471764,0.52504883,ZH1738732,择时etf
|
||||
242932439,204108965,1029080,银行ETF,SH512800,0.63878716,0.807,0.5155,15.0,15.0,20.0,20.0,19.77,0.84175519,0.814,0.68518872,True,1758005464047,1758005464047,0.63878716,0.84175519,ZH1738732,择时etf
|
||||
242932440,204108965,1036946,可转债ETF,SH511380,0.07785263,13.243,1.031,30.0,30.0,20.0,20.0,20.06,0.05205414,13.163,0.68518864,True,1758005464047,1758005464047,0.07785263,0.05205414,ZH1738732,择时etf
|
||||
242932441,204108965,1036743,新能源车ETF,SH515030,0.81149349,1.694,1.3747,40.0,40.0,20.0,20.0,20.28,0.41152476,1.665,0.68518872,True,1758005464047,1758005464047,0.81149349,0.41152476,ZH1738732,择时etf
|
||||
242929135,204083008,1029080,银行ETF,SH512800,0.84175519,0.814,0.6852,20.0,20.0,25.0,25.0,25.06,1.05455457,0.823,0.86789841,True,1757990159085,1757990159085,0.84175519,1.05455457,ZH1738732,择时etf
|
||||
242929136,204083008,1064311,中证A50ETF易方达,SH563080,0.52504883,1.305,0.6852,20.0,20.0,29.44,29.44,29.52,0.77485759,1.319,1.02203716,True,1757990159085,1757990159085,0.52504883,0.77485759,ZH1738732,择时etf
|
||||
242929137,204083008,1036946,可转债ETF,SH511380,0.05205414,13.163,0.6852,20.0,20.0,20.0,20.0,20.08,0.05225156,13.288,0.69431872,True,1757990159085,1757990159085,0.05205414,0.05225156,ZH1738732,择时etf
|
||||
242929138,204083008,1036743,新能源车ETF,SH515030,0.41152476,1.665,0.6852,20.0,20.0,25.56,25.56,25.35,0.52165485,1.701,0.88733489,True,1757990159085,1757990159085,0.41152476,0.52165746,ZH1738732,择时etf
|
||||
242917660,203936625,1036946,可转债ETF,SH511380,0.05225156,13.288,0.6943,20.0,20.0,25.0,25.0,25.02,0.06535878,13.315,0.87025215,True,1757906236022,1757906236022,0.05225156,0.06535878,ZH1738732,择时etf
|
||||
242917661,203936625,1064311,中证A50ETF易方达,SH563080,0.77485759,1.319,1.022,29.44,29.44,29.33,29.35,29.32,0.77170093,1.323,1.02096033,True,1757906236022,1757906236022,0.77485759,0.77224198,ZH1738732,择时etf
|
||||
242917662,203936625,1029080,银行ETF,SH512800,1.05455457,0.823,0.8679,25.0,25.0,20.0,20.0,20.1,0.84799245,0.821,0.6962018,True,1757906236022,1757906236022,1.05455457,0.84799245,ZH1738732,择时etf
|
||||
242917067,203931726,1064311,中证A50ETF易方达,SH563080,0.77170093,,1.021,29.33,29.35,29.33,29.35,29.33,0.77170093,1.323,1.02096033,True,1757903982335,1757903982335,0.77224198,0.65858651,ZH1738732,择时etf
|
||||
242917062,203931725,1036946,可转债ETF,SH511380,0.06535878,13.315,0.8703,25.0,25.0,35.02,35.04,34.52,0.09024158,13.41,1.21013958,True,1757903982335,1757903982335,0.06535878,0.09028194,ZH1738732,择时etf
|
||||
242917063,203931725,1064311,中证A50ETF易方达,SH563080,0.77170093,1.323,1.021,29.33,29.33,24.99,24.97,25.05,0.65907645,1.31,0.86339014,True,1757903982335,1757903982335,0.77224198,0.65858651,ZH1738732,择时etf
|
||||
242917064,203931725,1029080,银行ETF,SH512800,0.84799245,0.821,0.6962,20.0,20.0,15.0,15.0,14.76,0.62593107,0.828,0.51827092,True,1757903982335,1757903982335,0.84799245,0.62593107,ZH1738732,择时etf
|
||||
242908934,203851233,1036946,可转债ETF,SH511380,0.09024158,,1.2101,35.02,35.04,35.02,35.04,35.02,0.09024158,13.41,1.21013958,True,1757655119845,1757655119845,0.09028194,0.07737575,ZH1738732,择时etf
|
||||
242908929,203851232,1029080,银行ETF,SH512800,0.62593107,0.828,0.5183,15.0,15.0,20.0,20.0,19.99,0.83430169,0.829,0.6916361,True,1757655119845,1757655119845,0.62593107,0.83430169,ZH1738732,择时etf
|
||||
242908930,203851232,1036946,可转债ETF,SH511380,0.09024158,13.41,1.2101,35.02,35.02,30.0,30.0,30.03,0.07737575,13.408,1.03745405,True,1757655119845,1757655119845,0.09028194,0.07737575,ZH1738732,择时etf
|
||||
242908814,203850258,1036946,可转债ETF,SH511380,0.07737575,13.408,1.0375,30.0,30.0,30.0,30.0,30.02,0.07743409,13.38,1.03606812,True,1757654421771,1757654421771,0.07737575,0.07743409,ZH1738732,择时etf
|
||||
242908815,203850258,1029080,银行ETF,SH512800,0.83430169,0.829,0.6916,20.0,20.0,25.0,25.0,24.82,1.03523999,0.834,0.86339015,True,1757654421771,1757654421771,0.83430169,1.03523999,ZH1738732,择时etf
|
||||
242908816,203850258,1036743,新能源车ETF,SH515030,0.52165485,1.657,0.8644,25.0,25.0,20.0,20.0,20.16,0.42065293,1.642,0.69071211,True,1757654421771,1757654421771,0.52175324,0.42065293,ZH1738732,择时etf
|
||||
242906816,203836211,1064311,中证A50ETF易方达,SH563080,0.65907645,1.31,0.8634,25.0,25.0,30.0,30.0,29.95,0.78963287,1.315,1.03836722,True,1757645771876,1757645771876,0.65907645,0.78963287,ZH1738732,择时etf
|
||||
242906817,203836211,1029080,银行ETF,SH512800,1.03523999,0.834,0.8634,25.0,25.0,25.0,25.0,25.06,1.0375372,0.834,0.86530602,True,1757645771876,1757645771876,1.03523999,1.0375372,ZH1738732,择时etf
|
||||
242906818,203836211,1036743,新能源车ETF,SH515030,0.42065293,1.642,0.6907,20.0,20.0,20.0,20.0,19.98,0.42030651,1.647,0.69224482,True,1757645771876,1757645771876,0.42065293,0.42030651,ZH1738732,择时etf
|
||||
242906819,203836211,1036946,可转债ETF,SH511380,0.07743409,13.38,1.0361,30.0,30.0,25.0,25.0,25.01,0.06455099,13.405,0.86530602,True,1757645771876,1757645771876,0.07743409,0.06455099,ZH1738732,择时etf
|
||||
242906496,203833017,1036743,新能源车ETF,SH515030,0.42030651,1.647,0.6922,20.0,20.0,35.01,35.01,34.7,0.72929302,1.669,1.21719005,True,1757645121146,1757645121146,0.42030651,0.72929302,ZH1738732,择时etf
|
||||
242906497,203833017,1036946,可转债ETF,SH511380,0.06455099,13.405,0.8653,25.0,25.0,24.95,24.95,25.05,0.06468772,13.409,0.86739763,True,1757645121146,1757645121146,0.06455099,0.06469049,ZH1738732,择时etf
|
||||
242906498,203833017,1029080,银行ETF,SH512800,1.0375372,0.834,0.8653,25.0,25.0,20.0,20.0,20.11,0.83474011,0.833,0.69533851,True,1757645121146,1757645121146,1.0375372,0.83474011,ZH1738732,择时etf
|
||||
242906499,203833017,1064311,中证A50ETF易方达,SH563080,0.78963287,1.315,1.0384,30.0,30.0,20.04,20.04,20.13,0.52983305,1.315,0.69673046,True,1757645121146,1757645121146,0.78963287,0.52983208,ZH1738732,择时etf
|
||||
242904399,203818965,1029080,银行ETF,SH512800,0.83474011,0.833,0.6953,20.0,20.0,25.0,25.0,24.8,1.03527847,0.831,0.8603164,True,1757642479375,1757642479375,0.83474011,1.03527847,ZH1738732,择时etf
|
||||
242904400,203818965,1036743,新能源车ETF,SH515030,0.72929302,1.669,1.2172,35.01,35.01,30.02,30.02,30.2,0.62915222,1.642,1.03306794,True,1757642479375,1757642479375,0.72929302,0.62915222,ZH1738732,择时etf
|
||||
242891713,203686656,1064311,中证A50ETF易方达,SH563080,0.52983305,1.299,0.6883,20.0,20.0,20.0,20.0,20.04,0.53081015,1.291,0.6852759,True,1757559774053,1757559774053,0.52983305,0.53081015,ZH1738732,择时etf
|
||||
242891714,203686656,1029080,银行ETF,SH512800,1.03527847,0.831,0.8603,25.0,25.0,30.0,30.0,29.94,1.23994435,0.829,1.02791386,True,1757559774053,1757559774053,1.03527847,1.23994435,ZH1738732,择时etf
|
||||
242891715,203686656,1036743,新能源车ETF,SH515030,0.62915222,1.642,1.0331,30.02,30.02,25.0,25.0,25.04,0.52487432,1.632,0.85659489,True,1757559774053,1757559774053,0.62915222,0.52487432,ZH1738732,择时etf
|
||||
242891004,203681886,1036946,可转债ETF,SH511380,0.06468772,13.242,0.8566,25.0,25.0,25.0,25.0,25.05,0.06481129,13.206,0.85589789,True,1757558141042,1757558141042,0.06468772,0.06481129,ZH1738732,择时etf
|
||||
242891005,203681886,1029080,银行ETF,SH512800,1.23994435,0.829,1.0279,30.0,30.0,40.0,40.0,39.92,1.64992387,0.83,1.36943681,True,1757558141042,1757558141042,1.23994435,1.64992387,ZH1738732,择时etf
|
||||
242891006,203681886,1036743,新能源车ETF,SH515030,0.52487432,1.632,0.8566,25.0,25.0,20.0,20.0,20.05,0.4208472,1.627,0.68471839,True,1757558141042,1757558141042,0.52487432,0.4208472,ZH1738732,择时etf
|
||||
242891007,203681886,1064311,中证A50ETF易方达,SH563080,0.53081015,1.291,0.6853,20.0,20.0,15.0,15.0,14.99,0.39778373,1.291,0.51353879,True,1757558141042,1757558141042,0.53081015,0.39778373,ZH1738732,择时etf
|
||||
242890297,203676388,1029080,银行ETF,SH512800,1.64992387,0.83,1.3694,40.0,40.0,50.0,50.0,49.78,2.05312503,0.833,1.71025314,True,1757556541907,1757556541907,1.64992387,2.05312503,ZH1738732,择时etf
|
||||
242890298,203676388,1064311,中证A50ETF易方达,SH563080,0.39778373,1.291,0.5135,15.0,15.0,15.0,15.0,15.06,0.39928089,1.285,0.51307594,True,1757556541907,1757556541907,0.39778373,0.39928089,ZH1738732,择时etf
|
||||
242890299,203676388,1036743,新能源车ETF,SH515030,0.4208472,1.627,0.6847,20.0,20.0,15.0,15.0,15.14,0.31868071,1.61,0.51307594,True,1757556541907,1757556541907,0.4208472,0.31868071,ZH1738732,择时etf
|
||||
242890300,203676388,1036946,可转债ETF,SH511380,0.06481129,13.206,0.8559,25.0,25.0,10.01,10.0,10.04,0.02603374,13.151,0.34236971,True,1757556541907,1757556541907,0.06481129,0.02600947,ZH1738732,择时etf
|
||||
242881348,203586072,1064311,中证A50ETF易方达,SH563080,0.39928089,1.285,0.5131,15.0,15.0,20.0,20.0,20.0,0.53246612,1.285,0.68421896,True,1757473473107,1757473473107,0.39928089,0.53246612,ZH1738732,择时etf
|
||||
242881349,203586072,1036743,新能源车ETF,SH515030,0.31868071,1.61,0.5131,15.0,15.0,20.0,20.0,19.98,0.42445345,1.612,0.68421896,True,1757473473107,1757473473107,0.31868071,0.42445345,ZH1738732,择时etf
|
||||
242881350,203586072,1029080,银行ETF,SH512800,2.05312503,0.833,1.7103,50.0,50.0,40.0,40.0,40.01,1.64278265,0.833,1.36843794,True,1757473473107,1757473473107,2.05312503,1.64278265,ZH1738732,择时etf
|
||||
242881028,203582375,1036743,新能源车ETF,SH515030,0.42445345,1.612,0.6842,20.0,20.0,35.0,35.0,34.42,0.73038816,1.657,1.21025318,True,1757472106019,1757472106019,0.42445345,0.73038816,ZH1738732,择时etf
|
||||
242881029,203582375,1036946,可转债ETF,SH511380,0.02603374,13.141,0.3421,10.0,10.0,15.0,15.0,15.0,0.03904252,13.285,0.51867987,True,1757472106019,1757472106019,0.02603374,0.03904252,ZH1738732,择时etf
|
||||
242881030,203582375,1029080,银行ETF,SH512800,1.64278265,0.833,1.3684,40.0,40.0,35.0,35.0,35.59,1.46165843,0.828,1.21025318,True,1757472106019,1757472106019,1.64278265,1.46165843,ZH1738732,择时etf
|
||||
242881031,203582375,1064311,中证A50ETF易方达,SH563080,0.53246612,1.285,0.6842,20.0,20.0,15.0,15.0,15.0,0.39929171,1.299,0.51867993,True,1757472106019,1757472106019,0.53246612,0.39929171,ZH1738732,择时etf
|
||||
242871391,203482260,1036946,可转债ETF,SH511380,0.03904252,13.285,0.5187,15.0,15.0,20.0,20.0,19.97,0.05197703,13.344,0.69358148,True,1757387395670,1757387395670,0.03904252,0.05197703,ZH1738732,择时etf
|
||||
242871392,203482260,1064311,中证A50ETF易方达,SH563080,0.39929171,1.299,0.5187,15.0,15.0,20.0,20.0,20.07,0.53434631,1.298,0.69358151,True,1757387395670,1757387395670,0.39929171,0.53434631,ZH1738732,择时etf
|
||||
242871393,203482260,1036743,新能源车ETF,SH515030,0.73038816,1.657,1.2103,35.0,35.0,35.0,35.0,34.97,0.7298663,1.663,1.21376765,True,1757387395670,1757387395670,0.73038816,0.7298663,ZH1738732,择时etf
|
||||
242871394,203482260,1029080,银行ETF,SH512800,1.46165843,0.828,1.2103,35.0,35.0,25.0,25.0,24.98,1.0432935,0.831,0.86697689,True,1757387395670,1757387395670,1.46165843,1.0432935,ZH1738732,择时etf
|
||||
242862272,203349303,1027747,香港银行LOF,SH501025,0.0,1.572,0.0,0.0,0.0,14.99,14.99,14.59,0.32182726,1.567,0.50430331,True,1757299952677,1757299952677,0.0,0.32182726,ZH1738732,择时etf
|
||||
242862273,203349303,1036743,新能源车ETF,SH515030,0.7298663,1.663,1.2138,35.0,35.0,35.0,35.0,36.36,0.75820524,1.553,1.17749273,True,1757299952677,1757299952677,0.7298663,0.75820524,ZH1738732,择时etf
|
||||
242862274,203349303,1064311,中证A50ETF易方达,SH563080,0.53434631,1.298,0.6936,20.0,20.0,20.0,20.0,19.78,0.52855695,1.273,0.67285299,True,1757299952677,1757299952677,0.53434631,0.52855695,ZH1738732,择时etf
|
||||
242862275,203349303,1036946,可转债ETF,SH511380,0.05197703,13.344,0.6936,20.0,20.0,15.0,15.01,14.69,0.03816635,13.218,0.50448281,True,1757299952677,1757299952677,0.05197703,0.03820367,ZH1738732,择时etf
|
||||
242862276,203349303,1029080,银行ETF,SH512800,1.0432935,0.831,0.867,25.0,25.0,15.0,15.0,14.57,0.60799969,0.83,0.50463974,True,1757299952677,1757299952677,1.0432935,0.60799969,ZH1738732,择时etf
|
||||
242850651,203224942,1029080,银行ETF,SH512800,0.60799969,0.83,0.5046,15.0,15.0,30.0,30.0,29.54,1.19722296,0.833,0.99728672,True,1757038866585,1757038866585,0.60799969,1.19722296,ZH1738732,择时etf
|
||||
242850652,203224942,1064311,中证A50ETF易方达,SH563080,0.52855695,1.273,0.6729,20.0,20.0,20.0,20.0,19.95,0.52724648,1.261,0.66485781,True,1757038866585,1757038866585,0.52855695,0.52724648,ZH1738732,择时etf
|
||||
242850653,203224942,1027747,香港银行LOF,SH501025,0.32182726,1.567,0.5043,14.99,14.99,15.0,15.0,14.85,0.31882567,1.564,0.49864334,True,1757038866585,1757038866585,0.32182726,0.31882567,ZH1738732,择时etf
|
||||
242850654,203224942,1036743,新能源车ETF,SH515030,0.75820524,1.553,1.1775,35.0,35.0,20.0,20.0,20.67,0.4477157,1.485,0.66485781,True,1757038866585,1757038866585,0.75820524,0.4477157,ZH1738732,择时etf
|
||||
242842246,203132634,1036743,新能源车ETF,SH515030,0.4477157,1.485,0.6649,20.0,20.0,35.0,35.0,34.9,0.78135499,1.516,1.18453416,True,1756965964130,1756965964130,0.4477157,0.78135499,ZH1738732,择时etf
|
||||
242842247,203132634,1064311,中证A50ETF易方达,SH563080,0.52724648,1.261,0.6649,20.0,20.0,35.0,35.0,34.46,0.9083851,1.304,1.18453417,True,1756965964130,1756965964130,0.52724648,0.9083851,ZH1738732,择时etf
|
||||
242842248,203132634,1036946,可转债ETF,SH511380,0.03816635,13.065,0.4986,15.0,15.0,10.0,10.0,10.18,0.02589825,13.068,0.33843833,True,1756965964130,1756965964130,0.03816635,0.02589825,ZH1738732,择时etf
|
||||
242842249,203132634,1029080,银行ETF,SH512800,1.19722296,0.833,0.9973,30.0,30.0,20.0,20.0,20.46,0.81649779,0.829,0.67687666,True,1756965964130,1756965964130,1.19722296,0.81649779,ZH1738732,择时etf
|
||||
242842250,203132634,1027747,香港银行LOF,SH501025,0.31882567,1.564,0.4986,15.0,15.0,,,,,,,True,1756965964130,1756965964130,0.31882567,,ZH1738732,择时etf
|
||||
242822609,202892068,1036946,可转债ETF,SH511380,0.02589825,13.068,0.3384,10.0,10.0,15.0,15.0,14.65,0.03795335,13.365,0.50724652,True,1756777532515,1756777532515,0.02589825,0.03795335,ZH1738732,择时etf
|
||||
242822610,202892068,1036743,新能源车ETF,SH515030,0.78135499,1.516,1.1845,35.0,35.0,35.0,35.0,35.44,0.79115997,1.496,1.18357531,True,1756777532515,1756777532515,0.78135499,0.79115997,ZH1738732,择时etf
|
||||
242822611,202892068,1029080,银行ETF,SH512800,0.81649779,0.829,0.6769,20.0,20.0,20.0,20.0,19.68,0.80324079,0.842,0.67632874,True,1756777532515,1756777532515,0.81649779,0.80324079,ZH1738732,择时etf
|
||||
242822612,202892068,1064311,中证A50ETF易方达,SH563080,0.9083851,1.304,1.1845,35.0,35.0,30.0,30.0,30.23,0.78460412,1.293,1.01449312,True,1756777532515,1756777532515,0.9083851,0.78460412,ZH1738732,择时etf
|
||||
242804518,202699422,1029080,银行ETF,SH512800,0.80324079,0.842,0.6763,20.0,20.0,35.0,35.0,34.2,1.37356845,0.844,1.15929177,True,1756434928071,1756434928071,0.80324079,1.37356845,ZH1738732,择时etf
|
||||
242804519,202699422,1036743,新能源车ETF,SH515030,0.79115997,1.496,1.1836,35.0,35.0,30.0,30.0,30.98,0.70026685,1.419,0.99367866,True,1756434928071,1756434928071,0.79115997,0.70026685,ZH1738732,择时etf
|
||||
242804520,202699422,1064311,中证A50ETF易方达,SH563080,0.78460412,1.293,1.0145,30.0,30.0,25.0,25.0,24.95,0.65253392,1.269,0.82806554,True,1756434928071,1756434928071,0.78460412,0.65253392,ZH1738732,择时etf
|
||||
242804521,202699422,1036946,可转债ETF,SH511380,0.03795335,13.365,0.5072,15.0,15.0,10.0,10.0,9.87,0.0249737,13.263,0.33122618,True,1756434928071,1756434928071,0.03795335,0.0249737,ZH1738732,择时etf
|
||||
242788990,202539876,1036946,可转债ETF,SH511380,0.0249737,13.263,0.3312,10.0,10.0,20.0,20.0,19.76,0.04933784,13.608,0.67138932,True,1756350730835,1756350730835,0.0249737,0.04933784,ZH1738732,择时etf
|
||||
242788991,202539876,1036743,新能源车ETF,SH515030,0.70026685,1.419,0.9937,30.0,30.0,30.24,30.26,30.16,0.70404179,1.442,1.01522826,True,1756350730835,1756350730835,0.70026685,0.70444666,ZH1738732,择时etf
|
||||
242788992,202539876,1029080,银行ETF,SH512800,1.37356845,0.844,1.1593,35.0,35.0,30.0,30.0,30.26,1.18759909,0.848,1.00708402,True,1756350730835,1756350730835,1.37356845,1.18759909,ZH1738732,择时etf
|
||||
242788993,202539876,1064311,中证A50ETF易方达,SH563080,0.65253392,1.269,0.8281,25.0,25.0,19.74,19.74,19.8,0.51689648,1.282,0.66266128,True,1756350730835,1756350730835,0.65253392,0.51689648,ZH1738732,择时etf
|
||||
242779978,202430821,1064311,中证A50ETF易方达,SH563080,0.51689648,1.282,0.6627,19.74,19.74,30.0,30.0,30.39,0.79569898,1.229,0.97791404,True,1756260495534,1756260495534,0.51689648,0.79569898,ZH1738732,择时etf
|
||||
242779979,202430821,1036946,可转债ETF,SH511380,0.04933784,13.608,0.6714,20.0,20.0,30.0,30.0,29.63,0.07308228,13.381,0.97791398,True,1756260495534,1756260495534,0.04933784,0.07308228,ZH1738732,择时etf
|
||||
242779980,202430821,1029080,银行ETF,SH512800,1.18759909,0.848,1.0071,30.0,30.0,10.0,10.0,9.74,0.38576491,0.845,0.32597134,True,1756260495534,1756260495534,1.18759909,0.38576491,ZH1738732,择时etf
|
||||
242710772,201733974,1027747,香港银行LOF,SH501025,0.0,1.617,0.0,0.0,0.0,10.0,10.0,9.7,0.19558615,1.658,0.32428183,True,1755499513665,1755499513665,0.0,0.19558615,ZH1738732,择时etf
|
||||
242710773,201733974,1036946,可转债ETF,SH511380,0.07308228,13.381,0.9779,30.0,30.0,34.81,34.96,34.99,0.08524035,13.242,1.12875271,True,1755499513665,1755499513665,0.07308228,0.08561314,ZH1738732,择时etf
|
||||
242710774,201733974,1029080,银行ETF,SH512800,0.38576491,0.845,0.326,10.0,10.0,9.94,9.94,9.77,0.37672859,0.856,0.32247967,True,1755499513665,1755499513665,0.38576491,0.37656092,ZH1738732,择时etf
|
||||
242710775,201733974,1064311,中证A50ETF易方达,SH563080,0.79569898,1.229,0.9779,30.0,30.0,25.0,25.0,24.97,0.66234036,1.224,0.8107046,True,1755499513665,1755499513665,0.79569898,0.66234036,ZH1738732,择时etf
|
||||
242710776,201733974,1036743,新能源车ETF,SH515030,0.70404179,1.389,0.9779,30.0,30.0,20.1,20.1,20.42,0.4792417,1.36,0.65176871,True,1755499513665,1755499513665,0.70404179,0.47926949,ZH1738732,择时etf
|
||||
242690215,201477700,1036946,可转债ETF,SH511380,0.08524035,,1.1288,34.81,34.96,34.81,34.81,34.81,0.08524035,13.2,1.12517262,True,1755137847301,1755137847301,0.08561314,0.08524049,ZH1738732,择时etf
|
||||
242690209,201477699,1027747,香港银行LOF,SH501025,0.19558615,1.658,0.3243,10.0,10.0,15.0,15.0,14.98,0.29296054,1.655,0.48484969,True,1755137847301,1755137847301,0.19558615,0.29296054,ZH1738732,择时etf
|
||||
242690211,201477699,1064311,中证A50ETF易方达,SH563080,0.66234036,1.224,0.8107,25.0,25.0,20.07,20.07,20.17,0.53438623,1.214,0.64874488,True,1755137847301,1755137847301,0.66234036,0.53437306,ZH1738732,择时etf
|
||||
242683619,201404859,1027747,香港银行LOF,SH501025,0.29296054,1.655,0.4848,15.0,15.0,20.0,20.0,19.97,0.39005351,1.655,0.64553855,True,1755062641164,1755062641164,0.29296054,0.39005351,ZH1738732,择时etf
|
||||
242683620,201404859,1029080,银行ETF,SH512800,0.37672859,0.858,0.3232,10.0,10.0,20.0,20.0,19.81,0.74628736,0.865,0.64553856,True,1755062641164,1755062641164,0.37672859,0.74628736,ZH1738732,择时etf
|
||||
242683621,201404859,1036946,可转债ETF,SH511380,0.08524035,13.2,1.1252,34.81,34.81,20.0,20.0,20.03,0.04904562,13.162,0.64553845,True,1755062641164,1755062641164,0.08524049,0.04904562,ZH1738732,择时etf
|
||||
242680613,201378740,1027747,香港银行LOF,SH501025,0.39005351,1.655,0.6455,20.0,20.0,20.0,20.0,20.02,0.39047169,1.646,0.6427164,True,1755049411205,1755049411205,0.39005351,0.39047387,ZH1738732,择时etf
|
||||
242680614,201378740,1036946,可转债ETF,SH511380,0.04904562,13.162,0.6455,20.0,20.0,20.0,20.0,20.03,0.04912287,13.084,0.64272363,True,1755049411205,1755049411205,0.04904562,0.04912259,ZH1738732,择时etf
|
||||
242680615,201378740,1029080,银行ETF,SH512800,0.74628736,0.865,0.6455,20.0,20.0,30.0,30.0,29.8,1.11197231,0.867,0.96407999,True,1755049411205,1755049411205,0.74628736,1.11197231,ZH1738732,择时etf
|
||||
242680616,201378740,1036743,新能源车ETF,SH515030,0.4792417,1.347,0.6455,20.0,20.0,15.0,15.0,15.13,0.36243609,1.33,0.48203999,True,1755049411205,1755049411205,0.4792417,0.36243609,ZH1738732,择时etf
|
||||
242680617,201378740,1064311,中证A50ETF易方达,SH563080,0.53438623,1.208,0.6455,20.0,20.0,15.0,15.0,15.02,0.40136552,1.201,0.48203998,True,1755049411205,1755049411205,0.53438623,0.40136552,ZH1738732,择时etf
|
||||
242674433,201305567,1036743,新能源车ETF,SH515030,0.36243609,1.33,0.482,15.0,15.0,25.0,25.0,24.75,0.59812663,1.347,0.80567657,True,1754963259422,1754963259422,0.36243609,0.59812663,ZH1738732,择时etf
|
||||
242674434,201305567,1064311,中证A50ETF易方达,SH563080,0.40136552,1.201,0.482,15.0,15.0,20.0,20.0,20.04,0.53622401,1.202,0.64454126,True,1754963259422,1754963259422,0.40136552,0.53622401,ZH1738732,择时etf
|
||||
242674435,201305567,1027747,香港银行LOF,SH501025,0.39047169,1.646,0.6427,20.0,20.0,15.0,15.0,15.08,0.29440069,1.642,0.48340593,True,1754963259422,1754963259422,0.39047387,0.29440069,ZH1738732,择时etf
|
||||
242674436,201305567,1029080,银行ETF,SH512800,1.11197231,0.867,0.9641,30.0,30.0,20.0,20.0,20.13,0.74599683,0.864,0.64454126,True,1754963259422,1754963259422,1.11197231,0.74599683,ZH1738732,择时etf
|
||||
242669437,201181202,1027747,香港银行LOF,SH501025,0.29440069,1.642,0.4834,15.0,15.0,20.0,20.0,19.91,0.3908167,1.645,0.64289347,True,1754890715333,1754890715333,0.29440069,0.3908167,ZH1738732,择时etf
|
||||
242669438,201181202,1029080,银行ETF,SH512800,0.74599683,0.864,0.6445,20.0,20.0,30.0,30.0,29.65,1.10589475,0.872,0.96434022,True,1754890715333,1754890715333,0.74599683,1.10589475,ZH1738732,择时etf
|
||||
242669439,201181202,1064311,中证A50ETF易方达,SH563080,0.53622401,1.202,0.6445,20.0,20.0,20.0,20.0,19.97,0.53529848,1.201,0.64289347,True,1754890715333,1754890715333,0.53622401,0.53529848,ZH1738732,择时etf
|
||||
242669440,201181202,1036946,可转债ETF,SH511380,0.04912287,13.121,0.6445,20.0,20.0,15.0,15.0,15.04,0.03694507,13.051,0.4821701,True,1754890715333,1754890715333,0.04912287,0.03694507,ZH1738732,择时etf
|
||||
242669441,201181202,1036743,新能源车ETF,SH515030,0.59812663,1.347,0.8057,25.0,25.0,15.0,15.0,15.43,0.3691961,1.306,0.4821701,True,1754890715333,1754890715333,0.59812663,0.3691961,ZH1738732,择时etf
|
||||
242648056,200968972,1027747,香港银行LOF,SH501025,0.3908167,1.645,0.6429,20.0,20.0,20.0,20.0,20.01,0.39103471,1.614,0.63113002,True,1754546118359,1754546118359,0.3908167,0.39103471,ZH1738732,择时etf
|
||||
242648057,200968972,1036743,新能源车ETF,SH515030,0.3691961,1.306,0.4822,15.0,15.0,20.0,20.0,19.92,0.49038852,1.287,0.63113002,True,1754546118359,1754546118359,0.3691961,0.49038852,ZH1738732,择时etf
|
||||
242648058,200968972,1036946,可转债ETF,SH511380,0.03694507,13.051,0.4822,15.0,15.0,20.0,20.0,20.06,0.04939579,12.777,0.63113,True,1754546118359,1754546118359,0.03694507,0.04939579,ZH1738732,择时etf
|
||||
242648059,200968972,1029080,银行ETF,SH512800,1.10589475,0.872,0.9643,30.0,30.0,25.0,25.0,25.15,0.92704175,0.851,0.78891252,True,1754546118359,1754546118359,1.10589475,0.92704175,ZH1738732,择时etf
|
||||
242648060,200968972,1064311,中证A50ETF易方达,SH563080,0.53529848,1.201,0.6429,20.0,20.0,15.0,15.0,14.86,0.39777102,1.19,0.47334751,True,1754546118359,1754546118359,0.53529848,0.39777102,ZH1738732,择时etf
|
||||
242624866,200717876,1036946,可转债ETF,SH511380,0.04939579,12.777,0.6311,20.0,20.0,65.0,65.0,65.04,0.16063407,12.776,2.05226087,True,1754029999519,1754029999519,0.04939579,0.16063407,ZH1738732,择时etf
|
||||
242624867,200717876,1064311,中证A50ETF易方达,SH563080,0.39777102,1.19,0.4733,15.0,15.0,10.0,10.0,9.9,0.26245424,1.203,0.31573245,True,1754029999519,1754029999519,0.39777102,0.26245424,ZH1738732,择时etf
|
||||
242624868,200717876,1027747,香港银行LOF,SH501025,0.39103471,1.614,0.6311,20.0,20.0,10.0,10.0,10.01,0.1956211,1.614,0.31573245,True,1754029999519,1754029999519,0.39103471,0.1956211,ZH1738732,择时etf
|
||||
242624869,200717876,1029080,银行ETF,SH512800,0.92704175,0.851,0.7889,25.0,25.0,10.0,10.0,10.12,0.37542504,0.841,0.31573245,True,1754029999519,1754029999519,0.92704175,0.37542504,ZH1738732,择时etf
|
||||
242624870,200717876,1036743,新能源车ETF,SH515030,0.49038852,1.287,0.6311,20.0,20.0,5.0,5.0,4.93,0.12097029,1.305,0.15786622,True,1754029999519,1754029999519,0.49038852,0.12097029,ZH1738732,择时etf
|
||||
242611685,200595886,1027747,香港银行LOF,SH501025,0.1956211,1.614,0.3157,10.0,10.0,20.0,20.0,19.89,0.38905471,1.657,0.64466365,True,1753927431673,1753927431673,0.1956211,0.38905471,ZH1738732,择时etf
|
||||
242611686,200595886,1036743,新能源车ETF,SH515030,0.12097029,1.305,0.1579,5.0,5.0,10.0,10.0,9.96,0.24108588,1.337,0.32233182,True,1753927431673,1753927431673,0.12097029,0.24108588,ZH1738732,择时etf
|
||||
242611687,200595886,1064311,中证A50ETF易方达,SH563080,0.26245424,1.203,0.3157,10.0,10.0,25.0,25.0,24.88,0.65302235,1.234,0.80582957,True,1753927431673,1753927431673,0.26245424,0.65302235,ZH1738732,择时etf
|
||||
242611688,200595886,1029080,银行ETF,SH512800,0.37542504,0.841,0.3157,10.0,10.0,25.0,25.0,25.08,0.9413897,0.856,0.80582958,True,1753927431673,1753927431673,0.37542504,0.9413897,ZH1738732,择时etf
|
||||
242611689,200595886,1036946,可转债ETF,SH511380,0.16063407,12.776,2.0523,65.0,65.0,20.0,20.0,20.19,0.04989656,12.92,0.64466355,True,1753927431673,1753927431673,0.16063407,0.04989656,ZH1738732,择时etf
|
||||
242601363,200510609,1036743,新能源车ETF,SH515030,0.24108588,1.337,0.3223,10.0,10.0,15.0,15.0,14.77,0.35602942,1.354,0.48206383,True,1753845442806,1753845442806,0.24108588,0.35602942,ZH1738732,择时etf
|
||||
242601364,200510609,1036946,可转债ETF,SH511380,0.04989656,12.92,0.6447,20.0,20.0,25.0,25.0,25.14,0.06271483,12.811,0.80343968,True,1753845442806,1753845442806,0.04989656,0.06271483,ZH1738732,择时etf
|
||||
242601365,200510609,1029080,银行ETF,SH512800,0.9413897,0.856,0.8058,25.0,25.0,25.0,25.0,24.98,0.94079595,0.854,0.80343974,True,1753845442806,1753845442806,0.9413897,0.94079595,ZH1738732,择时etf
|
||||
242601366,200510609,1064311,中证A50ETF易方达,SH563080,0.65302235,1.234,0.8058,25.0,25.0,20.0,20.0,20.14,0.52598346,1.222,0.64275178,True,1753845442806,1753845442806,0.65302235,0.52598346,ZH1738732,择时etf
|
||||
242601367,200510609,1027747,香港银行LOF,SH501025,0.38905471,1.657,0.6447,20.0,20.0,15.0,15.0,14.97,0.29127724,1.655,0.48206383,True,1753845442806,1753845442806,0.38905471,0.29127724,ZH1738732,择时etf
|
||||
242592429,200433945,1027747,香港银行LOF,SH501025,0.29127724,1.655,0.4821,15.0,15.0,20.0,20.0,19.9,0.38639284,1.669,0.64488964,True,1753757740949,1753757740949,0.29127724,0.38647138,ZH1738732,择时etf
|
||||
242592430,200433945,1029080,银行ETF,SH512800,0.94079595,0.854,0.8034,25.0,25.0,40.0,40.0,39.86,1.50004823,0.86,1.29004147,True,1753757740949,1753757740949,0.94079595,1.50004823,ZH1738732,择时etf
|
||||
242592431,200433945,1036743,新能源车ETF,SH515030,0.35602942,1.354,0.4821,15.0,15.0,10.0,10.0,10.14,0.24067938,1.34,0.32251036,True,1753757740949,1753757740949,0.35602942,0.24067938,ZH1738732,择时etf
|
||||
242592432,200433945,1064311,中证A50ETF易方达,SH563080,0.52598346,1.222,0.6428,20.0,20.0,15.0,15.0,15.12,0.39761437,1.217,0.48389668,True,1753757740949,1753757740949,0.52598346,0.39750661,ZH1738732,择时etf
|
||||
242592433,200433945,1036946,可转债ETF,SH511380,0.06271483,12.811,0.8034,25.0,25.0,15.0,15.0,14.98,0.03758278,12.872,0.48376554,True,1753757740949,1753757740949,0.06271483,0.03758278,ZH1738732,择时etf
|
||||
242583936,200355079,1036743,新能源车ETF,SH515030,0.24067938,1.34,0.3225,10.0,10.0,15.0,15.0,14.94,0.35964823,1.351,0.48588475,True,1753678818509,1753678818509,0.24067938,0.35964823,ZH1738732,择时etf
|
||||
242583937,200355079,1036946,可转债ETF,SH511380,0.03758278,12.872,0.4838,15.0,15.0,20.0,20.0,19.97,0.05002288,12.951,0.64784631,True,1753678818509,1753678818509,0.03758278,0.05002288,ZH1738732,择时etf
|
||||
242583938,200355079,1027747,香港银行LOF,SH501025,0.38639284,1.669,0.6449,20.0,20.0,15.0,15.0,15.06,0.29094896,1.67,0.48588476,True,1753678818509,1753678818509,0.38647138,0.29094896,ZH1738732,择时etf
|
||||
242583939,200355079,1029080,银行ETF,SH512800,1.50004823,0.86,1.29,40.0,40.0,35.0,35.0,35.03,1.3137093,0.863,1.13373112,True,1753678818509,1753678818509,1.50004823,1.3137093,ZH1738732,择时etf
|
||||
242570974,200228783,1027747,香港银行LOF,SH501025,0.29094896,1.67,0.4859,15.0,15.0,20.0,20.0,20.01,0.38803435,1.667,0.64685326,True,1753407516902,1753407516902,0.29094896,0.38803435,ZH1738732,择时etf
|
||||
242570975,200228783,1036743,新能源车ETF,SH515030,0.35964823,1.351,0.4859,15.0,15.0,14.98,15.0,15.26,0.36585272,1.324,0.484389,True,1753407516902,1753407516902,0.35964823,0.3664199,ZH1738732,择时etf
|
||||
242570976,200228783,1064311,中证A50ETF易方达,SH563080,0.39761437,1.222,0.4859,15.0,15.0,25.0,25.0,24.98,0.6622167,1.221,0.80856659,True,1753407516902,1753407516902,0.39761437,0.6622167,ZH1738732,择时etf
|
||||
242570977,200228783,1036946,可转债ETF,SH511380,0.05002288,12.951,0.6478,20.0,20.0,15.0,15.0,15.06,0.03765671,12.884,0.48516905,True,1753407516902,1753407516902,0.05002288,0.03765445,ZH1738732,择时etf
|
||||
242570978,200228783,1029080,银行ETF,SH512800,1.3137093,0.863,1.1337,35.0,35.0,25.0,25.0,24.68,0.92619311,0.873,0.80856658,True,1753407516902,1753407516902,1.3137093,0.92619311,ZH1738732,择时etf
|
||||
242549856,200058473,1036743,新能源车ETF,SH515030,0.36585272,,0.4844,14.98,15.0,15.0,15.0,14.98,0.36585272,1.325,0.48475485,True,1753234804652,1753234804652,0.3664199,0.36585272,ZH1738732,择时etf
|
||||
242549850,200058472,1064311,中证A50ETF易方达,SH563080,0.6622167,1.221,0.8086,25.0,25.0,35.04,35.03,35.01,0.9274738,1.221,1.1324455,True,1753234804652,1753234804652,0.6622167,0.92716149,ZH1738732,择时etf
|
||||
242549852,200058472,1029080,银行ETF,SH512800,0.92619311,0.873,0.8086,25.0,25.0,20.0,20.0,20.05,0.74291932,0.87,0.6463398,True,1753234804652,1753234804652,0.92619311,0.74291932,ZH1738732,择时etf
|
||||
242549853,200058472,1027747,香港银行LOF,SH501025,0.38803435,1.667,0.6469,20.0,20.0,14.96,14.97,14.96,0.29015852,1.666,0.48340409,True,1753234804652,1753234804652,0.38803435,0.29038736,ZH1738732,择时etf
|
||||
242549626,200056916,1027747,香港银行LOF,SH501025,0.29015852,,0.4834,14.96,14.97,14.96,14.97,14.96,0.29015852,1.666,0.48340409,True,1753234511657,1753234511657,0.29038736,0.09579765,ZH1738732,择时etf
|
||||
242549619,200056915,1036743,新能源车ETF,SH515030,0.36585272,1.325,0.4848,15.0,15.0,35.0,35.0,35.06,0.85514786,1.308,1.1185334,True,1753234511657,1753234511657,0.36585272,0.85514786,ZH1738732,择时etf
|
||||
242549620,200056915,1036946,可转债ETF,SH511380,0.03765671,12.873,0.4848,15.0,15.0,20.0,20.0,20.0,0.05020122,12.732,0.63916193,True,1753234511657,1753234511657,0.03765671,0.05020122,ZH1738732,择时etf
|
||||
242549621,200056915,1027747,香港银行LOF,SH501025,0.29015852,1.666,0.4834,14.96,14.96,5.0,5.0,4.94,0.09579765,1.668,0.15979048,True,1753234511657,1753234511657,0.29038736,0.09579765,ZH1738732,择时etf
|
||||
242549622,200056915,1029080,银行ETF,SH512800,0.74291932,0.87,0.6463,20.0,20.0,5.0,5.0,4.96,0.18430275,0.867,0.15979048,True,1753234511657,1753234511657,0.74291932,0.18430275,ZH1738732,择时etf
|
||||
242542226,199986831,1027747,香港银行LOF,SH501025,0.09579765,1.668,0.1598,5.0,5.0,10.0,10.0,9.93,0.19024507,1.677,0.31904098,True,1753149108316,1753149108316,0.09579765,0.19024507,ZH1738732,择时etf
|
||||
242542227,199986831,1064311,中证A50ETF易方达,SH563080,0.9274738,1.206,1.1185,35.0,35.0,35.0,35.0,35.12,0.93053621,1.2,1.11664345,True,1753149108316,1753149108316,0.9274738,0.93053621,ZH1738732,择时etf
|
||||
242542228,199986831,1029080,银行ETF,SH512800,0.18430275,0.867,0.1598,5.0,5.0,10.0,10.0,9.86,0.36337242,0.878,0.31904098,True,1753149108316,1753149108316,0.18430275,0.36337242,ZH1738732,择时etf
|
||||
242542229,199986831,1036743,新能源车ETF,SH515030,0.85514786,1.308,1.1185,35.0,35.0,30.0,30.0,30.11,0.73568252,1.301,0.95712295,True,1753149108316,1753149108316,0.85514786,0.73568252,ZH1738732,择时etf
|
||||
242542230,199986831,1036946,可转债ETF,SH511380,0.05020122,12.732,0.6392,20.0,20.0,15.0,15.0,14.99,0.03761684,12.722,0.47856143,True,1753149108316,1753149108316,0.05020122,0.03761684,ZH1738732,择时etf
|
||||
242537170,199939902,1027747,香港银行LOF,SH501025,0.19024507,1.677,0.319,10.0,10.0,15.0,15.0,14.92,0.28379924,1.685,0.47820171,True,1753074917106,1753074917106,0.19024507,0.28379924,ZH1738732,择时etf
|
||||
242537171,199939902,1029080,银行ETF,SH512800,0.36337242,0.878,0.319,10.0,10.0,24.69,24.69,24.45,0.88839735,0.886,0.78712005,True,1753074917106,1753074917106,0.36337242,0.88839735,ZH1738732,择时etf
|
||||
242537172,199939902,1036743,新能源车ETF,SH515030,0.73568252,1.301,0.9571,30.0,30.0,25.32,25.32,25.45,0.62419573,1.293,0.80708507,True,1753074917106,1753074917106,0.73568252,0.62428811,ZH1738732,择时etf
|
||||
242537173,199939902,1036946,可转债ETF,SH511380,0.03761684,12.722,0.4786,15.0,15.0,9.99,9.99,10.03,0.02514573,12.665,0.31847067,True,1753074917106,1753074917106,0.03761684,0.02514665,ZH1738732,择时etf
|
||||
242537174,199939902,1064311,中证A50ETF易方达,SH563080,0.93053621,1.2,1.1166,35.0,35.0,25.0,25.0,25.15,0.66862658,1.192,0.79700288,True,1753074917106,1753074917106,0.93053621,0.66862658,ZH1738732,择时etf
|
||||
242522294,199803245,1027747,香港银行LOF,SH501025,0.28379924,1.685,0.4782,15.0,15.0,20.0,20.0,19.97,0.37788657,1.687,0.63749464,True,1752805077947,1752805077947,0.28379924,0.37788657,ZH1738732,择时etf
|
||||
242522295,199803245,1064311,中证A50ETF易方达,SH563080,0.66862658,1.192,0.797,25.0,25.0,24.65,24.65,24.67,0.65970793,1.191,0.78571214,True,1752805077947,1752805077947,0.66862658,0.65970793,ZH1738732,择时etf
|
||||
242522296,199803245,1029080,银行ETF,SH512800,0.88839735,0.886,0.7871,24.69,24.69,19.94,19.94,20.0,0.7197986,0.883,0.63558216,True,1752805077947,1752805077947,0.88839735,0.7197986,ZH1738732,择时etf
|
||||
|
Binary file not shown.
Reference in New Issue
Block a user