[关闭]
@Channelchan 2017-03-04T15:07:16.000000Z 字数 1264 阅读 26401

TA_Lib 时间周期

周期名词 Detrend HT_DCPERIOD HT_PHASOR inphase/quadrature


时间周期专有名词:

1

循环或波 Cycle or wave: 循环过程重复返回到其原始状态。
振幅 Amplitude(a):一个周期的波其水平中点(x轴)的高度。
周期 Period(T): 完成一个波长(周期)所需的时间单位数。
频率(ω): 每360°重复的波长数,计算为ω= 1 / T。
相位 Phase: 相对于基准波的周期的起点或偏移的测量。

2

相位角 Phase angle: 定位在作为顺时针移动的时钟的分针测量的周期内的位置,其中0°是三点钟。
反向 Inversions: 当出现峰值时,我们期望一个谷。寻找下一个更大的周期,看看是否是峰值,如果是,那么它被接受,因为更大的周期占主导地位。
左右偏向 Left and right translation : 循环峰值趋向于循环中心的左侧或右侧。


  1. import talib as ta
  2. import tushare as ts
  3. import pandas as pd
  4. import numpy as np
  5. import matplotlib.pyplot as plt
  6. from scipy import signal

把数据去趋势(detrend)

  1. data = ts.get_k_data('sh', start='2015-01-01', end='2015-12-31', ktype='D',autype='qfq')
  2. data.index = pd.to_datetime(data['date'],format='%Y-%m-%d')
  3. dc = np.array(data['close'])
  4. dc_d=signal.detrend(dc)

把周期指标(HT_DCPERIOD)用做动量指标,在一定区间内来回震荡,添加均线作为进出场时机。

同相正交(inphase/quadrature)
x轴为Inphase, y轴为quadrature。一般情况下,图形在二象限代表下跌,四象限代表上涨。但这只是理论上,实际还需要用实验回测证明。

3

  1. HTP = ta.HT_DCPERIOD(dc_d)
  2. data['HTP_MA'] = ta.MA(HTP, 10)
  3. data['inphase'], data['quadrature'] = ta.HT_PHASOR(dc_d)
  1. plt.subplot(3,1,1)
  2. plt.plot(data.index, dc_d)
  3. plt.subplot(3,1,2)
  4. plt.plot(data.index, HTP)
  5. plt.plot(data['HTP_MA'])
  6. plt.subplot(3,1,3)
  7. plt.plot(data['inphase'], data['quadrature'])
  8. plt.axhline(0,alpha=0.3)
  9. plt.axvline(0,alpha=0.3)
  10. X=data['inphase'].iloc[-1]
  11. Y=data['quadrature'].iloc[-1]
  12. plt.scatter(X,Y,color='r', s=100)
  13. plt.show()

4

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注