您现在的位置:程序化交易>> 程序化交易>> 程序化要闻>>正文内容

古期荐读:在电子表格中建立回溯测试环境(二)[程序化要闻]

表5.1.2系统重要格位、公式与功能

格位

公式

功能

A1:F302

台指期货日事务数据,从第A栏到第F栏依序为「日期」、「开盘价」、「最高价」、「最低价」、「收盘价」、「成交量」等技术分析所需价量数据,数据笔数共300笔(含两列标题,共计302列),虽然在本例中选择使用台指期货为分析标的,但只要切换数据内容(以复制贴上的操作将数据取代即可),即可用于分析其他投资标的。图5.1.1中所示者为自2008/6/13至2009/4/30之台指期货近月连续日事务数据。

由于台指期货商品会在每个月的第三个礼拜三到期,近月期货到期后,取下一个近月的事务数据接续,此即所谓「台指期近月连续数据」,当然,在数据接续过程中可能产生价格滑价。假若,读者欲分析股价数据,则必须使用经除息除权调整后的数据,以免产生误判。

I5

设定心理线计算回溯天数(N值)。

I6

设定心理线买进下限值(依据表5.1.1的操作规则,一般取0.25)

I7

设定心理线卖出上限值(依据表5.1.1的操作规则,一般取0.75)

G3:G302

以G3格位为例,其为「=IF(E4>E3,1,0)」,余类推。

判断当日收盘价(E4)相对于昨日收盘价(E3)为上涨或下跌,若上涨则填为1,不涨则填为0。完成G3格位后,将之复制至「G4:G302」范围即可。复制的方法很简单,除了以「复制+贴上」的操作外,由于连续格位的复制,也可以将鼠标定在G3格位右下角,直接拖曳至G302格位即可,更简单的作法是将鼠标定在G3格位右下角后,双按鼠标即可。

H53:H302

以H53格位为例,其为「=AVERAGE(G53:OFFSET(G53,-(I$5-1),0))」,余类推。

计算心理线指标,可参考表5.1.1中的公式。在此以Excel之AVERAGE函数求算平均值以得心理线指标,由于心理线指标回算天数N,为可弹性改变的参数,此将造成计算平均的数据范围变动,为此可以Excel之OFFSET函数找到范围的参照格位位置,OFFSET函数的第一个参数为参照格位位移起点,第二个参数为列号改变移动量,第三个参数为栏号改变移动量,在此例中,以G53为参照格位位移起点,移动-9(由-(10-1)算得)列(上移9列),并移动0栏(因为平均值数据区域的另一个位置在同一栏中),即可得正确参照范围。

I52

设定起始买卖状态,因为一开始维持不变,故为「2」(本章中设定买卖判断数值标签,「1表买进,3表卖出,2表维持部位不变」),此格位将被其他格位参照,因此必须设定。

在本章范例中,保留前50笔数据作为指针回算之用。为何需要保留回算天数呢?以计算20日均线为例,必须在第20天收盘后,取得共20日资料才能算得均线值,此20,即为指标回算日数;保留50笔数据,系为了能保留参数回算的弹性变动空间。扣除掉2列标题,起始买卖状态出现在第50日的列52,余类推。

I53:I302

以I53格位为例,其为「=IF(H53<=I$6, 1, IF(H53>=I$7, 3, 2))」,I54:I302直接复制自I53格位。

判断「买进」(设为1)、「卖出」(设为3)或「维持不变」(设为2)。在此,系依据表5.1.1心理线判断方法中的第二条规则操作,当心理线指标(H53)<=买进下限(I6),则买进(=1);当心理线指标(H53)>=卖出上限(I7),则卖出(=3);否则不变(=2)。

J52

设定起始股票张数余额,期初为0。

J53:J302

以J53格位为例,其为「=IF(I52=1,K52/B53+J52,IF(I52=2,J52,0))」,J54:J302直接复制自J53格位

计算股票账户余额。

若昨日出现买进讯号(I52=1),则将持有现金(K52)依据今日开盘价(B53)买进,并累计至昨日股票余额(J52);若讯号维持不变(I52=2),则此格位为昨日股票余额(J52);若讯号为卖出(若I52不为1或2,则为3),则股票账户为0。

K52

设定起始资金账户余额,期初为$1,000。

K53:K302

以K53格位为例,其为「=IF(I52=1,0,IF(I52=2,K52,J52*B53+K52))」,K54:K302直接复制自K53格位

计算现金账户余额。

若昨日出现买进讯号(I52=1),则已经买进所有股票,因此现金账户将为0;若讯号维持不变(I52=2),则此格位为昨日现金账户余额(K52);若昨日出现卖出讯号(I52=3),则将所有昨日股票余额(J52)以今日开盘价(B53)卖出(以J52*B53算得),累加到昨日现金账户余额(K52)中。

K5

=((J302*E302+K302)-K52)/K52

计算分析期间使用「心理线策略」之期间报酬率。计算方法系以「期末股票部分」(J302)乘上「期末收盘价」(E302)加上「期末现金账户余额」(K302),得到「期末投资价值」,以之减去「期初投资金额」(K52),再除以「期初投资金额」(K52),即可。

K6

=(E302-B53)/B53

计算分析期间使用「买进持有策略」之期间报酬率。计算方法系以「期末收盘价」(E302)减去「期初开盘价」(B53),再除以「期初开盘价」(B53),即可。

K7

=K5-K6

计算使用分析期间,使用「心理线策略」相对于使用「买进持有策略」之超额报酬率。

       

 

    由图5.1.1中可以追踪依据心理线指标的买进卖出过程,只有在「2008/9/11」买进、「2009/2/16」卖出,未再买卖交易,期间报酬率为-29.02%。若此期间采取「买进持有策略」,期间报酬率为-0.84%,使用「心理线策略」相对于使用「买进持有策略」之超额报酬率为-28.18%。

    将图5.1.1中的日期、收盘价、心理线值、买进下限值与卖出上限值等数据绘成折线图(以日期为横轴、心理线值、买进下限值与卖出上限值为主坐标轴、收盘价为副坐标轴),可得如图5.1.2的线图。由线图中可以观察到买卖点位置(在图中以「插入Ø图案」的操作加入了买进的向上箭头与卖出的向下箭头)以及损益状况。由图形追踪可知,若能调整指标参数,或许有机会增加获利。http://www.cxh99.com

    在图5.1.2中,使用了副坐标轴之设定,应如何做呢?当我们希望将多组信号同时绘制在统计图上时,会面临资料范围相差过大的问题,例如在图5.1.2中,心理线值介于0与1之间,可是收盘价却介于3,500到8,000间,若使用同一坐标轴,心理线指标会看不清楚,因此可点选开盘价的线图,以鼠标右键打开快速菜单,选取「数据系列格式」,在打开的窗口中的「数列选项」选择「副坐标轴」选项即可,如图5.1.3所示。

 

t;t; t;t; 图5.1.3启用双坐标轴功能/n=>

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198   点击这里给我发消息或微信:cxhjy888 进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容