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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 信号不对

   

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


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

主题:信号不对

帅哥,在线噢!
wenarm
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/5/17 13:09:47    Post IP:180.169.30.6[显示全部帖子]

这样看下。限制了条件

IF C-AvGENTERPRICE>=100*MINDIFF and sellflag=0 AND HOLDING>0 THEN BEGIN
SELL(1,1,MARKETR);    
sellflag:=1;

END


IF  C-AvGENTERPRICE<=15*MINDIFF  and C-AvGENTERPRICE>0 AND HOLDING>0 and sellflag=1 THEN BEGIN
SELL(1,1,MARKETR);
sellflag:=0;

END

 
IF C-AvGENTERPRICE<=-100*MINDIFF and sellshortflag=0 AND HOLDING<0 THEN BEGIN
SELLSHORT(1,1,MARKET);
sellshortflag:=1;
END


IF C-AvGENTERPRICE>=-15*MINDIFF and   C-AvGENTERPRICE<0  AND HOLDING<0 and  sellshortflag=1 THEN BEGIN
SELLSHORT(1,1,MARKET);
sellshortflag:=0;
END



编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/5/17 13:45:49    Post IP:180.169.30.6[显示全部帖子]

有边界值,你自己把结果输出看下就理解了。用3楼的代码看下。



编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/5/17 13:50:57    Post IP:180.169.30.6[显示全部帖子]

贴图教程    http://www.weistock.com/bbs/dispbbs.asp?boardid=2&Id=31614
  使用IE浏览器贴图


编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/5/17 14:19:30    Post IP:180.169.30.6[显示全部帖子]

吧你完整代码贴给我看下


编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/5/17 14:57:05    Post IP:180.169.30.6[显示全部帖子]

MA1:MA(CLOSE,5);
MA2:MA(CLOSE,10);


VARIABLE:sellshortflag=0;
VARIABLE:sellflag=0;

 

 


IF C-AvGENTERPRICE>=100*MINDIFF and sellflag=0 AND HOLDING>0 THEN BEGIN
    多头止盈1:SELL(1,1,MARKETR);   
sellflag:=1;


END

 


IF  C-AvGENTERPRICE<=15*MINDIFF  and C-AvGENTERPRICE>0 AND HOLDING>0 and sellflag=1 THEN BEGIN
    多头止盈2:SELL(1,1,MARKETR);
sellflag:=0;


END


 
IF C-AvGENTERPRICE<=-100*MINDIFF and sellshortflag=0 AND HOLDING<0 THEN BEGIN
    空头止盈1:SELLSHORT(1,1,MARKET);
sellshortflag:=1;
END

 


IF C-AvGENTERPRICE>=-15*MINDIFF and   C-AvGENTERPRICE<0  AND HOLDING<0 and  sellshortflag=1 THEN BEGIN
    空头止盈2:SELLSHORT(1,1,MARKET);
sellshortflag:=0;
END

cond1:=CROSS(MA1,MA2);//cond1
cond2:=CROSS(MA2,MA1);//cond2

if cond1=1 AND HOLDING<0 then begin
 平空:SELLSHORT(1,HOLDING,MARKET);
 sellshortflag:=0;
end

if cond2=1  AND HOLDING>0 then begin
 平多:SELL(1,2,MARKET);
 sellflag:=0;
end

if cond1=1  AND HOLDING=0 then BEGIN
 开多:BUY(1,2,MARKET);
end
if cond2=1  AND HOLDING=0 then BEGIN
 开空:BUYSHORT(1,2,MARKET);
end

 


持仓:HOLDING,COLORGRAY,LINETHICK0;



编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/5/17 14:58:59    Post IP:180.169.30.6[显示全部帖子]

你自己的那部分代码请不要“生搬硬套”。止盈触发一次后,后面的仓位金死叉时正常平仓了,全局变量要置0.要不然当然会先执行第二次的止盈代码。

建议你自己理解下代码



编程无捷径,技巧靠积累。
 回到顶部
帅哥,在线噢!
wenarm
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26631 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/5/17 16:45:03    Post IP:180.169.30.6[显示全部帖子]

您先消化掉这部分代码以后,再自己试着改这个需求。

用上次平仓价函数计算EXITPRICE。或者直接根据开仓价进行换算

 C-ENTERPRICE<=100*MINDIFF*0.7

再或者用全局变量记录第一次平仓是C-AvGENTERPRICE的值。



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