返回列表 发布新帖

量化教程:qmt获取持股数据,5行代码

1544 0
发表于 2024-10-20 18:16:26 | 显示全部楼层 阅读模式

登录QMT

必须是极简模式,也叫miniQMT,独立交易模式。

代码

<pre class="public-DraftStyleDefault-pre" data-offset-key="2q57q-0-0"><pre class="Editable-styled" data-block="true" data-editor="8mn5g" data-offset-key="2q57q-0-0"><div data-offset-key="2q57q-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="2q57q-0-0"><span data-text="true">#导入 from qmt_trader.qmt_trader import qmt_trader

设置路径

trader=qmt_trader(path= r'D:/国金QMT交易端模拟/userdata_mini', account='55009640', account_type = 'STOCK')

链接

trader.connect()

打印持股

df=trader.position() print(df)

</span></span></div></pre></pre>

输出效果

<pre class="public-DraftStyleDefault-pre" data-offset-key="8ljbc-0-0"><pre class="Editable-styled" data-block="true" data-editor="8mn5g" data-offset-key="8ljbc-0-0"><div data-offset-key="8ljbc-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="8ljbc-0-0"><span data-text="true">链接qmt 0 持仓数量: 263 账号类型 资金账号 证券代码 证券代码1 股票余额 可用余额 成本价 参考成本价 市值 冻结数量 0 2 55002767 110083 110083.SH 200 200 168.239 168.239 34221.0 0 1 2 55002767 113030 113030.SH 400 400 114.950 114.950 45456.0 0 2 2 55002767 113055 113055.SH 600 600 129.530 129.530 77810.4 600 3 2 55002767 113526 113526.SH 400 400 104.803 104.803 41823.2 0 4 2 55002767 113527 113527.SH 400 400 114.158 114.158 45440.4 0 .. ... ... ... ... ... ... ... ... ... ... 258 2 55002767 301499 301499.SZ 0 0 NaN NaN 0.0 0 259 2 55002767 301508 301508.SZ 1300 1300 38.419 38.419 48022.0 0 260 2 55002767 301509 301509.SZ 1600 1600 30.507 30.507 50192.0 0 261 2 55002767 301511 301511.SZ 3300 3300 15.034 15.034 50127.0 0 262 2 55002767 301528 301528.SZ 500 500 43.070 43.070 21175.0 0

[263 rows x 10 columns]</span></span></div></pre></pre>

底层代码

<pre class="public-DraftStyleDefault-pre" data-offset-key="6ltn5-0-0"><pre class="Editable-styled" data-block="true" data-editor="8mn5g" data-offset-key="6ltn5-0-0"><div data-offset-key="6ltn5-0-0" class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr"><span data-offset-key="6ltn5-0-0"><span data-text="true">def position(self): ''' 对接同花顺 持股 ''' try: positions = self.xt_trader.query_stock_positions(self.acc) print("持仓数量:", len(positions)) data=pd.DataFrame() if len(positions) != 0: for i in range(len(positions)): df=pd.DataFrame() df['账号类型']=[positions[i].account_type] df['资金账号']=[positions[i].account_id] df['证券代码']=[positions[i].stock_code] df['证券代码1']=[positions[i].stock_code] df['证券代码']=df['证券代码'].apply(lambda x:str(x)[:6]) df['股票余额']=[positions[i].volume] df['可用余额']=[positions[i].can_use_volume] df['成本价']=[positions[i].open_price] df['参考成本价']=[positions[i].open_price] df['市值']=[positions[i].market_value] df['冻结数量']=[positions[i].frozen_volume] data=pd.concat([data,df],ignore_index=True) return data else: df=pd.DataFrame() df['账号类型']=None df['资金账号']=None df['证券代码']=None df['股票余额']=None df['可用余额']=None df['成本价']=None df['市值']=None df['选择']=None df['持股天数']=None df['交易状态']=None df['明细']=None df['证券名称']=None df['冻结数量']=None df['市价']=None df['盈亏']=None df['盈亏比(%)']=None df['当日买入']=None
df['当日卖出']=None return df

    except:
        df=pd.DataFrame()
        return df</span></span></div></pre></pre>

源代码+模型获取、QMT开通、使用答疑、策略分享,评论区留言,或私信找我。

回复

您需要登录后才可以回帖 登录 | 立即注册

客服专线

400-080-8112

用思考的速度交易,用真诚的态度合作,我们是认真的!
  • 关注公众号
  • 添加微信客服
Copyright © 2001-2025 迅投QMT社区 版权所有 All Rights Reserved. 蜀ICP备19002686号-2
关灯 快速发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表