Python股票量化投资课学习—单均线双均线策略
测试平台—测试记过如下:
单均线策略测试结果:
双均线策略测试结果:
单均线双均线策略 思路是:
选股策略:单一只股票
具体内容:金叉买进死叉卖出
源文件下载:
源文件下载地址:https://download.csdn.net/download/jinzhai/86403657
单均线策略源码如下:
def indicators(context):
"""指标"""
# 计算15日的均价,赋值给变量context.sma
context.sma = SMA(period=15)
def choose_stock(context):
"""标的"""
context.symbol_list = ["600000.XSHG"]
def timing(context):
"""择时"""
# 判断是否持仓,如果不持仓,则判断是否出现买入信号
if not context.position:
# 当前天的15日均价大于昨天的15日均价,且昨天的15日均价小于今天的15日均价时,出现买入信号
if context.sma[-2]> context.sma[-1] and context.sma[0] > context.sma[-1]:
# 买入信号出现时,发送买入指令,系统自动执行买入交易
context.order = context.buy()
# 如果持仓,则判断是否出现卖出信号
else:
# 当前天的15日均价小于昨天的15日均价,且昨天的15日均价大于今天的15日均价时,出现卖出信号
if context.sma[-2] < context.sma[-1] and context.sma[0] < context.sma[-1]:
# 卖出信号出现时,发送卖出指令,系统自动执行卖出交易
context.order = context.sell()
def control_risk(context):
"""风控"""
pass
双均线策略源码如下:
def indicators(context):
"""指标"""
# 计算15日的均价,赋值给变量context.short_sma
context.short_sma = SMA(period=15)
# 计算30日的均价,赋值给变量context.long_sma
context.long_sma = SMA(period=30)
def choose_stock(context):
"""标的"""
context.symbol_list = ["600158.XSHG"]
def timing(context):
"""择时"""
# 当15日均价大于30日均价时,出现买入信号
if context.short_sma > context.long_sma:
# 买入信号出现时,发送买入指令,系统自动执行买入交易
context.order = context.buy()
# 判断是否持仓,如果持仓,则判断是否是否卖出信号
if context.position:
# 当15日均价小于30日均价时,出现卖出信号
if context.short_sma < context.long_sma:
# 卖出信号出现时,发送卖出指令,系统自动执行卖出交易
context.order = context.sell()
def control_risk(context):
"""风控"""
# 当持有股跌幅大于 15%,就全部卖出
for data in context.datas:
position = context.getposition(data).size
if position!= 0 and ((data.close[-1] - data.close[0])/data.close[-1]) >= context.down_tr:
context.close(data=data)