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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 变量编写请教

   

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


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

主题:变量编写请教

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


加好友 发短信
等级:新手上路 帖子:68 积分:442 威望:0 精华:0 注册:2012/7/19 13:16:41
变量编写请教  发帖心情 Post By:2012/12/31 15:56:35    Post IP:14.119.119.41[只看该作者]

请问怎么让变量在当根k线有效,知道直接定义变量可以,但是这只是在走完k线模式才有效,
在1秒固定轮训却失效,在1秒固定轮训中,每刷新一次数据该变量立即会被重新初始化,以下是
该变量的日志:
2012-12-31 10:02:58.425    CTR的值为:1
2012-12-31 10:02:59.425    上一根K线的持仓状态是:1
2012-12-31 10:02:59.425    CTR的值为:1
2012-12-31 10:03:00.441    条件2成立,此时CTR的值为:1
2012-12-31 10:03:00.441    此时条件2成立,条件2的值为:1
2012-12-31 10:03:00.441    此时CTR的值被改变,改变后的值为:0
2012-12-31 10:03:00.441    上一根K线的持仓状态是:1
2012-12-31 10:03:00.441    CTR的值为:0
2012-12-31 10:03:01.425    条件2成立,此时CTR的值为:1
2012-12-31 10:03:01.425    此时条件2成立,条件2的值为:1
2012-12-31 10:03:01.425    此时CTR的值被改变,改变后的值为:0
2012-12-31 10:03:01.425    上一根K线的持仓状态是:1
2012-12-31 10:03:01.425    CTR的值为:0
2012-12-31 10:03:02.425    条件2成立,此时CTR的值为:1
2012-12-31 10:03:02.425    此时条件2成立,条件2的值为:1
2012-12-31 10:03:02.425    此时CTR的值被改变,改变后的值为:0
2012-12-31 10:03:02.425    上一根K线的持仓状态是:1
2012-12-31 10:03:02.425    CTR的值为:0
2012-12-31 10:03:03.425    条件2成立,此时CTR的值为:1
2012-12-31 10:03:03.425    此时条件2成立,条件2的值为:1
2012-12-31 10:03:03.425    此时CTR的值被改变,改变后的值为:0
2012-12-31 10:03:03.425    上一根K线的持仓状态是:1
2012-12-31 10:03:03.425    CTR的值为:0
2012-12-31 10:03:04.425    条件2成立,此时CTR的值为:1
2012-12-31 10:03:04.425    此时条件2成立,条件2的值为:1
2012-12-31 10:03:04.425    此时CTR的值被改变,改变后的值为:0
2012-12-31 10:03:04.425    上一根K线的持仓状态是:1
2012-12-31 10:03:04.425    CTR的值为:0
2012-12-31 10:03:05.425    条件2成立,此时CTR的值为:1
2012-12-31 10:03:05.425    此时条件2成立,条件2的值为:1
2012-12-31 10:03:05.425    此时CTR的值被改变,改变后的值为:0
2012-12-31 10:03:05.425    上一根K线的持仓状态是:1
2012-12-31 10:03:05.425    CTR的值为:0


输出该语句的代码是:
if cond2 and TJ>=0 and CTR=1 then begin
  if tholding2>0 then tsell(1,0,mkt),orderqueue;
if tholding2=0 then tbuyshort(1,1,mkt),orderqueue;
debugout('条件2成立,此时CTR的值为:%.0f',CTR);
debugfile('E:\DEBUG\test.txt','条件2成立,此时CTR的值为:%.0f',CTR);
ZT:=-1;
CTR:=0;
debugout('此时条件2成立,条件2的值为:%.0f',cond2);
debugfile('E:\DEBUG\test.txt','此时条件2成立,条件2的值为:%.0f',cond2);
debugout('此时CTR的值被改变,改变后的值为:%.0f',CTR);
debugfile('E:\DEBUG\test.txt','此时CTR的值被改变,改变后的值为:%.0f',CTR);
end
ps:cond2是用ref作为判断语句的,不会出现信号闪烁问题。

正常来说变量CTR在第1秒会被输出,之后在当根k线不再输出,但是在1秒固定轮训模式直接定义的变量在当根k线有效却基本失效,
请问老师有什么办法呢?谢谢。

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/12/31 16:01:36    Post IP:58.246.57.26[只看该作者]

请说明是哪一段有问题


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:68 积分:442 威望:0 精华:0 注册:2012/7/19 13:16:41
  发帖心情 Post By:2012/12/31 16:08:43    Post IP:14.119.119.41[只看该作者]

输出日志中从10:03这根k线有问题(3分钟周期),之后也是类似问题,正常的话应该是第一秒才输出:
2012-12-31 10:03:01.425    条件2成立,此时CTR的值为:1
2012-12-31 10:03:01.425    此时条件2成立,条件2的值为:1
2012-12-31 10:03:01.425    此时CTR的值被改变,改变后的值为:0
2012-12-31 10:03:01.425    上一根K线的持仓状态是:1
2012-12-31 10:03:01.425    CTR的值为:0

之后输出CTR的值为0,但实际不是这样。

所以怀疑“直接定义的变量在当根k线有效”在固定轮训模式中是失效的。
请老师检查下。

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


加好友 发短信
等级:新手上路 帖子:68 积分:442 威望:0 精华:0 注册:2012/7/19 13:16:41
  发帖心情 Post By:2012/12/31 16:16:53    Post IP:14.119.119.41[只看该作者]

也就是说CTR在第1秒被改变值后不会再执行刚才的语句,只有等到下根k线CTR被重新初始化后才会再继续判断。
但实际却不是这样,CTR在第1秒被改变值后,接下来的当根k线时间仍继续执行刚才贴出来的代码语句,也就是说CTR的定义与所说的不符合。

PS:代码中的CTR的定义是 CTR:=1;

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2012/12/31 16:18:08    Post IP:58.246.57.26[只看该作者]

CTR是全局变量吗?


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:68 积分:442 威望:0 精华:0 注册:2012/7/19 13:16:41
  发帖心情 Post By:2012/12/31 16:22:52    Post IP:14.119.119.41[只看该作者]

不是,就直接定义的变量。
CTR:=1;

在代码的开头定义。

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


加好友 发短信
等级:新手上路 帖子:68 积分:442 威望:0 精华:0 注册:2012/7/19 13:16:41
  发帖心情 Post By:2012/12/31 16:38:10    Post IP:14.119.119.41[只看该作者]

有回答吗?

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


加好友 发短信
等级:新手上路 帖子:28 积分:115 威望:0 精华:0 注册:2012/12/31 16:47:14
  发帖心情 Post By:2012/12/31 17:56:53    Post IP:123.117.4.22[只看该作者]

不是很明白你的描述,不过从前面的描述来看,你似乎是需要一个变量不会随着初始化而每次都被重新刷新,你可以试试金字塔的超全局变量


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


加好友 发短信
等级:新手上路 帖子:68 积分:442 威望:0 精华:0 注册:2012/7/19 13:16:41
  发帖心情 Post By:2013/1/2 21:36:05    Post IP:113.103.1.23[只看该作者]

不是,我是需要一个变量每刷新一根K线都会被重新加载,也就是说在当根k线过程中,如果该变量被改变,当根k线该变量则不重新加载,而等到下根k线才重新加载,金字塔定义的直接变量本来是可以实现的,但在1秒固定轮训模式却不行。


 回到顶部