欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 监控品种数量,与 执行次数

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3798人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
塔尖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:82 积分:0 威望:0 精华:0 注册:2015/5/16 8:51:59
监控品种数量,与 执行次数  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/6/3 9:15:48 [只看该作者]

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

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

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

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



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
塔尖
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:82 积分:0 威望:0 精华:0 注册:2015/5/16 8:51:59
  发帖心情 Post By:2015/6/3 9:23:30 [只看该作者]

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

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/6/3 9:47:16 [只看该作者]

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

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



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/6/3 9:55:00 [只看该作者]

没有行情的,是不会打印输出的。
[此贴子已经被作者于2015/6/3 9:55:32编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
塔尖
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:82 积分:0 威望:0 精华:0 注册:2015/5/16 8:51:59
  发帖心情 Post By:2015/6/3 10:21:17 [只看该作者]

感谢 wenarm 的耐心答复 !

 

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

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

 

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

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2015/6/3 10:24:58 [只看该作者]

代码当然是在你所有监控的品种上进行计算的,就好比你后台交易监控100个品种。那当然我是去交易这100个品种,如果就执行一次那岂不是大大问题了。

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/6/3 10:38:58 [只看该作者]

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

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

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

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

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

 



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
塔尖
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:82 积分:0 威望:0 精华:0 注册:2015/5/16 8:51:59
  发帖心情 Post By: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楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:82 积分:0 威望:0 精华:0 注册:2015/5/16 8:51:59
  发帖心情 Post By:2015/6/3 11:26:40 [只看该作者]

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

 

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

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

 

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

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

 

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

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

[此贴子已经被作者于2015/6/3 11:28:11编辑过]

 回到顶部
总数 19 1 2 下一页