用 Python 实现你的量化交易策略
account.get_attribute_history( closePrice , 3)
取得股票池中所有股票前 3 天的收盘价(closePrice)。
hist[s][2] - hist[s][0]
得到 1 天前和 3 天前收盘价的差值。
account.valid_secpos
是账户当前所持有的证券信息。
如果收盘价 2 天的差值满足买入条件且未持有,就执行:
order_pct(s, 0.05)
order_pct 表示按账户当前总价值的百分比买入股票。
如果满足卖出条件则执行:
order_to(s, 0)
OK,一个简单到不行的策略已完成。运行一下:
居然,这么简单的策略在最高的时候有超过 90% 的收益,即使在经历了年中的股灾和下半年的震荡之后,到年底也还有 30% 多的收益率,应该超越了大部分散户去年的成绩吧。如果按照这个策略进行交易,啧啧,想想还有点小激动呢。(喂!快醒醒!)
然而现实是残酷的,真实的市场分分钟教你做人。
量化投资以及程序化交易是很有前途的行业,但在你想从事这行,甚至用它赚钱之前,请先深入了解它。
有兴趣的,去看下知乎上的这个问题:
学习量化交易如何入门?
前面提到的另外几个平台,和优矿基本类似,API 和功能会有些差异,可以自行尝试,这里不再分别演示。知乎上也有人做过比较:
已知国内量化平台的比较, Ricequant / 优矿究竟谁是下一个quantopian,哪家挖矿强?
如果你对这个领域充满好奇,不如现在就立刻动手,从你的第一个策略开始。
开始的一些变量是对回测的基本配置。initialize 里可以做一些初始化的工作。handle_data 则是回测代码的核心,用来实现每个交易日(或每分钟)的交易指令。
具体的变量含义,这里不做特别细致的解释,文档里都有说明。仅从命名和注释里也可以看出,设定了回测的时间,股票池,资金,交易频率等。
文档里给了一个最简单的日线策略代码:
def handle_data(account):
for stock in account.universe:
order(stock,100)
此策略就是,在每个交易日,把股票池里每一只股票都买入一手。
account.universe 就是开头设定的 universe 值。这里遍历股票池中的股票。
order 是买卖指令,函数原型是:order(symbol, amount)
参数 symbol 是股票代码,amount 是买卖数量,正为买入,负为卖出。此处买入 100 股,即 1 手。
点击“运行”,或 Ctrl+Enter,即可在页面上看到策略的执行情况。
我们再尝试改动一点点,写一个自己的策略。
我拍脑袋想了这样一个策略:
如果一只未持有的股票 2 个交易日累计涨了 10% 以上,就以当前资金的 5% 买入它。反过来,如果累计跌了 10% 以上,就全部卖出止损。
下面把它实现出来看下回测效果如何。
时间设为去年(2015)全年,起始资金 10 万元。
universe = set_universe( A )
股票池为 A 股所有股票。
查看评论 回复
"用 Python 实现你的量化交易策略"的相关文章
- 上一篇:杀一个程序员不需用枪,改三次需求即可
- 下一篇:python大数据挖掘与分析