藏水入疆工程已立项:手把手教会你构建自己的交易系统 - 1

来源:百度文库 编辑:九乡新闻网 时间:2024/04/27 23:03:46
手把手教会你构建自己的交易系统 - 1

本文来自:理想论坛 作者:张帆1972

前言:考虑这样一个主题,其实主要是想给自己提出一个挑战。自己从事证券投资多年,亏损过盈利过。当初苦于没人指点,完全靠自己摸索,走过相当多的弯路。虽然最终自己基本上找到制胜之道,但是我也知道,投资水平的提高永无止境。小规模的投资和大规模投资的方式与管理都不一样,不断的学习和成长是投资的终极解决之道。

曾经痴迷于国内的一些证券的书籍,大量购买国内的一些证券书籍,最后却发现在操作水平方面迟迟无法得到提高。后来阴差阳错到了北美,因为运气,遇到不少真正的投资高手。在他们的指点下,凭着自己粗浅的英语,我开始接触国外的经典投资书籍。也在自己不断的努力下,最终投资水平不断得到提高。

交易系统是一个很大的概念,它既包括进出场的定义,也包括资金管理和情绪管理。而绝大多数投资人最容易忽略的是如何调整自己的交易系统从而达到自己投资目标。看到国内很多投资的朋友,非常努力、投入,可是却无法在正确的方向不断提高自己。所以我决定从构建交易系统方面入手,教大家如何开始交易。

我要教大家的,是如何交易。那么首先我们要弄清什么是交易?大多数人会简单地认为交易就是买卖股票。不错,这是交易股票的过程。但是我要强调的是,我这里所讲述的交易,是有中国特色,也就是无法做T+0基础上的交易。所以,我这里的交易不是超短线。

既然是交易,我们就要意识到,我们如果要靠交易谋生,就必然每个月必须要有利润,也就是要有现金流。所以从这个角度来说,交易本身就是一种生意。既然要做生意,第一步就是生意计划,第二步就是严格控制生意的成本,同时在尽可能短的时间里提高利润。

那么这个生意计划应该包括什么呢?因为时间有限,我只能简单的讲述几点。

1,进场和出场的依据;也就是何时进场何时出场?

2,生意的成本;也就是每次进场后的止损。

3,利润。这涉及到资金管理的问题,这次暂时跳过,后面我会具体解释。

所以大家如果仔细看这三点,会发现交易系统的第一步和第二步,也就是进场和出场是所有人最关心,也是生意计划在初期最重要的问题之一。

我在投资领域见过两种高手。一种高手,是根据自己过去经验总结出来的方式来操作,一切操作都凭感觉。另一种高手,是根据历史数据以及经验,结合计算机的分析和判断,有严格的进场和出场的要求。这两种高手都是存在的,而且都是现实的高手。

高手都是从新手走过来的。但是对于众多新手而言,靠自己摸索,成本是非常高的,对个人信心也是一个备受折磨或者历练的过程。以我过去的观察,作为新手,投入资金,然后在交易中学习。他们在初期3-5年的亏损是必然!

对于新手,如何买卖呢?这就是我今天要讲的第一步,构建一个交易系统,通过历史测试。实现一个被历史数据验证过的交易系统,是我下面要重点和大家讨论的内容。

我在这里假设大家对技术分析都有一点点知识。比如,头肩顶、趋势线、支撑位和阻力位,以及均线、MACD,OBV都有些了解。(如果不了解,赶快在网上查一下。非常简单的几个概念,初中毕业生30岁以下,一晚上的时间就足够了。)

接下去的系统验证,全部在微软Excel上面实现。我个人在excel 2003上做金融分析多年,对股票数据模型的建立多是在Excel 2003上实现的。但是今年以来,开始使用Excel 2010。发现Excel 2010有以下至少2个优势。

1,Excel 2003的表格只能容纳6万条记录,而2010的版本能容纳超过百万条记录(这对于分钟级别数据的分析非常重要)。以往碰到的大规模数据,我一般都是通过Excel和Access相结合来解决。但现在用2010版应该降低了难度。

2,Excel 2010的函数比2003版丰富。简化了数据分析的难度。

所以,我建议大家使用2010版的Excel。但是如果你们一定要用2003版的Excel,我也没意见。

接下去的一周里,建议大家在机器上安装好通达信和Excel 2010或者2003。

我们下周见!

最后,恳请大家多提问题,多提意见!




手把手教会你构建自己的交易系统 - 2

这些天我在构思如何教大家构建交易系统的时候,刚好看到身边发生了一些小事。凑巧这些事情的发生,让我觉得和交易有关,所以有感而发,想说些看上去不太重要但我却觉得对交易至关重要的看法。

所有在证券市场交易的人,第一要弄清的是,我们为什么要做交易?太多的人都会回答,挣钱。如果这是你的答案,你很有可能会在交易中遇到挫折时选择放弃。挣钱的方式成千上万,如果只是为了挣钱,有太多的方法。交易不是必经之路。人是追求动机的动物。要么追究快乐,要么逃避痛苦。你交易的动机究竟是什么?这一点如果没有引起你的关注,你离交易成功还有相当的距离。

其次,是对权威的崇拜。我曾见到很多人对有高职位的人物,或者所谓的大人物,或者有着专业形象的人物,有着天然的崇拜。在我看来,这些人如果不修改自己对世界的看法,他们在交易场上很有可能会一错再错。这个世界上各行各业中,杰出的人数远远少于平庸的人数。但是平庸的人从来不会认为自己平庸,反而会因为种种原因而引以为豪。平庸的人惯于在个人的价值之外展现绚丽的包装。比如毕业于名牌学校,获得专业证书,或者穿金戴银购买名牌等,究其实质是因为对自身的价值不够自信,需要外在的包装和肯定。而在证券市场上,所谓专家并不重要,你拥有的过去也不重要,重要的是谁是赢家。一个人的价值体现在他对这个世界的回报。敢于质疑权威,在弱小的时候充满自信,是我看到的所有成功者所具备的必然特质。之所以谈到权威,是因为跟随正确的人、跟谁学很重要。如果你能读万卷书、行万里路、阅无数人,知道选择什么样的正确去跟随,那么你成功的概率会远高于他人。所以我一再强调,个人素质的提高,对所有渴望在证券交易方面获得成功的交易商来说,是最重要的。因为它将决定你向谁学,以及学什么的问题。

像我这样好为人师的平庸之人,自以为交易有些经验。也许水平比我高的人看了嗤之以鼻。所以我特别渴望你们多提问题,这样既能够帮助你们也能够帮助我。所以我希望大家多多发问。如果你们的问题,让我产生思考,甚至交易系统的构建因此而发生重大改变,那是我最希望的。希望我的文章能够抛砖引玉,让真正的高手在理想论坛写出更好的文章。

最后,太多的人在碰到困难的时候会质疑自己是否最终会在证券交易领域生存下去。我一直相信,智慧来源于人生的痛苦。如果你没有足够的智慧解决你在证券交易的问题,说明你在证券交易中所遇到的问题痛苦的程度不够。

说了这么多废话,希望对大家有益。下面言归正题。

上次我推荐大家使用Excel 2010做系统测试平台,后来在家做了一些测试。发现Excel 2010比2003版作为系统测试平台有更多优势。对Excel使用达到中高级水平的朋友都知道,数组公式是Excel使用最灵活,最有魅力的一部分,但同时它也是最耗用系统资源的。这次,我选用了超过10万条记录,使用的数组公式超过20000条,结果让我极为兴奋。我曾经在2003版对10000条记录使用数组公式大约5000个,结果在我的笔记本电脑(4年前购买的主流Intel芯片,2GB内存)计算时间超过20分钟。而这一次在我的台式机(AMD翼龙X4,8GB内存)上测试10倍以上的记录以及4倍以上的公式(计算量超过100倍),竟然时间缩短不到10分钟。让我非常兴奋。这说明 Excel 2010版初步具备独立系统构建的能力,而以往我都必须将Excel 2003和Access 2003结合起来使用才行。顺便说一下,2010版的Excel能够使用多核计算。

为了帮助大家深刻地理解交易系统,考虑到计算机知识的应用瓶颈,所以我将循序渐进。首先我会建立一个最简单的日内交易数据模型,但是会使用比较复杂的数组公示(希望对大家学习计算机公式能有一个拔高的作用,从而减少后续的学习难度)。在第一个案例中,我采用的数据是SPY,也就是标准普尔的ETF的5分钟数据。大家可以下载后面的附件帮助学习。考虑到数据记录超过10万条,文件大小目前已超过40MB,所以我采用excel 2010版分析。后面深入的系统测试,因为多来自A股市场的日线数据,所以数据量较少,大家稍后可以用excel 2003版。

Excel 的文件被称为工作簿(workbook),里面包括的表格被称为工作表(worksheet)。当你打开这个附件,你可以看见工作簿里面有几个工作表。其中,M5表格是SPY的五分钟数据。如果大家对如何获得这个数据有疑问,请在回复中提出。因为涉及到美国证券交易数据而不是中国A股数据,所以数据的获得相对而言复杂一些,需要一些编程的知识。

Analysis表格是分析的中间数据。所谓的中间数据,是指为了得到交易数据最终汇总所需要的全部数据。所以大家会看到Analysis表格只有1000多条记录。

为了让大家清楚整个交易系统的构建,我考虑用最简单的做法。比如,进场和出场规则是,突破开盘前30分钟的最高点和最低点时入场,中午11:30的时候出场。在开盘前30分钟多空势力争夺,30分钟后双方强弱才开始表现。再加上10:00往往是重大财经数据和政策公布的时点。所以这个进场的依据是根据开盘头30分钟的最高点和最低点,作为突破标志。如果突破30分钟最高点就做多,突破30分钟最低点就做空。而中午11:30出场,则是因为交易商中午去吃饭。我曾做过一个统计分析,11:30之后的两个小时内的平均波幅是当天最小的。考虑到交易系统的比较,我增设了出场的第二个时点,就是每天收盘前半小时。

我希望大家多多关注Analysis表格。尤其是里面的公式,这里的公式都是Excel 2010里提供。所有交易系统的分析数据基本上已经在Analysis表格中得出。本想把交易数据做个汇总,并将交易系统的资金管理部分加进去,提供一个比较全面的交易系统。但因为本周时间非常紧张,加上下周我又要到外地去,所以所有的好的思路和解决方法,我都只好在两周后给大家。大家可以在这两周里,多下点功夫学学Analysis中推出数据的公式和方法。尤其是数据透视表和数组公式。

考虑到analysis的数据计算极度消耗计算机资源速度较慢,我将第一行数据的数组公式全部保留,而将后面的数据数组公式全部删除(因为公式和第一行的公式一样),而将公式计算结果直接使用。这样大家打开表格速度会比较快。

下面我把Analysis表格中所有列的含义做个解释。
行标签:交易日
最大值项:BarID:每日五分钟K线最大有78根(北美交易时间决定),节假日交易时间缩短所以根据K线数目可以确定当日交易时间
最大值项:High:当天最高价
最小值项:Low:当天最低价
求和项:Volume:当天成交量
Open:当天开盘价
Close:当天收盘价
Gap:跳空缺口
头30分钟High:开盘头三十分钟最高价
头30分钟Low:开盘头三十分钟最低价
第一次突破最高点的BarID:第一次突破头30分钟最高点的K线
第一次突破最高点的Close:第一次突破头30分钟最高点的K线收盘价,也就是做多的成交价
第一次突破最低点的BarID:第一次突破头30分钟最低点的K线
第一次突破低点的Close:第一次突破头30分钟最低点的K线收盘价
进场的BarID:进场的K线。每日的波动可能会超过头30分钟的波幅,所以最早的突破为进场信号。
入场至11:30的最低价:为止损准备的数据
入场至11:30的最高价:为止损准备的数据
11:30的收盘价:出场的价格
入场至收盘前30分钟的最低价:为止损准备的数据
入场至收盘前30分钟的最高价:为止损准备的数据
收盘前30分钟的收盘价 :出场的价格

因为时间仓促,错误难免,请大家多多指教。如果有什么问题,请直接发帖回复。我会尽可能上网回复。两周后我会继续交易系统构建的讨论。谢谢大家的支持!



回复 2楼 面包枕头 的帖子
excel的上手非常容易,随便找本入门的书,只要每天坚持一个小时,最笨的人(懂得计算机操作)最长时间2周就能入门了。
至于熟悉公式的编写,需要较长的时间。但是如果要研究我使用的公式,估计对excel新手最长时间一周也够了。因为我使用的公式只有屈指可数的几个。关键是对数组公式的理解。如果大家希望学习Excel,请在后面回复。如果有很多这样的要求,我以后就在系统构建的内容中增加Excel公式的讲解。






手把手教会你构建自己的交易系统 – 补充说明

首先想说说我写这个系列日志的动机的问题。一直觉得,成功的交易商在为人方面应该不断关注自己的成长。所谓的贪和怕,以及人性的缺点,应该在这些人心里得到成功的控制。而人性的优点,则应该在这些人的内心中不断地发扬。比如:积极的生活态度、坚持、慈悲、同理心、感恩等等。一个能获得千万亿万财富的交易商,如果不懂得人品的修炼去发扬人性的优点,而是不断地被人性的弱点所控制,其人生不会快乐,也不会富足,更不会快乐。但是一个身无分文的人,通过自己的个人修炼不断提高自己的人品,强化人性的优点,弱化人性的弱点,最终这样一个人一定会在他自己所从事的行业中脱颖而出。

网上流传的禅论,其作者禅师,一直为我所欣赏。那是因为禅师将证券交易上升到哲学的理解,最终因哲学而将优秀交易商引入人品的修炼。尤其是禅师大谈论语,让我感叹真高人也!

所以,我一直也有一种责任感。自己在一个行业生存下来,没什么了不起。可是如果因为自己的存在,而带动了一群人,甚至振兴了一个行业,那是我渴望的,那也是我坚信的生命的意义。

对于在证券市场谋生的交易者,有不少人都会受困于基本面分析和技术面分析,甚至反复在价值投资和股票交易方面游移。我个人的看法是,投资和交易是不同的概念。如果你准备买入一只股票,然后拿3-5年甚至更长时间,你可能需要价值投资去挖掘投资对象的发展潜力。可是如果你靠交易股票为生,每只股票从来不超过6个月,那么价值投资基本上是没有意义的。我并非否认价值投资。事实上,考虑到中国的股票只能做多不能做空,对于交易商来说,股票价值分析的重要性在中国远比其他国家重要。原因在于,一只因为基本面好转而被长期看好的股票持续上升会让交易者更容易盈利。

好在中国的经济发展和政治影响力一日千里,我们的基本面分析可以做到非常简单有效。如果大家对基本面分析感兴趣,我在这里推荐我的基本面分析方法。我一般不看新闻,不看股评,可是我每周必看东方时事解读。大家可以在我贴出的日志里找到。里面的政治军事外交以及经济分析,非常精辟。国家的战略重点,经济发展方向,看完后一目了然。如果你在过去一年一直坚持看这个报道,那么你一定知道为什么高铁会在未来10年内成为中国经济、政治、外交中最重要的一环。现在高铁的上涨只是开始而已。而房地产是绝对不要碰的,我曾反反复复提到这个观点。

最后我想谈谈为什么要用excel来构建交易系统数据模型。我最近常常碰到这类问题。其中一个常见问题是,国内的证券软件基本上都有交易系统测试功能,为什么一定要自己来测试交易系统?另一个常见的问题是,为什么一定要用excel?

先答第一个问题。对于交易系统测试,我一般不太倾向于使用证券软件测试。如果你不信,用3个证券软件测试同一个交易系统,很有可能会有3个不同的结果。如果我不知道整个系统测试的过程,我宁愿不测试。因为如果是错误的,带来的麻烦可能自己无法承担。而且证券软件的交易系统测试功能比较弱,稍微复杂一点的就无法实现。而自己做系统测试,完全由自己控制,可靠性较高。即便有错误或者不妥之处,自己也可以修改,灵活性也较高。

至于使用excel,完全是因为平台灵活,可以制作出完全符合我们需要的数据模型。有人可能对数据模型比较陌生。其实数据模型就是一些公式、数据、程序的集合,集中在一个黑盒子里。随着输入数据的改变,输出结果发生对应的改变。这就是数据模型。举例来说,我根据上证指数构建了一个交易系统。我把历史数据更改后,改成中国北车的历史数据。于是输出结果自动发生改变,盈利率等数据全部自动显示出来。

聪明的交易者,现在可能会有下面这个问题。是不是同一个交易系统,对不同的交易对象,测试结果是不同的呢?答案就是是!所以,交易系统一般不具有普遍的营利性。这就是为什么我一直教育我身边的中小投资者,不要交易或关注太多股票,一般关注3-5只股票就足够。除非你做超短线,今天进,明天出,最长不超过3天,这样的交易需要选择波幅大的股票,关注仅仅三五只股票是不够的。

在我看来,Excel的使用有3个层次。第一个层次,懂得编辑、输入、排版,偶尔用用排序、过滤。第二个层次,我称为中级用户。除了第一个层次的操作外,知道如何使用数据透视表,能够使用常用的公式,偶尔会记录宏简化日常操作。甚至会根据自己对需求和VBA的理解,手动修改宏。第三个层次,就是应用级高手,能够熟练使用公式,能够根据需要编写VBA程序。第四个层次,超过了用户的层次,我称之为开发者。我就不多说了。对于交易系统的构建,第二个层次就绰绰有余了。所以,如果你不懂Excel,买本Excel的书,好好学学,基本上一周内你就可以超越第一层次,进入第二层次。

最后,我要强调的是,不要为了学习Excel而学习Excel。不要忘了你学习Excel的目的是什么! 本文来自:创幻论坛 http://www.chcj.net