合約量化系統(tǒng)開發(fā)(python策略)丨合約量化系統(tǒng)開發(fā)(源碼成熟)
量化交易”有著兩層含義:
【一】是從狹義上來講,是指量化交易的內容,將交易條件轉變成為程序,自動下單;
【二】是從廣義上來講,是指系統(tǒng)交易方法,就是一個整合的交易系統(tǒng)。
即為根據(jù)一系列交易條件,智能化輔助決策體系,將豐富的從業(yè)經(jīng)驗與交易條件相結合,在交易過程管理好風險控制。
pandas.DataFrame(ts).ewm(span=12).mean()
1.移動平均
def MA(df,n):
MA=Series(rolling_mean(df['Close'],n),name='MA_'+str(n))
df=df.join(MA)
return df
2.指數(shù)移動平均
def EMA(df,n):開發(fā)邏輯I59源碼2OO7系統(tǒng)3O69
EMA=Series(ewma(df['Close'],span=n,min_periods=n-1),name='EMA_'+str(n))
df=df.join(EMA)
return df
3.動量
def MOM(df,n):關于區(qū)塊鏈項目技術開發(fā)唯:yy625019,代幣發(fā)行、dapp智能合約開發(fā)、鏈游開發(fā)、多鏈錢包開發(fā)
交易所開發(fā)、量化合約開發(fā)、互助游戲開發(fā)、Nft數(shù)字藏品開發(fā)、眾籌互助開發(fā)、元宇宙開發(fā)、swap開發(fā)、
鏈上合約開發(fā)、ido開發(fā)、商城開發(fā)等,開發(fā)過各種各樣的系統(tǒng)模式,更有多種模式、制度、案例、后臺等,成熟技術團隊,歡迎實體參考。
M=Series(df['Close'].diff(n),name='Momentum_'+str(n))
df=df.join(M)
return df
4.變化率
def ROC(df,n):
M=df['Close'].diff(n-1)
N=df['Close'].shift(n-1)
ROC=Series(M/N,name='ROC_'+str(n))
df=df.join(ROC)
return df
5.均幅指標
def ATR(df,n):
i=0
TR_l=[0]
while i<df.index[-1]:
TR=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_l.append(TR)
i=i+1
TR_s=Series(TR_l)
ATR=Series(ewma(TR_s,span=n,min_periods=n),name='ATR_'+str(n))
df=df.join(ATR)
return df
6.布林線
def BBANDS(df,n):
MA=Series(rolling_mean(df['Close'],n))
MSD=Series(rolling_std(df['Close'],n))
b1=4*MSD/MA
B1=Series(b1,name='BollingerB_'+str(n))
df=df.join(B1)
b2=(df['Close']-MA+2*MSD)/(4*MSD)
B2=Series(b2,name='Bollinger%b_'+str(n))
df=df.join(B2)
return df
7.轉折、支撐、阻力點
def PPSR(df):
PP=Series((df['High']+df['Low']+df['Close'])/3)
R1=Series(2*PP-df['Low'])
S1=Series(2*PP-df['High'])
R2=Series(PP+df['High']-df['Low'])
S2=Series(PP-df['High']+df['Low'])
R3=Series(df['High']+2*(PP-df['Low']))
S3=Series(df['Low']-2*(df['High']-PP))
psr={'PP':PP,'R1':R1,'S1':S1,'R2':R2,'S2':S2,'R3':R3,'S3':S3}
PSR=DataFrame(psr)
df=df.join(PSR)
return df
8.隨機振蕩器(%K線)
def STOK(df):
SOk=Series((df['Close']-df['Low'])/(df['High']-df['Low']),name='SO%k')
df=df.join(SOk)
return df
9.隨機振蕩器(%D線)
def STO(df,n):
SOk=Series((df['Close']-df['Low'])/(df['High']-df['Low']),name='SO%k')
SOd=Series(ewma(SOk,span=n,min_periods=n-1),name='SO%d_'+str(n))
df=df.join(SOd)
return df
10.三重指數(shù)平滑平均線
def TRIX(df,n):
EX1=ewma(df['Close'],span=n,min_periods=n-1)
EX2=ewma(EX1,span=n,min_periods=n-1)
EX3=ewma(EX2,span=n,min_periods=n-1)
i=0
ROC_l=[0]
while i+1<=df.index[-1]:
ROC=(EX3[i+1]-EX3<i>)/EX3<i>
ROC_l.append(ROC)
i=i+1
Trix=Series(ROC_l,name='Trix_'+str(n))
df=df.join(Trix)
return df
11.平均定向運動指數(shù)
def ADX(df,n,n_ADX):
i=0
UpI=[]
DoI=[]
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
i=0
TR_l=[0]
while i<df.index[-1]:
TR=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_l.append(TR)
i=i+1
TR_s=Series(TR_l)
ATR=Series(ewma(TR_s,span=n,min_periods=n))
UpI=Series(UpI)
DoI=Series(DoI)
PosDI=Series(ewma(UpI,span=n,min_periods=n-1)/ATR)
NegDI=Series(ewma(DoI,span=n,min_periods=n-1)/ATR)
ADX=Series(ewma(abs(PosDI-NegDI)/(PosDI+NegDI),span=n_ADX,min_periods=n_ADX-1),name='ADX_'+str(n)+'_'+str(n_ADX))
df=df.join(ADX)
return df