Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共19 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:监控品种数量,与 执行次数

1楼
塔尖 发表于:2015/6/3 9:04:52

以下测试代码,后台执行,序列模式,固定间隔

 


GLOBALVARIABLE: n=1;

IF (30 >=12+n)  THEN BEGIN

n:=n+10;

MSGOUT(1 ,NUMTOSTR((n+12) , 1) );SLEEP(2000);

MSGOUT(1 ,NUMTOSTR(n , 1) );  SLEEP(2000);

end

但是,监控几个品种(即使休市品种)就执行几遍,问题在哪里?

怎么才能执行的次数与监控品种数量无关? 谢谢。

 

以下是监控 4 个品种是的执行情况:

 

2015/06/03 08:57:02  23.0
2015/06/03 08:57:04  11.0
2015/06/03 08:57:06  23.0
2015/06/03 08:57:08  11.0
2015/06/03 08:57:10  23.0
2015/06/03 08:57:12  11.0
2015/06/03 08:57:14  23.0
2015/06/03 08:57:16  11.0
2015/06/03 08:57:18  33.0
2015/06/03 08:57:20  21.0
2015/06/03 08:57:22  33.0
2015/06/03 08:57:24  21.0
2015/06/03 08:57:26  33.0
2015/06/03 08:57:28  21.0
2015/06/03 08:57:30  33.0
2015/06/03 08:57:32  21.0

2楼
wenarm 发表于:2015/6/3 9:15:48

你的条件判断语句的作用是什么?

第一次:n=1,条件符合执行一次。

第二次:n=11,条件语句30>=23,条件符合,执行内部语句,n=21;

第三次判断就不符合你的条件语句了。

3楼
塔尖 发表于:2015/6/3 9:23:30

你说的对,应该执行 2 次。

但是,为什么每一次都执行了4遍(与监控的数量相同)呢?

 

我的本意是执行一遍即可。

4楼
wenarm 发表于:2015/6/3 9:47:16

1.每个品种都会执行一次,就是4次,条件语句符合2次。打印输出的语句就是4(品种)*2(打印语句)*2(条件符合次数)。

2.你如果只想打印一边的话,可以限制你的条件。

5楼
wenarm 发表于:2015/6/3 9:55:00
没有行情的,是不会打印输出的。
[此贴子已经被作者于2015/6/3 9:55:32编辑过]
6楼
塔尖 发表于:2015/6/3 10:21:17

感谢 wenarm 的耐心答复 !

 

但是我觉得 监控品种的数量与执行的次数应该没有关系,

否则监控一个版块、市场,要执行多少遍了,呵呵。

 

期待其他权威答复,谢谢!

 

 

7楼
yukizzc 发表于:2015/6/3 10:24:58
代码当然是在你所有监控的品种上进行计算的,就好比你后台交易监控100个品种。那当然我是去交易这100个品种,如果就执行一次那岂不是大大问题了。
8楼
wenarm 发表于:2015/6/3 10:38:58

1.程序判断条件执行的次数只和你的判断条件有关系。

2.你监控的每个品种,都会进行监控然后打印输出。

1,2两个组合一起就是你一共打印的次数(类似双重循环的结构)

例如:你上面的打印输出16句话。是判断程序执行2次的结果。1次打印8条语句。

        在这8条语句中,每2条一组,代表一个品种共计4个品种。

 

9楼
塔尖 发表于:2015/6/3 11:15:51

感谢楼上 二位 的回答!

 

以上的测试代码,主要语句 msgout,是通用的,

输出的次数与监控的品种数量相同,明白的。

 

现在加入一条买入语句:

 

GLOBALVARIABLE: n=1;

IF (30 >=12+n)  THEN BEGIN

n:=n+10;

 

TBUY(1,1,LMT,0.01,0,'账户','品种'); SLEEP(2000);

MSGOUT(1 ,NUMTOSTR((n+12) , 1) ); SLEEP(2000);


end

 

输出结果如下:

 

监控4个品种时(有一个欧洲品种,休市中,不应该起作用啊),msgout输出 8 遍 (4*2),

      但是买入的执行了 5 遍,(4 + 1 ?)。

 

监控3个品种时(有一个欧洲品种,休市中),msgout输出 6 遍 (3*2),

但是买入的执行了 4 遍,(3 + 1 ?)。

 

问题是:第二轮,为什么 买入仅 执行了 1遍 呢?

 


 

10楼
塔尖 发表于:2015/6/3 11:26:40

主要是我不想要重复的执行交易。

 

比如:我的程序里,有恒指,金,银,dax,的判断条件。

因为他们的 交易时间各不相同。有的交易时段交叉。

 

那么监控这4个品种。交叉时段,比如恒指符合条件,买入4次。

金 符合条件,也重复买入了?

 

如何做到,只买入 1 次呢?

(我现在只能监控一个 全天候交易品种 的笨方法)

[此贴子已经被作者于2015/6/3 11:28:11编辑过]
共19 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in 0.01563 s, 2 queries.