美文网首页
抽取历史表现较好的债基

抽取历史表现较好的债基

作者: Mrs_MR | 来源:发表于2020-01-02 17:42 被阅读0次

最近在研究债券型基金, 以优化自己的资产配置。但市场债基太多,兴起之下,注册了聚宽平台账号(此处应有广告费),决定用代码来帮助自己进行选择。

PS: 代码下方有持仓详细

步骤:

  1. 去聚宽平台注册一个账号(免费的), 然后就可以用注册的ID去调用聚宽平台的API了;
  2. 使用如下代码抽取所有的债券型基金,一共取到了3500多只债基:
query(finance.FUND_MAIN_INFO).filter(finance.FUND_MAIN_INFO.underlying_asset_type_id=="402003")
  1. 过滤出成立时间大于5年的债基,再进行下一步;(我更喜欢成立时间久的基金,心里觉得踏实)
  2. 获取过滤后的债基的累计复权净值, 再除以其成立的总月数,获取每月的复权月均收益;
  3. 再过滤出月均复权收益大于百分之0.8(一年就接近10%)的债基作为候选; PS: 经过这一步,3500多支债基只剩下了40支左右了
  4. 对这40多只债基, 逐一查看, 去掉最近1年,最近3年表现不佳, 或最大回撤较大的债基,把剩下的作为一个债基组合。(我自己只保留了6支,已在天天基金APP对6支基金进行等权购买,我对这组债基的目标不高, 年化收益达到8%就满意了)

下面是 2~5 步的python代码:

import com.my.basic.Constants as const
from datetime import datetime
from jqdatasdk import *

auth( const.jq_usr, const.jq_pwd)
print (get_query_count())

def cal_month_gap(start_time, current_time):
    start_time_arr = str.split(start_time.strftime("%Y-%m-%d"), "-")
    current_time_arr = str.split(current_time.strftime("%Y-%m-%d"), "-")
    return (int(current_time_arr[0]) - int(start_time_arr[0]))*12 + (int(current_time_arr[1]) - int(start_time_arr[1]))

## 获取债券基金列表
def get_bond_index_list():
    ## 债券基金的underlying_asset_type_id 为 402003
    q = query(finance.FUND_MAIN_INFO).filter(finance.FUND_MAIN_INFO.underlying_asset_type_id=="402003")
    return finance.run_query(q)

current_time = datetime.now()
def print_bond_index_list():
    df = get_bond_index_list()
    for i in range(0, len(df)):
        if df.start_date[i] is not None and df.end_date[i] is None :
            month_gap = cal_month_gap(df.start_date[i], current_time)
            ## 选取成立时间大于60个月的债基
            if month_gap > 60:
                main_code = df.main_code[i]
                ## 获取该基金的现状
                df2 = finance.run_query(query(finance.FUND_NET_VALUE).filter(finance.FUND_NET_VALUE.code==main_code).order_by(finance.FUND_NET_VALUE.day.desc()).limit(1))
                ## 计算年化收益率 (使用累计复权净值对成立的年份进行开根)
                r = format( (pow(df2.refactor_net_value[0], 12/month_gap) - 1)*100 , '.1f')
                ## 计算月均收益率,保留两位小数 (使用累计复权净值除以成立的月数)
                refactor_per_month_earn = format((df2.refactor_net_value[0]-1)*100 / month_gap, '.2f');
                ## 获取复权月均收益大于0.8%的基金:
                if float(refactor_per_month_earn) > 0.8:
                    print( df.main_code[i], " ", df.name[i]," ", month_gap, " ", df2.net_value[0], " ", df2.refactor_net_value[0], "  ", refactor_per_month_earn,"%", " ", r,"%")

print_bond_index_list()

持仓:

大摩多元收益债券A ( 233012 )
易方达裕丰回报债券 ( 000171 )
工银瑞信双利债券A ( 485111 )
易方达安心回报债券B ( 110028 )
易方达稳健收益债券B ( 110008 )
易方达增强回报债券A ( 110012 )

2020-01-10,创建组合20天, 收益率为: 1.73%
2020-02-16, 创建组合2个月, 收益率为:3.14%

抛砖引玉, 请多指教 ........

相关文章

  • 抽取历史表现较好的债基

    最近在研究债券型基金, 以优化自己的资产配置。但市场债基太多,兴起之下,注册了聚宽平台账号(此处应有广告费),决定...

  • 每日问答 第1167天

    2023年2月5日 周日 1、问:按常理,国债收益率上行,债基应该跌。我回测了招商产业债的历史业绩,历史上...

  • 纯债普跌,你还敢买吗?基金攻略(二)之债基篇

    最近很多朋友在问手里的债基怎么办,这次我就给大家介绍一下债基的基本情况。 一,什么是债基 1,债基:债券基金,又称...

  • 2019-06-15

    选三年以上债基 选年均收益7%以上,三年21以上 选评级三星以上债基 选债基 天天基金网优质基金中找 买卖债基看申...

  • 每日问答 第499天

    2021年4月2日 周五 1、问:新华纯债是支什么债基?这个债基的优势在哪里呀,谢谢! 答:短债。债券熊...

  • 当一个债券基金经理是什么体验?

    公募债券基金经理,有债基也有混合基,几十亿的管理规模,不大也不小。所以以债为主,涉猎权益。 一个非典型的债基经理,...

  • 债市回春,可以开始了解了解债基了!

    去年底加今年上半年,债市表现都不太好。不过局面在上个月发生扭转,债市有种回春的感觉了,今天咱们就好好唠唠债基。 债...

  • 二级债基

    债券型基金是以国债、金融债等固定收益类金融工具为主要投资对象的基金产品,分为纯债型基金、一级债基和二级债基。除...

  • Activity基类抽取

    public abstract class BaseActivity extends AppCompatActiv...

  • Swift抽取基类

    UILable 最低兼容8.2 UIButton 最低兼容:8.2

网友评论

      本文标题:抽取历史表现较好的债基

      本文链接:https://www.haomeiwen.com/subject/hgmooctx.html