-- 作者:admin
-- 发布时间:2010/6/22 18:06:06
-- 有关在图表程式化交易中使用DYNAINFO、THOLDING等常数函数的特别说明
很多初学者搞不清楚常数与序列数值的区别,这里给大家介绍一下,常数函数不同于序列数值的函数,序列数值的函数,会在调用后返回一串连续的数据,而常数只会返回一个数字,对于DYNAINFO则会返回动态显示牌上的行情报价,即永远都是最新的报价,用户只要在公式系统做个简单的测试公式就能明显看出区别:
AA:CLOSE; //显示序列数值的收盘
BB:DYNAINFO(7);//返回常数的最新价
此主题相关图片如下:qq截图20131205235712.jpg
由图上就看到了序列数值是在图形上有个连续的曲线,而常数只是一个横线,他永远都是最新价。
金字塔其他的返回常数的函数例如THOLDING等等都是此类,不再一一赘述。
那么正常的图表自动交易公式的效果会是什么样呢?如图:
如上图所示,图表自动交易一般是需要在图表上有连贯的买卖信号点,因为图表的程式化交易金字塔是采用虚拟持仓,也就是在K线图上模拟从第一个K线开始进行自动交易,直到K线显示结束。要达到这个效果,参与到信号进出场规则的数据就必须是序列数据,而不应该是常数。
DYNAINFO常数函数道理也是如此,初学用户往往会在图表上的交易系统上使用他获取最新报价,因为图表上的交易系统需要有连续的交易信号往往才能正确工作,而使用DYNAINFO函数就会破坏历史的信号生成,造成图表上的交易系统无法计算出正确的结果。
图表交易使用常数返回值函数到底有哪些危害呢?
首先,如前面所述,在图表程式化交易使用常数可能会导致在图表上不会显示任何买卖信号,导致用户无法正常编写出想要的策略。第二,对于编写水平相对较高的用户,可能是会采取例如ISLASTBAR这种方式在最后一个周期使用THOLDING读取实际的持仓量的方法在图表上交易,但是这种情况如果用户使用不当,是极容易出现漏单的。比如在平仓反手的操作中,由于图表交易不会在产生信号时立即发单,等再次检测时首先检测到了平仓信号下单成功,由于之前的发单成交THOLDING已经发生变化,导致刚才出现的信号因为THOLDING的信号消失,刚才在图表上已经有的反手信号突然消失了,所以产生了漏单,这种情况一旦出现查找问题很是困难。
那么DYNAINFO和THOLDING等常数函数该用在什么地方呢?
DYNAINFO往往都是在后台自动交易中使用的,因为后台自动交易通常只关心最后一个周期的信号,所以DYNAINFO不会对历史的计算结果产生过多的影响,但并不表明绝对没有影响,如果后台自动交易系统中使用DYNAINFO来计算比如MA等均价,也是无法正常工作的,所以用户必须要搞清楚常数和序列数值的区别,才能更好运用金字塔进行程式化公式的编写。
其次,DYNAINFO可以用在图表上做一些特殊的算法处理,例如在分时图上使用该常数函数画一条昨收盘的横线,用于辅助判断涨跌。用THOLDING在有持仓的情况下画止损线,然后在指定的条件下做止损处理(只止损不反手)。
[此贴子已经被作者于2013/12/5 23:57:59编辑过]
|