[关闭]
@Channelchan 2018-10-08T15:21:09.000000Z 字数 13002 阅读 716

类别一常用技术指标

Name Dayu-ID 公式
类别一常用技术指标common index
1.1均线型Moving_Average
EMA10 A010001A "Ta('EMA',0,0,0,0,close,{})".format(10)
EMA12 A010002A "Ta('EMA',0,0,0,0,close,{})".format(12)
EMA120 A010003A "Ta('EMA',0,0,0,0,close,{})".format(120)
EMA20 A010004A "Ta('EMA',0,0,0,0,close,{})".format(20)
EMA26 A010005A "Ta('EMA',0,0,0,0,close,{})".format(26)
EMA5 A010006A "Ta('EMA',0,0,0,0,close,{})".format(5)
EMA60 A010007A "Ta('EMA',0,0,0,0,close,{})".format(60)
MA120 A010008A "Ta('MA',0,open,high,low,close,volume,{})".format(120)
MA20 A010009A "Ta('MA',0,open,high,low,close,volume,{})".format(20)
MA10 A010010A "Ta('MA',0,open,high,low,close,volume,{})".format(10)
MA5 A010011A "Ta('MA',0,open,high,low,close,volume,{})".format(5)
MA60 A010012A "Ta('MA',0,open,high,low,close,volume,{})".format(60)
BBI A010013A MA_3= dv.add_formula('MA_3',
"Ta('MA',0,open,high,low,close,volume,{})".format(3)
,is_quarterly=False, add_data=True)
MA_6= dv.add_formula('MA_6',
"Ta('MA',0,open,high,low,close,volume,{})".format(6)
,is_quarterly=False, add_data=True)
MA_12= dv.add_formula('MA_12',
"Ta('MA',0,open,high,low,close,volume,{})".format(12)
,is_quarterly=False, add_data=True)
MA_24= dv.add_formula('MA_24',
"Ta('MA',0,open,high,low,close,volume,{})".format(24)
,is_quarterly=False, add_data=True)
BBI_J= dv.add_formula('BBI_J',
"(MA_3+MA_6+MA_12+MA_24)/4"
,is_quarterly=False, add_data=True)
TEMA10 A010014A EMA10 = dv.add_formula('EMA10',
"Ta('EMA',0,close,close,close,close,close,10)"
, is_quarterly=False, add_data=True)
DEMA10 = dv.add_formula('DEMA10',
"Ta('EMA',0,EMA10,EMA10,EMA10,EMA10,EMA10,10)"
, is_quarterly=False, add_data=True)
TEMA10_j = dv.add_formula('TEMA10_j',
"Ta('EMA',0,DEMA10,DEMA10,DEMA10,DEMA10,DEMA10,10)"
, is_quarterly=False, add_data=True)
TEMA10 = dv.add_formula('TEMA10',
"3*EMA10-3*DEMA10+TEMA10_j"
, is_quarterly=False, add_data=True)
TEMA5 A010015A EMA5 = dv.add_formula('EMA5',
"Ta('EMA',0,close,close,close,close,close,5)"
, is_quarterly=False, add_data=True)
DEMA5 = dv.add_formula('DEMA5',
"Ta('EMA',0,EMA5,EMA5,EMA5,EMA5,EMA5,5)"
, is_quarterly=False, add_data=True)
TEMA5_j = dv.add_formula('TEMA5_j',
"Ta('EMA',0,DEMA5,DEMA5,DEMA5,DEMA5,DEMA5,5)"
, is_quarterly=False, add_data=True)
TEMA5 = dv.add_formula('TEMA5',
"3*EMA5-3*DEMA5+TEMA5_j"
, is_quarterly=False, add_data=True)
1.2超买超卖型Over_Bought_Over_SoId
BollDown A020001A "(Ts_Mean(close,{})-2*StdDev(close,{}))".format(20,20)
BollUp A020002A "(Ts_Mean(close,{})+2*StdDev(close,{}))".format(20,20)
KDJ_K A020003A RSV = dv.add_formula('RSV',"(close_adj-Ts_Min(low_adj,9))/(Ts_Max(high_adj,9)-Ts_Min(low_adj,9))",is_quarterly=False,add_data=True)
EMV_j = dv.add_formula('EMV_j',
"Sma(RSV,{},{})".format(3,1)
, is_quarterly=False, add_data=True
)
KDJ_D A020004A RSV = dv.add_formula('RSV',"(close_adj-Ts_Min(low_adj,9))/(Ts_Max(high_adj,9)-Ts_Min(low_adj,9))",is_quarterly=False,add_data=True)
KDJ_K_A = dv.add_formula('KDJ_K_A',"Sma(RSV,{},{})".format(3,1), is_quarterly=False, add_data=True)
KDJ_D_A= dv.add_formula('KDJ_D_A',"Sma(KDJ_K_A,{},{})".format(3,1), is_quarterly=False, add_data=True)
KDJ_J A020005A RSV = dv.add_formula('RSV',"(close_adj-Ts_Min(low_adj,9))/(Ts_Max(high_adj,9)-Ts_Min(low_adj,9))",is_quarterly=False,add_data=True)
KDJ_K_A = dv.add_formula('KDJ_K_A',"SMA(RSV,{},{})".format(3,1), is_quarterly=False, add_data=True,register_funcs={"SMA":SMA})
KDJ_D_A = dv.add_formula('KDJ_D_A',"SMA(KDJ_K_A,{},{})".format(3,1), is_quarterly=False, add_data=True,register_funcs={"SMA":SMA})
KDJ_J_A = dv.add_formula('KDJ_J_A', "{}*KDJ_K_A - {}*KDJ_D_A".format(3,2) , is_quarterly=False, add_data=True)
UpRVI A020006A USD = dv.add_formula('USD',
"If(Return(close,1)>0,StdDev(close,10),0)"
DSD = dv.add_formula('DSD',
"If(Return(close,1)<0,StdDev(close,10),0)"
UpRVI = dv.add_formula('UpRVI_simu',
"Ta('EMA',0,USD,USD,USD,USD,USD,14)"
DownRVI A020007A DSD = dv.add_formula('DSD',"If(Return(close,1)<0,StdDev(Return(close,1),10),0)"
DownRVI = dv.add_formula('DownRVI_J',"Ta('EMA',0,DSD,DSD,DSD,DSD,DSD,14)",is_quarterly=False, add_data=True)
RVI A020008A USD = dv.add_formula('USD',
"If(Return(close,1)>0,StdDev(close,10),0)",is_quarterly=False, add_data=True)
DSD = dv.add_formula('DSD',
"If(Return(close,1)<0,StdDev(close,10),0)",is_quarterly=False, add_data=True)
UpRVI = dv.add_formula('UpRVI_J',
"Ta('EMA',0,USD,USD,USD,USD,USD,14)",is_quarterly=False, add_data=True)

DownRVI = dv.add_formula('DownRVI_J',"Ta('EMA',0,DSD,DSD,DSD,DSD,DSD,14)",is_quarterly=False, add_data=True)

EMV_j = dv.add_formula('EMV_j',
"100 * UpRVI_J/(UpRVI_J + DownRVI_J)",is_quarterly=False, add_data=True)
DBCD A020009A BIAS = dv.add_formula('BIAS_J',"(close/Ts_Mean(close,5)-1)*100", is_quarterly=False, add_data=True)
DIF = dv.add_formula('DIF_J','BIAS_J-Delay(BIAS_J,16)', is_quarterly=False, add_data=True)
DBCD_J = dv.add_formula('DBCD_J',"Ta('EMA',0,DIF_J,DIF_J,DIF_J,DIF_J,DIF_J,17)", is_quarterly=False, add_data=True)
Illiquidity A020010A Ts_Sum(Return(close,20),20)/Ts_Sum(turnover,20)*Pow(10,9)
Mfi A020011A param = {'N': 14}
dv.add_formula('TYP', "(close_adj+high_adj+low_adj)/3", is_quarterly=False,add_data=True)
dv.add_formula('MF', "TYP*volume", is_quarterly=False,add_data=True)
dv.add_formula('MR',"Ts_Sum(If(Delta(TYP,1)>0,TYP*MF,0),%s)/Ts_Sum(If(Delta(TYP,1)<0,TYP*MF,0),%s)" % (param['N'], param['N'])
dv.add_formula('Mfi', "100-100/(1+MR)", is_quarterly=False,add_data=True).head()
1.3能量型Power
CR20 A030001A param = {'t1': 20}
dv.add_formula('TYP', "(close_adj+high_adj+low_adj)/3", is_quarterly=False, add_data=True)
value = dv.add_formula('CR20_A',
"Ts_Sum(Max(high_adj-Delay(TYP,1),0),{})/Ts_Sum(Max(Delay(TYP,1)-low_adj,0),{})*100"%(params['t1'],params['t1'])
, is_quarterly=False, add_data=True)
MassIndex A030002A EMAHL=dv.add_formula("EMAHL","Ta('EMA',0,high_adj-low_adj,high_adj-low_adj,high_adj-low_adj,high_adj-low_adj,high_adj-close_adj,9)"
EMA_Ratio_=dv.add_formula('EMA_Ratio_',"Ta('EMA',0,EMAHL,EMAHL,EMAHL,EMAHL,EMAHL,9)"
EMA_Ratio=dv.add_formula('EMA_Ratio','EMAHL/EMA_Ratio_'
MassIndex_J=dv.add_formula('MassIndex_J','Ts_Sum(EMA_Ratio,25)'
Elder A030003A BullPower = dv.add_formula('BullPower_J',
"high-Ta('EMA',0,close,close,close,close,close,13)"
, is_quarterly=False, add_data=True)

BearPower = dv.add_formula('BearPower_J',
"low-Ta('EMA',0,close,close,close,close,close,13)"
, is_quarterly=False, add_data=True)

Elder = dv.add_formula('Elder_J',
"((BullPower_J-BearPower_J)/close)"
, is_quarterly=False, add_data=True)
1.4趋势型Trend
ASI A040001A param = {'t1': 20}
dv.add_formula('AA',"Abs(Delta(close,1))", is_quarterly=False, add_data=True)
dv.add_formula('BB',"Abs(low-Delay(close,1))", is_quarterly=False, add_data=True)
dv.add_formula('CC',"Abs(high-Delay(low,1))", is_quarterly=False, add_data=True)
dv.add_formula('DD',"Abs(Delay(close,1)-Delay(open,1))", is_quarterly=False, add_data=True)
dv.add_formula('EE',"Delta(close,1)", is_quarterly=False, add_data=True)
dv.add_formula('FF',"close-open", is_quarterly=False, add_data=True)
dv.add_formula('GG',"Delay(close,1)-Delay(open,1)", is_quarterly=False, add_data=True)
dv.add_formula('XX',"EE+FF/2+GG", is_quarterly=False, add_data=True)
dv.add_formula('KK',"Max(AA,BB)", is_quarterly=False, add_data=True)
dv.add_formula('RR',"If(AA>Max(BB,CC),AA+BB/2+DD/4,If(BB>Max(AA,CC),AA/2+BB+DD/4,CC+DD/4))", is_quarterly=False, add_data=True)
dv.add_formula('SI',"16*XX/RR*KK", is_quarterly=False, add_data=True)

ASI_J = dv.add_formula('ASI_J', "Ts_Sum(SI,%s)"%(params['t1']), is_quarterly=False, add_data=False)
Chaikinoscillator A040002A dv.add_formula('AD', "Ta('AD',0,0,high_adj,low_adj,close_adj,volume)", is_quarterly=False, add_data=True)
VR=dv.add_formula('VR1', "(Ta('EMA',0,0,0,0,AD,0,3)-Ta('EMA',0,0,0,0,AD,0,10))/Pow(10,6)"
, is_quarterly=False,add_data=True)
ChaikinVolatility A040003A HLEMA = dv.add_formula('HLEMA',
"Ta('EMA',0,0,0,0,high-low,0,10)"
, is_quarterly=False, add_data=True)
ChaikinVolatility_J = dv.add_formula('ChaikinVolatility_J',
"(HLEMA-Delay(HLEMA,10))/Delay(HLEMA,10)*100"
, is_quarterly=False, add_data=True)
EMV14 A040004A Ts_Sum(((high+low)/2-(Delay(high,1)+Delay(low,1))/2)*(high-low)/volume,14)
EMV6 A040005A Ts_Sum(((high+low)/2-(Delay(high,1)+Delay(low,1))/2)*(high-low)/volume,6)
PlusDI A040006A param = {'t1': 14}
dm = dv.add_formula('dm',
"If(Delta(high,1)>0,Delta(high,1),0 )"
, is_quarterly=False, add_data=True)
A = dv.add_formula('A',
"Abs(high-low)"
, is_quarterly=False, add_data=True)
B = dv.add_formula('B',
"Abs(high-Delay(close,1))"
, is_quarterly=False, add_data=True)
C = dv.add_formula('C',
"Abs(low-Delay(close,1))"
, is_quarterly=False, add_data=True)
tr = dv.add_formula('tr',
"If(A>Max(B,C), A,If(B>Max(A,C),B,C))"
, is_quarterly=False, add_data=True)

PlusDI_J = dv.add_formula('PlusDI_J',
"Ta('EMA',0,0,0,0,dm,0,%s)/Ta('EMA',0,0,0,0,tr,0,%s)" % (params["t1"], params["t1"]),
is_quarterly=False, add_data=False)
minusDI A040007A Ewma(Max(0,Delay(low,1)-low),14)/Ewma(Max(Max(high-low,Abs(high-Delay(close,1))),Abs(low-Delay(close,1))),14)
ADX A040008A param = {'N': 14}
ADX_J = dv.add_formula('ADX_J', "Ta('EMA',0,0,0,0,Ta('DX',0,open,high,low,close,volume),%s)"%(params["N"]),
is_quarterly=False,
add_data=False)
ADXR A040009A param = {'N': 14}
ADX_J = dv.add_formula('ADX_J', "Ta('EMA',0,0,0,0,Ta('DX',0,open,high,low,close,volume),%s)"%(params["N"]),
is_quarterly=False,
add_data=True)
ADXR_J = dv.add_formula('ADXR_J', "(ADX_J+Delay(ADX_J,%s))/2"%(params["N"]),
is_quarterly=False,
add_data=False)
MACD A040010A Diff = dv.add_formula('Diff_J', "Ta('EMA',0,0,0,0,close,0,12)-Ta('EMA',0,0,0,0,close,0,26)", add_data = True, is_quarterly = False)
Dea =dv.add_formula('Dea_J', "Ta('EMA',0,0,0,0,Diff_J,0,9)", add_data = True, is_quarterly = False)
MACD_J = dv.add_formula('MACD_J', "(Diff_J-Dea_J)*2", add_data = True, is_quarterly = False)
MTM A040011A Delta(close,{})".format(10)
MTMMA A040012A Ts_Mean((close_adj-Delay(close_adj , 10)) , 10)
UOS A040013A TR = dv.add_formula('TR',
"Max(high,Delay(close,1))-Min(low,Delay(close,1))"
, is_quarterly=False, add_data=True)
XR = dv.add_formula('XR',
"close-Min(low,Delay(close,1))"
, is_quarterly=False, add_data=True)
XRM = dv.add_formula('XRM',
"Ts_Sum(XR,7)/Ts_Sum(TR,7)"
, is_quarterly=False, add_data=True)
XRN = dv.add_formula('XRN',
"Ts_Sum(XR,14)/Ts_Sum(TR,14)"
, is_quarterly=False, add_data=True)
XRO = dv.add_formula('XRO',
"Ts_Sum(XR,28)/Ts_Sum(TR,28)"
, is_quarterly=False, add_data=True)
UOS_J = dv.add_formula('UOS_J',
"100*(XRM*14*28+XRN*7*28+XRO*7*14)/(7*14+14*28+7*28)"
, is_quarterly=False, add_data=True)1900/1/0
SwingIndex A040014A dv.add_formula('AA',"Abs(Delta(close,1))", is_quarterly=False, add_data=True)
dv.add_formula('BB',"Abs(low-Delay(close,1))", is_quarterly=False, add_data=True)
dv.add_formula('CC',"Abs(high-Delay(low,1))", is_quarterly=False, add_data=True)
dv.add_formula('DD',"Abs(Delay(close,1)-Delay(open,1))", is_quarterly=False, add_data=True)
dv.add_formula('EE',"Delta(close,1)", is_quarterly=False, add_data=True)
dv.add_formula('FF',"close-open", is_quarterly=False, add_data=True)
dv.add_formula('GG',"Delay(close,1)-Delay(open,1)", is_quarterly=False, add_data=True)
dv.add_formula('XX',"EE+FF/2+GG", is_quarterly=False, add_data=True)
dv.add_formula('KK',"Max(AA,BB)", is_quarterly=False, add_data=True)
dv.add_formula('RR',"If(AA>Max(BB,CC),AA+BB/2+DD/4,If(BB>Max(AA,CC),AA/2+BB+DD/4,CC+DD/4))", is_quarterly=False, add_data=True)
SI = dv.add_formula('SI',"16*XX/RR*KK", is_quarterly=False, add_data=False)
Ulcer10 A040015A param = {'t': 10,'c';2}
Ulcer10 = dv.add_formula("Ulcer10_J", "Sqrt(Ts_Mean(((close - Ts_Max(close,%s))/Ts_Max(close,%s))^%s,%s))"
% (params["t"], params["t"], params["c"], params["t"]),
is_quarterly=True,
add_data=False)
Ulcer5 A040016A param = {'t': 5,'c';2}
Ulcer5 = dv.add_formula("Ulcer5_J", "Sqrt(Ts_Mean(((close - Ts_Max(close,%s))/Ts_Max(close,%s))^%s,%s))"
% (params["t"], params["t"], params["c"], params["t"]),
is_quarterly=True,
add_data=False)
DHILO A040017A high = dv.get_ts('high')
low = dv.get_ts('low')
dhilo = np.log(high)-np.log(low)
DHILO_J = pd.rolling_median(dhilo, 66)
dv.append_df(DHILO_J, 'DHILO_J')
Hurst A040018A default_params = {'n1':5,'n2':10,'n3':20,'n4':40,'n5':80}
global j
j = 0
def func(df):
global j
print(j)
rn_1 = np.log10(df.rolling(default_params['n5']).apply(func_x,(default_params['n1'],)))
rn_2 = np.log10(df.rolling(default_params['n5']).apply(func_x,(default_params['n2'],)))
rn_3 = np.log10(df.rolling(default_params['n5']).apply(func_x,(default_params['n3'],)))
rn_4 = np.log10(df.rolling(default_params['n5']).apply(func_x,(default_params['n4'],)))
rn_5 = np.log10(df.rolling(default_params['n5']).apply(func_x,(default_params['n5'],)))
rn_mean = (rn_1+rn_2+rn_3+rn_4+rn_5)
x = np.log10(np.array([default_params['n1'],default_params['n2'],default_params['n3'],default_params['n4'],default_params['n5']]))
x_mean = x.mean()
y_weight = (x-x_mean)/np.sqrt(np.sum(np.square(x-x_mean)))
Hurst_A = (y_weight[0](rn_1-rn_mean)+y_weight[1](rn_2-rn_mean)+y_weight[2](rn_3-rn_mean)+y_weight[3](rn_4-rn_mean)+y_weight[4](rn_5-rn_mean))
j+=1
return Hurst_A

def func_x(df,n):
data_dict = dict()
data_mean_dict = dict()
data_cumsum_dict = dict()
data_r_dict = dict()
data_std_dict = dict()
sum_ = 0
len_ = default_params['n5']//n
for i in range(1,len_+1):
data_dict[i] = df[n
(i-1):n*i]
data_mean_dict[i] = data_dict[i].mean()
data_std_dict[i] = data_dict[i].std()
data_cumsum_dict[i] = (data_dict[i]-data_mean_dict[i]).cumsum()
data_r_dict[i] = (data_cumsum_dict[i].max()-data_cumsum_dict[i].min())/data_std_dict[i]
sum_+=data_r_dict[i]
return sum_/len_

def Log10(df):
return np.log10(df)

log_ret = dv.add_formula('log_ret',"Log10(close_adj)-Log10(Delay(close_adj,1))",is_quarterly=False,add_data = True,register_funcs={"Log10":Log10})
Hurst_J = log_ret.apply(func)

dv.append_df(Hurst_J,'Hurst_J')
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注