kquant之161005富国天惠回测

回望:之前的发表的学习心得《 kquant之周线ma5之上买入策略》已是3年前的事情;3年过去,有了一些新的心得。

这段时间对富国天惠进行回测(代码见:附录1),发现规律:

  1. 朱总的基金非常优秀: 不管什么时候买入都是对的;
  2. 分别用10,30,60日的均线作为止损和买入的点都不能取得更好的成绩(盈亏同源);
  3. 要取得更好的成绩是跌了要敢买,涨多了要敢卖的策略(代码见:附录2)。

结论:

  1. 淡化择时: 对于正期望的事情,不需要择时。(正期望的事情参与有意义:零和像打麻将;负期望像6合彩, 都没有意义);(之前学习史丹·温斯坦的《笑傲牛熊》总觉得是需要择时的;这次对富国天惠进行了回测和学习了朱总朱少醒的演讲,明白了可以不要择时);
  2. 除非非常大的高估,否则降仓位意义不大:价值创造决定价值分配,金钱永不眠。(2007年,巴菲特和Ted Seides的指数基金对赌也部分地说明了这一点);
  3. 天惠的年化也是之前在《 马拉松长跑的能力极限 》说到的基金年化的极限,明白了十多看前戴总在第一财经的叶蓉《财富人生》的访谈中说的:找好的公募基金。

img

附录1:

https://github.com/karlzheng/kquant/blob/master/161005/wechat.mp.py

#-*- coding : utf-8-*-
import numpy as np
import pandas as pd
from pyecharts.charts import Line
from pyecharts import options as opts

data = pd.read_csv('data/161005.net_value.csv')
data['dt_idx'] = pd.to_datetime(data['净值日期'])
data['Close'] = data['复权单位净值']

data.set_index('dt_idx', inplace=True)
data = data.sort_values(by = 'dt_idx', ascending = True)

SHORT_PERIOD = 60
LONG_PERIOD = 60

dc = data['Close']
ma1 = data['Close'].rolling(SHORT_PERIOD).mean()
ma2 = data['Close'].rolling(LONG_PERIOD).mean()

nna = pd.notna
sum = 1.0
buyed = False
len_ma1 = len(ma1)
last_price = 1
now_price = 1
p0 = 0
p1 = 1

while p1 < len_ma1:
	m10 = ma1[p0]
	m11 = ma1[p1]
	m20 = ma2[p0]
	m21 = ma2[p1]
	c = dc[p1]

	if nna(m10) and nna(m11) and nna(m20) and nna(m21):
		if (not buyed):
			if (c > m10):
				now_price = c
				sum -= c
				buyed = True
		else:
			if (c < m10): 
				last_price = c
				sum += c
				last_price = c
				buyed = False
	p0 += 1
	p1 += 1

if (buyed):
	sum += c
	buyed = False

print(sum)

附录2:

https://github.com/karlzheng/kquant/blob/master/161005/wechat.mp.py

    if (not buyed):
      if (c > m10) or (c < last_price * 0.75):
        now_price = c
        sum -= c
        buyed = True
    else:
      if (c < m10) and ( c >  now_price * 1.3):
        last_price = c
        sum += c
        last_price = c
        buyed = False

Search

    Table of Contents