spring boot 01:用idea+maven+spring开发环境搭建

【项目环境部署 – win10系统】

1. 安装JDK1.8 #java项目 – 必须环境
a. 官网下载 jdk-8u151-windows-x64.exe
b. 执行安装 C:\Program Files\Java\jdk1.8.0_151
c. 环境设置
i. JAVA_HOME -> C:\Program Files\Java\jdk1.8.0_151
ii. PATH ++ %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
iii.CLASSPATH -> .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib;
d. 验证结果 cmd执行java,再执行javac

2. 安装maven #java项目 – 快速构建工具
a. 官网下载 apache-maven-3.5.2-bin.tar.gz
b. 解压安装 D:\codeJava\maven\apache-maven-3.5.2
c. 环境设置
i. MAVEN_HOME -> D:\codeJava\maven\apache-maven-3.5.2
iii. Path ++ &MAVEN_HOME%\bin; #idea自带maven客户端,所以以上步骤都不需要做
ii. M2_REPO -> D:\codeJava\maven\repos #idea安装后会自动定位它,也可以手动设仓库路径

3. 安装idea —- java项目 – 推荐编辑器
exe无脑安装,过程就不叙述了

【spring boot 项目创建】

1. 项目模板包
a. 访问官网 http://start.spring.io
b. 选择类型 使用maven构建;随便选个spring boot的版本;
c. 下载zip 点击Generate Project -> E:\codeJava\start.spring.io\com.td.didi.demo_2.0.0M7_maven.zip
d. 解压zip E:\codeJava\start.spring.io\demo

2. 导入项目
a. 运行idea
b. New–>Project from Existing Sources #如果第一次启动,可以选择import xxxx xxx,作用一样
c. 一路next就行了 #如果第一次创建项目,idea里都是空白,所以项目SDK需要手动选一下JDK的目录

3. 自动构建
项目导入后,maven会根据pom.xml里的依赖设置,自动下载依赖资源。

【spring boot web-demo】
以下引用我学习的教程 http://blog.didispace.com/spring-boot-learning-1/

1712:每个人应该从事快乐的工作

生活就是上班用时间去换钱,再花钱购买各种时间,如果你上班时就已经获得你想要的生活,无形中比别人多一倍快乐。
天天学习代码是一件快乐的事。
这段时间阅读了apama.epl语言写的项目代码,自己写了一些monitor,定义了一些event,用到了onload,on event,ondie,event对象操作,if elseif,for,die,route,log,currentTime
编写了一条长SQL全程跟踪订单,这没什么好说,本来就溜吃了老本。
Java简单学习了idea,git,maven,project目录结构,testNG,class基本语法,创建对象,if,String,int,list,System.out…
部署了apama,spm,correlator,command central,ctp,iaf,编写了一些sh脚本

算法交易-以VWAP为例的策略笔记

算法交易其实主要是用在基金公司、券商量化比较多。例如我已经选好股,要大量买入,但是单凭交易员的操作海量单而且要完成买入100万股这些的操作是有点的困难的。那么这时候怎样解决拆单,防止冲击成本的问题呢?只有依靠算法交易了,现在市面上的流行算法交易有两种,第一种是VWAP,一种是TWAP。但是每种算法交易也有它的坏处,就是很容给人看出操作手法(如果策略比较简单的情况下),所以这种需要不断优化。

VWAP是Volume Weighted Average Price 的缩写,译为成交量加权平均价。VWAP策略即是一种拆分大额委托单,在约定时间段内分批执行,以期使得最终买入或卖出成交均价尽量接近该段时间内整个市场成交均价的算法交易策略。

VWAP策略的内容。VWAP策略包含宏观和微观两个层面的内容。宏观层面要解决如何拆分大额委托单的问题,需要投资者对股票的日内成交量做出预测,我们建议按两分钟的时间长度来拆分订单。微观层面要确定是用限价单还是市价单来发出交易指令,考虑到VWAP是一种被动跟踪市场均价的策略,我们建议采用市价委托方式,一方面有利于控制最终成交均价与市场均价之间的偏差,另一方面也可以提高委托成交的效率,避免限价单长时间挂单不能成交的风险。

按照传统的VWAP策略,只是一种被动型的策略,而且在这个策略当中,最重要有以下的因素:历史成交量,未来的成交量预测、市场动态总成交量,拆单的时间段(就是总共要将总单拆分成多少单分别以怎样的时间频率交易)

宏观拆单VWAP
假设投资者要在2011年10月10日当天以市场均价买入某只股票100万股,宏观策略可以告诉投资者如何拆分这100万股的委托单,在当天什么时间下多少单。市场通行的做法是采取等时长下单,例如,每5分钟下一笔单,这样原来的100万股委托单将被拆分成笔小额委托单,分时执行。

其中V为拆分前委托单的总量。很显然,当时,上式取最小值0,也就是说如果投资者能够准确预测市场每个时间段的成交量占当日成交量的比例,那么投资者按这个比例拆分委托单,分时成交,那么最后总的成交均价将于市场成交均价相当。因此,拆单策略的一个关键在于对日内成交量的预测。

但是这种方法的一个缺陷是,根据历史交易来预测未来的预测交易量。所以他们对VWAP预测成交量比例有了一个动态的改进,就是利用动态的成交量来做一个预测。例如说,根据前两分钟的成交量来预测未来两分钟的成交量。

这种策略有效降低成交成本。在检测VWAP策略是否有效的时候,他们引入了一个指标。绝对值平均值偏差,

除个别股票外,VWAP-D与市场均价的偏差都小于VWAP-B,这主要得益于其对日内成交量预测的实时动态调整。另外,股票市值越大,其股价与成交量的波动性也就越小,VWAP策略执行的效果也就越好,与市场均价的偏差也就越小。总体上来看,大盘股要好于中盘股,中盘股要好于小盘股,但之间的差距并不明显,这主要是由于我们的验证过程目前还未涉及资金量大小,如果考虑到资金的冲击成本,大盘股与小盘股之间的这种差距将会拉大、

对于一个策略来说,MAPE越小,策略效果越好,越大,卖出价格越高。
当然VWAP也可以设计成为主动策略而非被动。下次也会分享一下其他策略。