@Channelchan
2018-10-20T16:48:17.000000Z
字数 58897
阅读 73518
Alpha191因子,部分算法有解释说明,小部分算法存在benchmark问题,未完全复现。register_funcs={"LOWDAY":LOWDAY}为调用函数,可以自行编写修改。要调用该因子可以将add_data=False修改为add_data=True。
L010001B alpha1
(-1 * CORR(RANK(DELTA(LOG(VOLUME), 1)), RANK(((CLOSE - OPEN) / OPEN)), 6))
alpha1=dv.add_formula('alpha1',"(-1*Correlation(Rank(Delta(Log(volume),1)),Rank(((close-open)/open))),6)",is_quarterly=False,add_data=True)
L010002B alpha2
(-1 * DELTA((((CLOSE - LOW) - (HIGH - CLOSE)) / (HIGH - LOW)), 1))
alpha2=dv.add_formula('alpha2','(-1*Delta((((close-low)-(high-close))/(high-low)),1))',is_quarterly=False,add_data=True)
L010003B alpha3
SUM((CLOSE=DELAY(CLOSE,1)?0:CLOSE-(CLOSE>DELAY(CLOSE,1)?MIN(LOW,DELAY(CLOSE,1)):MAX(HIGH,DELAY(CLOSE,1)))),6)
alpha3=dv.add_formula('alpha3',"Ts_Sum(If((close==Delay(close,%s)),0,close-(If((close>Delay(close,%s)),Min(low,Delay(close,%s)),Max(high,Delay(close,%s))))),%s)"%(1,1,1,1,6),is_quarterly=False,add_data=True)
L010004B alpha4
((((SUM(CLOSE, 8) / 8) + STD(CLOSE, 8)) < (SUM(CLOSE, 2) / 2)) ? (-1 * 1) : (((SUM(CLOSE, 2) / 2) <((SUM(CLOSE, 8) / 8) - STD(CLOSE, 8))) ? 1 : (((1 < (VOLUME / MEAN(VOLUME,20))) || ((VOLUME /MEAN(VOLUME,20)) == 1)) ? 1 : (-1 * 1))))
alpha4=dv.add_formula('alpha4',"(If(((Ts_Sum(close,8)/8) + StdDev(close, 8))<(Ts_Sum(close,2)/2),(-1*1),If((Ts_Sum(close,2)/2)<((Ts_Sum(close,8)/8)-StdDev(close,8)),1,If((((volume/Ts_Mean(volume,20)>1))|| ((volume /Ts_Mean(volume,20)) == 1)), 1 , (-1 * 1)))))",is_quarterly=False,add_data=True)
L010005B alpha5
(-1 * TSMAX(CORR(TSRANK(VOLUME, 5), TSRANK(HIGH, 5), 5), 3))
alpha5=dv.add_formula('alpha5','(-1*(Ts_Max(Correlation(Ts_Rank(volume,5),Ts_Rank(high,5),5),3)))',is_quarterly=False,add_data=True)
L010006B alpha6
(RANK(SIGN(DELTA((((OPEN * 0.85) + (HIGH * 0.15))), 4)))* -1)
alpha6=dv.add_formula('alpha6',"Rank(Sign(Delta((open * 0.85) + (high * 0.15), 4)*-1))",is_quarterly=False,add_data=True)
L010007B alpha7
((RANK(MAX((VWAP - CLOSE), 3)) + RANK(MIN((VWAP - CLOSE), 3))) * RANK(DELTA(VOLUME, 3)))
alpha7=dv.add_formula('alpha7',"((Rank(Ts_Max((vwap - close), 3)) + Rank(Ts_Min((vwap - close), 3))) * Rank(Delta(volume, 3)))",is_quarterly=False,add_data=True)
L010008B alpha8
RANK(DELTA(((((HIGH + LOW) / 2) * 0.2) + (VWAP * 0.8)), 4) * -1)
alpha8=dv.add_formula('alpha8',"Rank(Delta(((((high + low) / 2) * 0.2) + (vwap * 0.8)), 4) * -1)",is_quarterly=False,add_data=True)
L010009B alpha9
SMA(((HIGH+LOW)/2-(DELAY(HIGH,1)+DELAY(LOW,1))/2)*(HIGH-LOW)/VOLUME,7,2)
alpha9=dv.add_formula('alpha9',"Sma(((high+low)/2-(Delay(high,%s)+Delay(low,%s))/2)*(high-low)/volume,%s,%s)"%(1,1,7,2),is_quarterly=False,add_data=True)
L010010B alpha10
(RANK(MAX(((RET < 0) ? STD(RET, 20) : CLOSE)^2),5))
alpha10=dv.add_formula('alpha10',"Rank(Ts_Max(If(Return(close,1)<0,StdDev(Return(close,1),20),close)^2,5))",is_quarterly=False,add_data=True)
L010011B alpha11
SUM(((CLOSE-LOW)-(HIGH-CLOSE))./(HIGH-LOW).*VOLUME,6)
alpha11=dv.add_formula('alpha11',"Ts_Sum(((close-low) - (high-close)) / (high-low) * volume,6)",is_quarterly=False,add_data=True)
L010012B alpha12
(RANK((OPEN - (SUM(VWAP, 10) / 10)))) * (-1 * (RANK(ABS((CLOSE - VWAP)))))
alpha12=dv.add_formula('alpha12','(Rank((open- (Ts_Sum(vwap, %d) / %d)))) * (-1 * (Rank(Abs(close - vwap))))'%(10,10),is_quarterly=False,add_data=True)
L010013B alpha13
(((HIGH * LOW)^0.5) - VWAP)
alpha13 = dv.add_formula('alpha13',"(high*low)^0.5-vwap", is_quarterly=False,add_data=True)
L010014B alpha14
CLOSE-DELAY(CLOSE,5)
alpha14 = dv.add_formula('alpha14', 'close-Delay(close,5)', is_quarterly=False, add_data=True)
L010015B alpha15
OPEN/DELAY(CLOSE,1)-1
开盘价除以一天滞后的收盘价再减1
alpha15 = dv.add_formula('alpha15', "open/Delay(close,1)-1",is_quarterly=False,add_data=True)
L010016B alpha16
(-1 * TSMAX(RANK(CORR(RANK(VOLUME), RANK(VWAP), 5)), 5))
alpha16 = dv.add_formula("alpha16","(-1*Ts_Max(Rank(Correlation(Rank(volume),Rank(vwap),5)),5))",is_quarterly=False,add_data=True)
L010017B alpha17
RANK((VWAP - MAX(VWAP, 15)))^DELTA(CLOSE, 5)
均价减去15天内均价最大值的排名的过去5天收盘价差额的幂次
alpha17 = dv.add_formula('alpha17', "Rank((vwap - Ts_Max(vwap, 15)))^Delta(close, 5)",
is_quarterly=False, add_data=True)
L010018B alpha18
CLOSE/DELAY(CLOSE,5)
alpha18=dv.add_formula('alpha18',"close/Delay(close,5)",is_quarterly=False,add_data=True)
L010019B alpha19
(CLOSE DELAY(CLOSE,5)?0:(CLOSE-DELAY(CLOSE,5))/CLOSE))
alpha19=dv.add_formula('alpha19',"If((close >= Delay(close,5),(close-Delay(close,5))/close),(close-Delay(close,5))/Delay(close,5))",is_quarterly=False,add_data=True)
L010020B alpha20
(CLOSE-DELAY(CLOSE,6))/DELAY(CLOSE,6)*100
alpha20 = dv.add_formula('alpha20',"(close-Delay(close,6))/Delay(close,6)*100",
is_quarterly=False, add_data=True)
L010021B alpha21
REGBETA(MEAN(CLOSE,6),SEQUENCE(6))
dv.add_formula('Mean','Ts_Mean(close,6)',is_quarterly = False, add_data = True)
alpha21 = dv.add_formula('alpha21',"Ta('LINEARREG_SLOPE',0,Mean,Mean,Mean,Mean,Mean,6)",
is_quarterly=False, add_data=True)
L010022B alpha22
SMEAN(((CLOSE-MEAN(CLOSE,6))/MEAN(CLOSE,6)-DELAY((CLOSE-MEAN(CLOSE,6))/MEAN(CLOSE,6),3)),12,1)
alpha22 = dv.add_formula('alpha22','Sma(((close-Ts_Mean(close,6))/Ts_Mean(close,6)-Delay((close-Ts_Mean(close,6))/Ts_Mean(close,6),3)),12,1)',is_quarterly=False,add_data=True)
L010023B alpha23
SMA((CLOSE>DELAY(CLOSE,1)?STD(CLOSE:20),0),20,1)/(SMA((CLOSE>DELAY(CLOSE,1)?STD(CLOSE,20):0),20,1)+SMA((CLOSE<=DELAY(CLOSE,1)?STD(CLOSE,20):0),20,1))*100
alpha23=dv.add_formula('alpha23',"Sma(If(close>Delay(close,1),StdDev(close,20),0),20,1)/(Sma(If(close>Delay(close,1),StdDev(close,20),0),20,1)+Sma(If(close<=Delay(close,1),StdDev(close,20),0),20,1))*100",is_quarterly=False,add_data=True)
L010024B alpha24
SMA(CLOSE-DELAY(CLOSE,5),5,1)
alpha24=dv.add_formula('alpha24',"Sma(close-Delay(close,5),5,1)",is_quarterly=False,add_data=True)
L010025B alpha25
((-1 * RANK((DELTA(CLOSE, 7) * (1 - RANK(DECAYLINEAR((VOLUME / MEAN(VOLUME,20)), 9)))))) * (1 +RANK(SUM(RET, 250))))
周后7期的收盘价的Rank乘以(1-成交量除以9天移动平均成交量的20天线性衰减)乘以(1+1天收益的290天求和的Rank)。
alpha25=dv.add_formula('alpha25', '((-1 * Rank((Delta(close, 7) * (1 - Rank(Decay_linear((volume / Ts_Mean(volume,20)), 9)))))) * (1+Rank(Ts_Sum(close/Delay(close,1)-1, 250))))', is_quarterly=False, add_data=True)
L010026B alpha26
((((SUM(CLOSE, 7) / 7) - CLOSE)) + ((CORR(VWAP, DELAY(CLOSE, 5), 230))))
alpha26 = dv.add_formula('alpha26',"((((Ts_Sum(close, 7) / 7) - close)) + ((Correlation(vwap, Delay(close, 5), 230))))",is_quarterly=False,add_data=True
L010027B alpha27
WMA((CLOSE-DELAY(CLOSE,3))/DELAY(CLOSE,3)*100+(CLOSE-DELAY(CLOSE,6))/DELAY(CLOSE,6)*100,12)
alpha27 = dv.add_formula("alpha27","Ta('WMA',0,0,0,0,(close_adj-Delay(close_adj,3))/Delay(close_adj,3)*100+(close_adj-Delay(close_adj,6))/Delay(close_adj,6)*100,0,12)",
is_quarterly=False,add_data=True)
L010028B alpha28
3*SMA((CLOSE-TSMIN(LOW,9))/(TSMAX(HIGH,9)-TSMIN(LOW,9))*100,3,1)-2*SMA(SMA((CLOSE-TSMIN(LOW,9))/(MAX(HIGH,9)-TSMAX(LOW,9))*100,3,1),3,1)
alpha28 = dv.add_formula('alpha28',"3*Sma((close-Ts_Min(low,9))/(Ts_Max(high,9)-Ts_Min(low,9))*100,3,1)-2*Sma(Sma((close-Ts_Min(low,9))/(Max(high,9)-Ts_Max(low,9))*100,3,1),3,1)",is_quarterly=False,add_data=True)
L010029B alpha29
(CLOSE-DELAY(CLOSE,6))/DELAY(CLOSE,6)*VOLUME
6天收盘价的增长率乘以成交量
alpha29 = dv.add_formula('alpha29',"(close-Delay(close,6))/Delay(close,6)*volume"
, is_quarterly=False, add_data=True)
L010030B alpha30
WMA((REGRESI(CLOSE/DELAY(CLOSE)-1,MKT,SMB,HML,60))^2,20)
alpha30尚未实现
L010031B alpha31
(CLOSE-MEAN(CLOSE,12))/MEAN(CLOSE,12)*100
alpha31 = dv.add_formula("alpha31","(close-Ts_Mean(close,12))/Ts_Mean(close,12)*100",
is_quarterly=False,add_data=True)
L010032B alpha32
(-1 * SUM(RANK(CORR(RANK(HIGH), RANK(VOLUME), 3)), 3))
成交量的排名和最高价的排名在过去3天相关系数的排名结果每3个进行累加
alpha32 = dv.add_formula('alpha32',"(-1 * Ts_Sum(Rank(Corr(Rank(high), Rank(volume), 3)), 3))",
is_quarterly=False, add_data=True)
L010033B alpha33
((((-1 * TSMIN(LOW, 5)) + DELAY(TSMIN(LOW, 5), 5)) * RANK(((SUM(RET, 240) - SUM(RET, 20)) / 220))) *TSRANK(VOLUME, 5))
5天前的5天内最低价的最小值减去5天内最低价的最小值的差乘以240天的当日收益率累加减去240天的当日收益率累加除以220的商的差的排序乘以成交量在5天内的位置
alpha33=dv.add_formula('alpha33',"((((-1*Ts_Min(low,5))+Delay(Ts_Min(low,5),5))*Rank(((Ts_Sum(Return(close,1),240)-Ts_Sum(Return(close,1),20))/220)))*Ts_Rank(volume,5))",is_quarterly=False,add_data=False)
L010034B alpha34
MEAN(CLOSE,12)/CLOSE
alpha34= dv.add_formula('alpha34', "Ts_Mean(close_adj,12)/close_adj",
is_quarterly=False, add_data=True)
L010035B alpha35
(MIN(RANK(DECAYLINEAR(DELTA(OPEN, 1), 15)), RANK(DECAYLINEAR(CORR((VOLUME), ((OPEN * 0.65) +(OPEN *0.35)), 17),7))) * -1)
开盘价前一天的差价计算移动平均权,权重为15,14,...,1(权重和为1)进行升序排序,成交量、百分之65的开盘价与百分之36的开盘价的和在过去17天的相关系数,再计算移动平均权,权重为7,6,...,1(权重和为1)进行排序,两者选择最小值
alpha35 = dv.add_formula('alpha35',"(Min(Rank(Decay_linear(Delta(open, 1), 15)), Rank(Decay_linear(Corr((volume), ((open * 0.65) +(open *0.35)),17),7))) * -1)" ,is_quarterly=False, add_data=True)
L010036B alpha36
RANK(SUM(CORR(RANK(VOLUME), RANK(VWAP)), 6), 2)
成交量排名和均值排名的过去6天的相关系数的过去2天的加总的排名
alpha36 = dv.add_formula('alpha36', "Rank(Ts_Sum(Correlation(Rank(volume),Rank(vwap),6),2))",is_quarterly=False, add_data=True)
L010037B alpha37
(-1 * RANK(((SUM(OPEN, 5) * SUM(RET, 5)) - DELAY((SUM(OPEN, 5) * SUM(RET, 5)), 10))))
alpha37=dv.add_formula('alpha37',"(-Rank(((Ts_Sum(open, 5) * Ts_Sum((close/Delay(close,1) - 1), 5)) - Delay((Ts_Sum(open, 5) * Ts_Sum((close/Delay(close,1) - 1), 5)), 10))))",is_quarterly=False,add_data=True)
L010038B alpha38
(((SUM(HIGH, 20) / 20) < HIGH) ? (-1 * DELTA(HIGH, 2)) : 0)
alpha38 = dv.add_formula('alpha38',"If(((Ts_Sum(high, 20) / 20) < high) , (-1 * Delta(high, 2)) , 0)",is_quarterly=False,add_data=True)
L010039B alpha39
((RANK(DECAYLINEAR(DELTA((CLOSE), 2),8)) - RANK(DECAYLINEAR(CORR(((VWAP * 0.3) + (OPEN * 0.7)),SUM(MEAN(VOLUME,180), 37), 14), 12))) * -1)
alpha39 = dv.add_formula('alpha39',"((Rank(Decay_linear(Delta((close), 2),8)) - Rank(Decay_linear(Correlation(((vwap * 0.3) + (open * 0.7)),Ts_Sum(Ts_Mean(volume,180), 37), 14), 12))) * -1)",is_quarterly = False,add_data=True)
L010040B alpha40
SUM((CLOSE>DELAY(CLOSE,1)?VOLUME:0),26)/SUM((CLOSE<=DELAY(CLOSE,1)?VOLUME:0),26)*100
alpha40 = dv.add_formula('alpha40', "Ts_Sum((If(close>Delay(close,1),volume,0)),26)/Ts_Sum((If(close<=Delay(close,1),volume,0)),26)*100",is_quarterly=False, add_data=True)
L010041B alpha41
(RANK(MAX(DELTA((VWAP), 3), 5))* -1)
对vwap求4天的差值,取3天内的最大值,然后进行排序
alpha41=dv.add_formula('alpha41','(Rank(Max(Delta((vwap), 3), 5))* -1)',is_quarterly=False,add_data=True)
L010042B alpha42
((-1 * RANK(STD(HIGH, 10))) * CORR(HIGH, VOLUME, 10))
最高价的标准差的降序与最高价和成交量的相关系数的乘积
alpha42 = dv.add_formula('alpha42', "((-1*Rank(StdDev(high,10)))*Correlation(high,volume,10))",
is_quarterly=False, add_data=True)
L010043B alpha43
SUM((CLOSE>DELAY(CLOSE,1)?VOLUME:(CLOSE< DELAY(CLOSE,1)?-VOLUME:0)),6)
如果今日较昨日上涨,则返回成交量,今日较昨日下跌,则返回成交量得负数,若没涨没跌,则返回0,并对6日的结果进行求和
alpha43 = dv.add_formula("alpha43", "Ts_Sum(If(close>Delay(close,1),volume,If(close<Delay(close,1),-volume,0)),6)",is_quarterly=False,add_data=True)
L010044B alpha44
(TSRANK(DECAYLINEAR(CORR(((LOW )), MEAN(VOLUME,10), 7), 6),4) + TSRANK(DECAYLINEAR(DELTA((VWAP),3), 10), 15))
(10日成交量均值与最低价的过去7天相关系数的过去6天线性衰减的过去4天的排名) + (成交量加权平均价-3)的10日线性衰减的15天排名
alpha44 = dv.add_formula("alpha44","Ts_Rank(Decay_linear(Correlation(((low)),Ts_Mean(volume,10),7),6),4)+Ts_Rank(Decay_linear(Delta((vwap),3),10),15)",is_quarterly=False,add_data = True)
L010045B alpha45
(RANK(DELTA((((CLOSE * 0.6) + (OPEN *0.4))), 1)) * RANK(CORR(VWAP, MEAN(VOLUME,150), 15)))
alpha45 = dv.add_formula('alpha45', 'Rank(Delta(((close*0.6)+(open*0.4)),1)) * Rank(Correlation(vwap, Ts_Mean(volume,150), 15))', is_quarterly=False, add_data=True)
L010046B alpha46
(MEAN(CLOSE,3)+MEAN(CLOSE,6)+MEAN(CLOSE,12)+MEAN(CLOSE,24))/(4*CLOSE)
均线的平均值,度量是否有拉涨的趋势
alpha46 = dv.add_formula('alpha46',"(Ts_Mean(close,3)+Ts_Mean(close,6)+Ts_Mean(close,12)+Ts_Mean(close,24))/(4*close)",is_quarterly=False,add_data=True)
L010047B alpha47
SMA((TSMAX(HIGH,6)-CLOSE)/(TSMAX(HIGH,6)-TSMIN(LOW,6))*100,9,1)
alpha47 = dv.add_formula('alpha47',"Sma((Ts_Max(high,6)-close)/(Ts_Max(high,6)-Ts_Min(low,6)) * 100,9,1)" ,is_quarterly=False, add_data=True)
L010048B alpha48
(-1*((RANK(((SIGN((CLOSE - DELAY(CLOSE, 1))) + SIGN((DELAY(CLOSE, 1) - DELAY(CLOSE, 2)))) +SIGN((DELAY(CLOSE, 2) - DELAY(CLOSE, 3)))))) * SUM(VOLUME, 5)) / SUM(VOLUME, 20))
alpha48 = dv.add_formula('alpha48',"(-1*((Rank(((Sign((close - Delay(close, 1))) + Sign((Delay(close, 1) - Delay(close, 2)))) +Sign((Delay(close, 2) - Delay(close, 3)))))) * Ts_Sum(volume, 5)) / Ts_Sum(volume, 20))",is_quarterly=False,add_data=True)
L010049B alpha49
"SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12))"
当最高价与最低价之和大于或等于前一天最高价与最低价之和时,返回0,否则返回1
alpha49 = dv.add_formula('alpha49', "Ts_Sum(If(((high+low)>=(Delay(high,1)+Delay(low,1))),0,Max(Abs(high-Delay(high,1)),Abs(low-Delay(low,1)))),12)/(Ts_Sum(If(((high+low)>=(Delay(high,1)+Delay(low,1))),0,Max(Abs(high-Delay(high,1)),Abs(low-Delay(low,1)))),12)+Ts_Sum(If(((high+low)<=(Delay(high,1)+Delay(low,1))),0,Max(Abs(high-Delay(high,1)),Abs(low-Delay(low,1)))),12))",
is_quarterly=False, add_data=True)
L010050B alpha50
"SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12))-SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12))"
A = dv.add_formula('A',"Ts_Sum((If((high+low)<=(Delay(high,1)+Delay(low,1)),0,Max(Abs(high-Delay(high,1)),Abs(low-Delay(low,1))))),12)",is_quarterly=False,add_data=True)
B = dv.add_formula('B',"Ts_Sum((If((high+low)>=(Delay(high,1)+Delay(low,1)),0,Max(Abs(high-Delay(high,1)),Abs(low-Delay(low,1))))),12)",is_quarterly=False,add_data=True)
alpha50 = dv.add_formula('alpha50',"(A/(A+B))-(B/(A+B))",is_quarterly=False,add_data=True)
L010051B alpha51
"SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)/(SUM(((HIGH+LOW)<=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12)+SUM(((HIGH+LOW)>=(DELAY(HIGH,1)+DELAY(LOW,1))?0:MAX(ABS(HIGH-DELAY(HIGH,1)),ABS(LOW-DELAY(LOW,1)))),12))"
alpha51 = dv.add_formula('alpha51','''Ts_Sum(If((high+low)<=(Delay(high,1)+Delay(low, 1)),0, Max(Abs(high-Delay(high,1)),Abs(low-Delay(low,1)))), 12)/(Ts_Sum(If((high+low)<=(Delay(high,1)+Delay(low,1)),0,Max(Abs(high-Delay(high,1)),Abs(low-Delay(low,1)))),12)+Ts_Sum(If((high+low)>=(Delay(high,1)+Delay(low,1)),0,Max(Abs(high-Delay(high,1)),Abs(low-Delay(low,1)))),12))''',
is_quarterly=False, add_data=True)
L010052B alpha52
SUM(MAX(0,HIGH-DELAY((HIGH+LOW+CLOSE)/3,1)),26)/SUM(MAX(0,DELAY((HIGH+LOW+CLOSE)/3,1)-LOW),26)*100
alpha52 = dv.add_formula(alpha52, 'Ts_Sum(Max(0,high-Delay((high+low+close)/3,1)),26)/Ts_Sum(Max(0,Delay((high+low+close)/3,1)-low),26)*100',is_quarterly=False, add_data=True)
L010053B alpha53
COUNT(CLOSE>DELAY(CLOSE,1),12)/12*100
alpha53 = dv.add_formula('alpha53',"Sqrt(CountNans(close>Delay(close,1),12)/12*100)"
, is_quarterly=False, add_data=True)
L010054B alpha54
(-1 * RANK((STD(ABS(CLOSE - OPEN)) + (CLOSE - OPEN)) + CORR(CLOSE, OPEN,10)))
alpha54=dv.add_formula('alpha54',"(-1 * Rank((StdDev(Abs(close-open),5) + (close-open)) + Corr(close, open,10)))",is_quarterly=False,add_data=True)
L010055B alpha55
"SUM(16*(CLOSE-DELAY(CLOSE,1)+(CLOSE-OPEN)/2+DELAY(CLOSE,1)-DELAY(OPEN,1))/((ABS(HIGH-DELAY(CLOSE,1))>ABS(LOW-DELAY(CLOSE,1))&ABS(HIGH-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1))?ABS(HIGH-DELAY(CLOSE,1))+ABS(LOW-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:(ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1)) &ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(CLOSE,1))?ABS(LOW-DELAY(CLOSE,1))+ABS(HIGH-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:ABS(HIGH-DELAY(LOW,1))+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4)))*MAX(ABS(HIGH-DELAY(CLOSE,1)),ABS(LOW-DELAY(CLOSE,1))),20)"
alpha55 = dv.add_formula('alpha55', 'Ts_Sum(16*(close-Delay(close,1)+(close-open)/2+Delay(close,1)-Delay(open,1))/(If(Abs(high-Delay(close,1))>Abs(low-Delay(close,1))&&Abs(high-Delay(close,1))>Abs(high-Delay(low,1)),Abs(high-Delay(close,1))+Abs(low-Delay(close,1))/2+Abs(Delay(close,1)-Delay(open,1))/4,If(Abs(low-Delay(close,1))>Abs(high-Delay(low,1))&&Abs(low-Delay(close,1))>Abs(high-Delay(close,1)),Abs(low-Delay(close,1))+Abs(high-Delay(close,1))/2+Abs(Delay(close,1)-Delay(open,1))/4,Abs(high-Delay(low,1))+Abs(Delay(close,1)-Delay(open,1))/4)))*Max(Abs(high-Delay(close,1)),Abs(low-Delay(close,1))),20)',
is_quarterly=False, add_data=True)
L010056B alpha56
(RANK((OPEN-TSMIN(OPEN, 12)))
alpha56=dv.add_formula('alpha56',"(Rank((open-Ts_Min(open, 12)))<Rank((Rank(Corr(Ts_Sum(((high+low)/2),19),Ts_Sum(Ts_Mean(volume,40), 19), 13))^5)))",is_quarterly=False,add_data=True)
L010057B alpha57
SMA((CLOSE-TSMIN(LOW,9))/(TSMAX(HIGH,9)-TSMIN(LOW,9))*100,3,1)
alpha57 = dv.add_formula('alpha57', "Ta('SMA',0,0,0,0,close-Ts_Min(low,9)/(Ts_Max(high,9)-Ts_Min(low,9))*100,3,1)",is_quarterly = False,add_data=True)
L010058B alpha58
COUNT(CLOSE>DELAY(CLOSE,1),20)/20*100
计算20天内当日收盘价大于昨日收盘价的天数占20天的百分比
alpha58=dv.add_formula('alpha58',"Ts_Sum(If(close>Delay(close,1),1,0),20)/20*100"
,is_quarterly=False,add_data=False)
L010059B alpha59
SUM((CLOSE=DELAY(CLOSE,1)?0:CLOSE-(CLOSE>DELAY(CLOSE,1)?MIN(LOW,DELAY(CLOSE,1)):MAX(HIGH,DELAY(CLOSE,1)))),20)
alpha59 = dv.add_formula('alpha59','Ts_Sum(If(close==Delay(close,1),0,close-If(close>Delay(close,1),Min(low,Delay(close,1)),Max(high,Delay(close,1)))),20)',is_quarterly=False,add_data=True)
L010060B alpha60
SUM(((CLOSE-LOW)-(HIGH-CLOSE))./(HIGH-LOW).*VOLUME,20)
20日收盘价减最低价与最高价减收盘价的差除以最高价减最低价的商乘以成交量的和
alpha60 = dv.add_formula('alpha60', "Ts_Sum(((close-low)-(high-close))/(high-low)*volume,20)",
is_quarterly=False, add_data=True)
L010061B alpha61
(MAX(RANK(DECAYLINEAR(DELTA(VWAP,1),12)),RANK(DECAYLINEAR(RANK(CORR((LOW),MEAN(VOLUME,80), 8)), 17))) * -1)
12日均价的移动加权平均数和17日最低价、80日均价的平均数的方差的移动加权平均数最大值的相反数
alpha61 = dv.add_formula('alpha61', "(Max(Rank(Decay_linear(Delta(vwap,1),12)),Rank(Decay_linear(Rank(Corr((low),Ts_Mean(volume,80),8)), 17))) * -1)",is_quarterly=False, add_data=True)
L010062B alpha62
RANK(DECAYLINEAR(RANK(CORR((LOW),MEAN(VOLUME,80), 8)), 17))) * -1)
最低价与成交量的80天移动平均的相关系数的Rank的线性衰减的Rank。
alpha62 = dv.add_formula('alpha62', "Rank(Decay_linear(Rank(Corr((low),Ts_Mean(volume,80),8)), 17))) * -1)",is_quarterly=False, add_data=True)
L010063B alpha63
SMA(MAX(CLOSE-DELAY(CLOSE,1),0),6,1)/SMA(ABS(CLOSE-DELAY(CLOSE,1)),6,1)*100
alpha63=dv.add_formula('alpha63',"Sma(Max(close-Delay(close,1),0),6,1)/Sma(Abs(close-Delay(close,1)),6,1)*100",is_quarterly=False,add_data=True)
L010064B alpha64
(MAX(RANK(DECAYLINEAR(CORR(RANK(VWAP),RANK(VOLUME),4),4)),RANK(DECAYLINEAR(MAX(CORR(RANK(CLOSE), RANK(MEAN(VOLUME,60)), 4), 13), 14))) * -1)
alpha64 = dv.add_formula("alpha64",'''(Max(Rank(Decay_linear(Corr(Rank(vwap),Rank(volume),4),4)),Rank(Decay_linear(Max(Corr(Rank(close), Rank(Ts_Mean(volume,60)), 4), 13), 14))) * -1)''',is_quarterly=False, add_data=True)
L010065B alpha65
MEAN(CLOSE,6)/CLOSE
收盘价6日均线
alpha65=dv.add_formula('alpha65',"Ts_Mean(close,6)/close",is_quarterly=False,add_data=True)
L010066B alpha66
(CLOSE-MEAN(CLOSE,6))/MEAN(CLOSE,6)*100
当天的收盘价对比过去6天平均收盘价的变化率乘100
alpha66 = dv.add_formula('alpha66', "(close-Ts_Mean(close,6))/Ts_Mean(close,6)*100",
is_quarterly=False,add_data=True)
L010067B alpha67
SMA(MAX(CLOSE-DELAY(CLOSE,1),0),24,1)/SMA(ABS(CLOSE-DELAY(CLOSE,1)),24,1)*100
alpha67 = dv.add_formula('alpha67','Sma(Max(close_adj-Delay(close_adj,1),0),24,1)/Sma(Abs(close_adj-Delay(close_adj,1)),24,1)*100',is_quarterly=False, add_data=True)
L010068B alpha68
SMA(((HIGH+LOW)/2-(DELAY(HIGH,1)+DELAY(LOW,1))/2)*(HIGH-LOW)/VOLUME,15,2)
alpha68=dv.add_formula('alpha68','Sma(((high+low)/2-(Delay(high,1)+(Delay(low,1)))/2)*(high-low)/volume,15,2)',is_quarterly=False,add_data=True)
L010069B alpha69
(SUM(DTM,20)>SUM(DBM,20)? 0:(SUM(DTM,20)-SUM(DBM,20))/SUM(DBM,20)))
DTM = dv.add_formula('DTM','If(open<=Delay(open, 1), 0, Max((high-open), (open-Delay(open, 1))))',
is_quarterly=False, add_data=True)
DBM = dv.add_formula('DBM','If(open>=Delay(open, 1), 0, Max((open-low), (open-Delay(open, 1))))',
is_quarterly=False, add_data=True)
alpha69 = dv.add_formula('alpha69','If(Ts_Sum(DTM,20)>Ts_Sum(DBM,20), 0,(Ts_Sum(DTM,20)-Ts_Sum(DBM,20))/Ts_Sum(DBM,20))',is_quarterly=False, add_data=True)
L010070B alpha70
STD(AMOUNT,6)
取成交额在过去6天的标准差
alpha70 = dv.add_formula('alpha70', "StdDev(turnover,6)",
is_quarterly=False, add_data=True)
L010071B alpha71
(CLOSE-MEAN(CLOSE,24))/MEAN(CLOSE,24)*100
alpha71 = dv.add_formula('alpha71', '(close-Ts_Mean(close, 24))/Ts_Mean(close, 24)*100', is_quarterly=False, add_data=True)
L010072B alpha72
SMA((TSMAX(HIGH,6)-CLOSE)/(TSMAX(HIGH,6)-TSMIN(LOW,6))*100,15,1)
alpha72 =dv.add_formula('alpha72',"Sma((Ts_Max(high,{})-close)/(Ts_Max(high,{})-Ts_Min(low,{}))*{},{},{})".format(6,6,6,100,15,1),is_quarterly=False,add_data=True)
L010073B alpha73
((TSRANK(DECAYLINEAR(DECAYLINEAR(CORR((CLOSE),VOLUME,10),16),4),5),-RANK(DECAYLINEAR(CORR(VWAP, MEAN(VOLUME,30), 4),3))) * -1)
alpha73 = dv.add_formula('alpha73',"-1*(Ts_Rank(Decay_linear(Decay_linear(Correlation(close,volume,10),16),4),5)-Rank(Decay_linear(Correlation(vwap,Ts_Mean(volume,30),4),3)))",
is_quarterly=False,add_data=True)
L010074B alpha74
(RANK(CORR(SUM(((LOW 0.35) (VWAP 0.65)), 20), SUM(MEAN(VOLUME,40), 20), 7))+RANK(CORR(RANK(VWAP), RANK(VOLUME), 6)))
alpha74 = dv.add_formula('alpha74','Rank(Correlation(Ts_Sum(((low_adj*0.35)+(vwap_adj*0.65)), 20), Ts_Sum(Ts_Mean(volume,40), 20), 7))+Rank(Correlation(Rank(vwap_adj), Rank(volume), 6))',
is_quarterly=False, add_data=False)
L010075B alpha75
COUNT(CLOSE>OPEN&BANCHMARKINDEXCLOSE
# hs300, msg = dv.data_api.daily("000300.SH",dv.extended_start_date_d,dv.end_date,fields='trade_date,close,open')
# hs300_benchmark = hs300[['trade_date','close']].set_index('trade_date')
# hs300 = 0*dv.get_ts('close_adj')
# for i in range(hs300.shape[1]):
# hs300.iloc[:,i]=hs300_benchmark
# dv.append_df(hs300,'BANCHMARKINDEXCLOSE')
# hs300, msg = dv.data_api.daily("000300.SH",dv.extended_start_date_d,dv.end_date,fields='trade_date,close,open')
# hs300_benchmark = hs300[['trade_date','open']].set_index('trade_date')
# hs300 = 0*dv.get_ts('open')
# for i in range(hs300.shape[1]):
# hs300.iloc[:,i]=hs300_benchmark
# dv.append_df(hs300,'BANCHMARKINDEXOPEN')
# alpha75 = dv.add_formula('alpha75',
# "Ts_Sum(If((close>open) && BANCHMARKINDEXCLOSE<BANCHMARKINDEXOPEN , 1 , 0),50) / Ts_Sum(If(BANCHMARKINDEXCLOSE<BANCHMARKINDEXOPEN, 1,0),50)"
# , is_quarterly=False, add_data=True)
benchmark问题,以上公式仅参考
L010076B alpha76
STD(ABS((CLOSE/DELAY(CLOSE,1)-1))/VOLUME,20)/MEAN(ABS((CLOSE/DELAY(CLOSE,1)-1))/VOLUME,20)
alpha76 = dv.add_formula('alpha76','StdDev(Abs((close_adj/Delay(close_adj,1)-1))/volume,20)/Ts_Mean(Abs((close_adj/Delay(close_adj,1)-1))/volume,20)',is_quarterly=False,add_data=True)
L010077B alpha77
MIN(RANK(DECAYLINEAR(((((HIGH+LOW)/2)+HIGH)-(VWAP+HIGH)),20)),RANK(DECAYLINEAR(CORR(((HIGH + LOW) / 2), MEAN(VOLUME,40), 3), 6)))
Decay_linear_content1="((high+low)/2+high)-(vwap+high)"
Decay_linear_content2="Correlation(((high+low)/2),Ts_Mean(volume,40),3)"
Rank1="Rank(Decay_linear({},20))".format(Decay_linear_content1)
Rank2="Rank(Decay_linear({},6))".format(Decay_linear_content2)
alpha77=dv.add_formula('alpha77','Min({},{})'.format(Rank1,Rank2),is_quarterly=False,add_data=True)
L010078B alpha78
((HIGH+LOW+CLOSE)/3-MA((HIGH+LOW+CLOSE)/3,12))/(0.015*MEAN(ABS(CLOSE-MEAN((HIGH+LOW+CLOSE)/3,12)),12))
alpha78=dv.add_formula('alpha78',"(-((high+low+close)/3-Ts_Mean((high+low+close)/3,12))/(0.015*Ts_Mean(Abs(close-Ts_Mean((high+low+close)/3,12)),12)))",is_quarterly=False,add_data=True)
L010079B alpha79
SMA(MAX(CLOSE-DELAY(CLOSE,1),0),12,1)/SMA(ABS(CLOSE-DELAY(CLOSE,1)),12,1)*100
dv.add_formula('a',"close-Delay(close,1)",is_quarterly=False, add_data=True)
alpha79 = dv.add_formula('alpha79',"Sma(Max(a,0),12,1)/Sma(Abs(a),12,1)*100" ,is_quarterly=False, add_data=True)
L010080B alpha80
(VOLUME-DELAY(VOLUME,5))/DELAY(VOLUME,5)*100
(成交量-昨日成交量)/ 除以昨日成交量 * 100
alpha80 = dv.add_formula("alpha80", "(volume-Delay(volume,5))/Delay(volume,5)*100"
, is_quarterly=False,add_data=True)
L010081B alpha81
SMA(VOLUME,21,2)
成交量的权重为2的21日移动平均
alpha81=dv.add_formula('alpha81','Sma(volume,21,2)',is_quarterly=False,add_data=True)
L010082B alpha82
SMA((TSMAX(HIGH,6)-CLOSE)/(TSMAX(HIGH,6)-TSMIN(LOW,6))*100,20,1)
alpha82 = dv.add_formula('alpha82',"Sma((Ts_Max(high,6)-close)/(Ts_Max(high,6)-Ts_Min(low,6))*100,20,1)", is_quarterly=False, add_data=True)
L010083B alpha83
(-1 * RANK(COVIANCE(RANK(HIGH), RANK(VOLUME), 5)))
alpha83=dv.add_formula('alpha83',"(-1*Rank(Covariance(Rank(high),Rank(volume),5)))",is_quarterly=False,add_data=True)
L010084B alpha84
SUM((CLOSE>DELAY(CLOSE,1)?VOLUME:(CLOSE
20日成交量之和,其中若收盘价高于前一天收盘价取正,低于取负,相等取零
alpha84 = dv.add_formula('alpha84', "Ts_Sum(If(close>Delay(close,1),volume,If(close<Delay(close,1),-volume,0)),20)", is_quarterly=False, add_data=True)
L010085B alpha85
(TSRANK((VOLUME / MEAN(VOLUME,20)), 20) * TSRANK((-1 * DELTA(CLOSE, 7)), 8))
成交量均值排序与收盘价差反序的乘积
alpha85 = dv.add_formula('alpha85',"(Ts_Rank((volume / Ts_Mean(volume,20)), 20) * Ts_Rank((-1 * Delta(close, 7)), 8))",is_quarterly=False,add_data=True)
L010086B alpha86
((0.25 < (((DELAY(CLOSE, 20) - DELAY(CLOSE, 10)) / 10) - ((DELAY(CLOSE, 10) - CLOSE) / 10))) ? (-1 * 1) :(((((DELAY(CLOSE, 20) - DELAY(CLOSE, 10)) / 10) - ((DELAY(CLOSE, 10) - CLOSE) / 10)) < 0) ? 1 : ((-1 * 1) *(CLOSE - DELAY(CLOSE, 1)))))
如果20天前的收盘价与十天前的收盘价的差额减去十天前的收盘价与今天的收盘价的差额的差除以10大于0.25,因子值取-1,否则如果前面的差小于0,因子值取1,否则取后一天的收盘价减去前一天的收盘价为因子值
alpha86 = dv.add_formula('alpha86', "If(((((Delay(close, 20) - Delay(close, 10))/10) - ((Delay(close, 10) - close) / 10))>0.25) , (-1) ,(If(((((Delay(close, 20) - Delay(close, 10)) / 10) - ((Delay(close, 10) - close) / 10)) < 0) , 1 ,((-1) *(close - Delay(close, 1))))))",
is_quarterly=False, add_data=True)
L010087B alpha87
((RANK(DECAYLINEAR(DELTA(VWAP, 4), 7)) + TSRANK(DECAYLINEAR(((((LOW * 0.9) + (LOW * 0.1)) - VWAP) /(OPEN - ((HIGH + LOW) / 2))), 11), 7)) * -1)
alpha87 = dv.add_formula('alpha87','((Rank(Decay_linear(Delta(vwap, 4), 7)) + Ts_Rank(Decay_linear(((((low * 0.9) + (low * 0.1)) - vwap) /(open - ((high + low) / 2))), 11), 7)) * -1)'
, is_quarterly = False,add_data=True)
L010088B alpha88
(CLOSE-DELAY(CLOSE,20))/DELAY(CLOSE,20)*100
股价20天收益率
alpha88 = dv.add_formula('alpha88', "((close-Delay(close,20))/Delay(close,20))*100"
, is_quarterly=False, add_data=True)
L010089B alpha89
2*(SMA(CLOSE,13,2)-SMA(CLOSE,27,2)-SMA(SMA(CLOSE,13,2)-SMA(CLOSE,27,2),10,2))
alpha89=dv.add_formula('alpha89','2*(Sma(close,13,2)-Sma(close,27,2)-Sma(Sma(close,13,2)-Sma(close,27,2),10,2))',is_quarterly=False,add_data=True)
L010090B alpha90
( RANK(CORR(RANK(VWAP), RANK(VOLUME), 5)) * -1)
成交量的排名和均价的排名在过去5天相关系数的排名
alpha90 = dv.add_formula('alpha90',"( Rank(Corr(Rank(vwap), Rank(volume), 5)) * -1)",
is_quarterly=False, add_data=True)
L010091B alpha91
((RANK((CLOSE - MAX(CLOSE, 5)))*RANK(CORR((MEAN(VOLUME,40)), LOW, 5))) * -1)
当日收盘价减去收盘价与5的较大值的排名乘以40日平均交易量与最低价在5日内的相关系数的排名
alpha91 = dv.add_formula('alpha91', "((Rank((close - Max(close, 5)))*Rank(Correlation((Ts_Mean(volume,40)), low, 5))) * -1)",is_quarterly=False, add_data=True)
L010092B alpha92
(MAX(RANK(DECAYLINEAR(DELTA(((CLOSE*0.35)+(VWAP*0.65)),2),3)),TSRANK(DECAYLINEAR(ABS(CORR((MEAN(VOLUME,180)), CLOSE, 13)), 5), 15)) * -1)
alpha92=dv.add_formula('alpha92',"(Max(Rank(Decay_linear(Delta(((close*0.35)+(vwap*0.65)),2),3)),Ts_Rank(Decay_linear(Abs(Corr((Ts_Mean(volume,180)), close, 13)), 5), 15)) * -1)",
is_quarterly=False,add_data=True)
L010093B alpha93
SUM((OPEN>=DELAY(OPEN,1)?0:MAX((OPEN-LOW),(OPEN-DELAY(OPEN,1)))),20)
alpha93=dv.add_formula('alpha93',"Ts_Sum((If(open >= Delay(open,1), 0, Max((open-low),(open - Delay(open,1))))), 20)",is_quarterly=False,add_data=True)
L010094B alpha94
SUM((CLOSE>DELAY(CLOSE,1)?VOLUME:(CLOSE
alpha94 = dv.add_formula('alpha94','''Ts_Sum(If(close_adj>Delay(close_adj,1),volume,
If(close_adj<Delay(close_adj,1),-volume,0)),30)''',is_quarterly=False, add_data=True)
L010095B alpha95
STD(AMOUNT,20)
dv.add_field('turnover')
alpha95 = dv.add_formula('alpha95','StdDev(turnover, 20)',
is_quarterly=False, add_data=True)
L010096B alpha96
SMA(SMA((CLOSE-TSMIN(LOW,9))/(TSMAX(HIGH,9)-TSMIN(LOW,9))*100,3,1),3,1)
将收盘价和9日内的最高价格和最低价格进行相关运算之后进行递归
alpha96 = dv.add_formula('alpha96',"Sma(Sma((close-Ts_Min(low,9))/(Ts_Max(high,9)-Ts_Min(low,9))*100,3,1),3,1)", is_quarterly=False, add_data=True)
L010097B alpha97
STD(VOLUME,10)
alpha97 = dv.add_formula('alpha97', 'StdDev(volume, 10)', add_data = True, is_quarterly = False)
L010098B alpha98
((((DELTA((SUM(CLOSE, 100) / 100), 100) / DELAY(CLOSE, 100)) < 0.05) || ((DELTA((SUM(CLOSE, 100) / 100), 100) /DELAY(CLOSE, 100)) == 0.05)) ? (-1 * (CLOSE - TSMIN(CLOSE, 100))) : (-1 * DELTA(CLOSE, 3)))
alpha98=dv.add_formula('alpha98',"If((Delta((Ts_Mean(close,100)), 100) / Delay(close, 100)) <= 0.05, (-1 * (close - Ts_Min(close, 100))) , (-1 * Delta(close, 3)))",is_quarterly=False,add_data=True)
L010099B alpha99
(-1 * RANK(COVIANCE(RANK(CLOSE), RANK(VOLUME), 5)))
收盘价排序与成交量排序在过去5天的协方差排序值的相反数
alpha99 = dv.add_formula('alpha99', "(-1*Rank(Covariance(Rank(close),Rank(volume),5)))",
is_quarterly=False, add_data=True)
L010100B alpha100
STD(VOLUME,20)
alpha100 = dv.add_formula('alpha100', 'StdDev(volume,20)',
is_quarterly=False, add_data=True)
L010101B alpha101
((RANK(CORR(CLOSE, SUM(MEAN(VOLUME,30), 37), 15)) < RANK(CORR(RANK(((HIGH * 0.1) + (VWAP * 0.9))),RANK(VOLUME), 11))) * -1)
相关系数的排序
alpha101 = dv.add_formula('alpha101', "((Rank(Corr(close,Ts_Sum(Ts_Mean(volume,30),37),15))< Rank(Corr(Rank(((high*0.1) + (vwap*0.9))),Rank(volume),11)))* -1)",is_quarterly=False,add_data=True)
L010102B alpha102
SMA(MAX(VOLUME-DELAY(VOLUME,1),0),6,1)/SMA(ABS(VOLUME-DELAY(VOLUME,1)),6,1)*100
alpha102=dv.add_formula('alpha102',"Sma(Max(volume-Delay(volume,1),0),6,1)/Sma(Abs(volume-Delay(volume,1)),6,1)*100",is_quarterly=False,add_data=True)
L010103B alpha103
((20-LOWDAY(LOW,20))/20)*100
20减最低价在前20期时间序列中最小值距离当前时点的间隔的差值,再除以20天得到其百分比
import numpy as np
def LOWDAY(A, n):
return (n-1) - A.rolling(window=n).apply(lambda x: np.argsort(x)[n-1]).fillna(method = 'ffill').fillna(method='bfill')
alpha103 = dv.add_formula('alpha103',"((20-LOWDAY(low,20))/20)*100",
is_quarterly=False, add_data=True,register_funcs={"LOWDAY":LOWDAY})
L010104B alpha104
(-1 * (DELTA(CORR(HIGH, VOLUME, 5), 5) * RANK(STD(CLOSE, 20))))
最高价与交易量在五天内的相关系数与此数值五天前数值的差值乘以收盘价在过去20天的标准差的排名
alpha104 = dv.add_formula('alpha104', "(-1 * (Delta(Correlation(high, volume, 5), 5) * Rank(StdDev(close, 20))))",is_quarterly=False, add_data=True)
L010105B alpha105
(-1 * CORR(RANK(OPEN), RANK(VOLUME), 10))
alpha105 =dv.add_formula('alpha105',"(-1 * Corr(Rank(open), Rank(volume), 10))",is_quarterly=False,add_data=True)
L010106B alpha106
CLOSE-DELAY(CLOSE,20)
当天收盘价和20天前收盘价的差价。
alpha106=dv.add_formula('alpha106', 'close_adj-Delay(close_adj,{})'.format(20), is_quarterly=False, add_data=True)
L010107B alpha107
(((-1 * RANK((OPEN - DELAY(HIGH, 1)))) * RANK((OPEN - DELAY(CLOSE, 1)))) * RANK((OPEN - DELAY(LOW, 1))))
alpha107 = dv.add_formula('alpha107', "(((-1 * Rank((open - Delay(high, 1)))) * Rank((open - Delay(close, 1)))) * Rank((open - Delay(low, 1))))",is_quarterly=False, add_data=True)
L010108B alpha108
((RANK((HIGH - MIN(HIGH, 2)))^RANK(CORR((VWAP), (MEAN(VOLUME,120)), 6))) * -1)
(最高价在过去两日增长的排名)^(成交量加权平均价与过去120天的平均成交量在过去6天的相关系数排名)*-1
alpha108 = dv.add_formula('alpha108',"((Rank(high-Ts_Min(high,2)))^(Rank(Correlation(vwap,Ts_Mean(volume,120),6)))*-1)",is_quarterly=False,add_data=True)
L010109B alpha109
SMA(HIGH-LOW,10,2)/SMA(SMA(HIGH-LOW,10,2),10,2)
alpha109=dv.add_formula('alpha109',"Sma(high-low,10,2)/Sma(Sma(high-low,10,2),10,2)",is_quarterly=False,add_data=True)
L010110B alpha110
SUM(MAX(0,HIGH-DELAY(CLOSE,1)),20)/SUM(MAX(0,DELAY(CLOSE,1)-LOW),20)*100
alpha110 = dv.add_formula('alpha110', "Ts_Sum(Max(0,high-Delay(close,1)),20)/Ts_Sum(Max(0,Delay(close,1)-low),20)*100",is_quarterly=False, add_data=True)
L010111B alpha111
SMA(VOL*((CLOSE-LOW)-(HIGH-CLOSE))/(HIGH-LOW),11,2)-SMA(VOL*((CLOSE-LOW)-(HIGH-CLOSE))/(HIGH-LOW),4,2)
收盘价与最低价的差减去最高价与收盘价的差之后再除以最高价与最低价的差再乘以成交量,并计算这个指标的11天EMA平均与4天EMA平均的差(SMA(n,2)与原式EMA(n)等同)
alpha111=dv.add_formula('alpha111',"Sma(volume*((close-low)-(high-close))/(high-low),11,2)-Sma(volume*((close-low)-(high-close))/(high-low),4,2)",is_quarterly=False,add_data=True)
L010112B alpha112
(SUM((CLOSE-DELAY(CLOSE,1)>0?CLOSE-DELAY(CLOSE,1):0),12)-SUM((CLOSE-DELAY(CLOSE,1)<0?ABS(CLOSE-DELAY(CLOSE,1)):0),12))/(SUM((CLOSE-DELAY(CLOSE,1)>0?CLOSE-DELAY(CLOSE,1):0),12)+SUM((CLOSE-DELAY(CLOSE,1)<0?ABS(CLOSE-DELAY(CLOSE,1)):0),12))*100
alpha112=dv.add_formula('alpha112','((Ts_Sum(If((close_adj-Delay(close_adj,1))>0,(close_adj-Delay(close_adj,1)),0),12)-Ts_Sum(If((close_adj-Delay(close_adj,1))<0,Abs(close_adj-Delay(close_adj,1)),0),12))/(Ts_Sum(If((close_adj-Delay(close_adj,1))>0,(close_adj-Delay(close_adj,1)),0),12)+Ts_Sum(If((close_adj-Delay(close_adj,1))<0,Abs(close_adj-Delay(close_adj,1)),0),12))*100)',
is_quarterly=False,add_data=True)
L010113B alpha113
(-1 * ((RANK((SUM(DELAY(CLOSE, 5), 20) / 20)) * CORR(CLOSE, VOLUME, 2)) * RANK(CORR(SUM(CLOSE, 5),SUM(CLOSE, 20), 2))))
alpha113 = dv.add_formula('alpha113', "((-1 * ((Rank((Ts_Sum(Delay(close, 5), 20) / 20)) * Corr(close, volume, 2)) * Rank(Corr(Ts_Sum(close, 5),Ts_Sum(close, 20), 2)))))",is_quarterly=False, add_data=True)
L010114B alpha114
((RANK(DELAY(((HIGH - LOW) / (SUM(CLOSE, 5) / 5)), 2)) * RANK(RANK(VOLUME))) / (((HIGH - LOW) /(SUM(CLOSE, 5) / 5)) / (VWAP - CLOSE)))
2天前的最高价与最低价之差除以5日均线之后乘上成交量然后除以最高价与最低价之差除以5日均线再除以均价与收盘价之差的商
alpha114=dv.add_formula('alpha114',"((Rank(Delay(((high-low)/(Ts_Sum(close,5)/5)),2))*Rank(Rank(volume)))/(((high-low)/(Ts_Sum(close,5)/5))/(vwap-close)))",is_quarterly=False,add_data=False)
L010115B alpha115
(RANK(CORR(((HIGH * 0.9) + (CLOSE * 0.1)), MEAN(VOLUME,30), 10))^RANK(CORR(TSRANK(((HIGH + LOW) /2), 4), TSRANK(VOLUME, 10), 7)))
最高价的标准差的降序与最高价和成交量的相关系数的乘积
alpha115 = dv.add_formula('alpha115',"(Rank(Corr(((high*0.9)+(close*0.1)),Ts_Mean(volume,30),10))^Rank(Corr(Ts_Rank(((high+low)/2),4),Ts_Rank(volume,10),7)))", is_quarterly=False, add_data=True)
L010116B alpha116
REGBETA(CLOSE,SEQUENCE,20)
import pandas as pd
import talib as ta
close = dv.get_ts("close_adj").dropna(how='all', axis=1)
Alpha116 = pd.DataFrame({sec_symbol: -ta.LINEARREG_SLOPE(value.values, 20) for sec_symbol, value in close.iteritems()}, index=close.index)
dv.append_df(Alpha116,'Alpha116')
L010117B alpha117
((TSRANK(VOLUME, 32) * (1 - TSRANK(((CLOSE + HIGH) - LOW), 16))) * (1 - TSRANK(RET, 32)))
RET = dv.add_formula('RET', 'Return(close_adj, 1)', add_data = True, is_quarterly = False)
alpha117 = dv.add_formula('alpha117', '((Ts_Rank(volume, 32))*(1-Ts_Rank(((close_adj + high_adj)-low_adj), 16))*(1-Ts_Rank(RET, 32)))',add_data =True, is_quarterly = False)
L010118B alpha118
SUM(HIGH-OPEN,20)/SUM(OPEN-LOW,20)*100
最高价与开盘价在20天的差值总和除以开盘价与最低价在20天的差值总和的百分比
import numpy as np
def SUM(A, n):
return A.rolling(window = n, min_periods = 1, center = False).sum().fillna(method = 'ffill').fillna(method='bfill')
alpha118 = dv.add_formula('alpha118',"SUM(high-open,20)/SUM(open-low,20)*100"
, is_quarterly=False, add_data=True,register_funcs={'SUM': SUM})
L010119B alpha119
(RANK(DECAYLINEAR(CORR(VWAP,SUM(MEAN(VOLUME,5),26),5),7))-RANK(DECAYLINEAR(TSRANK(MIN(CORR(RANK(OPEN), RANK(MEAN(VOLUME,15)), 21), 9), 7), 8)))
alpha119 = dv.add_formula('alpha119',"(Rank(Decay_linear(Correlation(vwap,Ts_Sum(Ts_Mean(volume,5),26),5),7))-Rank(Decay_linear(Ts_Rank(Ts_Min(Correlation(Rank(open),Rank(Ts_Mean(volume,15)),21),9),7),8)))", is_quarterly=False, add_data=True)
L010120B alpha120
(RANK((VWAP - CLOSE)) / RANK((VWAP + CLOSE)))
均价与收盘价差、和的排名之比
alpha120 = dv.add_formula('alpha120','Rank(vwap-close)/Rank(vwap+close)',is_quarterly=False,add_data=False)
L010121B alpha121
((RANK((VWAP - MIN(VWAP, 12)))^TSRANK(CORR(TSRANK(VWAP, 20), TSRANK(MEAN(VOLUME,60), 2), 18), 3)) *-1)
alpha121 = dv.add_formula('alpha121','(Rank(vwap-Ts_Min(vwap,12)))^(Ts_Rank(Correlation(Ts_Rank(vwap,20),Ts_Rank(Ts_Mean(volume,60),2),18),3))',is_quarterly=False,add_data=True)
L010122B alpha122
(SMA(SMA(SMA(LOG(CLOSE),13,2),13,2),13,2)-DELAY(SMA(SMA(SMA(LOG(CLOSE),13,2),13,2),13,2),1))/DELAY(SMA(SMA(SMA(LOG(CLOSE),13,2),13,2),13,2),1)
def sma(df, n, m):
a = n / m - 1
r = df.ewm(com=a, axis=0, adjust=False)
return r.mean()
alpha122 = dv.add_formula('alpha122',"(SMA(SMA(SMA(Log(close),13,2),13,2),13,2)-Delay(SMA(SMA(SMA(Log(close),13,2),13,2),13,2),1))/Delay(SMA(SMA(SMA(Log(close),13,2),13,2),13,2),1)",is_quarterly=False, add_data=True,register_funcs={"SMA": sma})
L010123B alpha123
((RANK(CORR(SUM(((HIGH + LOW) / 2), 20), SUM(MEAN(VOLUME,60), 20), 9)) < RANK(CORR(LOW, VOLUME,6))) * -1)
alpha123 = dv.add_formula('alpha123', "Rank(Correlation(Ts_Sum((high+low)/2,20),Ts_Sum(Ts_Mean(volume,60),20),9)<Rank(Correlation(low,volume,6)))*-1",is_quarterly=False,add_data=True)
L010124B alpha124
(CLOSE - VWAP) / DECAYLINEAR(RANK(TSMAX(CLOSE, 30)),2)
alpha124 = dv.add_formula('alpha124', '(close_adj-vwap_adj)/Decay_linear(Rank(Ts_Max(close_adj, 30)),2)',is_quarterly=False, add_data=False)
L010125B alpha125
(RANK(DECAYLINEAR(CORR((VWAP), MEAN(VOLUME,80),17), 20)) / RANK(DECAYLINEAR(DELTA(((CLOSE * 0.5)+ (VWAP * 0.5)), 3), 16)))
alpha125 = dv.add_formula('alpha125',"Rank(Decay_linear(Correlation((vwap), Ts_Mean(volume,80),17), 20)) / Rank(Decay_linear(Delta(((close * 0.5) + (vwap * 0.5)), 3), 16))", is_quarterly=False, add_data=True)
L010126B alpha126
(CLOSE+HIGH+LOW)/3
收盘价与最高价与最低价三者取平均
alpha126 = dv.add_formula('alpha126', "(close+high+low)/3",
is_quarterly=False, add_data=True)
L010127B alpha127
(MEAN((100*(CLOSE-MAX(CLOSE,12))/(MAX(CLOSE,12)))^2))^(1/2)
当天收盘价和12天最大收盘价的差价除以12天最大收盘价。
alpha127=dv.add_formula('alpha127', '(Ts_Mean(100*(close_adj-Ts_Max(close_adj,12))/(Ts_Max(close_adj,12)))^2)^(1/2)', is_quarterly=False, add_data=True)
L010128B alpha128
100-(100/(1+SUM(((HIGH+LOW+CLOSE)/3>DELAY((HIGH+LOW+CLOSE)/3,1)?(HIGH+LOW+CLOSE)/3*VOLUME:0),14)/SUM(((HIGH+LOW+CLOSE)/3
alpha128 = dv.add_formula('alpha128', "100-(100/(1+Ts_Sum((If((high+low+close)/3>Delay((high+low+close)/3,1),(high+low+close)/3*volume,0)),14)/Ts_Sum((If((high+low+close)/3<Delay((high+low+close)/3,1),(high+low+close)/3*volume,0)),14)))",is_quarterly=False, add_data=True)
L010129B alpha129
SUM((CLOSE-DELAY(CLOSE,1)<0?ABS(CLOSE-DELAY(CLOSE,1)):0),12)
判断连续12个交易日的收盘价与前一日收盘价的关系,如果股价跌了则赋值为差价的绝对值,反之设为零,最后将结果累加
alpha129 = dv.add_formula('alpha129', "Ts_Sum(If((close-Delay(close,1)<0),Abs(close-Delay(close,1)),0),%s)",is_quarterly=False, add_data=True)
L010130B alpha130
(RANK(DECAYLINEAR(CORR(((HIGH+LOW)/2),MEAN(VOLUME,40),9),10))/RANK(DECAYLINEAR(CORR(RANK(VWAP), RANK(VOLUME), 7),3)))
最高价和最低价的均值、40天成交量的平均值在过去9天的相关系数的值计算移动平均加权,进行升序排序。均价和成交量进行升序排序后在过去7天的相关系数的值计算移动平均权,进行升序排序。前者排序的值除以后者排序的值。
import numpy as np
def mean(A, n):
return A.rolling(window = n, min_periods = 1, center = False).mean().fillna(method = 'ffill').fillna(method='bfill')
def DECAYLINEAR(A, n):
w = np.arange(n,0,-1)
w = w/w.sum()
return A.rolling(n).apply(lambda x: (x * w).sum()).fillna(method = 'ffill').fillna(method='bfill')
alpha130 = dv.add_formula('alpha130',"(Rank(DECAYLINEAR(Corr(((high+low)/2),mean(volume,40),9),10))/Rank(DECAYLINEAR(Corr(Rank(vwap), Rank(volume), 7),3)))", is_quarterly=False, add_data=True,register_funcs={"mean": mean, "DECAYLINEAR": DECAYLINEAR})
L010131B alpha131
(RANK(DELAT(VWAP, 1))^TSRANK(CORR(CLOSE,MEAN(VOLUME,50), 18), 18))
alpha131=dv.add_formula('alpha131',"(Rank(Delta(vwap, 1))^Ts_Rank(Correlation(close,Ts_Mean(volume,50), 18), 18))",is_quarterly=False,add_data=True)
L010132B alpha132
MEAN(AMOUNT,20)
alpha132=dv.add_formula('alpha132',"Ts_Mean(turnover,20)",is_quarterly=False,add_data=True)
L010133B alpha133
((20-HIGHDAY(HIGH,20))/20)*100-((20-LOWDAY(LOW,20))/20)*100
前20期最大值距当前时点的间隔在20期中的占比,减去前20期最小值距当前时点的间隔在20期中的占比
alpha133 = dv.add_formula('alpha133', "(((20-Ts_Argmax(high,20))/20) * 100 - ((20-Ts_Argmin(low,20))/20) * 100)",is_quarterly=False, add_data=True)
L010134B alpha134
(CLOSE-DELAY(CLOSE,12))/DELAY(CLOSE,12)*VOLUME
alpha134=dv.add_formula('alpha134','(((close_adj-Delay(close_adj,12))/Delay(close_adj,12))*volume)',is_quarterly=False,add_data=True)
L010135B alpha135
SMA(DELAY(CLOSE/DELAY(CLOSE,20),1),20,1)
alpha135 = dv.add_formula('alpha135',"Sma(Delay(close/Delay(close,20),1),20,1)",
is_quarterly=False,add_data=True)
L010136B alpha136
((-1 * RANK(DELTA(RET, 3))) * CORR(OPEN, VOLUME, 10))
alpha136 = dv.add_formula('alpha136', "((-1*Rank(Delay(Return(close,1), 3)))*Correlation(open, volume, 10))",is_quarterly=False, add_data=True)
L010137B alpha137
"16*(CLOSE-DELAY(CLOSE,1)+(CLOSE-OPEN)/2+DELAY(CLOSE,1)-DELAY(OPEN,1))/((ABS(HIGH-DELAY(CLOSE,1))>ABS(LOW-DELAY(CLOSE,1))&ABS(HIGH-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1))?ABS(HIGH-DELAY(CLOSE,1))+ABS(LOW-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:(ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(LOW,1))&ABS(LOW-DELAY(CLOSE,1))>ABS(HIGH-DELAY(CLOSE,1))?ABS(LOW-DELAY(CLOSE,1))+ABS(HIGH-DELAY(CLOSE,1))/2+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4:ABS(HIGH-DELAY(LOW,1))+ABS(DELAY(CLOSE,1)-DELAY(OPEN,1))/4)))*MAX(ABS(HIGH-DELAY(CLOSE,1)),ABS(LOW-DELAY(CLOSE,1)))"
alpha137 = dv.add_formula('alpha137',"16*(close-Delay(close,1)+(close-open)/2+Delay(close,1)-Delay(open,1))/If((Abs(high-Delay(close,1))>Abs(low-Delay(close,1))&&Abs(high-Delay(close,1))>Abs(high-Delay(low,1)),Abs(high-Delay(close,1))+Abs(low-Delay(close,1))/2+Abs(Delay(close,1)-Delay(open,1))/4,If(Abs(low-Delay(close,1))>Abs(high-Delay(low,1))&&Abs(low-Delay(close,1))>Abs(high-Delay(close,1)),Abs(low-Delay(close,1))+Abs(high-Delay(close,1))/2+Abs(Delay(close,1)-Delay(open,1))/4,Abs(high-Delay(low,1))+Abs(Delay(close,1)-Delay(open,1))/4)))*Max(Abs(high-Delay(close,1)),Abs(low-Delay(close,1)))",is_quarterly=False,add_data=True)
L010138B alpha138
((RANK(DECAYLINEAR(DELTA((((LOW*0.7)+(VWAP*0.3))),3),20))-TSRANK(DECAYLINEAR(TSRANK(CORR(TSRANK(LOW, 8), TSRANK(MEAN(VOLUME,60), 17), 5), 19), 16), 7)) * -1)
alpha138 = dv.add_formula('alpha138',"((Rank(Decay_linear(Delta((((low*0.7)+(vwap*0.3))),3),20))-Ts_Rank(Decay_linear(Ts_Rank(Corr(Ts_Rank(low, 8), Ts_Rank(Ts_Mean(volume,60), 17), 5), 19), 16), 7)) * -1)",is_quarterly=False,add_data=True)
L010139B alpha139
(-1 * CORR(OPEN, VOLUME, 10))
alpha139 = dv.add_formula('alpha139','-1*Correlation(open, volume, 10)',
is_quarterly=False, add_data=True)
L010140B alpha140
MIN(RANK(DECAYLINEAR(((RANK(OPEN)+RANK(LOW))-RANK(HIGH)+RANK(CLOSE))),8)),TSRANK(DECAYLINEAR(CORR(TSRANK(CLOSE, 8), TSRANK(MEAN(VOLUME,60), 20), 8), 7), 3))
alpha140 = dv.add_formula('alpha140',"Min(Rank(Decay_linear(((Rank(open_adj)+Rank(low_adj))-Rank(high_adj)+Rank(close_adj),8))),Ts_Rank(Decay_linear(Correlation(Ts_Rank(close_adj, 8), Ts_Rank(Ts_Mean(volume,60), 20), 8), 7), 3))",is_quarterly=False,add_data = True)
L010141B alpha141
(RANK(CORR(RANK(HIGH), RANK(MEAN(VOLUME,15)), 9))* -1)
最高价排名和过去15天成交量的均值排名的过去9天相关性系数的排名
alpha141 = dv.add_formula('alpha141', "Rank(Correlation(Rank(high), Rank(Ts_Mean(volume,15)), 9))* -1" ,is_quarterly=False, add_data=True)
L010142B alpha142
(((-1 * RANK(TSRANK(CLOSE, 10))) * RANK(DELTA(DELTA(CLOSE, 1), 1))) * RANK(TSRANK((VOLUME/MEAN(VOLUME,20)), 5)))
10日收盘价排序*2天涨跌幅的排序*20日成交量均值贡献率排序
alpha142 = dv.add_formula('alpha142',"(((-1*Rank(Ts_Rank(close,10)))*Rank(Delta(Delta(close,1),1)))*Rank(Ts_Rank((volume/Ts_Mean(volume,20)),5)))",is_quarterly=False,add_data=True)
L010143B alpha143
CLOSE>DELAY(CLOSE,1)?(CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1)*SELF:SELF
尚未实现
L010144B alpha144
SUMIF(ABS(CLOSE/DELAY(CLOSE,1)-1)/AMOUNT,20,CLOSE
若股价下跌,计算今日收盘价除以前一日收盘价再减1的绝对值再除以成交额的前20项之和,反之为0
alpha144 = dv.add_formula('alpha144', "Ts_Sum(If(((close<Delay(close,1)-1)/CountNans((close-Delay(close,1))^0.5,20)),Abs(close/Delay(close,1)-1)/(close*volume),0),20)",is_quarterly=False, add_data=True)
L010145B alpha145
(MEAN(VOLUME,9)-MEAN(VOLUME,26))/MEAN(VOLUME,12)*100
alpha145 = dv.add_formula('alpha145', "(Ts_Mean(volume,9)-Ts_Mean(volume,26))/Ts_Mean(volume,12)*100",is_quarterly=False, add_data=True)
L010146B alpha146
"MEAN((CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1)-SMA((CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1),61,2),20)*((CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1)-SMA((CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1),61,2))/SMA(((CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1)-((CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1)-SMA((CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1),61,2)))^2,60)"
alpha146 = dv.add_formula('alpha146',"Ts_Mean((close-Delay(close,1))/Delay(close,1)-Sma((close-Delay(close,1))/Delay(close,1),61,2),20)*((close-Delay(close,1))/Delay(close,1)-Sma((close-Delay(close,1))/Delay(close,1),61,2))/Sma((close-Delay(close,1))/Delay(close,1)-((close-Delay(close,1))/Delay(close,1)-Sma((close-Delay(close,1))/Delay(close,1),61,2))^2,60,2)",is_quarterly=False, add_data=True)
L010147B alpha147
REGBETA(MEAN(CLOSE,12),SEQUENCE(12))
alpha147 = dv.add_formula('alpha147', "Ta('LINEARREG_SLOPE',0,0,0,0,Ts_Mean(close,12),0,12)", is_quarterly = False, add_data=True)
L010148B alpha148
((RANK(CORR((OPEN), SUM(MEAN(VOLUME,60), 9), 6)) < RANK((OPEN - TSMIN(OPEN, 14)))) * -1)
alpha148=dv.add_formula('alpha148',"(-1*(Rank(Correlation((open),Ts_Sum(Ts_Mean(volume,60),9),6))<Rank((open - Ts_Min(open,14)))))",is_quarterly=False,add_data=True)
L010149B alpha149
"REGBETA(FILTER(CLOSE/DELAY(CLOSE,1)-1,BANCHMARKINDEXCLOSE
benchmark问题
L010150B alpha150
(CLOSE+HIGH+LOW)/3*VOLUME
收盘价和最高价最低价的均值乘以成交量
alpha150 = dv.add_formula('alpha150', "(close+high+low)/3*volume",
is_quarterly=False, add_data=True)
L010151B alpha151
SMA(CLOSE-DELAY(CLOSE,20),20,1)
alpha151 = dv.add_formula('alpha151','''Sma(close-Delay(close,20),20,1)''',
is_quarterly=False, add_data=True)
L010152B alpha152
SMA(MEAN(DELAY(SMA(DELAY(CLOSE/DELAY(CLOSE,9),1),9,1),1),12)-MEAN(DELAY(SMA(DELAY(CLOSE/DELAY(CLOSE,9),1),9,1),1),26),9,1)
alpha152 = dv.add_formula("alpha152_B","Sma(Ts_Mean(Delay(Sma(Delay(close/Delay(close,9),1),9,1),1),12)-\Ts_Mean(Delay(Sma(Delay(close/Delay(close,9),1),9,1),1),26),9,1)", is_quarterly=False, add_data=True)
L010153B alpha153
(MEAN(CLOSE,3)+MEAN(CLOSE,6)+MEAN(CLOSE,12)+MEAN(CLOSE,24))/4
alpha153 = dv.add_formula('alpha153','(Ts_Mean(close,3)+Ts_Mean(close,6)+Ts_Mean(close,12)+Ts_Mean(close,24))/4',is_quarterly = False,add_data=True)
L010154B alpha154
(((VWAP - MIN(VWAP, 16))) < (CORR(VWAP, MEAN(VOLUME,180), 18)))
alpha154 = dv.add_formula('alpha154','(((vwap- Min(vwap, 16))) < (Correlation(vwap, Ts_Mean(volume,180), 18)))',is_quarterly = False,add_data=True)
L010155B alpha155
SMA(VOLUME,13,2)-SMA(VOLUME,27,2)-SMA(SMA(VOLUME,13,2)-SMA(VOLUME,27,2),10,2)
alpha155 = dv.add_formula('alpha155','Sma(volume,13,2)-Sma(volume,27,2)-Sma(Sma(volume,13,2)-Sma(volume,27,2),10,2)',is_quarterly = False,add_data=True)
L010156B alpha156
(MAX(RANK(DECAYLINEAR(DELTA(VWAP, 5), 3)), RANK(DECAYLINEAR(((DELTA(((OPEN * 0.15) + (LOW *0.85)),2) / ((OPEN * 0.15) + (LOW * 0.85))) * -1), 3))) * -1)
alpha156 = dv.add_formula("alpha156","(Max(Rank(Decay_linear(Delta(vwap, 5), 3)), \
Rank(Decay_linear(((Delta(((open * 0.15) + (low *0.85)),2) / ((open * 0.15) + (low * 0.85))) * -1), 3))) * -1)", is_quarterly=False, add_data=True)
L010157B alpha157
(MIN(PROD(RANK(RANK(LOG(SUM(TSMIN(RANK(RANK((-1 * RANK(DELTA((CLOSE - 1), 5))))), 2), 1)))), 1), 5) +TSRANK(DELAY((-1 * RET), 6), 5))
alpha157 = dv.add_formula('alpha157','Ts_Min(Ts_Product(Rank(Rank(Log(Ts_Sum(Ts_Min(Rank(Rank(-1 * Rank(Delta((close - 1), 5)))), 2), 1)))), 1), 5) +Ts_Rank(Delay(-1 * Return(close,1), 6), 5)',is_quarterly = False,add_data=True)
L010158B alpha158
((HIGH-SMA(CLOSE,15,2))-(LOW-SMA(CLOSE,15,2)))/CLOSE
alpha158 = dv.add_formula('alpha158'," (high-Sma(close,15,2)-(low-Sma(close,15,2)))/close"
, is_quarterly = False , add_data = True)
L010159B alpha159
"((CLOSE-SUM(MIN(LOW,DELAY(CLOSE,1)),6))/SUM(MAX(HGIH,DELAY(CLOSE,1))-MIN(LOW,DELAY(CLOSE,1)),6)*12*24+(CLOSE-SUM(MIN(LOW,DELAY(CLOSE,1)),12))/SUM(MAX(HGIH,DELAY(CLOSE,1))-MIN(LOW,DELAY(CLOSE,1)),12)*6*24+(CLOSE-SUM(MIN(LOW,DELAY(CLOSE,1)),24))/SUM(MAX(HGIH,DELAY(CLOSE,1))-MIN(LOW,DELAY(CLOSE,1)),24)*6*24)*100/(6*12+6*24+12*24)"
part_1 = dv.add_formula('part_1',"(close-Ts_Sum(Min(low,Delay(close,1)),6))/Ts_Sum(Max(high,Delay(close,1))-Min(low,Delay(close,1)),6)*12*24"
, is_quarterly=False, add_data=True)
part_2 = dv.add_formula('part_2',"(close-Ts_Sum(Min(low,Delay(close,1)),12))/Ts_Sum(Max(high,Delay(close,1))-Min(low,Delay(close,1)),12)*6*24"
, is_quarterly=False, add_data=True)
part_3 = dv.add_formula('part_3',"(close-Ts_Sum(Min(low,Delay(close,1)),24))/Ts_Sum(Max(high,Delay(close,1))-Min(low,Delay(close,1)),24)*6*24"
, is_quarterly=False, add_data=True)
alpha159 =dv.add_formula('alpha159_J', "(part_1+part_2+part_3)*100/(6*12+6*24+12*24)"
, is_quarterly=False, add_data=True)
L010160B alpha160
SMA((CLOSE<=DELAY(CLOSE,1)?STD(CLOSE,20):0),20,1)
如果当天收盘价小于昨天收盘价,取过去20天收盘价的标准差,否则取0;以前面得到的数据做20天、权重为1的指数移动平均
alpha160 = dv.add_formula('alpha160', "Sma(If(close<=Delay(close,1),StdDev(close,20),0),20,1)",
is_quarterly=False, add_data=True)
L010161B alpha161
MEAN(MAX(MAX((HIGH-LOW),ABS(DELAY(CLOSE,1)-HIGH)),ABS(DELAY(CLOSE,1)-LOW)),12)
先求出今日的最高价和最低价的差值,再求出昨日收盘价和今日最高价的差值的绝对值,最后求昨日收盘和今日最低价的差值,三者取最小,最小值求12日平均
alpha161=dv.add_formula('alpha161','Ts_Mean(Max(Max((high-low),Abs(Delay(close,1)-high)),Abs(Delay(close,1)-low)),12)',is_quarterly=False,add_data=True)
L010162B alpha162
"(SMA(MAX(CLOSE-DELAY(CLOSE,1),0),12,1)/SMA(ABS(CLOSE-DELAY(CLOSE,1)),12,1)*100-MIN(SMA(MAX(CLOSE-DELAY(CLOSE,1),0),12,1)/SMA(ABS(CLOSE-DELAY(CLOSE,1)),12,1)*100,12))/(MAX(SMA(MAX(CLOSE-DELAY(CLOSE,1),0),12,1)/SMA(ABS(CLOSE-DELAY(CLOSE,1)),12,1)*100,12)-MIN(SMA(MAX(CLOSE-DELAY(CLOSE,1),0),12,1)/SMA(ABS(CLOSE-DELAY(CLOSE,1)),12,1)*100,12))"
part = dv.add_formula('part',"Sma(Max(close-Delay(close,1),0),12,1)/Sma(Abs(close-Delay(close,1)),12,1)", is_quarterly=False, add_data=True)
alpha162 = dv.add_formula('alpha162_J',"(part*100-Ts_Min(part*100,12))/(Ts_Max(part*100,12)-Ts_Min(part*100,12))", is_quarterly=False, add_data=True)
L010163B alpha163
RANK(((((-1 * RET) * MEAN(VOLUME,20)) * VWAP) * (HIGH - CLOSE)))
对交易日的日收益取负后乘以交易量的20日均值再乘以均价和当日最高价与最低价的差额,最后取排序
alpha163 = dv.add_formula('alpha163','Rank(((((-Return(close,1))*Ts_Mean(volume, 20))*vwap)*(high - close)))',is_quarterly=False,add_data=True)
L010164B alpha164
SMA((((CLOSE>DELAY(CLOSE,1))?1/(CLOSE-DELAY(CLOSE,1)):1)-MIN(((CLOSE>DELAY(CLOSE,1))?1/(CLOSE-DELAY(CLOSE,1)):1),12))/(HIGH-LOW)*100,13,2)
condition = dv.add_formula('cond',"close>Delay(close,1)"
, is_quarterly=False, add_data=True)
result = dv.add_formula('res',"1/(close-Delay(close,1))"
, is_quarterly=False, add_data=True)
alpha164 = dv.add_formula('alpha164_J',"Sma((If(cond,res,1)-Ts_Min(If(cond,res,1),12))/(high-low)*100,13,2)", is_quarterly=False, add_data=True)
L010165B alpha165
MAX(SUMAC(CLOSE-MEAN(CLOSE,48)))-MIN(SUMAC(CLOSE-MEAN(CLOSE,48)))/STD(CLOSE,48)
尚未实现
L010166B alpha166
20*(1-20)^1.5*SUM(CLOSE/DELAY(CLOSE,1)-1-MEAN(CLOSE/DELAY(CLOSE,1)-1,20),20)/((20-1)*(20-2)(SUM((CLOSE/DELAY(CLOSE,1),20)^2,20))^1.5)
20乘以19的1.5次方乘以收盘价与前一天收盘价的比值减1减去收盘价与前一天收盘价的比值减1的20日平均值再取20日之和除以19除以18除以收盘价与前一天收盘价的比值的平方的20日之和的1.5次方
alpha166 = dv.add_formula('alpha166',"-20*Pow((20-1),1.5)*Ts_Sum(close/Delay(close,1)-1-Ts_Mean(close/Delay(close,1)-1,20),20)/((20-1)*(20-2)*Pow(Ts_Sum(Pow(close/Delay(close,1),2),20),1.5))" , is_quarterly=False, add_data=True)
L010167B alpha167
SUM((CLOSE-DELAY(CLOSE,1)>0?CLOSE-DELAY(CLOSE,1):0),12)
如果今天收盘价大于前一天收盘价,取值为今天收盘价与前一天收盘价的差,否则取0,将值按12天移动加总
alpha167 = dv.add_formula('alpha167', "Ts_Sum(If((close_adj-Delay(close_adj,1))>0,close_adj-Delay(close_adj,1),0),12)",is_quarterly=False, add_data=True)
L010168B alpha168
(-1*VOLUME/MEAN(VOLUME,20))
alpha168 = dv.add_formula('alpha168', "(-1*volume/Ts_Mean(volume,20))",
is_quarterly=False, add_data=True)
L010169B alpha169
SMA(MEAN(DELAY(SMA(CLOSE-DELAY(CLOSE,1),9,1),1),12)-MEAN(DELAY(SMA(CLOSE-DELAY(CLOSE,1),9,1),1),26),10,1)
alpha169 = dv.add_formula('alpha169','Sma(Ts_Mean(Delay(Sma(close-Delay(close,1),9,1),1),12) - Ts_Mean(Delay(Sma(close-Delay(close,1),9,1),1),26),10,1)',is_quarterly = False,add_data=True)
L010170B alpha170
((((RANK((1 / CLOSE)) * VOLUME) / MEAN(VOLUME,20)) * ((HIGH * RANK((HIGH - CLOSE))) / (SUM(HIGH, 5) /5))) - RANK((VWAP - DELAY(VWAP, 5))))
alpha170 = dv.add_formula('alpha170','((((Rank((1/close))*volume)/Ts_Mean(volume,20))*((high*Rank((high-close)))/(Ts_Sum(high,5)/5)))-Rank((vwap-Delay(vwap,5))))',is_quarterly = False,add_data=True)
L010171B alpha171
((-1 * ((LOW - CLOSE) * (OPEN^5))) / ((CLOSE - HIGH) * (CLOSE^5)))
alpha171 = dv.add_formula('alpha171',"((-1 * ((low_adj - close_adj) * (open_adj^5))) / ((close_adj - high_adj) * (close_adj^5)))",is_quarterly=False, add_data=True)
L010172B alpha172
"MEAN(ABS(SUM((LD>0 & LD>HD)?LD:0,14)*100/SUM(TR,14)-SUM((HD>0 & HD>LD)?HD:0,14)*100/SUM(TR,14))/(SUM((LD>0 & LD>HD)?LD:0,14)*100/SUM(TR,14)+SUM((HD>0 & HD>LD)?HD:0,14)*100/SUM(TR,14))*100,6)"
TR = dv.add_formula('TR', "Max(Max(high-low,Abs(high-Delay(close,1))),Abs(low-Delay(close,1)))", is_quarterly=False, add_data=True)
LD = dv.add_formula('LD', "Delay(low,1)-low", is_quarterly=False, add_data=True)
HD = dv.add_formula('HD', "high-Delay(high,1)", is_quarterly=False, add_data=True)
alpha172 = dv.add_formula('alpha172', "Ts_Mean(Abs(Ts_Sum(If(LD>0&&LD>HD,LD,0),14)*100/Ts_Sum(TR,14)-Ts_Sum(If(HD>0&&HD>LD,HD,0),14)*100/Ts_Sum(TR,14))/(Ts_Sum(If(LD>0&&LD>HD,LD,0),14)*100/Ts_Sum(TR,14)+Ts_Sum(If(HD>0&&HD>LD,HD,0),14)*100/Ts_Sum(TR,14))*100,6)",is_quarterly=False, add_data=True)
L010173B alpha173
3*SMA(CLOSE,13,2)-2*SMA(SMA(CLOSE,13,2),13,2)+SMA(SMA(SMA(LOG(CLOSE),13,2),13,2),13,2);
收盘价的权重参数为2的13日移动平均线乘以3减去收盘价的权重参数为2的13日两重移动平均线加上收盘价的对数的权重参数为2的三重13日移动平均线
def SMA(A,n,m):
alpha = m/n
return A.ewm(alpha=alpha, adjust=False).mean()
alpha173=dv.add_formula('alpha173',"3*SMA(close,13,2)-2*SMA(SMA(close,13,2),13,2)+SMA(SMA(SMA(Log(close),13,2),13,2),13,2)",is_quarterly=False,add_data=True,register_funcs={"SMA":SMA})
L010174B alpha174
SMA((CLOSE>DELAY(CLOSE,1)?STD(CLOSE,20):0),20,1)
若收盘价上升,计算一个月收盘价的方差的指数移动均线,反之为0
alpha174 = dv.add_formula('alpha174_J',"Sma(If(close>Delay(close,1),StdDev(close,20),0),20,1)",is_quarterly=False,add_data=True)
L010175B alpha175
MEAN(MAX(MAX((HIGH-LOW),ABS(DELAY(CLOSE,1)-HIGH)),ABS(DELAY(CLOSE,1)-LOW)),6)
alpha175 = dv.add_formula('alpha175','Ts_Mean(Max(Max(high-low,Abs(Delay(close,1)-high)),Abs(Delay(close,1)-low)),6)' ,is_quarterly=False, add_data=True)
L010176B alpha176
CORR(RANK(((CLOSE - TSMIN(LOW, 12)) / (TSMAX(HIGH, 12) - TSMIN(LOW,12)))), RANK(VOLUME), 6)
收盘价减去过去12内的最低价之差除以过去12天内最高价减去过去12内的最低价之差的排名与交易量排名的过去6天相关系数
alpha176 = dv.add_formula('alpha176', "Correlation(Rank(((close - Ts_Min(low, 12)) / (Ts_Max(high, 12) - Ts_Min(low,12)))), Rank(volume), 6)",is_quarterly=False, add_data=True)
L010177B alpha177
((20-HIGHDAY(HIGH,20))/20)*100
alpha177 =dv.add_formula('alpha177',"(({}-Ts_Argmax(high,{}))/{})*{}".format(20,20,20,100),is_quarterly=False,add_data=True)
L010178B alpha178
(CLOSE-DELAY(CLOSE,1))/DELAY(CLOSE,1)*VOLUME
alpha178 = dv.add_formula('alpha178',"(close-Delay(close,1))/Delay(close,1)*volume",is_quarterly=False, add_data=True)
L010179B alpha179
(RANK(CORR(VWAP, VOLUME, 4)) *RANK(CORR(RANK(LOW), RANK(MEAN(VOLUME,50)), 12)))
均价与交易量过去四天相关系数的排名乘以(最低价排名与过去50天交易量均值排名在12天内的相关系数)的排名
alpha179 = dv.add_formula('alpha179_B', "(Rank(Correlation(vwap, volume, 4)) *Rank(Correlation(Rank(low), Rank(Ts_Mean(volume,50)), 12)))",is_quarterly=False, add_data=True)
L010180B alpha180
((MEAN(VOLUME,20) < VOLUME) ? ((-1 * TSRANK(ABS(DELTA(CLOSE, 7)), 60)) * SIGN(DELTA(CLOSE, 7)) : (-1 *VOLUME)))
如果当日交易量小于交易量的20日均值,取对七天前收盘价的绝对值进行60日排序取符号,乘上7日前交易量的正负状态。否则,取-1*当日交易量
alpha180 = dv.add_formula('alpha180_B','(If(Ts_Mean(volume, 20)<volume, ((-Ts_Rank(Abs(Delta(close, 7)), 60))*Sign(Delta(close, 7))), -volume))',is_quarterly=False, add_data=True)
L010181B alpha181
SUM(((CLOSE/DELAY(CLOSE,1)-1)-MEAN((CLOSE/DELAY(CLOSE,1)-1),20))-(BANCHMARKINDEXCLOSE-MEAN(BANCHMARKINDEXCLOSE,20))^2,20)/SUM((BANCHMARKINDEXCLOSE-MEAN(BANCHMARKINDEXCLOSE,20))^3)
# hs300, msg = dv.data_api.daily("000300.SH",dv.extended_start_date_d,dv.end_date,fields='trade_date,close,open')
# hs300_benchmark = hs300[['trade_date','close']].set_index('trade_date')
# hs300 = 0*dv.get_ts('close_adj')
# for i in range(hs300.shape[1]):
# hs300.iloc[:,i]=hs300_benchmark
# dv.append_df(hs300,'BANCHMARKINDEXCLOSE')
# alpha181 = dv.add_formula('alpha181_B',"Ts_Sum((Return(close,1)-Ts_Mean(Return(close,1),20))-(BANCHMARKINDEXCLOSE-Ts_Mean(BANCHMARKINDEXCLOSE,20))^2,20)/Ts_Sum((BANCHMARKINDEXCLOSE-Ts_Mean(BANCHMARKINDEXCLOSE,20)),3)", is_quarterly=False, add_data=True)
benchmark问题
L010182B alpha182
COUNT((CLOSE>OPEN & BANCHMARKINDEXCLOSE>BANCHMARKINDEXOPEN)OR(CLOSE< OPEN & BANCHMARKINDEXCLOSE< BANCHMARKINDEXOPEN),20)/20
计算过去20天收盘价大于开盘价和基准指数的收盘价大于其开盘价,或者过去20天收盘价小于开盘价和基准指数的收盘价小于其开盘价的天数再除以20
# hs300, msg = dv.data_api.daily("000300.SH",dv.extended_start_date_d,dv.end_date,fields='trade_date,close,open')
# hs300_benchmark = hs300[['trade_date','close']].set_index('trade_date')
# hs300 = 0*dv.get_ts('close_adj')
# for i in range(hs300.shape[1]):
# hs300.iloc[:,i]=hs300_benchmark
# dv.append_df(hs300,'BANCHMARKINDEXCLOSE')
# hs300, msg = dv.data_api.daily("000300.SH",dv.extended_start_date_d,dv.end_date,fields='trade_date,close,open')
# hs300_benchmark = hs300[['trade_date','open']].set_index('trade_date')
# hs300 = 0*dv.get_ts('open')
# for i in range(hs300.shape[1]):
# hs300.iloc[:,i]=hs300_benchmark
# dv.append_df(hs300,'BANCHMARKINDEXOPEN')
# alpha182_J = dv.add_formula('alpha182_B',"Ts_Sum(If(((close>open) && (BANCHMARKINDEXCLOSE>BANCHMARKINDEXOPEN))||((close<open) && (BANCHMARKINDEXCLOSE<BANCHMARKINDEXOPEN)),1,0),%s)/%s" %(params["t1"],params["t2"]), is_quarterly=False, add_data=True)
benchmark问题
L010183B alpha183
MAX(SUMAC(CLOSE-MEAN(CLOSE,24)))-MIN(SUMAC(CLOSE-MEAN(CLOSE,24)))/STD(CLOSE,24)
尚未实现
L010184B alpha184
(RANK(CORR(DELAY((OPEN - CLOSE), 1), CLOSE, 200)) + RANK((OPEN - CLOSE)))
alpha184 = dv.add_formula('alpha184', 'Rank(Correlation(Delay((open - close), 1), close, 200)) + Rank((open - close))',is_quarterly=False, add_data=True)
L010185B alpha185
RANK((-1 * ((1 - (OPEN / CLOSE))^2)))
alpha185 = dv.add_formula('alpha185_B', "Rank((-1 * ((1 - (open / close))^2)))",is_quarterly=False,add_data=True)
L010186B alpha186
"(MEAN(ABS(SUM((LD>0 & LD>HD)?LD:0,14)*100/SUM(TR,14)-SUM((HD>0 & HD>LD)?HD:0,14)*100/SUM(TR,14))/(SUM((LD>0 &LD>HD)?LD:0,14)*100/SUM(TR,14)+SUM((HD>0 & HD>LD)?HD:0,14)*100/SUM(TR,14))*100,6)+DELAY(MEAN(ABS(SUM((LD>0 &LD>HD)?LD:0,14)*100/SUM(TR,14)-SUM((HD>0 & HD>LD)?HD:0,14)*100/SUM(TR,14))/(SUM((LD>0 & LD>HD)?LD:0,14)*100/SUM(TR,14)+SUM((HD>0 & HD>LD)?HD:0,14)*100/SUM(TR,14))*100,6),6))/2"
某一震荡趋势6天的平均波幅与六天前该种波幅的均值
hd = dv.add_formula('HD', "high-Delay(high,1)"
, is_quarterly=False, add_data=True)
ld = dv.add_formula('LD',"Delay(low,1)-low"
, is_quarterly=False, add_data=True)
tr = dv.add_formula('TR',"Max(Max(high-low,Abs(high-Delay(close,1))),Abs(low-Delay(close,1)))"
, is_quarterly=False, add_data=True)
cond1= dv.add_formula('cond_1', "LD>0 && LD>HD"
, is_quarterly=False, add_data=True)
cond2= dv.add_formula('cond_2', "HD>0 && HD>LD"
, is_quarterly=False, add_data=True)
res1 = dv.add_formula('res1', "Ts_Sum(If(cond_1,LD,0),14)*100/Ts_Sum(TR,14)-Ts_Sum(If(cond_2,HD,0),14)*100/Ts_Sum(TR,14)", is_quarterly=False, add_data=True)
res2 = dv.add_formula('res2', "Ts_Sum(If(cond_1,LD,0),14)*100/Ts_Sum(TR,14)+Ts_Sum(If(cond_2,HD,0),14)*100/Ts_Sum(TR,14)", is_quarterly=False, add_data=True)
alpha186_J = dv.add_formula('alpha186_J',"(Ts_Mean(Abs(res1)/(res2)*100,6)+Delay(Ts_Mean(Abs(res1)/(res2)*100,6),6))/2", is_quarterly=False, add_data=True)
L010187B alpha187
SUM((OPEN<=DELAY(OPEN,1)?0:MAX((HIGH-OPEN),(OPEN-DELAY(OPEN,1)))),20)
每日最高价减最低价与开盘价一日涨幅的最大值的20日累计,若涨幅为负则该最大值为0
alpha187 = dv.add_formula('alpha187', "Ts_Sum(If(open<=Delay(open,1),0,Max((high-open),(open-Delay(open,1)))),20)",is_quarterly=False,add_data=True)
L010188B alpha188
((HIGH-LOW–SMA(HIGH-LOW,11,2))/SMA(HIGH-LOW,11,2))*100
alpha188 = dv.add_formula('alpha188', '''((high-low-Sma(high-low,11,2))/Sma(high-low,11,2))*100''',
is_quarterly=False, add_data=True)
L010189B alpha189
MEAN(ABS(CLOSE-MEAN(CLOSE,6)),6)
alpha189 = dv.add_formula('alpha189', 'Ts_Mean(Abs(close-Ts_Mean(close,6)),6)',
is_quarterly=False, add_data=True)
L010190B alpha190
"LOG((COUNT(CLOSE/DELAY(CLOSE)-1>((CLOSE/DELAY(CLOSE,19))^(1/20)-1),20)-1)(SUMIF(((CLOSE/DELAY(CLOSE)-1-(CLOSE/DELAY(CLOSE,19))^(1/20)-1))^2,20,CLOSE/DELAY(CLOSE)-1<(CLOSE/DELAY(CLOSE,19))^(1/20)-1))/((COUNT((CLOSE/DELAY(CLOSE)-1<(CLOSE/DELAY(CLOSE,19))^(1/20)-1),20))(SUMIF((CLOSE/DELAY(CLOSE)-1-((CLOSE/DELAY(CLOSE,19))^(1/20)-1))^2,20,CLOSE/DELAY(CLOSE)-1>(CLOSE/DELAY(CLOSE,19))^(1/20)-1))))"
比较日收益率和19日收益率后在一定时间内取数量之后计算后做商取对数
a = dv.add_formula('a','close/Delay(close,1)-1',
is_quarterly=False, add_data=True)
b = dv.add_formula('b','(close/Delay(close,19))^(1/20)-1',
is_quarterly=False, add_data=True)
alpha190 = dv.add_formula('alpha190','Log((Ts_Sum(If(a>b,1,0),20)-1)*Ts_Sum(If(a<b,(a-b)^2,0),20)/(Ts_Sum(If(a<b,1,0),20))*Ts_Sum(If(a>b,(a-b)^2,0),20))',is_quarterly=False, add_data=True)
L010191B alpha191
((CORR(MEAN(VOLUME,20), LOW, 5) + ((HIGH + LOW) / 2)) - CLOSE)
alpha191=dv.add_formula('alpha191','((Correlation(Ts_Mean(volume,20),low_adj,5)+(high_adj+low_adj)/2)-close_adj)',is_quarterly=False,add_data=True)
备注
def DECAYLINEAR(A, n):
w = np.arange(n,0,-1)
w = w/w.sum()
return A.rolling(n).apply(lambda x: (x * w).sum()).fillna(method = 'ffill').fillna(method='bfill')"
def SMA(A,n,m):
# 设置alpha的比例
alpha = m/n
#通过ewm计算递归函数
return A.ewm(alpha=alpha, adjust=False).mean()