以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 金字塔软件问题提交 (http://weistock.com/bbs/list.asp?boardid=2) ---- state的值为何不是1呢? (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=51711) |
-- 作者:vba -- 发布时间:2013/5/6 11:25:49 -- state的值为何不是1呢? 代码如下:
IF NOT(ISLASTBAR) THEN TJB:=HIGH>REF(HIGH,1) AND STATE=0;
当满足条件后,为什么会不停的显示\'A\'呢?理论上执行完BUY以后,STATE应该就是1,就不满足TJB条件了!请客服老师看看是怎么会事? |
-- 作者:lichenghu -- 发布时间:2013/5/6 11:37:58 -- 您好,这个与您公式的运行模式有关,走完K的话下根K值才刷新的 |
-- 作者:RogarZ -- 发布时间:2013/5/6 11:51:21 -- IF NOT(ISLASTBAR) THEN TJB:=HIGH>REF(HIGH,1) AND STATE=0;
你这个是套在IF里嘛 你用调试自己看看 感觉上每次都运行msgout了 |
-- 作者:vba -- 发布时间:2013/5/6 13:36:30 -- 上面贴的语句没问题,不信老师试试,等开盘后,随便加载了一个品种,如果TJB一直满足条件,即tick跳动一次,消息框就会输出一次。 按照jinzhi老师的意思,只有当换线以后,state才能有值?那在图表交易中,在k线换线以前,如何判断已经执行过开仓语句了?state难道不能用吗?请客服老师指点! |
-- 作者:vba -- 发布时间:2013/5/6 14:32:40 -- 我跟踪了一下,holding似乎可以即时变化,所以我将代码改为如下(就是把state替换为holding): IF NOT(ISLASTBAR) THEN TJB:=HIGH>REF(HIGH,1) AND holding=0;
可奇怪的是如果满足条件,输出的两个值都是1,不应该啊TJB后面明明有holding=0的条件,当执行过BUY以后,TJB就应该是0了啊,为什么也会一直是1呢?代码的执行机制不是每个tick都会执行一遍代码吗?请客服老师指点一下! |
-- 作者:vba -- 发布时间:2013/5/6 16:45:30 -- 客服老师在吗?帮忙看看这个问题吧!我找不到问题出哪里了!谢谢! |
-- 作者:jinzhe -- 发布时间:2013/5/6 17:11:03 -- 把if not 。。。。这一句放最后面 |
-- 作者:vba -- 发布时间:2013/5/6 20:00:53 -- 跟这句没关系的,这样我把这句去掉,加到条件里可以吧! 整理后代码如下: TJB:=HIGH>REF(HIGH,1) AND ISLASTBAR AND holding=0; MSGOUT(1,numtostr(TJB,0));
现在就可以测试到,美元日元合约日线,刚好最后一根k线有信号,可是tjb为什么就是1呢?明明有holding=0的条件! |
-- 作者:vba -- 发布时间:2013/5/6 20:05:45 -- 按软件设计逻辑,每跳动一个tick,就会执行一次模型,对吧。那如果最后一根k线有buy信号,为什么再次跳动tick后,TJB还是1呢?这说明一个问题,TJB没有被更新,还是执行buy之前的值,这有问题吧? |
-- 作者:klc -- 发布时间:2013/5/6 22:42:23 -- 只能说你不理解图表交易,你按的是后台交易的思维来写图表交易
你吧holding放到开头输出看看,你就会明白了 |