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

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

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

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

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

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

图片

微信推送

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

获取所有基金的数据

import akshare as ak
fund_purchase_em_df = ak.fund_purchase_em()

图片

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

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

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

图片

平时我们做套利的,一般以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

得到下面的结果:

图片

因为上面的返回数据没有溢价率,所以我们就需要自己写个获取溢价率的函数去处理一下:

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

好了,任务完成了一大半了,然后把程序拼接起来就好了:

code_name_mapper = dict(zip(filter_df['基金代码'].tolist(),filter_df['基金简称'].tolist()))

for code,name in code_name_mapper.items():
    rate = fund_premium_rate(code)
    if rate is not None:
        print(f'{code} - {name}的溢价率是: {rate}')

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

运行2秒就得到了数据:

图片

然后我们发现这几只限购的是处于轻微折价状态,只有易方达标普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}, 可以关注套利。 公众号:可转债量化分析')

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

图片

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值