交易所源码案例丨交易所APP开发丨交易所系统开发(海外版)

简介:  区块链技术概括起来是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术。其实,区块链技术并不是一种单一的、全新的技术,而是多种现有技术整合的结果,这些技术与数据库巧妙地组合在一起,形成了一种新的数据记录、传递、存储与呈现的方式

  区块链技术概括起来是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术。其实,区块链技术并不是一种单一的、全新的技术,而是多种现有技术整合的结果,这些技术与数据库巧妙地组合在一起,形成了一种新的数据记录、传递、存储与呈现的方式

  什么是量化交易?确切地说,量化交易属于人工智能的一个应用分支,它利用计算机的强大运算能力,用数学模型来模仿人的思维作出决策,通过数据建模、统计学分析、程序设计等工具

  区块链技术是一种新型互联网技术,它是一种公开的、分布式的账簿,可以有效核查和永久记录各方之间的交易。具体来说,它是由网络上一个个储存区块组成的相互连接的链条,在每个区块中,储存着一定时间内网络链条中所有交流信息的数据。由于数据在每个区块上都有实时记录,也就使得区块链具备去中心化和不可篡改的特点。

  1.移动平均

  def MA(df,n):

  MA=Series(rolling_mean(df['Close'],n),name='MA_'+str(n))

  df=df.join(MA)

  return df

  2.指数移动平均

  def EMA(df,n):

  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):

  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+2MSD)/(4MSD)

  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.三重指数平滑平均线

  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.平均定向运动指数

  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

  12.MACD

  def MACD(df,n_fast,n_slow):

  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)

  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=(2df['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

  19.佳庆指标CHAIKIN振荡器

  def Chaikin(df):

  ad=(2df['Close']-df['High']-df['Low'])/(df['High']-df['Low'])df['Volume']

  Chaikin=Series(ewma(ad,span=3,min_periods=2)-ewma(ad,span=10,min_periods=9),name='Chaikin')

  df=df.join(Chaikin)

  return df

  20.资金流量与比率指标

  def MFI(df,n):

  PP=(df['High']+df['Low']+df['Close'])/3

  i=0

  PosMF=[0]

  while i<df.index[-1]:

  if PP[i+1]>PP<i>:

  PosMF.append(PP[i+1]*df.get_value(i+1,'Volume'))

  else:

  PosMF.append(0)

  i=i+1

  PosMF=Series(PosMF)

  TotMF=PP*df['Volume']

  MFR=Series(PosMF/TotMF)

  MFI=Series(rolling_mean(MFR,n),name='MFI_'+str(n))

  df=df.join(MFI)

  return df

  21.能量潮指标

  def OBV(df,n):

  i=0

  OBV=[0]

  while i<df.index[-1]:

  if df.get_value(i+1,'Close')-df.get_value(i,'Close')>0:

  OBV.append(df.get_value(i+1,'Volume'))

  if df.get_value(i+1,'Close')-df.get_value(i,'Close')==0:

  OBV.append(0)

  if df.get_value(i+1,'Close')-df.get_value(i,'Close')<0:

  OBV.append(-df.get_value(i+1,'Volume'))

  i=i+1

  OBV=Series(OBV)

  OBV_ma=Series(rolling_mean(OBV,n),name='OBV_'+str(n))

  df=df.join(OBV_ma)

  return df

  22.强力指数指标

  def FORCE(df,n):

  F=Series(df['Close'].diff(n)*df['Volume'].diff(n),name='Force_'+str(n))

  df=df.join(F)

  return df

  23.简易波动指标

  def EOM(df,n):

  EoM=(df['High'].diff(1)+df['Low'].diff(1))(df['High']-df['Low'])/(2df['Volume'])

  Eom_ma=Series(rolling_mean(EoM,n),name='EoM_'+str(n))

  df=df.join(Eom_ma)

  return df

  24.顺势指标

  def CCI(df,n):

  PP=(df['High']+df['Low']+df['Close'])/3

  CCI=Series((PP-rolling_mean(PP,n))/rolling_std(PP,n),name='CCI_'+str(n))

  df=df.join(CCI)

  return df

  25.估波指标

  def COPP(df,n):

  M=df['Close'].diff(int(n*11/10)-1)

  N=df['Close'].shift(int(n*11/10)-1)

  ROC1=M/N

  M=df['Close'].diff(int(n*14/10)-1)

  N=df['Close'].shift(int(n*14/10)-1)

  ROC2=M/N

  Copp=Series(ewma(ROC1+ROC2,span=n,min_periods=n),name='Copp_'+str(n))

  df=df.join(Copp)

  return df

  26.肯特纳通道

  def KELCH(df,n):

  KelChM=Series(rolling_mean((df['High']+df['Low']+df['Close'])/3,n),name='KelChM_'+str(n))

  KelChU=Series(rolling_mean((4df['High']-2df['Low']+df['Close'])/3,n),name='KelChU_'+str(n))

  KelChD=Series(rolling_mean((-2df['High']+4df['Low']+df['Close'])/3,n),name='KelChD_'+str(n))

  df=df.join(KelChM)

  df=df.join(KelChU)

  df=df.join(KelChD)

  return df

  27.终极指标(终极振荡器)

  def ULTOSC(df):

  i=0

  TR_l=[0]

  BP_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)

  BP=df.get_value(i+1,'Close')-min(df.get_value(i+1,'Low'),df.get_value(i,'Close'))

  BP_l.append(BP)

  i=i+1

  UltO=Series((4rolling_sum(Series(BP_l),7)/rolling_sum(Series(TR_l),7))+(2rolling_sum(Series(BP_l),14)/rolling_sum(Series(TR_l),14))+(rolling_sum(Series(BP_l),28)/rolling_sum(Series(TR_l),28)),name='Ultimate_Osc')

  df=df.join(UltO)

  return df

  28.唐奇安通道指标

  def DONCH(df,n):

  i=0

  DC_l=[]

  while i<n-1:

  DC_l.append(0)

  i=i+1

  i=0

  while i+n-1<df.index[-1]:

  DC=max(df['High'].ix[i:i+n-1])-min(df['Low'].ix[i:i+n-1])

  DC_l.append(DC)

  i=i+1

  DonCh=Series(DC_l,name='Donchian_'+str(n))

  DonCh=DonCh.shift(n-1)

  df=df.join(DonCh)

  return df

相关文章
|
8天前
|
前端开发 Java 开发工具
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
【03】完整flutter的APP打包流程-以apk设置图标-包名-签名-APP名-打包流程为例—-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈 章节内容【03】
|
2天前
|
Dart 前端开发
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
101 75
【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
4天前
|
缓存 前端开发 Android开发
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
|
8天前
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
9天前
|
Dart 前端开发 架构师
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
【01】vs-code如何配置flutter环境-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈-供大大的学习提升
|
1天前
|
缓存 前端开发 IDE
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【06】flutter完成注册页面-密码登录-手机短信验证-找回密码相关页面-并且实现静态跳转打包demo做演示-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
8天前
|
移动开发 开发框架 小程序
轻松搭建婚恋交友系统源码,H5/小程序/APP自动适配,智能匹配恋爱交友平台快速落地
婚恋交友系统涵盖在线交友、线下活动、专业服务、社交娱乐等,满足用户多样化需求。系统设计简洁易用,提供实名认证、多注册方式及安全保护,确保用户隐私和数据安全。功能丰富,支持图文展示、筛选匹配、聊天互动、虚拟礼物等,提升互动趣味性。平台可分类管理用户、审核信息、智能推荐,优化用户体验。基于TP6+Uni-app框架,实现跨平台同步,支持二次开发,适应不同市场需求。 [了解更多](https://gitee.com/multi-customer-software/jy)
|
7天前
|
小程序 IDE PHP
圈子源码如何打包生成App小程序/开发一个圈子系统软件所需要的费用体现在哪里?
将PHP源码打包成App的过程涉及多个步骤和技术选择。以圈子源码为例,首先明确需求,确定App功能和目标用户群体,并根据需求开发小程序页面,如用户注册、圈子列表等。源码准备阶段确保源码适用于小程序开发,环境配置需安装IDE(如微信开发者工具)及依赖库。最后在IDE中打包小程序并上传至管理平台,通过审核后发布。费用方面,模板开发成本较低,定制开发则更高,具体取决于需求复杂度和第三方服务费用。
42 0
|
7天前
|
移动开发 监控 小程序
TP6+Uni-app框架开发,2025年最新圈子系统功能展示,圈子app流量主模式
圈子系统基于TP6+Uni-app框架开发,支持多端账号同步并可快速生成APP。它适用于行业、地方、社交、游戏、兴趣等多种圈子场景,提供广告展示、商品销售、推广结算、交易佣金、入驻费用、会员增值及线上线下活动等多元盈利模式,帮助商户精准定位用户,实现流量变现和业务增长。
|
25天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。

热门文章

最新文章