以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  debugfile问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=161281)

--  作者:skypixel
--  发布时间:2018/1/24 17:41:36
--  debugfile问题

我用1分钟图表交易,用的是走完k线模式。在交易程序里面有下面的打印调试

 

IF ISLASTBAR THEN BEGIN
DEBUGFILE(log_file,\'KD1: HHOLDING:\'&numtostr(HHOLDING,0)&\' LHOLDING:\'&numtostr(LHOLDING,0)&\' ,0);
END

 

我的理解是在走完k线模式下每分钟只有一个输出,但是实际结果是,每隔几秒就有一个输出,时间不固定,一般1秒钟之内有4~10条不等。请问是什么原因?


--  作者:马良
--  发布时间:2018/1/24 19:48:35
--  
走完k线模式是公式脚本的执行方式、不是刷新方式,刷新是只要有行情变动时就会刷新的
--  作者:skypixel
--  发布时间:2018/1/25 8:57:00
--  
不好意思,能不能请你详细解释下,为什么脚本方式会在一分钟之内多次输出呢?
--  作者:FireScript
--  发布时间:2018/1/25 9:22:02
--  

分笔来一次公式运行一次,每运行一次这个就会执行一次。你那个代码里面并没有什么能限制最后的K线内只输出一次的。


--  作者:skypixel
--  发布时间:2018/1/25 10:34:13
--  

1. 我的公式是逐k线模式

2. 我的公式里面选的是:仅刷最后一根k线

3. 我的debugfile是放在IF ISLASTBAR THEN BEGIN里面的。

 

我的理解是,在我的设置下每更新一根新的k线,才运行上面的debugfile一次,是不是我的理解有误呢?


--  作者:FireScript
--  发布时间:2018/1/25 10:57:25
--  

是的,你理解的不对的。 不是那样子的。  而且你这个和逐K模式之类的没有关系。

交易所的行情是分笔过来的,来一次公式就运行一遍。


--  作者:skypixel
--  发布时间:2018/1/25 11:10:59
--  

你是说分笔行情没来一次,脚本就跑一次吗?

可是我看分笔行情的频率是比较高的,好像有映像说是每秒两次,而我这边的打印每分钟只有3~10次不等。


--  作者:FireScript
--  发布时间:2018/1/25 13:11:51
--  

还要考虑到机器的计算能力,公式执行也需要时间。比如一次来了10笔分笔,但是本地计算机固定时间只能处理5笔。在处理完这五笔之后,行情又来了10笔分笔,那么就会舍弃之前来不及处理的五笔只处理当前最新的分笔数据。

 

最后输出多少也看本地机器情况,我本地大概一秒一次输出。