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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 老师帮忙实现一个平仓思路

   

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


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

主题:老师帮忙实现一个平仓思路

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


加好友 发短信
等级:论坛游侠 帖子:211 积分:0 威望:0 精华:0 注册:2016/7/22 16:00:23
老师帮忙实现一个平仓思路  发帖心情 Post By:2019/4/28 0:59:47    Post IP:171.36.17.236[只看该作者]


  ma1(close,30) , ma2 ( close, 60 )

 ma1 下穿 ma2 的时候,做空, 现在持 10 手 空仓, 当利润大于100点 的时候,, 平 5 手 出来,  剩下 5 手,需要等到 ma1 上穿 ma2 的时候再平出来!

怎么可以实现这个思路


 思路2 :  进场 条件同上,   利润大于100点,平仓 5 手出来, 剩下 5 手, 增加一个按利润回撤 50 % 作为平仓的触发 信号, 也就是说,利润回撤 50 %    或 出现 ma1 上穿 ma2 的时候, 就平 最后 5 手出来


麻烦老师帮忙编写一下,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/4/28 9:16:25    Post IP:180.169.30.6[只看该作者]

ma1:ma(close,30);
ma2:ma(close,60);

if CROSS(ma2,ma1) then begin
 BUYSHORT(1,10,MARKET); 
end

IF AvGENTERPRICE-C>100*MINDIFF THEN BEGIN
 SELLSHORT(1,HOLDING/2,MARKET);
END

KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AvGENTERPRICE>=0.5;

if CROSS(ma1,ma2)  or KTYDZS=1 then  begin
 SELLSHORT(KTYDZS,HOLDING,MARKET);  
end

 

[此贴子已经被作者于2019/4/28 9:16:37编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
2457146251
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:211 积分:0 威望:0 精华:0 注册:2016/7/22 16:00:23
  发帖心情 Post By:2019/4/28 21:24:26    Post IP:171.36.17.236[只看该作者]

老师,,可以严谨一些么,这个代码,平完第一次之后,下个K接着继续平掉第二次,,,等不到 第二步了

我之前试过也是这个问题,才发帖问能不能有好的办法

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/4/28 22:49:43    Post IP:116.237.22.211[只看该作者]

用全局变量把两个条件的之间做一个互斥处理。
VARIABLE:flag=0;
ma1:ma(close,30);
ma2:ma(close,60);
if CROSS(ma2,ma1) then begin
 BUYSHORT(1,10,MARKET);
end
IF AvGENTERPRICE-C>100*MINDIFF and flag=0 THEN BEGIN
 SELLSHORT(1,HOLDING/2,MARKET);
 flag:=1;
END
KTYDZS:=(CLOSE-LLV(L,ENTERBARS))/AvGENTERPRICE>=0.5 ;
if (CROSS(ma1,ma2)  or KTYDZS=1) and flag=1 then  begin
 SELLSHORT(KTYDZS,HOLDING,MARKET); 
 flag:=0;
end


编程无捷径,技巧靠积累。
 回到顶部