欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请问如果盘中触发分步止盈减仓如何做到只执行一次减仓?忽略多次触发的减仓信号

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3549人关注过本帖树形打印复制链接

主题:请问如果盘中触发分步止盈减仓如何做到只执行一次减仓?忽略多次触发的减仓信号

帅哥哟,离线,有人找我吗?
FireScript
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2021/5/11 9:20:16    Post IP:58.246.57.26[显示全部帖子]

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


命数如织,当如磐石。
 回到顶部