CC1:=MA(ABS(REF("AG.OPENINT1##DAY",1)-REF("AG.OPENINT1##DAY",2)),LENGTH);
IF(C>="AG.OPEN1##DAY") THEN
BEGIN
X1:=("AG12$OPENINT"-CC1)/CC1;
X101:=0;
END
IF(C<"AG.OPEN1##DAY") THEN
BEGIN
X1:=0;
X101:=("AG12$OPENINT"-CC1)/CC1;
END
CC2:=MA(ABS(REF("AU.OPENINT1##DAY",1)-REF("AU.OPENINT1##DAY",2)),LENGTH);
IF(C>="AU.OPEN1##DAY") THEN
BEGIN
X2:=("AU12$OPENINT"-CC2)/CC2;
X102:=0;
END
IF(C<"AU.OPEN1##DAY") THEN
BEGIN
X2:=0;
X102:=("AU12$OPENINT"-CC2)/CC2;
END
CONDITION1:=ABS("AG12$OPENINT"-REF("AG12$OPENINT",1))>CC1;
CONDITION2:=ABS("AU12$OPENINT"-REF("AU12$OPENINT",1))>CC2;
XMAX1:=MAX(X1,X2);
CONDITION_BK1:=CONDITION1 AND X1=XMAX1;
CONDITION_BK2:=CONDITION2 AND X2=XMAX1;
IF CONDITION_BK1 THEN
BEGIN
extgbstringSet('QQSTR','买入,白银');
VQQM:=QQMSGX(1,close);
END
IF CONDITION_BK2 THEN
BEGIN
extgbstringSet('QQSTR','买入,黄金');
VQQM:=QQMSGX(1,close);
END
问题:
1,在15分钟线上跑,cc1等等都是空值?
2,为什么QQ上没显示(VBA程序已经修改完成)?
3,我这个策略是否一定要窗口上跑?
4,程序是否还有其他问题。
付思路:黄金、白银依据“开盘价”分多空,如果同为多,在依据“即时持仓量变化”做买入标志。
要在15分钟线上跑啊
直接引用,不就成了15分钟的持仓量了么
而且,用到的还是持仓的变化量
谢谢
那其他的呢
先看看引用的数值对不对,再往后一点点调试
基本的调试技巧:http://www.weistock.com/bbs/dispbbs.asp?boardid=4&id=1246&page=1&star=1
CC1:=MA(ABS(STKINDI('AG12','OPENINT',0,6,-1)-STKINDI('AG12','OPENINT',0,6,-1)),LENGTH);
IF(C>=STKINDI('AG12','OPEN',0,6,0)) THEN
BEGIN
X1:=(STKINDI('AG12','OPENINT',0,3,0)-CC1)/CC1;
X101:=0;
END
IF(C<STKINDI('AG12','OPEN',0,6,0)) THEN
BEGIN
X1:=0;
X101:=(STKINDI('AG12','OPENINT',0,3,0)-CC1)/CC1;
END
第一段改成这个了,调试后,cc1,x1,x101还是空值