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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 请问,为什么上述语句中的条件没有作用?

   

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


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

主题:请问,为什么上述语句中的条件没有作用?

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


加好友 发短信
等级:标准版用户 帖子:225 积分:0 威望:0 精华:0 注册:2016/4/18 14:50:33
请问,为什么上述语句中的条件没有作用?  发帖心情 Post By:2016/7/26 20:58:11 [只看该作者]

 IF HOLDING=0 THEN SECSTA:=STKINDI('','0T.SECST',0,6,0);

请问,为什么上述语句中的条件没有作用?

也就是,无论HOLDING的值是否为0,都会执行THEN 后面的STKINDI指令,为什么呢? 

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


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

你是怎么判断他执行的。你可以输出HOLDING。看下其条件的值。

或者也可以加debugfile函数在if语句中进行输出holding的值。



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


加好友 发短信
等级:标准版用户 帖子:225 积分:0 威望:0 精华:0 注册:2016/4/18 14:50:33
  发帖心情 Post By:2016/7/27 11:34:14 [只看该作者]

我的用这个命令的本意是:已经开仓后的情况下,不要刷新读取SECSTA参数值。
但是,这个命令下,即使已开仓(即HOLDING不等0),公式仍然会读取最新的引用SECSTA值,,,
我怎么才能达到我的本意?

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


加好友 发短信
等级:标准版用户 帖子:225 积分:0 威望:0 精华:0 注册:2016/4/18 14:50:33
  发帖心情 Post By:2016/7/27 11:40:34 [只看该作者]

我是在实时盘中,观察公式运行时,发现在已开仓的情况下,SECSTA的值仍然会被刷新的。。。


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


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

SECSTA是一个序列变量。赋给他的值,砸没有再次赋值前,它始终都是一个值,这个值你在其他位置调用时,是可以读取到的。

不理台理解你3楼的意思。举个例说下

你说的会刷新,指的是SECSTA:=STKINDI('','0T.SECST',0,6,0);这句话在执行?



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


加好友 发短信
等级:标准版用户 帖子:225 积分:0 威望:0 精华:0 注册:2016/4/18 14:50:33
  发帖心情 Post By:2016/7/27 13:49:07 [只看该作者]

是的,这个SECSTA变量值按说没有这句话的执行,它不应该刷新变化的。
三楼是我编写这个条件执行的用意说明,,,也许是我对函数的理解不到位,以致于无法做到条件控制。。。
但是,若能用别的方式达到这个目的,我是欣然接受的!

我的目的是:
已开仓的情况下,不要刷新读取变量值SECSTA;
在没有开仓的情况下,则保持同步引用STKINDI('','0T.SECST',0,6,0);

不知能否做到?

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


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

是的,这个SECSTA变量值按说没有这句话的执行,它不应该刷新变化的。

你是怎么判断它刷新的?你在你的语句里加入一句话,要是能输出的HOLDING不是0,则说明,这个判断语句进入。

IF HOLDING=0 THEN  begin

    SECSTA:=STKINDI('','0T.SECST',0,6,0);

    DEBUGFILE('D:\TEST.TXT','进入判断语句,holding=%.2f',HOLDING);

end

   



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


加好友 发短信
等级:标准版用户 帖子:225 积分:0 威望:0 精华:0 注册:2016/4/18 14:50:33
  发帖心情 Post By:2016/7/27 14:23:21 [只看该作者]

当公式已经持仓,有显示开仓信号及资金曲线变化,此时 HOLDING是不是非零状态?反之,公式无持仓,即为零状态,对否?

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


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

是的,holding是你图表上的虚拟市场。不是指你账户栏里的持仓。

你可以单独输出HOLDING,在图表上看下。它是有3中状态,正,负,0



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


加好友 发短信
等级:标准版用户 帖子:225 积分:0 威望:0 精华:0 注册:2016/4/18 14:50:33
  发帖心情 Post By:2016/7/27 15:50:49 [只看该作者]

所以,我编写的语句有什么语法或逻辑上的错误吗?
我要怎么实现我的意图呢?

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