我在系统自带的图表日内交易模板中加入红色部分,怎么老是显示不行了,版主帮忙纠正一下,感谢!
///////////////////////////////////////////////////////////////////////
//参数设置:
INPUT:P(1,0,200,1){建仓量},P1(2,0,50,1){初始止损幅度},P2(5,2,100,1){止盈幅度},P3(30,5,60,5){回撤止盈};
VARIABLE:MAXPROFIT=0,{有仓位时最大获利幅度}VMIN = 090000;{用于隔夜高开或低开时间差}
WIN1:=0;
WIN2:=0;//止盈、止损、回撤控制
////////////////////////////////////////////////////////////////////////
//账户信息:
资产:ASSET,PRECISION0,NOAXIS,COLORFF00FF;
可用现金:CASH(0),PRECISION0,LINETHICK0;
持仓:HOLDING,LINETHICK0;
胜率:PERCENTWIN,LINETHICK0;
交易次数:TOTALTRADE,LINETHICK0;
////////////////////////////////////////////////////////////////////////
//主程序
/////////////////
//信号模块:该模块主用于多空头及平仓信号的量化
buycond:=count(c>o,2)=2;
sellcond:=count(c<o,2)=2;
开多:=if holding=0 and buycond then buy(1,1,thisclose);
平多:=if holding>0 and sellcond then sell(1,1,thisclose);
开空:=if holding=0 and sellcond then buyshort(1,1,thisclose);
平空:=if holding<0 and buycond then sellshort(1,1,thisclose);
交易时间:=TIME>VMIN AND TIME<150000;
////////////////
//图表日内交易模块:
IF HOLDING=0 THEN BEGIN
//多头开仓
IF 交易时间 AND 开多 THEN BEGIN
BUY(1,P,LIMITR,CLOSE);
MAXPROFIT:=0;
END
//空头开仓
IF 交易时间 AND 开空 THEN BEGIN
BUYSHORT(1,P,LIMITR,CLOSE);
MAXPROFIT:=0;
END
END
IF HOLDING>0 THEN BEGIN
//多头平仓
IF 平多 THEN
SELL(1,HOLDING,LIMITR,CLOSE);
//多头收盘平仓
IF NOT(交易时间) THEN
SELL(1,HOLDING,LIMITR,CLOSE);
//盈亏计算
IF ENTERBARS>0 THEN BEGIN
WIN1:=(C-ENTERPRICE)/ENTERPRICE*100;
IF WIN1>MAXPROFIT THEN
MAXPROFIT:=WIN1;
WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
END
//多头初始浮亏 P1% 止损
IF WIN1<-P1 THEN
SELL(1,HOLDING,LIMITR,CLOSE);
//多头利润大于 P2% 止盈
IF WIN1>P2 THEN
SELL(1,HOLDING,LIMITR,CLOSE);
//多头获利后回撤 P3%止盈
IF WIN2>P3 AND OPENPROFIT>0 THEN
SELL(1,HOLDING,LIMITR,CLOSE);
END
IF HOLDING<0 THEN BEGIN
//空头平仓
IF 平空 THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//空头收盘平仓
IF NOT(交易时间) THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//盈亏计算
IF ENTERBARS>0 THEN BEGIN
WIN1:=(ENTERPRICE-C)/ENTERPRICE*100;
IF WIN1>MAXPROFIT THEN
MAXPROFIT:=WIN1;
WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
END
//空头初始浮亏超过 P1% 止损
IF WIN1<-P1 THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//空头利润大于 P2%止盈
IF WIN1>P2 THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
//空头回撤 P3% 止盈
IF WIN2>P3 AND OPENPROFIT>0 THEN
SELLSHORT(1,HOLDING,LIMITR,CLOSE);
END
写错了吧
buycond:=count(c>o,2);
开多:=if holding=0 and buycond=2 then buy(1,1,thisclose);
这样才执行
buycond:=count(c>o,2);
sellcond:=count(c<o,2);
开多:=if holding=0 and buycond=2 then buy(1,1);
平多:=if holding>0 and sellcond=2 then sell(1,1);
开空:=if holding=0 and sellcond=2 then buyshort(1,1);
平空:=if holding<0 and buycond=2 then sellshort(1,1)
改成这样也没有执行,哎,搞不懂
我说你这写法不对啊。。。。 下面 变量 “开多” 你自己用 开多:=xxx 最后代入了 buy 函数 。 这样不是等于0了呢 ,那不是false
直接写成
开多:=buycond=2 ; 就可以了