TA-Lib如何识别Dojis

时间:2016-06-29 16:59:15

标签: python ta-lib

我试图弄清TA-Lib功能,试图了解他们如何识别模式。

以下代码会产生奇怪的结果

import talib  
import numpy  
sample_data = [  
    ['1/22/14', 10, 18,  5, 20],  
    ['1/23/14', 12, 21,  7, 22],  
    ['1/24/14', 14, 24, 9 , 24],  
    ['1/25/14', 16, 27, 11, 26],  
    ['1/26/14', 18, 30, 13, 28],  
    ['1/27/14', 20, 33, 15, 30],  
    ['1/28/14', 22, 36, 17, 32],  
    ['1/29/14', 24, 39, 19, 34],  
    ['1/30/14', 26, 41, 21, 38],  
    ['1/31/14', 30, 45, 25, 40],  
    ['2/01/14', 43, 44, 42, 43.01],  
    ['2/02/14', 46, 47, 45, 46.01],  
    ['2/03/14', 44, 45, 43, 44.01],  
    ['2/04/14', 40, 55, 35, 50],  
]

# convert data to columns  
sample_data = numpy.column_stack(sample_data)

# extract the columns we need, making sure to make them 64-bit floats  
o = sample_data[1].astype(float)  
h = sample_data[2].astype(float)  
l = sample_data[3].astype(float)  
c = sample_data[4].astype(float)

print(talib.CDLDOJI(o,h,l,c))  

结果:

  

print(talib.CDLDOJI(o,h,l,c))[0 0 0 0 0 0 0 0 0 0 0 0 0 0]

如果我查看ta_global.c Here

  真正的身体就像十字星的身体短于平均值的10%   以前的10个蜡烛中的蜡烛'高低范围

{ TA_BodyDoji, TA_RangeType_HighLow, 10, 0.1 },

我根据这个定义和ta_CDLDOJI.c here的定义来计算该函数应该产生三个Dojis:

[0 0 0 0 0 0 0 0 0 0 100 100 100 0]

我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

我已将基础数据更改为更加明显

zip() 第12个蜡烛显然是十字星,如果你考虑高低而不是绝对值,那么第13个蜡烛也应该被分类。 两者都被CDLDOJI函数返回为零......