程序自动获取限购-溢价LOF基金套利,并推送到微信消息

最近2个月QDII的套利机会挺多的。

如前面的印度基金LOF,嘉实原油LOF,全球芯片LOF,到现在的标普500LOF。

如果平时工作繁忙,没有时间每天翻看基金的公告,或者没时间看大V们公众号消息推送。

或者自己想要遍历所有限购状态的LOF基金,并自动筛选出溢价的可套利标的,提前埋伏。

那么可以自己动手,写个简单的监控推送程序。

Screenshot_2024_0323_210024.jpg


微信推送电脑安装必要的python环境,和pandas,akshare库。

获取所有基金的数据
import akshare as ak
fund_purchase_em_df = ak.fund_purchase_em()


20240323203008.png

 
得到大概2万个基金数据。

然后剩下的就是过滤条件了,因为这里面包含了很多货基,债基等我们不需要的基金类型。

用value_counts 就知道有多少种类型:

20240323203319.png

 
 
平时我们做套利的,一般以QDII基金为主,大部分的情况是因为外汇额度用完而导致的限购。

所以监控的品种可以选择QDII类型或者海外股票等。

示例里笔者选一个 指数型-海外股票

然后过来条件按照个人喜好来设定:

比如选择限购1万以下的LOF:
def filter_func(df,type='指数型-海外股票'):
df = df[~df['基金代码'].str.startswith('0')]
condition1 = df['申购状态']=='限大额'
condition2 = df['基金类型']==type
df = df[condition1 & condition2]
df= df[~df['基金简称'].str.contains('ETF')]
df = df[(df['日累计限定金额']>0) & (df['日累计限定金额']<=10000)]
df['基金代码'] = df['基金代码'].map(lambda x: 'SH'+x if x.startswith('5') else 'SZ'+x)
return df

 
得到下面的结果:

20240323203905.png

 
 
因为上面的返回数据没有溢价率,所以我们就需要自己写个获取溢价率的函数去处理一下:
import requests
cookies = # 雪球上获取,不一定需要登录状态

headers = {
'authority': 'stock.xueqiu.com',
'origin': 'https://xueqiu.com',
'user-agent': 'Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1C28 Safari/419.3',
}

def fund_premium_rate(code):
params = {
'symbol': code,
'extend': 'detail',
}

response = requests.get('https://stock.xueqiu.com/v5/stock/quote.json', params=params,
cookies=cookies,
headers=headers)
try:
rate = response.json()['data']['quote']['premium_rate']
except Exception as e:
return None
else:
return rate

上面循环里会自动把没有对应场内基金的数据过滤掉。

运行2秒就得到了数据:

20240323204323.png

 
 
然后我们发现这几只限购的是处于轻微折价状态,只有易方达标普500LOF是溢价26%,只有它可以开拖拉机去套的。

微信推送

最后是发消息通知自己。早期开通的个人企业微信API,可以直接使用微信的API发送消息。如果现在申请,需要有自己的个人域名和备案。

可以设定溢价率大于某个阈值才发送消息。比如溢价率大于4以上才发送。
for code,name in code_name_mapper.items():
rate = fund_premium_rate(code)
if rate is not None:
print(f'{code} - {name}的溢价率是: {rate}')
if rate > 4:
send_message_via_wechat(f'{code} - {name}的溢价率是: {rate}, 可以关注套利。 公众号:可转债量化分析')

 
为了演示,去掉这个条件,把全部数据的都发送吧。


Screenshot_2024_0323_210024.jpg

 
效果图
 
然后就可以把全部代码放在一起,用windows的定时任务或者linux的crontab自动运行了。

目前QMT,Ptrade不支持拖拉机账号,所以自动化拖拉机的功能就实现不了了哈。

PS:顺便附录一份全部限购1万以下的基金全表。

需要的关注公众号后台回复:基金限购名单

获取即可。
 

0 个评论

要回复文章请先登录注册