交易所源码案例丨交易所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

相关文章
|
6天前
|
移动开发 小程序 PHP
校园圈子论坛系统采取的PHP语音和uni账号开发的小程序APP公众号H5是否只需要4800元?是的,就是只需要4800元
关于校园圈子论坛系统采用PHP语言和uni-app开发的小程序、APP、公众号和H5是否仅需4800元这个问题,实际上很难给出一个确定的答案。这个价格可能受到多种因素的影响
|
2天前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
|
23天前
|
人工智能 小程序 搜索推荐
uni app下开发AI运动小程序解决方案
本文介绍了在小程序中实现AI运动识别的解决方案。该方案依托于UNI平台,通过高效便捷的插件形式,实现包括相机抽帧控制、人体识别、姿态识别等在内的多项功能,无需依赖后台服务器,大幅提高识别效率和用户体验。方案内置多种运动模式,支持自定义扩展,适用于AI健身、云上赛事、AI体测等多场景,适合新开发和存量改造项目。
|
24天前
|
移动开发 小程序
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
49 3
|
26天前
|
JSON JavaScript 前端开发
harmony-chatroom 自研纯血鸿蒙OS Next 5.0聊天APP实战案例
HarmonyOS-Chat是一个基于纯血鸿蒙OS Next5.0 API12实战开发的聊天应用程序。这个项目使用了ArkUI和ArkTS技术栈,实现了类似微信的消息UI布局、输入框光标处插入文字、emoji表情图片/GIF动图、图片预览、红包、语音/位置UI、长按语音面板等功能。
55 2
|
1月前
|
存储 安全 算法
什么是秒合约?竞猜游戏交易所app系统开发规则介绍
秒合约是一种基于区块链技术的超短期衍生品合约,交易周期以秒为单位。它通过智能合约实现交易的自动化和去信任化,优化执行流程,提高交易速度和效率。秒合约适合高风险投机者,收益和风险固定,不使用杠杆。此外,竞猜游戏交易所app系统也涉及快速交易和投机,需确保安全、稳定及合规运营。
|
28天前
|
设计模式 Swift iOS开发
探索iOS开发:从基础到高级,打造你的第一款App
【10月更文挑战第40天】在这个数字时代,掌握移动应用开发已成为许多技术爱好者的梦想。本文将带你走进iOS开发的世界,从最基础的概念出发,逐步深入到高级功能实现,最终指导你完成自己的第一款App。无论你是编程新手还是有志于扩展技能的开发者,这篇文章都将为你提供一条清晰的学习路径。让我们一起开始这段旅程吧!
|
1月前
|
机器学习/深度学习 监控 安全
量化合约对冲策略交易app系统开发技术规则
量化合约对冲策略交易APP系统开发技术规则涵盖系统架构设计、量化策略实现、交易管理、风险管理、用户界面设计及性能优化等方面。通过模块化设计、分布式架构、数据持久化、策略开发、算法交易、回测优化、订单管理、持仓监控、资金安全、风险控制、实时监控、安全审计、界面设计、反馈机制、多语言支持、响应速度、资源优化和兼容性等措施,确保系统的稳定、安全、高效和易用。
|
1月前
|
监控 安全 开发者
山东布谷科技:关于直播源码|语音源码|一对一直播源码提交App Store的流程及重构经验
分享提交直播源码,一对一直播源码,语音源码到Appstore的重构经验!
|
1月前
|
机器人
布谷直播App系统源码开发之后台管理功能详解
直播系统开发搭建管理后台功能详解!

热门文章

最新文章