深度挖掘——富国天惠 161005

深度挖掘——富国天惠 161005

简介

富国天惠是一只大牛基,从2005年成立至今,15年涨了19.22倍,折合年化收益率21.78%,牛气冲天。

在这里插入图片描述

如果一直坚持持有,能赚不少钱。但由于该基金场内外都可以交易,如果能结合该基金的折溢价做套利,可以让我们收获意外的惊喜。先看看富国天惠的折溢价情况:

在这里插入图片描述

深度挖掘

我们的目标是想挖掘富国天惠的场内开盘价、最高价、最低价、收盘价、涨跌幅和场内外折溢价率等之间的关系,看看盘中有何操作机会。

那么首先需要获得相关的数据。
代码如下:

import time
import codecs
import requests
from bs4 import BeautifulSoup

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"}


def spyder(url):
    res = requests.get(url, headers=headers)
    html_con = res.content
    # print(html_con)
    con = BeautifulSoup(html_con, 'html.parser')
    vms = con.find_all("tbody")[0]
    records = vms.find_all("tr")
    # print(records)
    lines = list()
    for i, tr in enumerate(records):
        tds = tr.find_all("td")
        # print(tds)
        lin = [tds[0].get_text(), tds[1].get_text(), tds[2].find_all("span")[0].get_text(),
               tds[6].find_all("span")[0].get_text()]
        lines.append(",".join(lin))
    return lines


def main():
    for page in range(15):
        url = "http://quotes.money.163.com/fund/zyjl_161005_%s.html?start=2017-01-01&end=2020-08-27&sort=TDATE&order=desc" % page
        lines = spyder(url)
        for line in lines:
            with codecs.open("data/161005/161005.txt", "a", encoding="utf-8") as fw:
                fw.write("%s\n" % line)
        time.sleep(2)
    return 0


if __name__ == '__main__':
    main()

数据如下:

日期收盘价涨跌幅折价率
2017-01-031.66300.18%-0.88%
2017-01-041.68501.32%-1.07%
2017-01-051.69000.30%-0.58%
2020-08-263.2910-0.75%0.65%
2020-08-273.30500.43%0.25%
2020-08-283.40002.87%-0.01%

历史净值

代码如下:

import codecs
import requests


def spyder(url):
    headers = {"Accept": "*/*",
               "Accept-Encoding": "gzip, deflate",
               "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
               "Connection": "keep-alive",
               "Cookie": "st_si=23148473072750; em_hq_fls=js; intellpositionL=749.188px; _qddaz=QD.a6su68.y7sfzq.kcooye0u; pgv_pvi=4405770240; pgv_si=s7320064000; EmPaVCodeCo=f5f63a21c25b43b1b04d7de97a720630; p_origin=https%3A%2F%2Fpassport2.eastmoney.com; uidal=6963335783755328%e9%80%90%e9%81%93%e5%a6%82%e4%b8%80; sid=141328622; ct=QiFbYA5m17nZFD_2_bIpFVh-_0I0Tp6mLxvp2XTQ3NP5PrCyeExjaz9fJ77T46fFdp2Xj1U6wIBOLxrHJ3rUqaVDigEfFB0ATJTts6T1FAo_XbSvXDTo2LHPfhYiMGOABFADjj-7R3KjXgvzqX2K3TQGgIYzzevpKb_1nAP2-xs; ut=FobyicMgeV7bfas_M05TDD5p-70s2Wib0etgSS7pVaoMpTNmsnXlckIHsP-d8YtSX6Bsi8kOJa55oWQnkKXG6bgfyQgH-56K6n8ZeM3RDiOv-kSSHpLYuylnKg_TvqsPTi8DrTKgtnJkYgfakW6B7P2XdvWbWk9PjZcfhdgnNcu5BFZ3JnGgZuL-ixm5a3oOdzg6hyY7Jse4r5wDnr7_vR1bxPQ6zFlcrpOdAeoqnTEu4b17vaSQ-InvZKkxoAtMoxerOptE-CzDNRxSeJCe5ymFAdvM1Odg; pi=6963335783755328%3bd6963335783755328%3b%e9%80%90%e9%81%93%e5%a6%82%e4%b8%80%3bBcYlOnoObR%2by0fu6gN4HrHRRGIqw7kGgtwCJaRyK7pq2uyFesnfOH0WjWNJupF4sQKhuIrR63wNQe0VXqx6AOGjvSzI2NvAUZ79FfZJMyTVs8zAiF0ki5RRpDYslwuAdJvXc1kp%2fg5UFKxuCv%2fLzr%2fgZpXbxbrgafpAtZNMiGtUBhRpQJVwgYD3GwkUqW%2fVJ5D%2fn80F2%3bBxRJT2Z19LmcTtWE7hht76BQajkibSabahaciJf8fl3qUn2NTPkY2HR4oD598ovJLtHRtmC8QujbF9oN4KG2ZbhzivIFk3RCnPm%2baPfqJKfhbUYRlRGM1M49rfzWrcmXsiXAPp6%2fHgUouyZElBfF3HNCnDxcEw%3d%3d; testtc=0.5218319668428353; vtpst=%7c; HAList=d-hk-02359%2Cd-hk-00700%2Cd-hk-03690%2Cd-hk-00241%2Ca-sh-601933-%u6C38%u8F89%u8D85%u5E02%2Cd-hk-00883%2Ca-sh-603912-%u4F73%u529B%u56FE%2Ca-sz-000761-%u672C%u94A2%u677F%u6750%2Ca-sz-002036-%u8054%u521B%u7535%u5B50%2Ca-sz-002382-%u84DD%u5E06%u533B%u7597%2Ca-sh-688208-%u9053%u901A%u79D1%u6280%2Ca-sz-002074-%u56FD%u8F69%u9AD8%u79D1; waptgshowtime=2020828; cowCookie=true; emshistory=%5B%22%E5%85%B4%E5%85%A8%E7%BB%BF%E8%89%B2%22%5D; cowminicookie=true; intellpositionT=455px; EmFundFavorVersion=1587131235961; st_asi=delete; EMFUND0=null; EMFUND1=07-15%2013%3A51%3A18@%23%24%u56FD%u6CF0%u521B%u4E1A%u677F%u6307%u6570%28LOF%29@%23%24160223; EMFUND2=08-12%2021%3A55%3A27@%23%24%u6613%u65B9%u8FBE%u4E2D%u6982%u4E92%u805450ETF@%23%24513050; EMFUND3=08-28%2020%3A33%3A40@%23%24%u4EA4%u94F6%u4E2D%u8BC1%u6D77%u5916%u4E2D%u56FD%u4E92%u8054%u7F51%u6307%u6570@%23%24164906; EMFUND4=08-05%2020%3A26%3A17@%23%24%u534E%u5B89%u5FB7%u56FD30%28DAX%29ETF@%23%24513030; EMFUND5=08-07%2010%3A31%3A56@%23%24%u534E%u5B89%u6807%u666E%u5168%u7403%u77F3%u6CB9%u6307%u6570@%23%24160416; EMFUND6=08-28%2021%3A03%3A00@%23%24%u5174%u5168%u7EFF%u8272%u6295%u8D44%u6DF7%u5408%28LOF%29@%23%24163409; EMFUND7=08-07%2011%3A51%3A47@%23%24%u5174%u5168%u8D8B%u52BF%u6295%u8D44%u6DF7%u5408%28LOF%29@%23%24163402; EMFUND8=08-12%2020%3A34%3A26@%23%24%u56FD%u6295%u745E%u94F6%u767D%u94F6%u671F%u8D27%28LOF%29@%23%24161226; qgqp_b_id=76c6dc55bfaf5a16e87e22095aed4d85; EMFUND9=08-29 21:20:52@#$%u5BCC%u56FD%u5929%u60E0%u6210%u957F%u6DF7%u5408A@%23%24161005; st_pvi=78692687601277; st_sp=2019-03-23%2020%3A49%3A53; st_inirUrl=https%3A%2F%2Fwww.baidu.com%2Flink; st_sn=535; st_psi=20200829214141365-0-9054522291",
               "Referer": "http://fundf10.eastmoney.com/jjjz_161005.html",
               "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"}
    res = requests.get(url, headers=headers)
    # html_con = res.content
    return res.json()


def main():
    url = "http://api.fund.eastmoney.com/f10/lsjz?fundCode=161005&pageIndex=1&pageSize=897&startDate=2017-01-01&endDate=2020-08-28"
    res = spyder1(url)
    for r in res["Data"]["LSJZList"]:
        with codecs.open("data/161005/161005_1.txt", "a", encoding="utf-8") as fw:
            fw.write("%s,%s,%s\n" % (r["FSRQ"], r["DWJZ"], r["JZZZL"]))
    return 0


if __name__ == '__main__':
    main()

数据如下:

日期净值净值涨跌幅
2017-01-031.67770.88%
2017-01-041.70331.53%
2017-01-051.6999-0.20%
2020-08-263.2696-1.03%
2020-08-273.29670.83%
2020-08-283.40043.15%

历史场内交易数据

代码如下:

import codecs
import requests


def spyder(url):
    res = requests.get(url)
    return res.json()


def main():
    url = "http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?_var=&param=sz161005,day,2017-01-01,2018-01-01,640,qfq"
    url1 = "http://web.ifzq.gtimg.cn/appstock/app/fqkline/get?_var=&param=sz161005,day,2018-01-01,2020-08-28,640,qfq"
    for u in [url, url1]:
        res = spyder(u)
        for r in res["data"]["sz161005"]["qfqday"]:
            with codecs.open("data/161005/161005_2.txt", "a", encoding="utf-8") as fw:
                fw.write(",".join(r[:5]))
                fw.write("\n")
    return 0


if __name__ == '__main__':
    main()

数据如下:

日期开盘价收盘价最高价最低价
2017-01-031.6531.6631.6661.651
2017-01-041.6681.6851.6861.664
2017-01-051.6831.6901.6931.683
2020-08-263.3123.2913.3403.285
2020-08-273.2793.3053.3053.249
2020-08-283.3013.4003.4023.295
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值