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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → state的值为何不是1呢?

   

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


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

主题:state的值为何不是1呢?

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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/6 22:42:23 [显示全部帖子]

只能说你不理解图表交易,你按的是后台交易的思维来写图表交易

 

你吧holding放到开头输出看看,你就会明白了


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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/6 22:42:44 [显示全部帖子]

MSGOUT(1,numtostr(holding,0));

IF NOT(ISLASTBAR) THEN
 EXIT;

TJB:=HIGH>REF(HIGH,1) AND holding=0;
BUY(TJB,1,MARKET);


MSGOUT(1,numtostr(TJB,0));
MSGOUT(1,numtostr(holding,0));


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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/6 22:43:49 [显示全部帖子]

buy前holding是0,buy后是1,在一根K线内,不管你有几个tick,除了换K线时,前面都是在重复,但图表交易的特点就是只保留最后状态

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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/6 22:58:56 [显示全部帖子]

另外,你的REF(HIGH,1) 放在exit后面,一定会发生一些你意想不到的问题的,所以REF(HIGH,1) 必须放在exit前去取值,要不你就用callstock(stklabel,vtHigh,....这样的取值方式

 

不过这点小问题不影响你要问的问题本质


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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/7 17:50:48 [显示全部帖子]

对于图表交易来说,当这根k线走完之前,判断是否已经在本K线开过仓,在一次代码执行里面,当然是用holding

 

但最后K线不断收到新行情的情况下,其实你要理解一点,就是每次执行程序,都是当本K线为“一穷二白”来执行的。所以,你不能在K线未走完之前,在第5秒的行情时判断第4秒的行情时,本K线是否已经出信号,就算给你判断出来也没意义,例如:

 

开仓:=这里是你的开仓条件,省略;

是否已执行:=EXTGBDATA('是否已执行');

buy(holding=0 and 开仓 and 是否已执行=false,1,market);

if holding>0 then EXTGBDATASET('是否已执行',1);

 

这个代码试图控制一个K线只执行一次buy,用了个单值全局变量extgb来记录是否已经执行过buy。但如果该K线收到两个行情,那么第二次就不会执行buy了,最后就是本K线的信号消失。

 

其实图表交易的机制,就已经是限定了一个K线只执行一次buy的,不管被调用多少次,图表上只有一个箭头,走完K线的交易实质就是已最后一次计算的结果为准


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


加好友 发短信
等级:黑侠 帖子:993 积分:1787 威望:0 精华:5 注册:2012/11/28 17:37:20
  发帖心情 Post By:2013/5/7 17:52:24 [显示全部帖子]

如果你不是用走完K线的模式(用的轮徇),那么K线未走完可能实盘已经根据交易信号执行了交易。那么你可以用tholding函数来判断是不是实际开仓了阿(图表可用tholding)

 回到顶部