金字塔的信号触发模式的研究

作者: 飞橙 分类: 量化交易 发布时间: 2012-10-27 23:27 ė 199,322 浏览数 6 没有评论

一、指令价模式与走完K线模式
很多的初学者虽然已经过度到程序化交易,但实际仍未摆脱贪婪的本性,希望都能在最低的价格入场,最高的价格卖出,稍有误差就捶胸顿足。殊不知事都有两面性,大家都这么想,结果往往事与愿违,这也是投机市场95%的人最终却以亏损下场的最根本原因。
我们既然执行的是量化交易,那么就应该在交易过程中严格执行我们的量化交易行为,应该避免任何人为的冲动及贪婪行为,因为在执行量化交易测评时历史数据就只有开高低收这4个历史数据,是没有办法知道历史的这一天的具体实际走势,虽然某些软件宣称可以做到这一点,但是都是利用K线的形态来估算当日的走势,金字塔自带的等价K线就是这么计算的,这样计算出来的指令价位只能是一个估计的数字,大家要知道我们在实盘过程中,如果使用这样的指令价来进行入场交易,将会造成实际的交易结果与你在历史测评中产生巨大的差异,为什么在测试时效果很好,而实际交易确亏的一塌糊涂,这也是相当目前一部分投资相当困惑的一个原因。
而利用K线走完下一个K线开盘进场方式,将会对这种虚假的历史价格测评有很好的抑制作用,这也是目前很多专业投资者大都惯用的一些交易方式。很多投资者可能都会问到,如果使用K线走完,如何避免一些秒杀行情呢?其实道理非常简单,如果你在用历史数据进行测评时候,自然要对这个品种的历史数据进行策略评估,要充分的关注该品种历史秒杀时的策略表现,直至完善策略,如果策略不能很好的对历史秒杀行情进行有效回避,那么你就应该更换思路甚至放弃该策略。如果这个品种根本就没什么秒杀行情,那么你又何必去担心将来的不可预测的行情呢?大家都知道,量化交易是做概率事件的!
在此对喜欢哪些对行情价格敏感的客户提出几条建议:
以上所说我都清楚了,那么如果我还是就是想在1分或者5分钟K线变化时就能及时入场,就是不想等到K线结束时入场耽误我赚钱的机会怎么办呢?
1、可以将使用周期缩小即可,比如使用多秒线进行交易,这样你的策略就有足够的反映速度了。
2、如果知道你的模型可能在历史测评时出现的具体价位,可以使用金字塔提供的限价指令价入场测试,如BUY(C>0,2,LIMITR,CLOSE-0.2);表示在指定限价CLOSE-0.2元位置下买入2手限价单。

二、固定轮询模式和走完K线模式
固定轮询和走完K线的特点:
固定论询,指的是金字塔在每间隔一定时间内去检测信号是否有发生,发生后就立即采取下单策略;走完K线是必须等到K线结束,下根K线刚产生的那一刻进行信号检测和下单。
很多的刚接触交易的初学者,都幻想自己能买在最低价卖在最高价,故不去考虑其他因素只想快点进场交易怕出现大阳线影响他的收益,选择固定轮询的最小周期高频扫描,希望能把市场上所有的钱都赚到自己口袋理,殊不知这种做法往往是捡了芝麻丢了西瓜,这些不成熟的投资理念,也是为什么市场绝大多数人都是会被淘汰,而只有少数人能够生存的根本原因。也是贪婪的人性弱点的充分展现。
固定轮询模式的缺点和走完K线的优点:
例如下面的公式
ENTERLONG:CROSS(MA(CLOSE,A),MA(CLOSE,B));
EXITLONG:CROSS(MA(CLOSE,B),MA(CLOSE,A));
1、使用固定轮询会产生信号的反复出现与消失,因为最后一个K线的CLOSE价格未确定,当价格不断变化时,会造成交易信号还未最终确定就提前的过早入场下单交易,不守纪律的下单,未必一定能抢到很好的价位,价格的来回反复是很正常的事情,虽然金字塔提供了信号消失恢复持仓,那么不断的信号反复消失会带来手续费的不断增加,加上交易是个很复杂的过程,恢复持仓的正确性有很大的局限性,一旦出现了不能及时恢复持仓,会造成策略的信号与实际的持仓不一致,最终的收益情况与我们在设计指标所测试的结果出现较大差距。而走完K线因为是上一个K线的最终确定形成后才进行下单交易,故可以有效防止此问题。
2、固定轮询会在产生漏单,固定轮询是按照一定时段间隔扫描最后一个K线的信号,如果刚好在最后一个K线结束时信号形成,而此时正好时段在轮询中间,那么这个信号就会被漏掉,同样会产生信号的发生与与实际的持仓不一致,同样会出现上述的收益问题。
3、固定轮询会增加CPU的资源消耗,系统会按照轮询设置上的时间去计算是否有信号发生,会造成CPU在大多数情况下都是一些无谓的计算,而走完K线只会在每个新K线形成时只计算一次,这可以大大减小CPU的运算量,尤其是用户在进行后台程序化交易时,如果监控的品种比较多和策略比较复杂的情况下,使用走完K线模式运行是很重要的。
4、固定轮询模式的交易滑点是我们在程序化交易评测里无法测试的,因为固定轮询模式的交易价位可能是当前K线的高低价格之间任意一个,我们在用历史数据测试时是无法预知的,这会造成用历史数据测试固定轮询模式时,只能大概使用一个收盘价或者K线中价来模拟进场交易,使用这种模式测试出来的交易结果存在很大隐患的,最后可能导致实际的交易与测试时结果天壤之别。而走完K线模式的入场价格只能是下个K线的开盘价,测试时是可以测试到的,实际的交易过程中也是固定不变的,这就能最大保证测试结果的收益与实际的交易收益保证一致。既然无法测试固定轮询的实际盈利,那么我们为什么一定要去拿自己的资金来冒险呢?既然可以使用走完K线来测试到盈利情况,那么为什么我们就不能在盘中使用走完K线去坚持呢?

前面列举了固定轮询模式的这4大缺点,那么固定轮询模式到底该用在什么地方呢?
1、后台程序化交易中的高频交易或者套利交易,因为不是趋势交易,不必担心信号消失,只需要进出场迅速。
2、监控止损操作,只要价格碰到了指标设定的条件就立马止损。

虽然我知道了固定轮询的诸多缺点,但是我还是想用,那该有什么办法呢?
虽然知道金字塔有很强的仓位监控止赢止损功能,但是我还是想在模型里自己实现特定的止损操作,避免走完K线时间过长出现爆仓危险,那么我们该在固定轮询模式下的模型的设计时注意哪些才能避免漏单和信号消失呢?
1、设计指标时,不要使用CLOSE等价格频繁跳动的数据做为指标信号是否出现的依据,而是使用OPEN,HIGH等这些数据,因为一旦出现它们是不会反复上下变化,例如可以改成这样写:
ENTERLONG:CROSS(MA(OPEN,A),MA(OPEN,B));
EXITLONG:CROSS(MA(OPEN,B),MA(OPEN,A));
这样改写后,只要测试盈利,在实盘交易时使用固定轮询,那么信号一旦出现,就不会再出现消失,因为OPEN一旦出现是不会变化的。
2、使用上根K线的信号做为本次的进场依据,相当于在固定轮询模式下实现走完K线的方法,代码可以这样写:
AA:=CROSS(MA(CLOSE,A),MA(CLOSE,B));
BB:=CROSS(MA(CLOSE,B),MA(CLOSE,A));
ENTERLONG:REF(AA,1);
EXITLONG:REF(BB,1);

注:转自http://www.weistock.com/bbs/dispbbs.asp?boardid=9&Id=13685,http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=5224

本文出自乐谷吧,转载时请注明出处及相应链接。

本文永久链接: http://www.legu8.com/?p=241

发表评论

邮箱地址不会被公开。 必填项已用*标注

Ɣ回顶部