请问老师,图表怎么在BUY、BUYSHORT触发时,给全局变量赋值?能否做到出信号下单时,给变量赋值?谢谢!
VARIABLE:dd:=0;
if TIME>090000 AND TIME<224500 then;
BEGIN;
BUY(HOLDING=0 AND 开多,手数,THISCLOSE),ORDERQUEUE;
dd:=1;
end;
上面这样,dd无值。。。
[此贴子已经被作者于2019/11/13 14:35:07编辑过]

此主题相关图片如下:temp.png

shift+q 能直接看到光标对应K上变量情况的。
老师麻烦看一下,貌似不行啊。。。
此主题相关图片如下:jt00.jpg

VARIABLE:dd:=0;
MA5:MA(CLOSE,5);
if TIME>090000 AND TIME<224500 then;
BEGIN;
BUY(HOLDING=0 and MA5>ref(MA5,2),1,THISCLOSE),ORDERQUEUE;
dd:=1;
end;
if TIME>090000 AND TIME<224500 then;
BEGIN;
SELL(HOLDING>0 and MA5<ref(MA5,2),1,THISCLOSE),ORDERQUEUE;
dd:=0;
end;
先纠正下里面七七八八的小错误:
VARIABLE:dd:=0;
MA5:MA(CLOSE,5);
if time>=24500 and holding=0 and MA5>ref(MA5,2) then
BEGIN
BUY(HOLDING=0,1,THISCLOSE),ORDERQUEUE;
dd:=1;
end;
if time>=24500 and holding>0 and MA5<ref(MA5,2) then
BEGIN
SELL(HOLDING>0,1,THISCLOSE),ORDERQUEUE;
dd:=0;
end;
1.说明下为什么没有赋值。不是没有赋值,赋值了,但是被后面的dd:=0; 又给赋值了一次。
你if 这里没有控制好。“if TIME>090000 AND TIME<224500 then;” 这个语句不说里面的小错误,就这个逻辑的意思是只要在这个时间段内都 执行dd:=0; 这样这意味着dd恒为0 了。
2.时间函数的使用问题。
金字塔时间在前,后面括号里面是北京时间,默认时区是金字塔时区,time返回值也是金字塔时区

此主题相关图片如下:temp.png

此外金字塔时区下,交易开始是从夜盘开始的,不是白盘。所以我修改了你的time判断条件。
[此贴子已经被作者于2019/11/13 15:06:27编辑过]
老师,再问一下。在图表里如果刚才出现的买入信号消失了,
if time>=24500 and holding=0 and MA5>ref(MA5,2) then 条件不成立了
dd还能保持dd:=1吗??还是自动改为dd=0了?
不会,这个是全局变量。赋值之后,除非有其他地方的再次进行赋值,否则会保持最后一次赋值的结果。