虚拟主机环境搭建:交易系统及开发流程

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 02:59:28

交易系统及开发流程

(2010-03-05 18:12:58) 

1.系统定义
Q1.1 什么是系统交易?
Q1.2 什么是交易系统?
Q1.3 什么是股票自动交易系统?
Q1.4 KDJ,MACD是不是交易系统?
Q1.5 交易系统的策略是指什么?
Q1.6 系统交易能赚钱吗?
Q1.7 巴菲特有没有交易系统?

Q1.8 有没有现成的技术分析派的交易系统?
Q1.9 自动机是什么?
Q1.10连续获利能力是什么概念?

2.系统架构
Q2.1自动交易系统包括哪几个模块?
Q2.2 怎么才能收集股票数据?
Q2.3 如何制定出交易系统的策略?
Q2.4系统策略最关键是什么?

3.系统开发
Q3.1 为什么要开发股票交易系统?
Q3.2 对于自动交易系统的开发来说,需要什么样的背景知识?
Q3.3 什么样的人才合适去开发一个交易系统?
Q3.4 用什么开发股票交易系统?
Q3.5 开发周期会多长?
Q3.6 需要数据库么?

4.系统测试
Q4.1 自动交易系统测试分为几个步骤?
Q4.2 如何提高系统测试效率?

—————–End of Question Index——————

1.系统定义
Q1.1 什么是系统交易?
A:系统交易是指与交易者能力、技巧、经验无关的,排除了主观和情感因素的机械式的交易方法。系统交易包括的四个基本规则:买入规则、卖出规则、止损规则以及资金管理规则。

Q1.2 什么是交易系统?
A:交易系统是基于系统交易规则构筑的计算机软件系统。

Q1.3 什么是股票自动交易系统?
A:股票自动交易系统是指针对股票市场进行开发的,能够在非人工干预的状态下,自动提示:买入信号,止损信号,卖出信号以及每笔交易头寸大小的交易系统。

Q1.4 KDJ,MACD是不是交易系统?
A:KDJ,MACD以及其他技术指标都不是交易系统。虽然可以根据这些指标来规定一个交易系统的买入、卖出规则,但是缺乏止损以及资金管理规则,同样不能称之为完整的交易系统。

Q1.5 交易系统策略是指什么?
A:交易系统策略是制定交易系统规则的基本思想。
股票交易系统策略可以粗略的划分为:基本面分析交易策略和技术面分析交易策略。
《漫步华尔街》(A Random Walk Down Wall Street)具体分析了两种策略的优劣。不过鉴于作者对技术分析的偏见,同时还推荐《专业投机原理》(Principles of Professional Speculation)。

Q1.6 系统交易能赚钱吗?
A:不是每个交易系统都能赚钱,但是长期稳定赚钱的交易者必然有其系统的交易方法。成功的交易员有其完整的交易规则体系,同时拥有良好心理素质。所以即使没有交易系统的辅助,这些交易员都能从市场上获得回报。

Q1.7 巴菲特有没有交易系统?
A:巴菲特的价值投资理论是他的交易体系,虽然不是这里定义的狭义的交易系统。他投资的是公司本身而并非在买卖股票,所以他的交易系统的规则:对于业务简单而持续盈利的公司,他在市场价格相对便宜的时候买入;股票价格超出潜在价值时卖出;尽量终身持有,所以没有止损一说;保证资金安全,不把所有鸡蛋放在同一个篮子里。

Q1.8 有没有现成的技术分析派的交易系统?
A:有的。《海龟法则》(Turtle Rule)就是一个完整的趋势突破型的交易系统,而且是免费的。海龟法则的定义包含了交易系统的所有要件:买卖对象的选择、资金管理、何时买入、如何止损、何时卖出等。可以在google上找到相关的资料。

Q1.9 自动机是什么?
A:自动机(Automatic Machine)是来自日语“自動機”(Jidouki),在金融证券领域往往指后台处理程序。在这里借用以表示自动交易系统。

Q1.10连续获利能力是什么概念?
A:这里有两层含义,第一是指通过不断的交易不同的股票进行获利;第二是指在一只股票上的反复操作进行获利。看似简单的一个问题,其实正因为有两层含义,所以分别代表了两个自动交易系统需要解决的策略选择的两个阶段。

2.系统架构
Q2.1
自动交易系统包括哪几个模块?
A:自动交易系统包括如下几个基本的模块:
+1.数据收集模块:针对具体的交易策略,将需要分析的数据进行下载。
+2.交易策略模块:实现买入、止损、卖出以及资金管理。
+3.策略测试模块:对系统采用的策略进行历史数据测试(Back Test)。
+4.自动交易模块:根据实时数据信息,自动进行买卖。

Q2.2 怎么才能收集股票数据?
A:股票数据基本分为三大类:
+1.股票基本信息:股票代码,股票市场,公司名称
+2.股票价格信息:一定周期内(一天,一周等)重要的四个价格的开盘价格(Open),最高价格(High),最低价格(Low),收盘价格(Close),常以(OHLC)代表。
+3.股票财务信息:包括利润额,市盈率(P/E),市净率(PB),净资产收益率(ROE)等。
以上的最新信息都可以从Yahoo上收集到。

Q2.3 如何制定出交易系统的策略?
A:最快速最方便的办法就是将自己已有的,已经长期稳定盈利的策略量化成为交易系统的策略。
如果还没有一套系统的交易策略的话,可以通过下面的步骤来进行定制:
+1.确定交易哲学:投资或者投机。只要能获得回报,没有好坏之分。
+2.明确交易风格:首先需要确定自己的交易风格是属于保守的、厌恶风险的、追求稳定而非高回报类型,还是激进的、对风险有一定抵抗力的、想充分利用资金追求利润极大化的类型。
+3.明确买卖对象:根据自己的交易哲学和交易风格选择交易对象,将其共同的特性总结和量化。
+4.总结买卖模式:将买卖对象的历史数据进行分析,找出可行的买入卖出价位,总结成买卖模式。
+5.制定风险管理:根据自身对风险抵抗能力的强弱以及资金量的大小,制定止损原则和资金分配原则。

Q2.4系统策略最关键是什么?
A:在市场上赚钱,关键不在于如何去预测市场本身,而是根据市场的行情来决定相应的策略。系统策略要解决的问题,同样也是关键所在:
+1.如何制定合理的风险回报比
+2.如何顺势加码

3.系统开发
Q3.1
为什么要开发股票交易系统?
A:如果有完整的系统交易规则,在可量化的前提下,用计算机来代替人工买卖是一个很好的办法。除此之外,如果有一个开发性的交易系统平台,可以对已有的交易策略进行测试,改善和发展出更好的交易策略。

Q3.2 对于交易系统的开发来说,需要什么样的背景知识?
A:对于自动交易系统开发者来说,最好能具备的基本知识:计算机编程和交易知识。如果懂得金融工程和建模方法更好。

Q3.3 什么样的人才合适去开发一个交易系统?
A:一个有丰富交易经验,但是对自己情绪控制不佳,容易受到市场价格变动影响的交易员是最需要一个自动交易系统的。随着计算机软件开发工具的成熟,计算机编程已经越来越容易上手。所以,只要有心学习,大部分人都可能、可以开发一个交易系统。

Q3.4 用什么开发股票交易系统?
A:简单的如Excel,复杂一些的如C++,VB.net(C#),Java,Perl等都可以。

Q3.5 开发周期会多长?
A:从建模、系统策略原型建造、测试到实用,这几个阶段可能会在半年到1年左右的时间内完成。不过根据系统实现语言、系统运行OS等,时间长短有所区别。

Q3.6 需要数据库么?
A:作为原型开发的话,在追求速度和短时间内能够检验自己的策略和思想的话,可以不需要使用数据库进行数据管理;在成熟和产品话过程中,数据库可以带来高效的数据查询和管理效用。从Oracle,SQLServer,MySQL,Access都是很好的选择。

4.系统测试
Q4.1
自动交易系统测试分为几个步骤?
A:自动交易系统在开发完毕之后,测试分为下面三个步骤:
1.运用历史数据进行系统回归测试(Back Test)
2.运用虚拟资金进行实盘测试
3.系统投入使用,进行真实操作测试

Q4.2 如何提高系统测试效率?
系统测试按照测试范围大小和步骤分为单元测试(Unit Test),结合测试(Integration Test)和系统测试(System Test)。所以测试效率可以在不同的阶段进行提高。

比如在单元测试,重点可以放在策略模块的测试。VisualStudio2008 Professional版提供了创立单元测试的功能,能够很方便的对class或者mothod进行单元测试。具体来说,为了测试某一策略,可以事先选择能够使得该策略运用成功和运用失败的股票,将作用的时间范围制定好作为测试的输入上下文(Input Context),然后在单元测试中编写好调用改策略的的驱动程序(Test Driver),将策略运行结果(Actural Result)和期望结果(Expect Result)进行比较,以判断程序的正确性。如果在修改或者改善了策略之后,还可以简单的重复上面测试而不用再重新编写驱动,以达到提高效率的目的。