
等级: 新手上路
- 注册:
- 2022-7-12
- 曾用名:
|
老师您好,我的策略是开仓信号发出后开仓,平仓信号发出后平仓然后反向开仓,现有策略加载在图上好像不能满足我的设想?有一下两个问题希望解答:
1.你看图上7月12日附近,开多以后有平多信号,但是没有开空信号,不知什么原因
2.每次开仓后朝有利方向走,没走多远就平仓了,是止盈幅度设置问题,还是回撤止盈设置有问题?
//参数设置:
INPUT:P(1){建仓量},P1(1,0,50,5){初始止损幅度},P2(3,2,100,10){止盈幅度},P3(45,5,60,5){回撤止盈};
VARIABLE:MAXPROFIT=0,{有仓位时最大获利幅度}
WIN1:=0;
WIN2:=0;//止盈、止损、回撤控制
//信号模块:该模块主用于多空头及平仓信号的量化
MA10:MA(CLOSE,10),PRECISION0,;
MA20:MA(CLOSE,20),PRECISION0,;
平空开多:=CROSS(MA10,MA20);
平多开空:=CROSS(MA20,MA10);
//图表日内交易模块:
IF HOLDING=0 THEN BEGIN
//多头开仓
IF {交易时间 AND} 平空开多 THEN BEGIN
BUY(1,P,MARKETR);
MAXPROFIT:=0;
END
//空头开仓
IF {交易时间 AND} 平多开空 THEN BEGIN
BUYSHORT(1,P,MARKETR);
MAXPROFIT:=0;
END
END
IF HOLDING>0 THEN BEGIN
//多头平仓
IF 平多开空 THEN
SELL(1,HOLDING,MARKETR);
//盈亏计算
IF ENTERBARS>0 THEN BEGIN
WIN1:=(C-AVGENTERPRICE)/AVGENTERPRICE*100; //记录最大盈利
IF WIN1>MAXPROFIT THEN
MAXPROFIT:=WIN1;
WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
END
//多头初始浮亏 P1% 止损
IF WIN1<-P1 THEN
SELL(1,HOLDING,MARKETR);
//多头利润大于 P2% 止盈
IF WIN1>P2 THEN
SELL(1,HOLDING,MARKETR);
//多头获利后回撤 P3%止盈
IF WIN2>P3 AND OPENPROFIT>0 THEN
SELL(1,HOLDING,MARKETR);
END
IF HOLDING<0 THEN BEGIN
//空头平仓
IF 平空开多 THEN
SELLSHORT(1,HOLDING,MARKETR);
//盈亏计算
IF ENTERBARS>0 THEN BEGIN
WIN1:=(AVGENTERPRICE-C)/AVGENTERPRICE*100; //记录最大盈利
IF WIN1>MAXPROFIT THEN
MAXPROFIT:=WIN1;
WIN2:=(MAXPROFIT-WIN1)/MAXPROFIT*100;
END
//空头初始浮亏超过 P1% 止损
IF WIN1<-P1 THEN
SELLSHORT(1,HOLDING,MARKETR);
//空头利润大于 P2%止盈
IF WIN1>P2 THEN
SELLSHORT(1,HOLDING,MARKETR);
//空头回撤 P3% 止盈
IF WIN2>P3 AND OPENPROFIT>0 THEN
SELLSHORT(1,HOLDING,MARKETR);
END
|
-
|