[关闭]
@Channelchan 2018-10-20T23:05:06.000000Z 字数 7724 阅读 2730

技术因子-类别三情绪类下篇

如须调用该因子,将add_data=False改为True.可自行将因子名字value更改.收盘价在部分数据没有close_adj的情况下,使用close即可,其他high、low同理.

TVMA20 G010024A

因子描述: 20日成交金额的移动平均值(20-day Turnover Value Moving Average)。

计算方法
TVMA = MA(value, N)
N=20. 入库除以le6。

  1. value = dv.add_formula("TVMA20_J", "Ts_Mean(turnover,20)" ,
  2. is_quarterly=False, add_data=False)

TVMA6 G010025A

因子描述: 6日成交金额的移动平均值(6-day Turnover Value Moving Average)。

计算方法
TVMA =MA(value, N)
N=6。入库除以le6

  1. TVMA6 = dv.add_formula('TVMA6_G',"Ta('MA',0,0,0,0,turnover,0,6)"
  2. , is_quarterly=False, add_data=False)

TVSTD20 G010026A

因子描述: 20日成交金额的标准差(20-day Turnover Value Standard Deviation)

计算方法
TVSTD = sd(value, N)
N=20。入库除以le6.

  1. dv.add_field('turnover')
  2. TVSTD20_j = dv.add_formula('TVSTD20_j', 'StdDev(turnover,20)/Pow(10,6)'
  3. , is_quarterly=False, add_data=False)

TVSTD6 G010027A

因子描述: 6日成交金额的标准差(6-day Turnover Value Standard Deviation)。

计算方法:
TVSTD = sd(value, N)
N=6。入库除以le6。

  1. dv.add_field('turnover')
  2. TVSTD6_j = dv.add_formula('TVSTD6_j', 'StdDev(turnover,6)/Pow(10,6)'
  3. , is_quarterly=False, add_data=False)

VDEA G010028A

因子描述:计算VMACD因子的中间变量( Volume Difference Exponential Average ) 。

计算方法
VDIFF = EMA(volume, 12) - EMA(volume, 26)
DEA为VDIFF的M日指数移动平均: DEA = EMA(VDIFF, M) , 通常M = 9.

  1. dv.add_field("volume")
  2. EMA12 = dv.get_ts('volume').ewm(span=12, adjust=False).mean()
  3. EMA26 = dv.get_ts('volume').ewm(span=26, adjust=False).mean()
  4. VDIFF = EMA12 - EMA26
  5. vdeas = VDIFF.ewm(span=9, adjust=False).mean()
  6. dv.append_df(vdeas, 'vdeas')

VDIFF G010029A

因子描述:计算VMACD因子的中间变量(Volume difference)。

计算方法
VDIFF = EMA(volume, 12) - EMA(volume, 26)

  1. dv.add_field("volume")
  2. EMA12 = dv.get_ts('volume').ewm(span=12, adjust=False).mean()
  3. EMA26 = dv.get_ts('volume').ewm(span=26, adjust=False).mean()
  4. VDIFF = EMA12 - EMA26
  5. dv.append_df(VDIFF, 'VDIFF_J', is_quarterly=False)

VEMA10 G010030A

因子描述:成交量的指数移动平均(10-day Exponential moving average of volume)。

计算方法
VEMA = EMA(volume, N)
N取10。

  1. VEMA10_X = dv.add_formula('VEMA10_X', "Ta('EMA',0,0,0,0,volume,0,10)" ,
  2. is_quarterly=False, add_data=False)

VEMA12 G010031A

因子描述:成交量的指数移动平均(12-day Exponential moving average of volume)。

计算方法
VEMA = EMA(volume, N)
N取12。

  1. VEMA12_X = dv.add_formula('VEMA12_X', "Ta('EMA',0,0,0,0,volume,0,12)" ,
  2. is_quarterly=False, add_data=False)

VEMA26 G010032A

因子描述:成交量的指数移动平均。(26-day Exponential moving average of volume)

计算方法
VEMA = EMA(volume, N)
N取26。

  1. VEMA26 = dv.add_formula('VEMA26_J', "Ta('EMA',0,0,0,0,volume,0,26)" ,
  2. is_quarterly=False, add_data=False)

VEMA5 G010033A

因子描述:成交量的指数移动平均。(5-day Exponential moving average of volume)

计算方法:
VEMA = EMA(volume, N)
N=5

  1. VEMA5 = dv.add_formula('VEMA5_J', "Ta('EMA',0,0,0,0,volume,0,5)" ,
  2. is_quarterly=False,add_data=False)

VMACD G010034A

因子描述:量指数平滑异同移动平均线( VolumeMoving Average Convergence and Divergence)。是从双移动平均线发展而来的,由快的移动平均线减去慢的移动平均线VMACD的意义和MACO基本相同,但VMACD取用的数据源是成交量,MACO取用的数据源是成交价格。

计算方法

  1. VDIFF = EMA(volume, 12) - EMA(volume, 26)。
  2. VDEA为(Difference Exponen tial Average) VDIFF的M日指数移动平均: DEA = EMA(VDIFF, M) , 通常M = 9.
  3. VMACD为VDIFF和VDEA之差。
  1. dv.add_formula('VDIFF_',"Ta('EMA',0,0,0,0,volume,0,12)-Ta('EMA',0,0,0,0,volume,0,26)",
  2. is_quarterly=False, add_data=True)
  3. dv.add_formula('VDEA_',"Ta('EMA',0,0,0,0,VDIFF_,0,9)",
  4. is_quarterly=False, add_data=True)
  5. VMACD_J = dv.add_formula('VMACD_J',"VDIFF_-VDEA_", is_quarterly=False, add_data=False)

VOL10 G010035A

因子描述: 10日平均换手率(10-day Turnover Rate)。

计算方法
最近10个交易日的平均换手率

  1. value = dv.add_formula('VOL10_J', "Ts_Mean(turnover_ratio,10)" ,
  2. is_quarterly=False, add_data=False)

VOL120 G010036A

因子描述:120日平均换手率(120-day Turnover Rate)。

计算方法
最近120个交易日的平均换手率

  1. VOL120 = dv.add_formula('VOL120_J', "Ts_Mean(turnover_ratio,120)",
  2. is_quarterly=False, add_data=False)

VOL20 G010037A

因子描述: 20日平均换手率(20-day Turnover Rate)。

计算方法
最近20个交易日的平均换手率

  1. VOL20 = dv.add_formula('VOL20_J', "Ts_Mean(turnover_ratio,20)" ,
  2. is_quarterly=False, add_data=False)

VOL240 G010038A

因子描述: 240日平均换手率(240-day Turnover Rate)。

计算方法
最近240个交易日的平均换手率。

  1. VOL240 = dv.add_formula('VOL240_J', "Ts_Mean(turnover_ratio,240)",
  2. is_quarterly=False, add_data=False)

VOL5 G010039A

因子描述: 5日平均换手率(5-day Turnover Rate)。

计算方法
最近5个交易日的平均换手率。

  1. VOL5 = dv.add_formula('VOL5_J', "Ts_Mean(turnover_ratio,5)",
  2. is_quarterly=False, add_data=False)

VOL60 G010040A

因子描述: 60日平均换手率 (60 -day Turnover Rate)。

计算方法
最近60个交易日的平均换手率。

  1. VOL60 = dv.add_formula('VOL60_J', "Ts_Mean(turnover_ratio,60)",
  2. is_quarterly=False, add_data=False)

VOSC G010041A

因子描述:成交量震荡(Volume Oscilltaor) , 又称移动平均成交量指标,但它并非仅仅计算成交量的移动平均线,而是通过对成交量的长期移动平均线和短期移动平均线之间的比较,分析成交量的运行趋势和及时研判趋势转变方向。

计算方法
VOSC = 100 * (MA(volume, 12) - MA(volume, 26 )) / MA(volume, 12)

  1. VOSC = dv.add_formula('VOSC_J',"100*(Ta('MA',0,0,0,0,volume,0,12)-Ta('MA',0,0,0,0,volume,0,26))/(Ta('MA',0,0,0,0,volume,0,12))",is_quarterly=False, add_data=False)

VR G010042A

因子描述:成交量比率(Volume Rtaio) 。 通过分析股价上升日成交额(或成交量,下同)与股价下降日成交额比值,从而掌握市场买卖气势的中期技术指标。

计算方法

对任一交易日,若close > prev_close , 当日成交量为AV, 否则AV=0。将N日内AV加和后记为AVS.

对任一交易日,若close< prev_close , 当日成交量为BV , 否则BV= 0。 将N日内BV加和后记为BVS。

对任一交易日,若close= prev_close , 当日成交量为CV, 否则CV= 0。 将N 日内CV加和后记为CVS。

VR = (AVS + CVS / 2) / (BVS + CVS / 2)。
N取24, 即24个交易日。

  1. BVS = dv.add_formula('BVS','Ts_Sum(If(close_adj<Delay(close_adj, 1), volume, 0), 24)' ,
  2. add_data=True, is_quarterly=False)
  3. AVS = dv.add_formula('AVS','Ts_Sum(If(close_adj>Delay(close_adj, 1), volume, 0), 24)' ,
  4. add_data=True, is_quarterly=False)
  5. CVS = dv.add_formula('CVS', 'Ts_Sum(If(close == Delay(close, 1), volume, 0), 24)',
  6. add_data=True, is_quarterly=False)
  7. VR = dv.add_formula('VR1', '(AVS+CVS/2)/(BVS+CVS/2)', add_data=False, is_quarterly=False)

VROC12 G010043A

因子描述: 12日量变动速率指标(12-day Volume Rate of Change)。以今天的成交量和N天前的成交量比较,通过计算某一段时间内成交量变动的幅度,应用成交进的移动比较来测足成交量运动趋向,达到事先探测成交量供需的强弱,进而分析成交量的发展趋势及其将来是否有转势的意愿,属于成交量的反趋向指标。

计算方法
(volume/volume(t-N)-1)*100

N=12

  1. VROC12 = dv.add_formula('VROC12_J', "(volume/Delay(volume,12)-1)*100",
  2. is_quarterly=False, add_data=False)

VROC6 G010044A

因子描述: 6日量变动速率指标(6-day Volume Rate of Change)。以今天的成交量和N天前的成交量比较,通过计算某一段时间内成交量变动的幅度,应用成交量的移动比较来测足成交量运动趋向,达到事先探测成交量供需的强弱,进而分析成交量的发展趋势及其将来是否有转势的意愿,属于成交量的反趋向指标。

计算方法
(volume/volume(t-N)-1)*100

N=6

  1. VROC6 = dv.add_formula('VROC6_J', "(volume/Delay(volume,6)-1)*100",
  2. is_quarterly=False, add_data=False)

VSTD10 G010045A

因子描述: 10日成交量标准差(10-day Volume Standard Deviation)。考察成交量的波动程度。

计算方法
VSTD = sd(volume, N)
N取10.

  1. VSTD10_J = dv.add_formula('VSTD10_J',"StdDev(volume,10)", is_quarterly=False, add_data=False)

VSTD20 G010046A

因子描述: 20日成交量标准差(20-day Volume Standard Deviation)。考察成交量的波动程度。

计算方法
VSTD = sd(volume, N)
N取20.

  1. VSTD_20 = dv.add_formula('VSTD_20', "StdDev(volume,20)" , is_quarterly=False, add_data=False)

MoneyFlow20 G010048A

因子描述:资金流量(20-day money flow)。用收盘价,最高价及最低价的均值乘以当日成交量即可得到该交易日的资金流量。

计算方法
MoneyFlow=Sum((close+high+low)*volume/3,N)

N=20

  1. MoneyFlow20 = dv.add_formula('MoneyFlow20_J', "Ts_Sum((close+high+low)*volume/3,20)",
  2. is_quarterly=False, add_data=False)

DAVOL5 G010049A

因子描述:相对5日相对120曰平均换手率(Difference between 5-day average turnover rate and 120 -day average turnover rate)。

计算方法
DAVOLS = VOL5 - VOL 120
最近一段时间的日平均换手率相对于120个交易日的变化。计算了5个交易日的结果。

  1. DAVOL5 = dv.add_formula('DAVOL5_J', "Ts_Mean(turnover_ratio,5)-Ts_Mean(turnover_ratio,120)",
  2. is_quarterly=False, add_data=False)

DAVOL10 G010050A

因子描述:相对10日相对120日平均换手率(Difference between 10-day average turnover rate and 120 -day average turnover rate)。

计算方法
DA VOL10 = VOL10 - VOL 120
最近一段时间的日平均换手率相对于120个交易日的变化。计算了10个交易日的结果。

  1. DAVOL10 = dv.add_formula('DAVOL10_J', "Ts_Mean(turnover_ratio,10)-Ts_Mean(turnover_ratio,120)",
  2. is_quarterly=False, add_data=False)

DAVOL20 G010051A

因子描述:相对20日相对120日平均换手率(Difference between 20-day average turnover rate and 120 -day average
turnover rate)。

计算方法
DAVOL20 = VOL20- VOL 120
最近一段时间的日平均换手率相对于120个交易日的变化。计算了20个交易日的结果。

  1. DAVOL20 = dv.add_formula('DAVOL20_J', "Ts_Mean(turnover_ratio,20)-Ts_Mean(turnover_ratio,120)",
  2. is_quarterly=False, add_data=False)

STOM G010052A

因子描述:月度换手率对数

计算方法
STOM=Log(Ts_Mean(turnover_ratio/100,21)*21)

或者STOM=ln(sum(turnover_ratio/100,21))

使用近一个月的换手率的累加和的对数

  1. STOM = dv.add_formula('STOM_A', "Log(Ts_Mean(turnover_ratio/100,21)*21)",
  2. is_quarterly=False, add_data=False)

STOQ G010053A

因子描述:3个月换手率对数平均

计算方法
STOQ=ln(sum(exp(STOM),T)/T)
其中,T=3个月,这里每个月按照21个交易日计算。

  1. stoq_j = dv.add_formula("STOQ_J","Log(Ts_Sum(turnover_ratio, 63)/3/100)",
  2. is_quarterly=False, add_data=False)

STOA G010054A

因子描述: 12个月换手率对数平均

计算方法
STOA=ln(sum(exp(STOM),T)/T)
其中,T=12个月,每个月按照21个交易日计算。

  1. stoa_j = dv.add_formula("STOA_J","Log(Ts_Sum(turnover_ratio, 21*12)/12/100)",
  2. is_quarterly=False, add_data=False)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注