定投时,获得固定收益后卖出。python

定投时获得收益后卖出

  • 一直定投,不知道什么时候卖出,这个时候最好的方法就是设定达到固定收益率之后进行卖出,保证收益落袋!
# -*- coding: utf-8 -*-
"""
Created on Wed May 11 20:51:24 2022
定投时,获得固定收益后卖出
@author: zy_win10
"""
import pandas as pd
import time
import datetime
# 定投开始时间
start_time = '2010-1-1'

data = pd.read_excel(r'110022.xlsx')
data['净值日期']=pd.to_datetime(data['净值日期'])

start_time = pd.to_datetime(start_time)
# 获取初始交易时间
start_index=0
for index,item in enumerate(data['净值日期']):
    if start_time<=item.date():
        start_index=index
        break

# 总投资金额
total_invest_money = 0
# 每次卖出前的累计投入金额
invest_money =0
# 累计获得的金额
gained_money=0
# 当前基金持有的份额
current_fund_share=0
# 所有卖出的基金的金额
total_selled_money=0
# 定投间隔
invest_interval=7
# 每次定投的金额
interval_amount=10
# 基金买入费率
buy_rate = 0.015
# 基金卖出费率
sell_rate = 0.015
# 获得指定收益率后卖出 0.1代表获得10% 的收益率后将所有持有份额卖出
expected_gained_rate=0.1

# 获取基金净值数据(从实际买入时开始)
value_list = data['单位净值(元)'][start_index:]

for index,item in  enumerate(value_list):
    # 该定投时刻
    if index%invest_interval==0:
        print('buying...')
        total_invest_money+=interval_amount
        invest_money+=interval_amount
        current_fund_share+=((interval_amount*(1-buy_rate))/item)
    # 保证如果卖出后没有新买入金额不会计算收益率,防止报错
    if invest_money==0:
        continue
    # 计算当前持有基金的收益率
    current_gained_rate=(current_fund_share*item-invest_money)/invest_money
    # 当持有收益率超过期望收益率后,进行卖出操作
    if current_gained_rate>expected_gained_rate:
        print('sell..')
        selled_money=current_fund_share*item*(1-sell_rate)
        total_selled_money+=total_selled_money
        # 累计每次卖出后的收益金额
        gained_money+=(selled_money-invest_money)
        # 卖出后将持有份额与投入金额置0
        invest_money=0
        current_fund_share=0
        
print('既往卖出累计收入为%.4f'% gained_money)
print('当前所持有基金的收益率为%4f%%'%current_gained_rate)
print('当前亏损金额%4f'%(current_gained_rate*invest_money))
print('累计收益率为%4f%%' % (100*(gained_money+current_gained_rate*invest_money)/total_invest_money))


不同定投开始时间下收益的对比

当定投开始时间为2010-1-1时收益如下:

既往卖出累计收入为342.2224
当前所持有基金的收益率为-0.186686%
当前亏损金额-78.408098
累计收益率为6.546262%

我们可以看到,虽然当前的收益为负值,但是累计的收益依然为正。


当定投开始时间为2015-1-1时收益如下:
既往卖出累计收入为196.3742
当前所持有基金的收益率为-0.195823%
当前亏损金额-90.078469
累计收益率为4.152178%


当定投开始时间为2020-1-1时收益如下:
既往卖出累计收入为35.2807
当前所持有基金的收益率为-0.182140%
当前亏损金额-76.498673
累计收益率为-5.088637%


总体来说,定投时间开始的越早,收益的金额越大,但是和上一篇文章一样,定投不保证一定赚钱。

本文章不构成任何投资建议!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值