立即打开
最近发现一个不错的量化策略实现平台,免去我以前自己配置Python环境,获取数据,处理数据等一系列麻烦,还可以和小伙伴们及时分享策略交流。在此记录下我在JoinQuant(https://www.joinquant.com/)进行的量化投资策略学习过程,欢迎大神拍砖。
乖离率(BIAS)是测量股价偏离均线大小程度的指标,简称Y值。其主要思想认为,当股价偏离市场平均成本太大时,股价会有一个回归的过程,即价格过高会降低,价格过低会上升。
计算方法:
N期BIAS=(当日收盘价-N期平均收盘价)/N期平均收盘价*100%
回测:
交易资产:平安银行
频率:日
资金:100000
手续费滑点采用平台默认
采用13日bias值,买入卖出临界值为0.065,即bias<-0.065满仓买入,bias>0.065全仓卖出
分析:
信号设置的过于简单,可以考虑和别的指标结合下。
每次都是全买全卖,很容易出现买完了等好久都卖不出去的情况,导致错过很多更好的买点,而且交易次数太少。
参数没有计算机优化。
后期大趋势下,表现不好。
由bias值与股价的图看出,bias值并没有明显领先股价做出变化。
求具体改进方法
上方:累计收益(蓝),市场基准收益(红)
下方:bias值(绿)与股价(蓝)的图。
[backcolor=rgba(136, 136, 136, 0.498039)]
风险指标
[backcolor=rgba(136, 136, 136, 0.498039)]
代码
# 定义一个全局变量, 保存要操作的证券
# 000001(股票:平安银行)
security = '000001.XSHE&# 39;
# 初始化此策略
# 设置我们要操作的股票池, 这里我们只操作一支股票
set_universe([security])
# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次
def handle_data(context, data):
# 取得过去十三天的平均价格
average_price = data[security].mavg(13)
# 取得当前价格
current_price = data[security].price
# 取得当前的现金
cash = context.portfolio.cash
# 计算BIAS值
bias=(current_price-average_price)/average_price
# 设置BIAS操作临界值
bias_operationvalue=0.065;
# 如果BIAS值小于-BIAS操作临界值,买入
if bias < -1*bias_operationvalue:
# 计算可以买多少只股票
number_of_shares = int(cash/current_price)
# 购买量大于0时,下单
if number_of_shares > 0:
# 买入股票
order(security, +number_of_shares)
# 记录这次买入
log.info("Buying %s" % (security))
# 如果BIAS大于BIAS操作临界值,卖出
elif bias > bias_operationvalue and context.portfolio.positions[security].amount > 0:
# 卖出所有股票,使这只股票的最终持有量为0
order_target(security, 0)
# 记录这次卖出
log.info("Selling %s" % (security))
# 画出当前的价格
record(stock_price=data[security].price)
record(bias=bia
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
全部回复
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
扫码加我 拉你入群
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
相关推荐
栏目导航
热门文章
推荐文章
扫码加好友,拉您进群