QMT练习精简的高股息策略

尽管今年大部分股票走势不行,但高股息股息涨势喜人,连创新高。今天就跟大家分享一个非常简单的高股息策略。

主要逻辑如下:

1、每22个交易日换仓一次。

2、每次选择滚动股息率最高的10支股票作为目标持仓。

3、将原持仓中、不在第2条的10支股票中的股票清仓。

4、将不在原持仓中、在第2条的10支股票中的股票买入。

# coding:gbkimport datetime#因为首次写这个策略,没有在QMT中找到股息数据,因此用的tushare数据import ****_tushare as tsts.set_token('********************')pro = ts.pro_api()pro = ts.pro_api(env='qa')pro = ts.pro_api(server='************')#初始化函数def init(C):#这个C.days是记录策略运行的次数,也就是天数  C.days = 0  #账户  C.accountID = '666'  #账户类型  C.strAccountType = 'STOCK'  #每日运行一次def handlebar(C):#获取策略中的“当天”  date = timetag_to_datetime(C.get_bar_timetag(C.barpos),'%Y%m%d')  #22个交易日运行一次  if C.days%22 == 0:  #在tushare中获取股息数据    df = pro.daily_basic_ts(trade_date=date, fields="ts_code,dv_ttm")    #按股息降序排列并取前10支    df = df.sort_values(by='dv_ttm', ascending=False).head(10)   #代码转成列表    high_dv_list = df['ts_code'].tolist()    #获取持仓情况    pos = get_trade_detail_data(C.accountID, C.strAccountType, 'POSITION', '高股息')    #持股代码和数量的字典    hold = {}    #填充字典    for p in pos:      hold[p.m_strInstrumentID+'.'+p.m_strExchangeID]=p.m_nVolume    #卖出(逻辑前面说过)    for j,k in hold.items():      if j not in high_dv_list:        passorder(24, 1101, C.accountID, j, 5, 0,k, 2, C)        print(f'已清仓{j}!-{date}')            #买入(逻辑前面说过)    for i in high_dv_list:      if i not in hold.keys():        passorder(23, 1102, C.accountID, i, 5, 0,100000, 2, C)        print(f'已买入{i},金额10万元!-{date}')       #每运行一日,记录的天数增加1  C.days += 1

收益情况:

QMT练习精简的高股息策略

QMT练习精简的高股息策略

代码中的需要说明的地方我已经在代码区注释了,此策略是简化版,不建议用来模拟或实盘。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/80972
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 16 日
下一篇 2024 年 7 月 16 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注