手把手教会你构建自己的交易系统(四)
(2012-12-20 14:01:03)
标签:
股民糖糖构建交易系统教会股票 |
分类: 交易系统创建 |
很多人都知道交易成功的三个要素。 第一要素就是方法,也就是这里所讲的交易系统。其次就是资金管理,最简单地说,就是止损(Stop
Loss)和分仓操作(Position
Sizing),我稍后会谈及。最后是心理。
随着第一步的深入,交易商开始有些收获,甚至在某几个年份里能够获得稳定的收益。这个时候,开始相信这个行业中稳定盈利是确定的,并且对自己开始产生信心。自信是在交易中生存至关重要的因素。自卑和自大往往是孪生兄弟。要相信自己,懂得成功人士之所以成功不是因为他们和自己不一样,而是因为他们失败的次数比自己多。我最喜欢的格言是乔丹的“My Pain is my Motivation”(我的疼痛就是对我的激励!)相信吧!如果你失败得足够多,你就是明天的交易之神!
心智模式发展的话题,是永无止境的话题。活到老,学到老,是证券交易市场唯一的生存之道。
下面我继续谈交易系统的构建。前几次,我用的是SPY的5分钟分时数据,主要是希望大家熟悉Excel及其公式。从现在开始起,我将采用a股数据。
安装好通达信的朋友,请进入通达信。如附件1.jpg所示,选择600028中国石化。主图指标选择5日、30日和250日均线。副图指标选择macd(12,26,9)和ATR(14)。将其导出为Excel格式。见附件2.jpg所示。然后将表格数据进行整理,去掉我们不需要的行列,将spreadsheet也就是日线数据表名字改为daily。如附件3所示。
很多人喜欢使用指标,甚至自己定制的指标。下面我就简单地讲述在Excel中如何构建一个指标。
之所以Excel可以作为一个开发平台,是因为Excel提供了非常灵活和简单的编程平台:Visual Basic for Application,或者简称VBA。VBA是以BASIC语言为基础的编程语言,所以非常容易上手。对于所有Excel用户来说,如果他们渴望成为高级用户,VBA编程是必须的。
打开附件中的600028.xls,按ALT+F11,进入VBA编程环境。双击工程模块Functions,大家会看到如下公式:
Function TrueRange(ByVal high As Double, ByVal low As Double, ByVal previousclose As Double) As Double
Dim returnValue As Double
diffHighLow1 = Math.Abs(high - low)
diffHighLow2 = Math.Abs(high - previousclose)
diffHighLow3 = Math.Abs(previousclose - low)
If (diffHighLow1 > diffHighLow2) Then
Else
End If
If (diffHighLow3 > returnValue) Then
End If
TrueRange = returnValue
End Function
这是指标TrueRange的实现过程。如果有不懂的,先去了解TrueRange指标是如何计算的,然后再来看VBA是如何实现的。
好了,咱们再进入表格调用这个指标。在ATR.ATR列的右边单元格输入TrueRange。因为TrueRange指标需要今日的最高、最低价和昨日的收盘价,所以我们选中单元格O3,输入=truerange(C3,D3,E2),然后下拉使该列所有单元格都采用同样的公式和对应的引用参数。大家可以看到,我们这里用函数计算的结果O列和通达信的计算结果M列,在开始的计算中有小数点的区别。但是后面的数据都一样了。
这里采用的VBA编写函数的方法,是Excel最有魅力的一部分,也是VBA的中级使用。对VBA不熟的朋友,可以多多采用记录宏的方法,然后学习宏的编写。虽然从记录宏中学习VBA的方法,学到的不见得是效率最高的编程方法,但却是最简单的入门方法。
有人可能觉得每个指标都要写函数,过于麻烦。我的观点是,因为我们在写函数的时候,指标的细节必须重点关注,所以会帮助我们对指标的理解。如果将所有编写好的指标公式放在一起,作为自己的专用指标库函数,那么日积月累的工作会让自己后面的工作越来越简单。如果希望不编写函数而直接调用市面上现有的指标,我自己也有专门的解决方案。但那是VBA的高级用户的学习内容了。
请大家对这个系列的文章多给些反馈。是太容易了?还是太难了?拜托请不要只说谢谢分享!给些反馈就是对我的谢谢!谢谢大家的支持!
很多人对交易系统有神秘感,其实神秘感的来源主要是因为不懂什么是交易系统所以好奇导致。任何人都可以根据任何买进卖出信号构建自己的交易系统。但是,一个交易系统需要投资者投入大量的时间和精力。那如何判断一个交易系统的好坏呢?
今天我给大家讲讲交易系统最重要的评测指标。市场上评测交易系统的指标有很多,我个人最喜欢的是wealth-lab的系统构建平台。为了方便大家了解交易系统的本质,我将wealth-lab里面的交易系统中的评测指标全部做了翻译和解释。这些指标希望大家记住,甚至要背熟。为下一阶段的工作做准备。
Starting Capital
(初始资金)
Ending Capital
(终止资金)
Net Profit(净利润)
Net Profit %(净利润%或者投资回报率)
Profit per
Bar(每根K线的利润)
Annualized Gain % (Annual
Percentage Return, APR,年投资回报率)
Exposure (%,暴露风险)
Total
Commission(佣金总额)
Return on
Cash(现金回报)
Margin Interest
Paid(所付融资利息)
Dividends
Received(所得分红)
Number of
Trades(交易数量)
Avg Profit (Loss)(平均利润/损失)
Avg Profit % (Loss %)(平均利润/损失率)
Avg Bars Held(平均持仓时间)
Win/Loss
Rate(盈利/亏损率)
Gross Profit/Loss(毛利润/亏损)
Max Consecutive(最大连续盈利/亏损次数)
Max Drawdown(最大系统回撤$)
Max Drawdown
Date(最大回撤日)
Max Drawdown
%(最大回撤$)
上面的内容中有一个slippage,不能简单翻译。有人翻译为滑价差,让我看得摸不着头脑。slippage,是指我们决定以当前价格市场价成交,可是实际成交价却不同于我们看到的市场价。这两者之间的价差会增交易成本,被称为slippage。因为找不到对应的词汇,所以专门在这里做个解释。
大家一定要记住这些名词的意思,这样到后面才不会困难。