定投时获得收益后卖出
- 一直定投,不知道什么时候卖出,这个时候最好的方法就是设定达到固定收益率之后进行卖出,保证收益落袋!
# -*- 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%
总体来说,定投时间开始的越早,收益的金额越大,但是和上一篇文章一样,定投不保证一定赚钱。
本文章不构成任何投资建议!!!