作者:老余捞鱼
原创不易,转载请标明出处及原作者。

写在前面的话:常用于将通达信指标转换为 QMT 的 Python 库有 talib、MyTT 以及 fengwo。这三个库的功能均极为强大,通常的通达信指标均能够被翻译成 QMT。针对这三个库的详尽介绍,网络上数量众多,可自行进行查阅。本文借助实例,对这三个库翻译出的指标进行对比,看哪一个更为准确。
我们以常用的RSI指标为例,计算24日RSI的值。下面上代码:
#encoding:gbk#导入三个库,没有的先自行pip安装import talib as tlimport MyTT as mtimport fengwo as fw
def init(C): #设置股票 stock = '510300.SH' #设置获取行情的开始时间 start_time = '20230101' #设置获取行情的结束时间 end_time = '20240902' #下载行情 download_history_data(stock,"1d","20240101","") #获取行情 data = C.get_market_data_ex(fields=['open','high','low','close'],stock_code=[stock],period='1d',start_time=start_time,end_time=end_time,count=-1,dividend_type='front',fill_data=True,subscribe=True) #获取开高低收数据 open = data[stock]['open'].values high = data[stock]['high'].values low = data[stock]['low'].values close = data[stock]['close'].values #三个库依次获取RSI的数值 t_RSI = tl.RSI(close,timeperiod=24) m_RSI = mt.RSI(close,N=24) f_RSI = fw.RSI(close,N1=6,N2=12,N3=24) #打印 print('talib的RSV值:',t_RSI[-1],'\nMyTT的RSV值:',m_RSI[-1],'\nfengwo的RSV值:',f_RSI[2][-1])返回的结果:

可以看出,数据很接近,其中MyTT保留了3位小数。talib和fengwo保留了10位以上小数。如果保留三位小数的话,三者都是38.644。那么实际情况呢?我查看了一下同花顺和通达信的数据。
同花顺:38.64
通达信:38.644。
看来talib、MyTT和fengwo计算的都是准确的。
这里要提醒一下,在下载和获取数据的时候,一定要多获取一些,获取得越多越准确。
本文内容仅仅是技术探讨和学习,并不构成任何投资建议。
转发请注明原作者和出处。
Be First to Comment