以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [原创]请问这段代码在测试的时候 为什么不下单  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=181112)

--  作者:jztzwy2020
--  发布时间:2020/7/9 16:19:22
--  [原创]请问这段代码在测试的时候 为什么不下单
VARIABLE:TB1=0,TB2=0,TS1=0,TS2=0;
手数:=SS;

昨高:=CALLSTOCK(stklabel,VTHIGH,6,-1);//昨高ref(HIGH,1);
昨低:=CALLSTOCK(stklabel,VTLOW,6,-1);//昨低C;ref(low,1);
昨收:=CALLSTOCK(stklabel,VTCLOSE,6,-1);//昨收ref(close,1);

枢纽价:=(昨高+昨低+昨收)/3;

//IF N>=1 THEN BEGIN今高:=A;//今高今低:=B;//今低END*/
 //反转买入价
Revbuy:2*枢纽价-昨高; 
 //观察买入价        
Setupbuy:枢纽价-(昨高-昨低);  

//反转卖出价
Revsell:2*枢纽价-昨低;          
 //观察卖出价
Setupsell:枢纽价+(昨高-昨低); 

//开多单条件1,小于观察买入价

if ref(LOW,1)<Setupbuy THEN 
       TB1:=1;
//开多单条件2,大于反转买入价

IF REF(HIGH,1)>Revbuy and TB1 then
  TB2:=1;
//开空单条件1,大于观察卖出价

if REF(HIGH,1)>Setupsell tHEN
TS1:=1;
//开空单条件2,小于反转卖出价

IF REF(LOW,1)<Revsell and TS1 THEN 
TS2:=1;

//反转开多
if TB1 AND TB2 then BEGIN
TB1:=0;
TB2:=0;
BUY(HOLDING<=0,手数,NEXTOPEN);
end
//反转开空
IF TS1 AND TS2 THEN BEGIN
TS1:=0;
TS2:=0;
BUYSHORT(HOLDING>=0,手数,NEXTOPEN);
END


sell(ref(HIGH,1)>Setupsell OR REF(LOW,1)<Setupbuy,手数,NEXTOPEN);// 多单止盈及止损


SELLSHORT(ref(low,1)<Setupbuy or REF(LOW,1)>Setupsell,手数,NEXTOPEN);//空单止盈及止损




IF TIME>=145500 and time<=150000 OR TIME>=225500 AND TIME<=230000 THEN BEGIN //日内平仓
 收盘平多:SELL(1,手数,nextopen);
 收盘平空:SELLSHORT(1,手数,nextopen);
END


请问以上代码在进行测试的时候为什么不下单?谢谢

--  作者:FireScript
--  发布时间:2020/7/9 16:30:59
--  
 BUYSHORT(HOLDING>=0,手数,NEXTOPEN);

图表策略不能在有反向虚拟仓位的时候开仓。必须先平后开。你这里的开仓如上面这样都无法操作的。


--  作者:jztzwy2020
--  发布时间:2020/7/9 16:34:01
--  
谢谢!