上下影线基本概念
影线就是一根K线中的虚线,它代表了当日最高和最低价格与收盘价格的差。上下影线是指上影线和下影线,一般情况上影线长,表示阻力大;下影线长表示支撑力度大。
上影线是当日股票的最高价与收盘价和开盘价中较大一个的差,下影线是收盘价和开盘价中较小的一个与当日股票的最低价的差。股票中上下影的分析需要结合持仓量,成交量等等因素来考虑。
为在策略中简化处理,如果一只股票的上影线长,则股票存在着较大的抛压,下影线长则有大的支撑,因此上影线长则看跌,下影线长则看涨。
影线分析可以做很多深入的挖掘,作为未来的研究方向来说,可以与移动平均线结合分析;可以结合市场之前的趋势,分析K线的组合等等。
- # 定义一个全局变量, 保存要操作的证券
- security = '600196.XSHG'
- # 初始化此策略
- # 设置我们要操作的股票池, 这里我们只操作一支股票
- set_universe([security])
- # 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次
- def handle_data(context, data):
- # 定义买股票的数量
- num_of_shares=0
- # 取得当天的开盘价格
- open_price=data[security].open
- # 取得当天的收盘价格
- close_price=data[security].close
- # 取得当天的最高价
- high_price=data[security].high
- # 取得当天的最低价
- low_price=data[security].low
- # 计算上影线长度
- upper_shadow=high_price-max(close_price,open_price)
- # 计算下影线长度
- lower_shadow=min(close_price,open_price)-low_price
- # 计算实体长度
- real_body=abs(close_price-open_price)
- # 取得当前的现金
- cash=context.portfolio.cash
- # 取得当前的价格
- current_price=data[security].price
- # 设定上下界
- upperbound=1.5
- lowerbound=0.01
- # 判断买入条件
- if upper_shadow>=upperbound*real_body and lower_shadow<=lowerbound*real_body:
- # 计算买入数量
- num_of_shares=int(cash/current_price)
- if num_of_shares>0:
- # 买入
- order(security,+num_of_shares)
- # 记录买入信息
- log.info("Buying %s" % (security))
- # 判断卖出条件
- elif lower_shadow>=upperbound*real_body and upper_shadow<=lowerbound*real_body:
- # 卖出
- order_target(security,0)
- # 记录卖出信息
- log.info("Selling %s" % (security))
- # 画出当前的价格
- record(stock_price=data[security].price)
- # 设置回测条件
- set_commission(PerTrade(buy_cost=0.0008, sell_cost=0.0015, min_cost=5))
- set_slippage(FixedSlippage(0))
复制代码
|