In [75]: data.rename(columns={'XAU=': 'price'}, inplace=True)
In [76]: data['returns'] = np.log(data['price'] / data['price'].shift(1))
最简单的时间序列动量策略是:如果最后一次收益为正,则购买股票,如果最后收
益为负,则出售股票。使用
NumPy
和
pandas
可以很容易地将其形式化。只需将最后
可用收益的迹象作为市场头寸即可。图
4-7
说明了此策略的绩效。该策略的性能确
实大大落后于基本工具:
In [77]: data['position'] = np.sign(data['returns'])
In [78]: data['strategy'] = data['position'].shift(1) * data['returns']
In [79]: data[['returns', 'strategy']].dropna().cumsum(
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.
O’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
I wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
I’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
I'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.