可以类似这样处理。
buy(TODAYBAR=1,1,market);
maxprofit:hhv(OPENPROFITPER,ENTERBARS+1);//这个要在开仓语句后面;统计开仓位置到现在最大的盈利幅度
cd:maxprofit>=5 and OPENPROFITPER<=0;//如果开仓后最大盈利大于5% 且当前小于等于0了 则止损
sell(cd,holding,market);
请问我的开平条件都是用的IF语句,怎样把这个保本损编程语句加上
maxprofit:hhv(OPENPROFITPER,ENTERBARS+1);//这个要在开仓语句后面;统计开仓位置到现在最大的盈利幅度
cd:maxprofit>=5 and OPENPROFITPER<=0;//如果开仓后最大盈利大于5% 且当前小于等于0了 则止损
sell(cd,holding,market);
这部分放到开仓语句后面就行了。我前面的带下单语句是用来做测试的。

此主题相关图片如下:360截图20210301120631251.jpg
不能放到if内部。这段代码你贴出来 我给你改下吧。
//如果当前是没有持仓的状态
IF POSITION=0 AND BARPOS>T5 AND H>L THEN BEGIN
//建立多头进场条件
LONG := C > T5HI AND C>MA60 ;
//多头进场
IF LONG THEN BEGIN
BUY( _DEBUG,手数,LIMIT,lastdayc);
POSITION := 1 ;
TURTLEUNITS := 1 ;
BUYORDERTHISBAR := 1;
END; //IF
下面的加仓也按照保本损设置,加仓也就等于建仓,是不是也需要在加仓语句下面加上
下面是加(建)仓语句
//如果当前持有多头仓位的状态
variable:x=0;//定义全局变量,用来计算加仓次数
IF POSITION=1 AND BARPOS>T5 AND C>MA60 THEN BEGIN
//多头加仓条件
if x<3 and OPENPROFITPER>=10 and FLOOR(OPENPROFITPER)>x*10 and holding>0 then
begin
多加仓:buy(1,加仓手数,LIMIT,lastdayc);
x:=x+1;
;
end
if holding=0 then x:=0 AND 加仓手数 =0 ;//平仓之后全局变量重置为0