# 导入库包 import talib import numpy as np import pandas as pd # 初始化证券账户及策略信息 def init(context): # 设置要交易的股票池 context.stk = '000002.SZ' # 设置参照基准 set_benchmark(context.stk) # 设置获取历史数据的时间周期 g.period = 10 # 该函数用来定时执行买卖条件,每个交易频率(日/分钟)自动调用一次. def handle_bar(context, bar_dict): # 获取过去g.period天的历史行情数据 price = history(context.stk, ['close','high','low'], g.period, '1d', False, 'pre', is_panel=0) # 获取收盘价数据 close = price['close'].values # 计算SMA SMA = talib.SMA(close,g.period) # 获取当前的股票价格 crtprice = bar_dict[context.stk].open # 获取当前个股的持仓 curposition = context.portfolio.positions[context.stk].amount # 若开盘价上穿均线,且持仓为0,则全仓买入 if crtprice > SMA[-1] and curposition == 0: order_target_percent(context.stk,1) print('买入价格:'+str(crtprice)) # 若开盘价下穿均线,且有持仓,则清仓 if crtprice < SMA[-1] and curposition !=0: order_target_percent(context.stk,0) print('卖出价格:'+str(crtprice)) # 绘图 record(SMA
时间: 2024-04-27 20:22:57 浏览: 210
pandas_talib:Python Pandas实现的技术分析指标
这代码使用了Python的量化交易框架vnpy,并结合talib库计算了股票的SMA指标,并根据该指标的上下穿透情况,判断买入或卖出信号,并执行交易操作。具体来说,init函数用于初始化证券账户及策略信息,包括设置要交易的股票池、参照基准、获取历史数据的时间周期等。handle_bar函数用于定时执行买卖条件,获取过去g.period天的历史行情数据,并计算SMA指标,判断买卖信号并执行交易操作。最后,该代码还使用了record函数绘制SMA指标的曲线图。
阅读全文