以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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=181823) |
-- 作者:arutema -- 发布时间:2020/8/20 20:00:08 -- 全局变量赋值问题 VARIABLE:sj=0,sjh=0,bj=0,bjh=0; /止损 IF C<AVGENTERPRICE and holding=1 and sjh=1 and c<g THEN BEGIN //and (sj=c and sjh=1)or (bj=c and bjh=1) 多损s:sell(y2,HOLDING,MARKETr); END if 多损s=1 then begin sj:=0; sjh:=0; end //进场 if holding=0 and sj=0 and sjh=0 and t1 and y1 then begin
s多进:buy(1,1,MARKETR),NODRAW;
sj:=c;
sjh:=1;
end if holding=0 and bj=0 and bjh=0 and t2 and y1 then begin
b多进:buy(1,1,marketr),NODRAW;
bj:=c;
bjh:=1; end 在图表第一次遇到s多进 场的信号,全局变量执行正常触发全部止损信号止损并重新赋值归零。接着第二次遇到s多进场信号,开仓后的第一跟k线有赋值,第二根k线起sj sjh重新赋值为0, 什么原因,请老师给看下 如果s止损这么写 /止损 IF C<AVGENTERPRICE and holding=1 and sjh=1 and c<g THEN BEGIN //and (sj=c and sjh=1)or (bj=c and bjh=1) 多损s:sell(y2,HOLDING,MARKETr); sj:=0; sjh:=0; end 则在第一次与到s多进场后的第3跟k线sj sjh就赋值成零了 |
-- 作者:FireScript -- 发布时间:2020/8/21 8:56:03 -- 全局变量的赋值,放到平仓语句同一个begin-end下。再把y2放在if后面的判断里面 IF C<AVGENTERPRICE and holding=1 and sjh=1 and c<g and y2 THEN BEGIN //and (sj=c and sjh=1)or (bj=c and bjh=1) 多损s:sell(y2,HOLDING,MARKETr);sj:=0; sjh:=0; END 之所出现你说的“ 则在第一次与到s多进场后的第3跟k线sj sjh就赋值成零了 ” 很显然是if后面的条件满足了,但是y2没有满足,所以只重置全局变量了,但是平仓却没有触发。
|