哈喽,大家好,我是宁一,一个资深韭菜。
最近听说牛市要来了,甚至有人说牛市已经来了。不知道你们身边的朋友是怎样的,我身边好几个同事还有朋友最近财神附体,有日赚十几万的,七八万的,甚至还有资产直接翻倍的。
这种事情平时在网上看看其实也还好,但如果真实的发生在身边同事还有朋友的身上,对我的幼小心灵造成了极大的冲击,我这么一个平时双耳不闻天下事的人变成了柠檬精本精。
那我自己呢,是18年1月开始定投的,定投了4只指数基金,分别是
18年的时候,大盘还在3300.3400左右徘徊呢,后面就震荡往下,跌破3000点。好像我的账户大多数时间都是绿的
从2018年1月到现在,坚持了两年半的时间,每两周定投一次,每次4000块钱,每只基金分配的金额是1000元。最近这波大涨我的账户终于翻红了,来看一下定投到现在,我账户里面盈利了多少吧
我都记录在表格里面了
先来看一下沪深300这只基金,从18年1月开始定投的,每两周定投一次,每次1000元,最后一共投进去66000元,盈利了14216.58元。收益率21%
再就是中证500,收益率19%,医药收益率43%,传媒收益率18%,这个收益率看着是不是还不错
但可惜并不是我的实际收益,是我用Python抓取了天天基金网上面这些基金的净值数据,然后模拟实际定投的情况计算,导出了这些excel数据。
# coding: utf-8
from selenium.webdriver.support.ui import WebDriverWait
from selenium import webdriver
from threading import Thread,Lock
import pyquery as pq #解析网页
import os
import datetime #时间模块
import time
import xlwt #生成excel
#处理网页数据
datalist = dict()
def getItem(doc):
for item in doc.items():
# print("item",item)
datas = pq.PyQuery(item).find("td").items()
index = 0
date = ""
net = ""
for data in datas:
index += 1
if(index == 1):
date = data.text()
elif(index == 2):
net = data.text()
else:
break
if net:
datalist[date] = net
# 初始化函数
def initSpider():
path = os.getcwd()
driver = webdriver.Chrome(executable_path=(path+"/chromedriver"))
# 广发中证传媒ETF联接A (004752)
# driver.get("http://fundf10.eastmoney.com/jjjz_004752.html")
# 跨越沪深两市的指数 易方达沪深300ETF联接A (110020)
# driver.get("http://fundf10.eastmoney.com/jjjz_110020.html")
# 广发医药卫生联接A(001180)
# driver.get("http://fundf10.eastmoney.com/jjjz_001180.html")
# 中证500是最具代表性的小盘股指数 南方中证500ETF联接A (160119)
driver.get("http://fundf10.eastmoney.com/jjjz_160119.html")
# 找到"下一页"按钮,就可以得到它前面的一个label,就是总页数
getPage_text = driver.find_element_by_id("pagebar").find_element_by_xpath(
"div[@class='pagebtns']/label[text()='下一页']/preceding-sibling::label[1]").get_attribute("innerHTML")
# 得到总共有多少页
total_page = int("".join(filter(str.isdigit, getPage_text)))
# 返回
return (driver,total_page)
# 获取html内容
def getData(myrange,driver,lock):
for x in myrange:
# 锁住
lock.acquire()
tonum = driver.find_element_by_id("pagebar").find_element_by_xpath(
"div[@class='pagebtns']/input[@class='pnum']") # 得到 页码文本框
jumpbtn = driver.find_element_by_id("pagebar").find_element_by_xpath(
"div[@class='pagebtns']/input[@class='pgo']") # 跳转到按钮
tonum.clear() # 第x页 输入框
tonum.send_keys(str(x)) # 去第x页
jumpbtn.click() # 点击按钮
# 抓取
WebDriverWait(driver, 30).until(lambda driver: driver.find_element_by_id("pagebar").find_element_by_xpath("div[@class='pagebtns']/label[@value={0} and @class='cur']".format(x)) != None)
doc = pq.PyQuery(driver.page_source).find("#jztable").find("tr")
getItem(doc)
lock.release()
# 开始抓取函数
def beginSpider():
# 初始化爬虫
(driver, total_page) = initSpider()
# 创建锁
lock = Lock()
r = range(1, int(total_page)+1)
step = 10
range_list = [r[x:x + step] for x in range(0, len(r), step)] #把页码分段
thread_list = []
for r in range_list:
t = Thread(target=getData, args=(r,driver,lock))
thread_list.append(t)
t.start()
for t in thread_list:
t.join() # 这一步是需要的,等待线程全部执行完成
print("抓取完成")
def init(dates):
# 总定投金额
sum_money = 0.0
# 总份额
sum_share = 0.0
price = 0.0
wb = xlwt.Workbook()
ws = wb.add_sheet(u'定投收益',cell_overwrite_ok=True)
arr = [u"定投日" ,u"净值" , u"份额" , u"当前总份额" ,u"已投入金额" , u"当前盈利(元)" , u"收益率"]
row = 0
for index,col_name in enumerate(arr):
ws.write(0,index,col_name)
for date in dates:
row += 1
ws.write(row,0,str(date))
price = get_price(date,data)
ws.write(row,1,str(price))
sum_money += 1000
share = "%.2f" % (1000/float(price))
ws.write(row,2,str(share))
sum_share += float(share)
ws.write(row,3,("%.2f" % sum_share))
ws.write(row,4,str(int(sum_money)))
cur_profit = "%.2f" % (float(price)*sum_share - sum_money)
ws.write(row,5,str(cur_profit))
cur_yield = "%.2f" % (float(cur_profit)*100/sum_money)
ws.write(row,6,str(cur_yield)+"%")
# 收益
get_money = sum_share*float(price)-sum_money
# 将结果保存到excel中
path = os.getcwd() + "/dingtou.xls"
wb.save(path)
print("总定投金额:","%.2f" % sum_money,"元")
print("总份额:","%.2f" % sum_share)
print("当前收益:","%.2f" % get_money,"元")
print("收益率:","%.2f" %(get_money*100/sum_money) ,"%")
print("年化收益率:","%.2f" %(get_money*100/sum_money/2.5),"%")
# 比较时间
def compare_time(times):
s_time = time.mktime(time.strptime(times,'%Y-%m-%d'))
e_time = time.mktime(time.strptime(str(datetime.date.today()),'%Y-%m-%d'))
return int(s_time) - int(e_time)
# 格式化日期
def format_time(date):
new_date = datetime.datetime.strptime(date,'%Y-%m-%d')
tomorrow = new_date + datetime.timedelta(days=1)
return str(tomorrow).strip('00:00:00').strip()
#得到交易时间的价格
def get_price(start_day,data):
# 如果能得到价格,就继续获取下一个定投日的价格
if(start_day in data):
price = data[start_day]
print("定投日:",start_day,'净值:',price)
return price
# 如果不能得到价格,说明当天不是交易日,需要获取下一个交易日的价格
else:
date = format_time(start_day)
return get_price(date,data)
# 得到下一个周五
def get_friday(start_day):
next_friday = datetime.datetime.strptime(start_day,'%Y-%m-%d') + datetime.timedelta(days=14)
return str(next_friday).strip('00:00:00').strip()
if __name__ == "__main__":
beginSpider()
data = datalist
print("data",data)
start_day = "2018-01-05"
# 将定投日保存到dates中
dates = []
while True:
dates.append(start_day)
start_day = get_friday(start_day)
if(compare_time(start_day) >= 0):
break
init(dates)
我并没有遵循定投记录去定投,而是根据我自己的想法,想加仓的时候加仓,想减仓的时候减仓。
跌到3000点以下的时候,我的仓位就很重了,投的越多,亏得越多。
本来想着通过定投,跑赢通胀,甚至能有个年化10%的收益,但是投到最后我只想回本。
我的实际情况,以传媒为例,因为在低点的时候我没有加仓,导致我的成本很高。如果坚持定投的话到19年3月的时候其实也就解套了,但是我的账户到了20年7月这波大涨之后才解套,而表格里面已经收益了18个点了。
我实际是投了2万,在前段时间刚回本的时候卖掉了,赚了1000左右,2万元两年半赚了1000,年化2.x%的收益。。还不如买银行理财呢。。还成天担惊受怕的。
最近的感觉就是好像老天爷给每个人都发了一个馅饼,就把我给落下了。。
自己计算了以后,我知道定投是真的可以赚到钱的,但是要遵守规则,到了定投时间,不管净值多少,都要把钱投进去。就算看着自己从盈利3000多变成亏损3000多,也要坚定不移的投下去。
越跌越投,反人性操作。如果根据自己的喜好去投资,很容易被市场牵着鼻子走沦为追跌杀涨的韭菜。
如果你现在想冲进股市的话,要做好心理准备,将投资作为一个财务管理的方式,而不要当成一个一夜暴富的途径。
想要赚更多的钱就要承担更大的风险,希望点赞的你们都能卖到牛市最高点~
坚持定投3年,我赚了多少钱?