楼主: kakapdc
4705 0

[讨论交流] 借助talib使用技术分析指标来炒股 [推广有奖]

  • 0关注
  • 1粉丝

初中生

80%

还不是VIP/贵宾

-

威望
0
论坛币
56 个
通用积分
0.0001
学术水平
3 点
热心指数
8 点
信用等级
3 点
经验
485 点
帖子
11
精华
0
在线时间
6 小时
注册时间
2017-3-21
最后登录
2017-5-26

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

什么是技术分析


所谓股票的技术分析,是相对于基本面分析而言的。基本分析法着重于对一般经济情况以及各个公司的经营管理状况、行业动态等因素进行分析,以此来研究股票的价值,衡量股价的高低。而技术分析则是透过图表或技术指标的记录,研究市场过去及现在的行为反应,以推测未来价格的变动趋势。其依据的技术指标的主要内容是由股价、成交量或涨跌指数等数据计算而得的,技术分析只关心证券市场本身的变化,而不考虑会对其产生某种影响的经济方面、政治方面的等各种外部的因素。


什么是talib


talib的简称是Technical Analysis Library,主要功能是计算股价的技术分析指标。先简单看看Talib都给我们提供了那些计算技术指标的函数,按技术指标的类型示例如下:


函数名:CDL2CROWS
名称:Two Crows 两只乌鸦
简介:三日K线模式,第一天长阳,第二天高开收阴,第三天再次高开继续收阴,收盘比前一日收盘价低,预示股价下跌。
例子:integer = CDL2CROWS(open, high, low, close)


函数名:CDL3STARSINSOUTH
名称:Three Stars In The South 南方三星
简介:三日K线模式,与大敌当前相反,三日K线皆阴,第一日有长下影线,第二日与第一日类似,K线整体小于第一日,第三日无下影线实体信号,成交价格都在第一日振幅之内,预示下跌趋势反转,股价上升。
例子:integer = CDL3STARSINSOUTH(open, high, low, close)


函数名 : MA
名称:Moving average 移动平均值
简介:移动平均值是在一定范围内的价格平均值
例子:ma = MA(close, timeperiod=30, matype=0)


函数名:ADX
名称:Average Directional Movement Index 平均趋向指数
简介:ADX指数是反映趋向变动的程度,而不是方向的本身。
例子:adx = ADX(high, low, close, timeperiod=14)


函数名:ATR
名称:Average True Range 平均真实波幅
简介:主要用来衡量价格的波动。因此,这一技术指标并不能直接反映价格走向及其趋势稳定性,而只是表明价格波动的程度。
例子:atr = ATR(high, low, close, timeperiod=14)


函数名:OBV
名称:On Balance Volume 能量潮
简介:通过统计成交量变动的趋势推测股价趋势
计算公式:以某日为基期,逐日累计每日上市股票总成交量,若隔日指数或股票上涨,则基期OBV加上本日成交量为本日OBV。隔日指数或股票下跌,则基期OBV减去本日成交量为本日OBV
例子:obv = OBV(close, volume)

由于篇幅有限,技术分析指标不能在此充分介绍,可以参考talib官方文档


如何使用:MA实例

  • 已知MA这个函数的调用方式为:ma = MA(close, timeperiod=30, matype=0)
  • close表示收盘价序列,timeperiod指定义好均线的计算长度即几日均线,不输入的话,默认为30日, matype可以默认不用输入,然后就可以得到均线的值
  • 因此简单来讲,只取获取收盘价,就可以轻松计算移动平均值

下面以平安银行(000001.SZA)为例进行说明:

3.png

计算结果如下所示:

1.png


我们就这样跟方便的计算出了移动平均线的值,接下来我们计算xia稍微复杂一点的EMA和MACD

4.png

2.png


可以看到,talib模块可以很方便地帮助我们计算计算分析指标。

4.策略实战:MACD策略

  • 当macd下穿signal时,卖出股票
  • 当macd上穿signal时,买入股票

完整的策略我贴在下面,原文请参考BigQuant人工智能量化投资平台 (www.bigquant.com)


1. 策略参数
  1. instruments = ['000009.SZA']
  2. start_date = '2014-09-16'# 起始时间   
  3. end_date = '2017-01-03' # 结束时间
复制代码
2. 策略主体
  1. def initialize(context):
  2.    
  3.     context.set_commission(PerDollar(0.0015)) # 手续费设置
  4.     # 需要设置计算MACD的相关参数参数
  5.     context.short = 12
  6.     context.long = 26
  7.     context.smoothperiod = 9
  8.     context.observation = 100
  9.    
  10.    
  11. def handle_data(context, data):
  12.    

  13.     if context.trading_day_index < 100: # 在100个交易日以后才开始真正运行
  14.         return
  15.    
  16.     sid = context.symbol(instruments[0])
  17.     # 获取价格数据
  18.     prices = data.history(sid, 'price', context.observation, '1d')
  19.     # 用Talib计算MACD取值,得到三个时间序列数组,分别为macd, signal 和 hist
  20.     macd, signal, hist = talib.MACD(np.array(prices), context.short,
  21.                                     context.long, context.smoothperiod)

  22.     # 计算现在portfolio中股票的仓位
  23.     cur_position = context.portfolio.positions[sid].amount
  24.    
  25.     # 策略逻辑
  26.     # 卖出逻辑 macd下穿signal
  27.     if macd[-1] - signal[-1] < 0 and macd[-2] - signal[-2] > 0:
  28.         # 进行清仓
  29.         if cur_position > 0 and data.can_trade(sid):
  30.             context.order_target_value(sid, 0)

  31.     # 买入逻辑  macd上穿signal
  32.     if macd[-1] - signal[-1] > 0 and macd[-2] - signal[-2] < 0:
  33.         # 买入股票
  34.         if cur_position == 0 and data.can_trade(sid):
  35.             context.order_target_percent(sid, 1)
复制代码
3. 回测接口
  1. m=M.backtest.v5(
  2.     instruments=instruments,
  3.     start_date=start_date,
  4.     end_date=end_date,
  5.     initialize=initialize,
  6.     handle_data=handle_data,
  7.     order_price_field='close',
  8.     order_price_field_buy='open',
  9.     order_price_field_sell='open',
  10.     capital_base=float("1.0e6"),
  11.     benchmark='000300.INDX',
  12. )
复制代码





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:技术分析指标 技术分析 分析指标 ALI lib 技术

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 20:40