量化交易:概念、影响与软件系统开发

5星 · 超过95%的资源 需积分: 42 58 下载量 196 浏览量 更新于2024-07-16 7 收藏 1.99MB PDF 举报
"这篇文档是关于量化交易及相应软件系统开发的研究,主要涵盖了量化交易的理论概述、在中国的发展以及实际应用。作者黄鲲在天津大学管理学院完成了这项研究,探讨了量化交易的概念、历史、影响、技术趋势以及在中国的具体状况。论文强调了量化交易在金融市场的地位和对交易方式的变革作用,同时指出中国在此领域的快速发展和监管挑战。" 量化交易是一种基于数学模型和统计分析的交易方法,它将投资策略转化为可执行的计算机代码,以便在金融市场中自动执行交易决策。量化交易通常分为几类,包括程序化交易、自动化交易、高频交易和算法交易,这些都涉及到大量数据处理和快速响应市场变化的能力。 在历史发展中,量化交易自20世纪70年代在美国兴起,对欧美金融市场产生了深远影响,逐渐改变了市场的微观和宏观结构。随着时间推移,量化交易的理论和技术也在不断进步,例如,高频交易利用极快的执行速度捕获微小的市场价差,而算法交易则通过复杂的计算来优化订单执行。 在中国,尽管量化交易相对较晚起步,但自从2010年股指期货上市以来,发展速度迅猛。然而,由于对金融安全的担忧,监管层对此持谨慎态度,倾向于控制和限制。作者指出,面对这一趋势,理解和研究量化交易至关重要,而不是简单的抵制,积极参与才能更好地把握其潜在的优势并减少负面影响。 在应用方面,量化交易可以用于制定投资决策,通过模型预测市场走势,帮助投资者减少交易执行成本,同时利用套利策略和风险对冲来优化投资组合。此外,做市商也可以利用量化交易技术提供更有效的报价,促进市场流动性。 论文还探讨了中国金融市场与欧美市场的差异,指出国内的规则和环境对量化交易的实施有独特影响。这表明,针对中国市场的特点,发展适应性的量化交易策略和软件系统将是未来的一大挑战。 这篇文献深入剖析了量化交易的各个方面,对于理解量化交易的原理、在中国的发展现状以及未来可能的方向提供了丰富的信息,对于金融专业人士和研究人员来说,是一份重要的参考资料。
2019-10-06 上传
小白量化学习-自创指标设计 一、准备工作 1、首先把“HP_formula.py”文件复制到自己的工程目录中。 2、在新文件开始增加下面4条语句。 import numpy as np import pandas as pd from HP_formula import * import tushare as ts 二、对数据预处理 我们采用与tushare旧股票数据格式。 #首先要对数据预处理 df = ts.get_k_data('600080',ktype='D') mydf=df.copy() CLOSE=mydf['close'] LOW=mydf['low'] HIGH=mydf['high'] OPEN=mydf['open'] VOL=mydf['volume'] C=mydf['close'] L=mydf['low'] H=mydf['high'] O=mydf['open'] V=mydf['volume'] 三、仿通达信或大智慧公式 通达信公式转为python公式的过程。 1.‘:=’为赋值语句,用程序替换‘:=’为python的赋值命令‘='。 2.‘:’为公式的赋值带输出画线命令,再替换‘:’为‘=’,‘:’前为输出变量,顺序写到return 返回参数中。 3.全部命令转为英文大写。 4.删除绘图格式命令。 5.删除掉每行未分号; 。 6.参数可写到函数参数表中.例如: def KDJ(N=9, M1=3, M2=3): 例如通达信 KDJ指标公式描述如下。 参数表 N:=9, M1:=3, M2:=3 RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:SMA(RSV,M1,1); D:SMA(K,M2,1); J:3*K-2*D; # Python的KDJ公式 def KDJ(N=9, M1=3, M2=3): RSV = (CLOSE - LLV(LOW, N)) / (HHV(HIGH, N) - LLV(LOW, N)) * 100 K = SMA(RSV,M1,1) D = SMA(K,M2,1) J = 3*K-2*D return K, D, J #----------------------------------- #根据上面原理,我们把大智慧RSI指标改 # 为Python代码,如下。 def RSI(N1=6, N2=12, N3=24): """ RSI 相对强弱指标 """ LC = REF(CLOSE, 1) RSI1 = SMA(MAX(CLOSE - LC, 0), N1, 1) / SMA(ABS(CLOSE - LC), N1, 1) * 100 RSI2 = SMA(MAX(CLOSE - LC, 0), N2, 1) / SMA(ABS(CLOSE - LC), N2, 1) * 100 RSI3 = SMA(MAX(CLOSE - LC, 0), N3, 1) / SMA(ABS(CLOSE - LC), N3, 1) * 100 return RSI1, RSI2, RSI3 四、使用公式并绘图 #假定我们使用RSI指标 r1,r2,r3=RSI() mydf = mydf.join(pd.Series( r1,name='RSI1')) mydf = mydf.join(pd.Series( r2,name='RSI2')) mydf = mydf.join(pd.Series( r3,name='RSI3')) mydf['S80']=80 #增加上轨80轨迹线 mydf['X20']=20 #增加下轨20轨迹线 mydf=mydf.tail(100) #显示最后100条数据线 #下面是绘线语句 mydf.S80.plot.line() mydf.X20.plot.line() mydf.RSI1.plot.line(legend=True) mydf.RSI2.plot.line(legend=True) mydf.RSI2.plot.line(legend=True) 不懂就看我的博客 https://blog.csdn.net/hepu8/article/details/93378543