老师,您好。
我是用日K的的双均线系统MA10和MA50金叉做多,死叉做空。
如果做多进场后浮盈满足我的止盈条件,我都是盘中触发就止盈减仓的。请教以下三个问题:
1,做多当他回调破20日均线时候盘中第一次触发后立即止盈减仓1/3当前持仓(此时不用清仓离场),请问如何写?
2,当天可能出现几次触发减仓信号,如何才能做到只减仓一次。
3,如果第二天第三天他任然在20日均线附近来回盘整(上穿下破),可能导致多次止盈减仓信号,我又如何才能只减仓第一天的一次仓位,忽略后面的信号反复触发减仓信号。
希望老师帮我解决,非常感谢。
1.
sell(cross(ma(c,20),c),holding/3,market);
sellshort(cross(c,ma(c,20)),holding/3,market);
至于你说的第一次触发,在日线单个K上没什么判断的意义。原因在于相同的下单语句在一个K上只能触发一次下单。
2.不用考虑那么多了。 你日线级别,当日就一个K,单个K上相同的下单语句有且只能触发一次下单。就算信号闪烁,前面只要这个语句下过单了,再触发也不会再下单了。
3.整合1的代码如下:
VARIABLE:mark:=1;//用全局变量标记。减仓后用全局变量纪录值,开仓后再重置全局变量值。
if cross(ma(c,20),c)and holding>0 and mark then
begin
sell(1,holding/3,market);
mark:=0;
end
if cross(c,ma(c,20))and holding>0 and mark then
begin
sellshort(1,holding/3,market);
mark:=0;
end
if 开多条件 and holding=0 then
begin
//...这里写你的开多语句
mark:=1;
END
if 开空条件 and holding=0 then
begin
//...这里写你的开空语句
mark:=1;
END