股票智能交易软件设计与研究
2018-04-26邢春霄马长安
邢春霄 马长安
摘要:以实现股票的智能交易为目标,由于目前的股票交易都是投资者利用股票交易软件进行操作,由于人工操作的实效性差、对大盘基本面的判断力不足和情绪不冷静等原因,容易出现交易误判、操作迟钝的问题。该研究的实现能够让股票交易更加高效、精准、客观,弥补人工操作的不足,为投资者在瞬息万变的股票市场把握先机、规避风险,创造更大的投资回报。
关键词:智能交易;股票交易;股票市场
1引言
随着产品种类的丰富与发展以及相关市场结构的演变,相对原来的手工交易,智能交易作为一种新型的操作方式,在各个证券公司、机构投资者、期货公司的业务操作中逐渐兴起,智能交易也变得更加成熟,并在资本市场中取得广泛运用[1]。智能交易是从美国70年代的股票市场上系统化交易发展演变而来的,据统计,在全球排名前三的交易所中,美国纽约股票交易所(NYSE)、欧洲期货交易所(EUREX)和芝加哥商业交易所(CME)成交量分别为47%、62%和44%,下单指令信息量分别占据64%、83%和74%。我国国内的智能交易是随着股票市场同步引入的,与欧美等发达国家的市场相比还存在着很大差距。随着国内股票市场成熟度的不断提高,近些年国内的智能交易发展非常迅速。
2 智能交易的研究背景
智能交易,是指投资者将交易思想与交易规则模型化,构建成量化交易策略,并由计算机执行策略,实现自动判定买卖时机并下单交易的交易方式。在智能交易的过程中,交易策略位于决策层,占有主导地位。但是,传统的策略开发模式策略开发周期长、成本较高。正是由于其较之传统的策略开发模式具有更强的执行力、能更有效地规避投资风险以及克服投资者交易中的人性缺陷等优势,所以智能交易是金融市场未来发展的趋势。
3 智能交易的研究意义
3.1自动化处理。
使用智能交易软件,投资者只要在程序中设定股票交易操作的触发条件,交易软件将会自动监控股票市场的动态变化情况,一旦满足交易条件,将通过股票交易软件自动实现交易活动。该软件将会对投资者理性交易、快捷交易和效益最大化将会起到很大的提升作用。
3.2解放人工监视与操作。
计算机能够持续稳定、精确严格地按原则工作,能够大规模地进行数据处理,而相比之下人灵活有余,原则不足且不能长时间地机械工作。通过MATLAB科学计算软件建立股票投资策略专家模型,具有传统智能交易软件(博弈大师、易盛等)的情况下具备检验用户的策略,让用户熟悉智能交易的模式和特点。由于MATLAB软件具有强大的统计分析功能,可以使智能股票交易软件更具有智能性,软件会记录每一次操作并自动分析出简单且合适的策略供用户选择是否执行或更改策略,而不在是按照一个固定的模式一直执行下去,从而在解放人工监视与操作。
3.3 避免风险。
通过智能交易可以强迫交易者摆脱那些极具破坏性的交易行为,养成良好的交易习惯。犯了错误不愿意纠正,贪婪、恐惧等是人的天性,而计算机会按照既定的规则去处理错误信号发出的指令和生成的持仓。严格的止损和风险控制,仓位控制,即无过量交易,无情绪化交易,无人工盘中无法避免的贪婪与恐惧。赢利的与否和多少,完全取决用户交易策略的好坏。
3.3经济效益。
在互联网+股票投资的应用背景下,顺应金融领域专家决策、精准执行的技术潮流,运用系统建模和程序开发的技术手段,探索股票投资智能交易的可行性和实用性。有助于股票投资者利用该辅助软件工具更好地认识股票市场动态,指导其交易决策过程,并在授权情况下按照投资者预设策略自动执行股票交易活动,降低交易风险和成本,提高经济收益。
4 智能交易的设计及使用
构建信号模型:利用MATLAB软件构建股票信号模型,计算股票开仓条件、开仓量,记录开仓点位和K线最高价格,记录当前K线开仓日期,以控制T+1交易,确定信号生成的内容和顺序,关键代码如下:
OrdersTime=Q_LastTime;
OrdersSeries=("["+Text(K_DateDay)+" "+Text(OrdersTime*100)+"] [ 买入] ["+Symbol+"] ["+SymbolName+"] ["+Text(MyEntryPrice)+"]
["+Text(Q_Upperlimit)+"] ["+Text(Q_LowerLimit)+"]");
if(Date>=CurrentDate-NM)SetTBProfileString2File("c:\\TBsignals.txt","orders",Text(date)+" "+SymbolName,OrdersSeries);
信号写入在交易软件中的实时行情按时间进行排序。其中K线最高点就是股票交易的最大盈利点。基于此再进一步计算出最大盈利比例和盈利后的回调比例,进而分析出阶梯止盈的梯度起点和各自的回调点位。其它止盈平仓、卖出等过程类似。关键代码如下:
If(TS==1)
{
PlotString("止損卖出:=","止损卖出@"+Text(MyEntryPrice),H+NN*MinMove*PriceScale,White);
}
OrdersTime=Q_LastTime;
P_DateDay=Date;
OrdersSeries=("["+Text(K_DateDay)+" "+Text(OrdersTime*100)+"] [ 卖出] ["+Symbol+"] ["+SymbolName+"] ["+Text(MyEntryPrice)+"]
["+Text(Q_Upperlimit)+"] ["+Text(Q_LowerLimit)+"]");
if(Date>=CurrentDate-NM)SetTBProfileString2File("c:\\TBsignals.txt","orders",Text(date)+" "+SymbolName,OrdersSeries);
模拟交易效果如下图:
建立股票信号测试模型:以股票行情软件中的模拟交易功能为基础,建立信号测试的实例模型,用以测试股票信号模型的有效性。
在测试模型中,具体执行开仓买入、止损卖出、止盈卖出等
各项操作,检验智能交易软件在模拟股票交易中的运行情况和交易效果。利用股票软件的模拟交易功能效果如下图:
小结
该研究涉及的软件属于具有一定股票投资经验的人员在其进行股票交易时使用的辅助软件,在投资者面对动荡多变的股市行情时,可以根据预设策略进行自动化交易,协助投资者精准操作,达到规避风险、提高收益的作用。软件也可以用于股票市场研究人员利用历史数据,在虚拟股市中检验其投资策略的有效性。
参考文献
[1]袁海亮. 基于计算实验方法分析程序化交易对股票市场的影响[D].天津大学,2012.
[2]彭济敏. 程序化交易方式在股票交易中的应用[D].吉林大学,2004.
基金项目:2016年浙江省大学生科技创新活动计划暨新苗人才计划项目“股票程序化交易软件设计与应用”(2016R425005)
(作者单位:宁波财经学院)