尝试用Ruby写股票策略了一段时间,虽然能捉到实时和历史的股票数据,发现根本找不到复杂的函数库可以用,导致无法进行深入的分析。倒是Python有非常丰富的第三方库,由于二者都是面向对象的语言,差别不大,因此很容易学会Python的基本语法,然后照着葫芦画瓢,做了一个交易策略。
我对股市了解太少,只采用了最简单的一个策略:追涨杀跌。
核心就是取得股票池中股票20日收盘价的平均价,一旦超出,就全仓买入,一旦低于20日收盘价的平均价,就卖出。仓位按照股票数均分,本文股票池以兔宝宝、好想你为例。
代码如下:
def initialize(context):
# 存入兔宝宝、好想你 的股票代码,沪市用.XSHG,深市用.XSHE
g.security = ['002043.XSHE','002582.XSHE']
def handle_data(context, data):
# 把g.security中的股票代码依次取出,逐个进行单股票均线策略
for i in g.security:
# 获取取得最近日收盘价,命名为last_price
last_price = data[i].close
# 获取近二十日股票收盘价的平均价,命名为average_price
average_price = data[i].mavg(20, 'close')
# 获取当前现金数量,命名为cash
cash = context.portfolio.cash
# cash除以g.security中的股票数,得到per_cash
per_cash = cash/len(g.security)
# 如果昨日收盘价高出二十日平均价, 则买入,否则卖出。
if last_price > average_price:
order_value(i, per_cash)# 用当前所有资金买入股票
elif last_price < average_price:
order_target(i, 0)# 将股票仓位调整到0,即全卖出
做了一下2017年3月至今的回测,盈利率感人... ...

换了这周关注的四支股票,做了以下回测,赔哭了... ...

网友评论