以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- [求助]变量赋值 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=173080) |
-- 作者:sdjnliuxu -- 发布时间:2019/11/13 14:34:28 -- [求助]变量赋值 请问老师,图表怎么在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编辑过]
|
-- 作者:FireScript -- 发布时间:2019/11/13 14:37:32 -- shift+q 能直接看到光标对应K上变量情况的。 |
-- 作者:sdjnliuxu -- 发布时间:2019/11/13 14:52:08 -- 老师麻烦看一下,貌似不行啊。。。 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;
|
-- 作者:FireScript -- 发布时间:2019/11/13 15:04:56 -- 先纠正下里面七七八八的小错误: 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返回值也是金字塔时区 此外金字塔时区下,交易开始是从夜盘开始的,不是白盘。所以我修改了你的time判断条件。 [此贴子已经被作者于2019/11/13 15:06:27编辑过]
|
-- 作者:sdjnliuxu -- 发布时间:2019/11/13 15:18:23 -- 谢谢老师! |
-- 作者:sdjnliuxu -- 发布时间:2019/11/13 16:15:08 -- 老师,再问一下。 在图表里如果刚才出现的买入信号消失了, if time>=24500 and holding=0 and MA5>ref(MA5,2) then 条件不成立了 dd还能保持dd:=1吗??还是自动改为dd=0了?
|
-- 作者:FireScript -- 发布时间:2019/11/13 16:25:46 -- 不会,这个是全局变量。赋值之后,除非有其他地方的再次进行赋值,否则会保持最后一次赋值的结果。 |