以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  用盘中触位价来模拟测试后台轮询模式  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=62361)

--  作者:滚雪球
--  发布时间:2014/3/5 19:32:34
--  用盘中触位价来模拟测试后台轮询模式
金字塔后台轮询方式官方的说法是定位于交易,因此不能用历史数据评测,对于这种说法个人觉得很值得商榷,这等于是说不交易就没法测试,但反过来说没有测试又怎么能放心的交易呢?
后台轮询模式的测试是无法回避的问题。以下是我关于轮询测试的一些想法,本人接触金字塔时间不长,抛砖引玉,如有不妥不要见笑。

虽然我们每根K线只有高开低收成交量这几个数据,但其实仍然是可以模拟轮询方式交易的。首先金字塔除了高开低收应该增加一个“盘中触位价”,这个价格应该是能求出来的,在测试的止损选项里面
就有这个价格选项,把它增加到PEL语言里面完全能实现。那么测试的时候我们开平的条件可以这样写:
BUY(开多条件,手数,LIMITR,X); //假设X代表“盘中触位价”
实际情况可能还有一个成交量的问题,但是对于小规模做股指这种流动性很好的品种来说,这样模拟已经非常接近真实情况了,这要比K线走完测试好很多。
如果要做得更加精细一点,也可以考虑当时的成交量,如果当时成交量要大于等于下单量就在当根K线成交,否则就在下根K线,这是比较简单的解决办法,
如果要再精细一点,可以用一套算法来模拟真实的情况。

对于轮询方式,金字塔论坛有一篇广为流传的帖子 http://www.weistock.com/bbs/dispbbs.asp?boardid=4&Id=5224
对于里面的说法,刚开始还觉得有道理,后来交易了一段时间很快发现这种说法也是非常值得商榷的,原因如下:
1. 程序化交易一般非常频繁,一个品种一年交易1000次以上都不算频率很高的。就股指来说如果开仓平仓各相差一跳,那么一年就是1000*0.4*300=1200000,按现在的保证金这是一倍的收益。
因此这个开平的“点差”是非常值得优化的,甚至可以决定这个模型的成败。
2. 瞬间大幅波动的情况时有发生,象股指一分钟涨跌5,6个点以上的情况比比皆是。遇到光大事件那种情况如果方向反了等K线走完再操作简直是愚不可及的事情。本来抓住瞬间的变化快速反应应该是
程序化交易的优势,但非要K线走完,这不是把优势变成劣势了吗?
我一开始也是用逐K线走完的方式,因为这种方式最稳妥,最能符合测试的情况,但现在我改成后台轮询了,可能我的模型对于偶尔的信号闪烁影响不大,因此开平仓对比起来表现要好于K线走完。
另外在测试中如果我把止损的操作改成本周期限价单入场(用LIMITR,止损价可以提前算出来,因此不需要“盘中触位价”),收益会增加同时最大回撤也会降低。
K线走完这种模式是一种方便程序运行的方式,但并不是符合真实世界运行的方式,真实的情况是上一分钟和下一分钟是连续的,并没有人为的分隔。一个好的程序应该尽可能符合真实世界的情况,而
不是让真实情况来迁就程序。

因此希望金字塔能够增加一个"盘中触位价",这样大家就可以做轮询方式的测试了。



--  作者:lichenghu
--  发布时间:2014/3/6 8:39:23
--  

 历史价格对应K线只有开高低手,怎么去读取这么盘中触发价?

 

您看可有其它软件能实现此功能,根本目前来看是不现实的。另外后台只刷新最新的K,无历史交易情况怎么去测试呢?


--  作者:滚雪球
--  发布时间:2014/3/6 8:46:37
--  
据我了解MT4好像是可以模拟实时交易的。
盘中触发价不是从历史数据中读取,而是通过公式算出来的。比如止损价就是一个很简单的例子,只要知道成本价,和止损空间,就可以提前算出来。然后测试
的时候可以直接用limitr加上算出来的止损价格做交易测试。
其他的开平仓条件其实也更这一样,无非就是一个简单的方程式求解的问题。
至于后台的问题,在测试的时候不需要考虑后台,关键是考虑K线走完还是轮询,前台轮询测试能够通过,改成后台是很容易的事情。

--  作者:lichenghu
--  发布时间:2014/3/6 8:54:39
--  

如果才用LIMITR限价交易,对应价格已经限定。就可以取到相应的价格

 

这个不是说考虑和不考虑的问题,图表和后台运行机制完全不一样。要是能实现的话我们也不会让用户费心思去改动策略了


--  作者:滚雪球
--  发布时间:2014/3/6 9:09:56
--  
这么说吧要做图表轮询方式测试能否实时算出盘中触发价?
既然在K线走完的时候能够知道信号在这根K线上触发了,为什么不能更加精确一点算出这个触发的准确价格呢?
其实这个自己编代码没准都能实现,因为这只是一个方程式求解的问题,大多数情况可能只用到一个close变量,
那这其实是一个一元一次方程,我就搞不懂为什么就无法提供。


--  作者:lichenghu
--  发布时间:2014/3/6 9:22:19
--  

测试时历史是否有信号,是根据这根K线已经固定的开高低收来计算的。没有触发时间这个概念

 

如果您有好的想法,您可以提供下具体算法看可能实现。谢谢


--  作者:fantasynew
--  发布时间:2014/9/2 11:48:02
--  

可以通过修改代码来实现策略的回测。

可是做不到百分之百。

这里面有四个价位谁先谁后的问题,顺序不一样,执行结果也就不一样。

K线实体里也许隐藏了若干次来回大幅波动,仅从四价上无法反映。


--  作者:王锋
--  发布时间:2014/9/2 14:34:45
--  
已有计划增加分笔回放模式测试功能了,请等待日后的升级版
--  作者:fff
--  发布时间:2014/9/2 15:39:48
--  


其实分笔回放,若不图表显示出来,其实快速运算后就相当于测试了触位价的问题。。。但是需要分笔数据历史量支持,这是最真实的。

若不采取分笔回放方式,那么纯粹从K线最低价到最高价遍历一遍(按照最小变动价位逐阶推进),在软件上是可以做到盘中触位价测试的,比如K线最低价到达均线且出现金叉做多的瞬间捕捉问题。。。但是这种方式对于复杂的轮训策略,K线盘中价格先高后低或先低后高或K线中价格来回不同的变化情况,结果可能是不一样的。。。

故,分笔回放最真实。。。

--  作者:fff
--  发布时间:2014/9/2 15:40:36
--  


小金不要太骄傲,戒骄戒躁。。。勤勤勉勉。。才是正道。。。