2013-02-07 09:37:36.993 bk0=0.00000
2013-02-07 09:37:36.993 sk0=0.00000
2013-02-07 09:37:37.461 =======
2013-02-07 09:37:37.570 是否有开多未成交单=0.00000
2013-02-07 09:37:37.570 可用多单=0.00000
2013-02-07 09:37:37.570 是否有开空未成交单=0.00000
2013-02-07 09:37:37.570 可用空单=0.00000
2013-02-07 09:37:37.570 bk0=0.00000
2013-02-07 09:37:37.570 sk0=0.00000
2013-02-07 09:37:38.100 =======
2013-02-07 09:37:38.100 是否有开多未成交单=0.00000
2013-02-07 09:37:38.100 可用多单=0.00000
2013-02-07 09:37:38.100 是否有开空未成交单=0.00000
2013-02-07 09:37:38.100 可用空单=0.00000
我在历史分笔数据上看到BK0 SK0的信号应该在37秒时是有的
但是模拟盘时丢了这个信号结果没下单~
后来我仔细看了debugout的记录~发现金字塔的高频扫描是偶尔会丢掉一个tick的数据的~
我们都知道交易所的数据是0.5秒一笔(历史分笔数据在37秒上是有两个tick的~明显金字塔漏掉一个)~
但是金字塔这种高频扫描速度好像还是达不到这个级别啊~
我是模拟盘~后台序列运算~开了高频扫描~
还有orderlog跟debugout
我想请问一下
1 如何让金字塔的高频扫描速度达到交易所发分笔数据的的频率?
2 把后台系统改写成VBA的系统是否能够减少运算量刷新频率更高下单更快?
后台是异步扫描的,因此无法保证每来一笔TICK数据都能保证后台能够刷新。
因此要求后台的代码尽可能简洁,所引用数据尽可能的少,这样才能尽可能保证刷新的及时正确性
后台是异步扫描的,因此无法保证每来一笔TICK数据都能保证后台能够刷新。
因此要求后台的代码尽可能简洁,所引用数据尽可能的少,这样才能尽可能保证刷新的及时正确性
意思是尽管简化了运算~但后台几乎无法避免的漏掉一两个tick?
我以为金字塔可以设置0.2秒扫描一次~这样几乎不会遗漏tick
另外一个问题~
VBA与后台序列模式哪个运算量更低~运算更快?
后台已经有选项可以让用户设置更低的扫描频率。但是这不表示一定就能达到这个扫描频率。
因为当你的策略整个运算的世界超过0.2秒一次的话,是没有办法能满足需要的。
VBA的效率要比后台高,因为VBA的策略编写可以采取更加灵活的手法,而不必局限于PEL语法的格式限制
另外~这种丢tick的问题是由什么原因引起的?
网络问题?我只是在券商大户室里交易~不是期货公司的机房内网...
软件问题?金字塔软件扫描频率太低达不到交易所0.5秒一笔?自己写的软件能达到这么高频率扫描么?
还有其他什么原因?有无办法避免?
交易所的数据理论是0.5秒一笔,但并不是一直有的,有些时候0.5秒是没有成交的,用户仔细核查下当天的分笔数据。有可能这个并不是金字塔漏了,而是真的没有那笔数据,你可以通过多个软件去确认。
tick软件是不会丢的,数据都在你本地 你自己查。
和扫描的频率没关系,而是你公式的1次的计算所需要的时间超过了0.5秒。若超过,金字塔将根据最新的tick进行计算,不在计算因计算时间延误的tick。这个是合理的,若你还计算错过的那个tick造成延迟,并一直恶心循环下去,那始终是无法第一时间下单。
自己写软甲。。。无法回答。理论上都是可行的,实际上,看编写人的水平。
后台已经有选项可以让用户设置更低的扫描频率。但是这不表示一定就能达到这个扫描频率。
因为当你的策略整个运算的世界超过0.2秒一次的话,是没有办法能满足需要的。
VBA的效率要比后台高,因为VBA的策略编写可以采取更加灵活的手法,而不必局限于PEL语法的格式限制
VBA的扫描频率在哪里设置?
图表是ctrl+z
后台是ctrl+a
这两个都有扫描频率设置
那VBA的扫描频率在哪里设置呢?
后台最高只能扫描0.5秒一次的频率了~
再高的频率软件已经无法实现了~
只有频率比交易所的高才可能不漏tick啊~
你妈每分钟包2个饺子
你每半分钟检查一下 有没有饺子包好
包好了就拿来吃 如果有多个 就只吃最新的这个
那么你会不会漏吃饺子呢?
取决于你吃饺子的速度
通俗易懂不?
VBA主要通过定时器来控制刷新速度,最低可以设置为1毫秒
如果你对你编写的程序代码有信心能在1毫秒内完成所有计算,那么你可以这么搞,否则就要设置一个合理的刷新频率