一、入门量化策略
JoinQuant聚宽API文档:https://www.joinquant.com/help/api/help?name=api
1、策略内容
设置股票池为沪深300的所有成分股
如果当前股价小于10元/股且当前不持仓,则买入;
如果当前股价比买入时上涨了25%,则清仓止盈;
如果当前股价比买入时下跌了10%,则清仓止损。
2、获取要操作的股票或指数成分股
# 导入函数库 import jqdata # 初始化函数,设定基准 def initialize(context): # 定义一个全局变量, 保存要操作的股票 # 方式一:操作一只股票 # g.security = '601318.XSHG' # 中国平安股票 # 方式二:操作多只股票 # g.security = ['601101.XSHG', '601106.XSHG'] # 方式三:操作指数成分股 g.security = get_index_stocks('000300.XSHG') # 沪深300 print(g.security)
执行显示沪深300指数成分股:
3、开启动态复权模式(真实价格)
开启真实价格回测功能很简单,只需一步即可搞定:在initialize中使用set_option。
(1)开启动态复权测试
# 导入函数库 import jqdata # 初始化函数,设定基准 def initialize(context): # 定义一个全局变量, 保存要操作的股票 # 方式一:操作一只股票 # g.security = '601318.XSHG' # 中国平安股票 # 方式二:操作多只股票 # g.security = ['601101.XSHG', '601106.XSHG'] # 方式三:操作指数成分股 g.security = get_index_stocks('000300.XSHG') # 沪深300 set_option('use_real_price', True)
由于沪深300不存在分红和股票拆合,显示效果和上图一致。
(2)开启动态复权(真实价格)模式对模拟交易的影响
在模拟交易中,在未开启动态复权(真实价格)模式时,我们是使用基于模拟交易创建日期的后复权价格。
后复权模式示意图如下图所示:
不开启真实价格模拟盘的运算结果是没有错误,只是会理解起来更费劲一些。
如果想知道今天的真实价格,还需知道模拟创建的日期,并进行复权计算。