繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

量化交易(JoinQuant数据)-BOLL(布林轨迹

作者/1xxxxxxxx 2019-05-10 01:04 0 来源: FX168财经网人物频道


BOLL轨迹算法

parameter:以下参数均包含的有缺省值
   security 聚宽格式股票代码,只支持['']单只股票格式
   nDay BOLL计算的日平均参数,常见为20日60日
   start_date 起始时间点
   end_date 结束时间点

Note:
    1.布林轨迹(BOLL)由日平均线(MiD)上轨线(UP)下轨线(DN)构成,其带状通道揭示了股票的可能走势/压力位/支撑位.
    2.由于布林轨迹计算包括了标准差的计算,在股价波动低迷时会导致收口(标准差变小),收口往往预示着变盘的可能性.
    3.我的BOLL算法实现基于JoinQuant数据,和通用实现相比加入了滤波器,滤波器的作用可以参考
     
    4.图形中:[红色-UP-上轨线][黄色-MiD-日平均线][绿色-DN-下轨线][蓝色-平滑过后的股价]

.股票跌成狗,代码慌得一批~
.有问题可以留言,回不回复看心(大)情(盘)

Untitled.png

import datetimeimport jqdataimport pylab as pl
'''数据平滑用于将具有杂波的股票数据变换成为相对平滑的股票曲线,其意义在于能够将趋势更加柔和的表现出来,过滤掉了畸变的峰值,但是也丢失了其包含的数据维度效果author:aaron-clark-aic 18/07/2018'''def LinearSmooth5(inP):_outP = []n = len(inP)if n<5:for i in inP:_outP.append(i)else:_outP.append( ( 3.0 * inP[0] + 2.0 * inP[1] + inP[2] - inP[4] ) / 5.0)_outP.append( ( 4.0 * inP[0] + 3.0 * inP[1] + 2 * inP[2] + inP[3] )/10.0)_i=0for i in  inP :if not _i == 0 and not _i==1 and not _i == n-2 and not _i ==n-1:_outP.append(( inP[_i - 2] + inP[_i - 1] + inP[_i] + inP[_i + 1] + inP[_i + 2] ) / 5.0)_i = _i+1_outP.append(( 4.0 * inP[n-1] + 3.0 * inP[n - 2] + 2 * inP[n - 3] + inP[n - 4] ) / 10.0)_outP.append(( 3.0 * inP[n-1] + 2.0 * inP[n - 2] + inP[n - 3] - inP[n - 5] ) / 5.0    )return _outPdef quadraticSmooth5(inP):_outP = []n = len(inP)if n<5:for i in inP:_outP.append(i)else:_outP.append( ( 31.0 * inP[0] + 9.0 * inP[1] -3.0* inP[2] - 5.0*inP[3]+3.0*inP[4] ) / 35.0)_outP.append( ( 9.0 * inP[0] + 13.0 * inP[1] + 12 * inP[2] + 6.0*inP[3] - 5.0*inP[4] )/35.0)_i=0for i in  inP :if not _i == 0 and not _i==1 and not _i == n-2 and not _i ==n-1:_outP.append( ( - 3.0 * (inP[_i - 2] + inP[_i + 2]) + 12.0 * (inP[_i - 1] + inP[_i + 1]) + 17 * inP[_i] ) / 35.0)_i = _i+1_outP.append( ( 9.0 * inP[n - 1] + 13.0 * inP[n - 2] + 12.0 * inP[n - 3] + 6.0 * inP[n - 4] - 5.0 * inP[n - 5] ) / 35.0)_outP.append(( 31.0 * inP[n - 1] + 9.0 * inP[n - 2] - 3.0 * inP[n - 3] - 5.0 * inP[n - 4] + 3.0 * inP[n - 5]) / 35.0)return _outPdef cubicSmooth5(inP):_outP = []n = len(inP)if n<5:for i in inP:_outP.append(i)else:_outP.append( (69.0 * inP[0] + 4.0 * inP[1] - 6.0 * inP[2] + 4.0 * inP[3] - inP[4]) / 70.0)_outP.append(  (2.0 * inP[0] + 27.0 * inP[1] + 12.0 * inP[2] - 8.0 * inP[3] + 2.0 * inP[4]) / 35.0)_i=0for i in  inP :if not _i == 0 and not _i==1 and not _i == n-2 and not _i ==n-1:_outP.append(  (-3.0 * (inP[_i - 2] + inP[_i + 2])+ 12.0 * (inP[_i - 1] + inP[_i + 1]) + 17.0 * inP[_i] ) / 35.0)_i = _i+1_outP.append( (2.0 * inP[n - 5] - 8.0 * inP[n - 4] + 12.0 * inP[n - 3] + 27.0 * inP[n - 2] + 2.0 * inP[n - 1]) / 35.0)_outP.append( (- inP[n - 5] + 4.0 * inP[n - 4] - 6.0 * inP[n - 3] + 4.0 * inP[n - 2] + 69.0 * inP[n - 1]) / 70.0)return _outPdef smoothStock(inP):return cubicSmooth5(quadraticSmooth5(LinearSmooth5(inP)))
'''默认股票代码格式(000915)转换为聚宽代码格式(000915.XSHG)author:aaron-clark-aic 18/07/2018'''def standardStocks(stocks):_stocks = list(get_all_securities('stock').index)_standardStocks = []for i in stocks:_standardStocks =_standardStocks+[code for code in _stocks if code.upper().startswith(i)]return _standardStocks
'''BOLL轨迹算法parameter:以下参数均包含的有缺省值    security 聚宽格式股票代码,只支持['']单只股票格式    nDay BOLL计算的日平均参数,常见为20日60日    start_date 起始时间点    end_date 结束时间点Note:1.布林轨迹(BOLL)由日平均线(MiD)上轨线(UP)下轨线(DN)构成,其带状通道揭示了股票的可能走势/压力位/支撑位.     2.由于布林轨迹计算包括了标准差的计算,在股价波动低迷时会导致收口(标准差变小),收口往往预示着变盘的可能性.     3.我的BOLL算法实现基于JoinQuant数据,和通用实现相比加入了滤波器,滤波器的作用可以参考https://www.joinquant.com/post/11886     4.图形中:[红色-UP-上轨线][黄色-MiD-日平均线][绿色-DN-下轨线][蓝色-平滑过后的股价]          .股票跌成狗,我慌得一批~     author:aaron-clark-aic 19/07/2018'''def BOLL(security=standardStocks(['000915']),nDay=20,start_date=(datetime.date.today()-datetime.timedelta(days=200)),end_date=datetime.date.today()):_base_days = jqdata.get_trade_days(start_date=start_date, end_date=end_date)#基础交易日list_close_price = []_MiD = []#日平均线数组_MD = []#标准差for i in _base_days:_close =get_price(security,end_date=i,count=nDay,fields=['close']).values_close_smooth = smoothStock(_close)_close_price.append(_close_smooth[-1][-1])_SMA = mean(_close_smooth)_MiD.append(_SMA)_MD_base = ((_close_smooth - _SMA)**2)        _MD.append(mean(_MD_base)**0.5)_UP = list(map(lambda x,y:x+2*y, _MiD,_MD))#上轨_DN = list(map(lambda x,y:x-2*y, _MiD,_MD))#下轨x= range(len(_MiD))pl.plot(range(len(_MiD)), _MiD,"y",lw=0.5)pl.plot(range(len(_UP)), _UP,"r",lw=0.5)pl.plot(range(len(_DN)), _DN,"g",lw=0.5)pl.plot(range(len(_close_price)), _close_price,lw=1)pl.show()
BOLL()
分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2192文章4145粉丝45

    暂无个人简介信息

  • 王启蒙现货黄金

    人气296文章3215粉丝8

    本人做分析师以来,并专注于贵金属投资市场,尤其是在现货黄金...

  • 指导老师

    人气1864文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2320文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 梁孟梵

    人气2176文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 张迎妤

    人气1896文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 金泰铬J

    人气2328文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4760文章8329粉丝119

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...

FX168财经

FX168财经学院

FX168财经

FX168北美