欢迎您光临博庭社区!

 找回密码
 立即注册
查看: 10850|回复: 32

金魔方公式运行模式 [复制链接]

Rank: 9Rank: 9Rank: 9

发表于 2013-5-26 10:36:17 |显示全部楼层
有论坛朋友反映有时候金魔方翻页的时候画面可能会闪烁,这确实是存在的,尤其在比较慢的机器上可能会更明显。这是因为默认情况下,金魔方运行公式的模式和飞狐或者其他大部分软件不一样。金魔方画面上有两种运行公式的模式,见下图
1.异步运行公式,也就是默认方式,默认是不打勾的方式,也就是说,默认情况下金魔方异步运行公式,所谓异步,是指公式运行和画面显示是分开进行的(可以认为在背景运行),是由不同的线程执行,因此可能存在时间差,画面变动的时候有可能会导致闪烁感。
2.同步运行公式,也就是上图红色位置如果打勾,就会用同步运行方式,同步模式下,公式运行和画面显示都在主线程运行,这种模式下,不容易闪烁。


异步模式的优点:
1.公式运行不影响画面的操作,也不影响其他窗口中其他公式的运行,这对自动交易很重要,想象一下有些交易的公式需要追单,可能需要等待下单结果等,需要等待,·这时候你不想这个公式阻碍其他交易公式的运行,也不想画面无响应。
2.另外,对于那些需要较长时间运行的公式,例如VBscript,调用.net dll的公式等,这些公式运行时间可能比较长,尤其VBscript比较慢, .net dll本身是很快的,但是可能会用来抓取网络上的各种数据,也需要较长时间,运行这些公式时,异步模式也是有好处的,画面不会出现无响应的情况。

异步模式的缺点:就是可能有时候会导致画面闪烁了。

另外一个可能导致闪烁的原因是,历史数据是由多种数据源聚合而成,这些数据是分别从服务器返回,在本地没数据时,翻页的时候这些数据分别返回会导致公式重算了多次,这也可能导致闪烁,这个问题我们会持续改进。必须强调的是:虽然翻页的时候可能会多次重算公式,但这并不影响交易的逻辑,只有在数据完整的时候,金魔方才会发出下单的指令。

综上所述,在 选项 里, 把 同步运行 公式 打勾,可以有效避免画面闪烁,但同时也会可能导致画面无响应。
如果你确实对闪烁感觉不爽,并且也从来不需要运行VBS,也不想运行现在论坛上的 .net dll扩展公式,可以采用同步模式。

附上 飞狐帮助 里的一个VBS脚本,可以试试分别在同步好异步模式下运行这个公式,就会知道有什么区别。
也可以在飞狐里运行这个公式比较一下,在飞狐要 注释 ShowTips('公式正在运行') 这一行
  1. foxbd:=high-low;
  2. foxbfb:=0;
  3. time1 := CURRENTTIME ;
  4. //在飞狐要注释这一行
  5. ShowTips('公式正在运行');
  6. <%
  7. vbsbd=ffl.vardata("foxbd")
  8. i=ffl.vardata("foxbfb")
  9. 'n可用于确定最大值出现的比率,等等
  10. n=ubound(vbsbd)
  11. '以下为比较法排序,降序排序后,最后一个数据vbsbd(n)为最大值
  12. for k = 0 to n - 1
  13.         for j = k + 1 to n
  14.         if vbsbd(k)>vbsbd(j) then
  15.                 x=vbsbd(k)
  16.                 vbsbd(k)=vbsbd(j)
  17.                 vbsbd(j)=x
  18.                 i=j
  19.         end if
  20.         next
  21. next
  22. 'ffl.MsgBox("最大波值发生在离最后时间的周期数为:" & cstr(i))
  23. ffl.vardata("foxbd")=vbsbd
  24. ffl.vardata("foxbfb")=i
  25. %>
  26. time2 := CURRENTTIME ;
  27. s := numtostr(time2 - time1, 0);
  28. DrawTextex(1, 0, 0, 0,  s + '秒');
  29. 最大波动值:foxbd;
  30. 离本周期:foxbfb;
复制代码
飞狐下画面如下,金魔方同步模式下也是一样的,界面无响应。

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

使用道具 举报

Rank: 6Rank: 6

发表于 2013-5-26 11:00:48 |显示全部楼层
谢谢楼主!

使用道具 举报

Rank: 6Rank: 6

发表于 2013-5-26 11:36:42 |显示全部楼层

使用道具 举报

Rank: 4

发表于 2013-5-26 19:26:42 |显示全部楼层
知道原因,这样有选择,非常好

使用道具 举报

Rank: 6Rank: 6

激情奖

发表于 2013-5-26 20:06:38 |显示全部楼层
本帖最后由 nttz 于 2013-5-26 20:45 编辑

有几个问题请教下
1。历史数据是由多种数据源聚合而成,这些数据是分别从服务器返回,在本地没数据时,翻页的时候这些数据分别返回会导致公式重算了多次 你说的数据源是什么?分别返回为什么会重算?
2. 请教下 run by 四种模式的区别
3.恳求逐根下如何计算波段高低?因为只有过了后才知道是高还是低,怎么实现在逐根模式下?

使用道具 举报

Rank: 4

发表于 2013-5-29 10:08:54 |显示全部楼层
进来学习了,我觉得闪烁的问题,跟公式重算多次有关。
如何处理好这个问题,闪烁的问题就能解决好了。

使用道具 举报

Rank: 6Rank: 6

发表于 2013-6-2 12:39:47 |显示全部楼层

RE: 金魔方公式运行模式

学习学习。

使用道具 举报

Rank: 6Rank: 6

发表于 2013-6-21 13:34:39 |显示全部楼层
学习学习。

使用道具 举报

Rank: 3Rank: 3

发表于 2013-7-5 15:23:42 |显示全部楼层
学习学习

使用道具 举报

Rank: 3Rank: 3

发表于 2013-7-5 15:37:05 |显示全部楼层
RE: 金魔方公式运行模式




学习学习!

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

bottom

Archiver|http://www.patiosoft.com

GMT+8, 2017-12-16 03:57 , Processed in 0.043919 second(s), 13 queries .

花生网 Copyrigh©2012

和讯信息科技有限公司 ALL Rights Reserved 版权所有 复制必究

回顶部