What is quantitative trading?
Quantitative trading refers to using quantitative methods to formulate action plans and conduct transactions.During the trading process,advanced mathematical models are used to quantify market data,replacing artificial subjective judgments,and historical data are repeatedly verified to find"high probability"strategies that can continue to make profits in the future.Computer rapid processing technology is used to greatly reduce the impact of investor sentiment fluctuations,avoiding irrational investment decisions when the market is extremely fanatical or pessimistic.
12.MACD
def MACD(df,n_fast,n_slow):开发详细I35源码7O98系统O7I8
EMAfast=Series(ewma(df['Close'],span=n_fast,min_periods=n_slow-1))
EMAslow=Series(ewma(df['Close'],span=n_slow,min_periods=n_slow-1))
MACD=Series(EMAfast-EMAslow,name='MACD_'+str(n_fast)+'_'+str(n_slow))
MACDsign=Series(ewma(MACD,span=9,min_periods=8),name='MACDsign_'+str(n_fast)+'_'+str(n_slow))
MACDdiff=Series(MACD-MACDsign,name='MACDdiff_'+str(n_fast)+'_'+str(n_slow))
df=df.join(MACD)关于区块链项目技术开发唯:MrsFu123,代币发行、dapp智能合约开发、链游开发、多链钱包开发
交易所开发、量化合约开发、互助游戏开发、Nft数字藏品开发、众筹互助开发、元宇宙开发、swap开发、
链上合约开发、ido开发、商城开发等,开发过各种各样的系统模式,更有多种模式、制度、案例、后台等,成熟技术团队,欢迎实体参考。
df=df.join(MACDsign)
df=df.join(MACDdiff)
return df
13.梅斯线(高低价趋势反转)
def MassI(df):
Range=df['High']-df['Low']
EX1=ewma(Range,span=9,min_periods=8)
EX2=ewma(EX1,span=9,min_periods=8)
Mass=EX1/EX2
MassI=Series(rolling_sum(Mass,25),name='Mass Index')
df=df.join(MassI)
return df
14.涡旋指标
def Vortex(df,n):
i=0
TR=[0]
while i<df.index[-1]:
Range=max(df.get_value(i+1,'High'),df.get_value(i,'Close'))-min(df.get_value(i+1,'Low'),df.get_value(i,'Close'))
TR.append(Range)
i=i+1
i=0
VM=[0]
while i<df.index[-1]:
Range=abs(df.get_value(i+1,'High')-df.get_value(i,'Low'))-abs(df.get_value(i+1,'Low')-df.get_value(i,'High'))
VM.append(Range)
i=i+1
VI=Series(rolling_sum(Series(VM),n)/rolling_sum(Series(TR),n),name='Vortex_'+str(n))
df=df.join(VI)
return df
15.KST振荡器
def KST(df,r1,r2,r3,r4,n1,n2,n3,n4):
M=df['Close'].diff(r1-1)
N=df['Close'].shift(r1-1)
ROC1=M/N
M=df['Close'].diff(r2-1)
N=df['Close'].shift(r2-1)
ROC2=M/N
M=df['Close'].diff(r3-1)
N=df['Close'].shift(r3-1)
ROC3=M/N
M=df['Close'].diff(r4-1)
N=df['Close'].shift(r4-1)
ROC4=M/N
KST=Series(rolling_sum(ROC1,n1)+rolling_sum(ROC2,n2)*2+rolling_sum(ROC3,n3)*3+rolling_sum(ROC4,n4)*4,name='KST_'+str(r1)+''+str(r2)+''+str(r3)+''+str(r4)+''+str(n1)+''+str(n2)+''+str(n3)+'_'+str(n4))
df=df.join(KST)
return df
16.相对强度指标
def RSI(df,n):
i=0
UpI=[0]
DoI=[0]
while i+1<=df.index[-1]:
UpMove=df.get_value(i+1,'High')-df.get_value(i,'High')
DoMove=df.get_value(i,'Low')-df.get_value(i+1,'Low')
if UpMove>DoMove and UpMove>0:
UpD=UpMove
else:UpD=0
UpI.append(UpD)
if DoMove>UpMove and DoMove>0:
DoD=DoMove
else:DoD=0
DoI.append(DoD)
i=i+1
UpI=Series(UpI)
DoI=Series(DoI)
PosDI=Series(ewma(UpI,span=n,min_periods=n-1))
NegDI=Series(ewma(DoI,span=n,min_periods=n-1))
RSI=Series(PosDI/(PosDI+NegDI),name='RSI_'+str(n))
df=df.join(RSI)
return df
17.真实强度指标
def TSI(df,r,s):
M=Series(df['Close'].diff(1))
aM=abs(M)
EMA1=Series(ewma(M,span=r,min_periods=r-1))
aEMA1=Series(ewma(aM,span=r,min_periods=r-1))
EMA2=Series(ewma(EMA1,span=s,min_periods=s-1))
aEMA2=Series(ewma(aEMA1,span=s,min_periods=s-1))
TSI=Series(EMA2/aEMA2,name='TSI_'+str(r)+'_'+str(s))
df=df.join(TSI)
return df
18.吸筹/派发指标
def ACCDIST(df,n):
ad=(2*df['Close']-df['High']-df['Low'])/(df['High']-df['Low'])*df['Volume']
M=ad.diff(n-1)
N=ad.shift(n-1)
ROC=M/N
AD=Series(ROC,name='Acc/Dist_ROC_'+str(n))
df=df.join(AD)
return df