龙听期货论坛's Archiver

龙听 发表于 2024-8-22 10:45

手把手教会你构建自己的交易系统(二)

[p=30, 2, left][font=宋体][size=20px]这些天我在构思如何教大家构建交易系统的时候,刚好看到身边发生了一些小事。凑巧这些事情的发生,让我觉得和交易有关,所以有感而发,想说些看上去不太重要但我却觉得对交易至关重要的看法。[/size][/font][/p][p=30, 2, left][font=宋体][size=20px]所有在证券市场交易的人,[/size][/font][font=宋体][size=20px]第一要弄清的是,我们为什么要做交易?太多的人都会回答,挣钱。如果这是你的答案,你很有可能会在交易中遇到挫折时选择放弃。挣钱的方式成千上万,如果只是为了挣钱,有太多的方法。交易不是必经之路。人是追求动机的动物。[b][color=#FF0000]要么追究快乐,要么逃避痛苦。[/color][/b]你交易的动机究竟是什么?这一点如果没有引起你的关注,你离交易成功还有相当的距离。[/size][/font][/p][p=30, 2, left][font=宋体][size=20px]其次,是对权威的崇拜。我曾见到很多人对有高职位的人物,或者所谓的大人物,或者有着专业形象的人物,有着天然的崇拜。在我看来,这些人如果不修改自己对世界的看法,他们在交易场上很有可能会一错再错。这个世界上各行各业中,杰出的人数远远少于平庸的人数。但是平庸的人从来不会认为自己平庸,反而会因为种种原因而引以为豪。平庸的人惯于在个人的价值之外展现绚丽的包装。比如毕业于名牌学校,获得专业证书,或者穿金戴银购买名牌等,究其实质是因为对自身的价值不够自信,需要外在的包装和肯定。而在证券市场上,所谓专家并不重要,你拥有的过去也不重要,重要的是谁是赢家。一个人的价值体现在他对这个世界的回报。[b][color=#FF0000]敢于质疑权威,在弱小的时候充满自信,是我看到的所有成功者所具备的必然特质。[/color][/b]之所以谈到权威,是因为跟随正确的人、跟谁学很重要。如果你能读万卷书、行万里路、阅无数人,知道选择什么样的正确去跟随,那么你成功的概率会远高于他人。所以我一再强调,[b][color=#FF0000]个人素质的提高,对所有渴望在证券交易方面获得成功的交易商来说,是最重要的。[/color][/b]因为它将决定你向谁学,以及学什么的问题。[/size][/font][/p][p=30, 2, left][font=宋体][size=20px]像我这样好为人师的平庸之人,自以为交易有些经验。也许水平比我高的人看了嗤之以鼻。所以我特别渴望你们多提问题,这样既能够帮助你们也能够帮助我。所以我希望大家多多发问。如果你们的问题,让我产生思考,甚至交易系统的构建因此而发生重大改变,那是我最希望的。希望我的文章能够抛砖引玉,让真正的高手在理想论坛写出更好的文章。[/size][/font][/p][p=30, 2, left][font=宋体][size=20px]最后,太多的人在碰到困难的时候会质疑自己是否最终会在证券交易领域生存下去。[b][color=#FF0000]我一直相信,智慧来源于人生的痛苦。如果你没有足够的智慧解决你在证券交易的问题,说明你在证券交易中所遇到的问题痛苦的程度不够。[/color][/b][/size][/font][/p][p=30, 2, left][font=宋体][size=20px]说了这么多废话,希望对大家有益。下面言归正题。[/size][/font][/p][p=30, 2, left][font=宋体][size=20px]上次我推荐大家使用Excel 2010做系统测试平台,后来在家做了一些测试。发现Excel 2010比2003版作为系统测试平台有更多优势。对Excel使用达到中高级水平的朋友都知道[b][color=#FF0000],数组公式[/color][/b]是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能够使用多核计算。[/size][/font][/p][p=30, 2, left][font=宋体][size=20px]为了帮助大家深刻地理解交易系统,考虑到计算机知识的应用瓶颈,所以我将循序渐进。首先我会建立一个最简单的日内交易数据模型,但是会使用比较复杂的[b]数组公式[/b](希望对大家学习计算机公式能有一个拔高的作用,从而减少后续的学习难度)。在第一个案例中,我采用的[b][color=#FF0000]数据是SPY[/color][/b],也就是标准普尔的ETF的5分钟数据。大家可以下载后面的附件帮助学习。考虑到数据记录超过10万条,文件大小目前已超过40MB,所以我采用excel 2010版分析。后面深入的系统测试,因为多来自A股市场的日线数据,所以数据量较少,大家稍后可以用excel 2003版。[/size][/font][/p][p=30, 2, left][size=20px][font=宋体]Excel[/font] [font=宋体]的文件被称为工作簿(workbook),里面包括的表格被称为工作表(worksheet)。当你打开这个附件,你可以看见工作簿里面有几个工作表。其中,M5表格是SPY的五分钟数据。如果大家对如何获得这个数据有疑问,请在回复中提出。因为涉及到美国证券交易数据而不是中国A股数据,所以数据的获得相对而言复杂一些,需要一些编程的知识。[/font][/size][/p][p=30, 2, left][size=20px][font=宋体]Analysis[/font][font=宋体]表格是分析的中间数据。所谓的中间数据,是指为了得到交易数据最终汇总所需要的全部数据。所以大家会看到Analysis表格只有1000多条记录。[/font][/size][/p][p=30, 2, left][font=宋体][size=20px]为了让大家清楚整个交易系统的构建,我考虑用最简单的做法。比如,进场和出场规则是,突破开盘前30分钟的最高点和最低点时入场,中午11:30的时候出场。在开盘前30分钟多空势力争夺,30分钟后双方强弱才开始表现。再加上10:00往往是重大财经数据和政策公布的时点。所以这个进场的依据是根据开盘头30分钟的最高点和最低点,作为突破标志。如果突破30分钟最高点就做多,突破30分钟最低点就做空。而中午11:30出场,则是因为交易商中午去吃饭。我曾做过一个统计分析,11:30之后的两个小时内的平均波幅是当天最小的。考虑到交易系统的比较,我增设了出场的第二个时点,就是每天收盘前半小时。[/size][/font][/p][p=30, 2, left][font=宋体][size=20px]我希望大家多多关注[b][color=#FF0000]Analysis表格[/color][/b]。尤其是里面的公式,这里的公式都是Excel 2010里提供。所有交易系统的分析数据基本上已经在Analysis表格中得出。本想把交易数据做个汇总,并将交易系统的资金管理部分加进去,提供一个比较全面的交易系统。但因为本周时间非常紧张,加上下周我又要到外地去,所以所有的好的思路和解决方法,我都只好在两周后给大家。大家可以在这两周里,多下点功夫学学Analysis中推出数据的公式和方法。尤其是[b][color=#FF0000]数据透视表和数组公式。[/color][/b][/size][/font][/p][p=30, 2, left][font=宋体][size=20px]考虑到analysis的数据计算极度消耗计算机资源速度较慢,我将第一行数据的数组公式全部保留,而将后面的数据数组公式全部删除(因为公式和第一行的公式一样),而将公式计算结果直接使用。这样大家打开表格速度会比较快。[/size][/font][/p][p=30, 2, left][font=宋体][size=20px]
[/size][/font][/p][p=30, 2, left][font=宋体][size=20px][b]下面我把Analysis表格中所有列的含义做个解释。[/b][/size][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]行标签:交易日[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]最大值项:BarID:每日五分钟K线最大有78根(北美交易时间决定),节假日交易时间缩短所以根据K线数目可以确定当日交易时间[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]最大值项:High:当天最高价[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]最小值项:Low:当天最低价[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]求和项:Volume:当天成交量[/size][/color][/font][/p][p=30, 2, left][color=#2F3699][size=20px][font=宋体]Open[/font][font=宋体]:当天开盘价[/font][/size][/color][/p][p=30, 2, left][color=#2F3699][size=20px][font=宋体]Close[/font][font=宋体]:当天收盘价[/font][/size][/color][/p][p=30, 2, left][color=#2F3699][size=20px][font=宋体]Gap[/font][font=宋体]:跳空缺口[/font][/size][/color][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]头30分钟High:开盘头三十分钟最高价[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]头30分钟Low:开盘头三十分钟最低价[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]第一次突破最高点的BarID:第一次突破头30分钟最高点的K线[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]第一次突破最高点的Close:第一次突破头30分钟最高点的K线收盘价,也就是做多的成交价[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]第一次突破最低点的BarID:第一次突破头30分钟最低点的K线[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]第一次突破低点的Close:第一次突破头30分钟最低点的K线收盘价[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]进场的BarID:进场的K线。每日的波动可能会超过头30分钟的波幅,所以最早的突破为进场信号。[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]入场至11:30的最低价:为止损准备的数据[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]入场至11:30的最高价:为止损准备的数据[/size][/color][/font][/p][p=30, 2, left][color=#2F3699][size=20px][font=宋体]11[/font][font=宋体]:30的收盘价:出场的价格[/font][/size][/color][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]入场至收盘前30分钟的最低价:为止损准备的数据[/size][/color][/font][/p][p=30, 2, left][font=宋体][color=#2F3699][size=20px]入场至收盘前30分钟的最高价:为止损准备的数据[/size][/color][/font][/p][p=30, 2, left][font=宋体][size=20px][color=#2F3699]收盘前30分钟的收盘价 :出场的价格[/color][/size][/font][/p][p=30, 2, left][font=宋体][size=20px]
[/size][/font][/p][p=30, 2, left][font=宋体][size=20px]因为时间仓促,错误难免,请大家多多指教。如果有什么问题,请直接发帖回复。我会尽可能上网回复。两周后我会继续交易系统构建的讨论。谢谢大家的支持![/size][/font][/p]

页: [1]