量化投资(二):五日均价策略 柔光的暖阳◎ 2022-06-07 03:27 181阅读 0赞 有些人认为,当股价突破5日均线时,可以买入;当股价跌破5日均线时,可以卖出。 本策略可以验证这种方法是否无效。 # 一、策略思想 # 股价大于五日均价,买入; 股价小于五日均价,卖出。 # 二、实现代码 # # 定义一个全局变量, 保存要操作的证券 security = '600016.XSHG' # 初始化此策略 # 设置我们要操作的股票池, 这里我们只操作一支股票 set_universe([security]) # 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次 def handle_data(context, data): # 取得过去五天的平均价格 average_price = data[security].mavg(5) # 取得当前价格 current_price = data[security].price # 取得当前的现金 cash = context.portfolio.cash # 如果当前价格高出五天平均价1%, 则全仓买入 if current_price > 1.01 * average_price: # 计算可以买多少只股票 number_of_shares = int(cash/current_price) # 购买量大于0时,下单 if number_of_shares > 0: # 买入股票 order(security, +number_of_shares) # 记录这次买入 log.info("Buying %s" % (security)) # 如果当前价格低于五天平均价, 则空仓卖出 elif current_price < 0.99 * average_price and context.portfolio.positions[security].amount > 0: # 卖出所有股票,使这只股票的最终持有量为0 order_target(security, 0) # 记录这次卖出 log.info("Selling %s" % (security)) # 画出每天的价格 record(stock_price = data[security].price) # 三、运行结果 # ![1.png][] 从上图可以看出,将此策略运用于民生银行(600016),策略收益远小于基准收益。 换成中国中铁(601390)、中国联通(600050)、中国铁建(601186)、山东黄金(600547),效果也差不多。 这说明这个策略,是个不好的策略。 > 更多内容请关注微信公众号 > ![这里写图片描述][SouthEast] [1.png]: /images/20220607/bd9b230987234adfbdf18c7868377fcf.png [SouthEast]: /images/20220607/82f90108d0454800b4086dae86b7d520.png
还没有评论,来说两句吧...