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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请求帮助改写

   

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


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

主题:请求帮助改写

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/12/14 8:55:48    Post IP:58.246.57.26[只看该作者]

请用户贴出自己带有止盈的代码



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2015/11/29 19:04:29
  发帖心情 Post By:2015/12/14 10:04:30    Post IP:49.69.196.2[只看该作者]

 将69楼代码开仓手数写成3手,加上下面的止盈

IF C-AVGENTERPRICE>=4*MINDIFF THEN BEGIN//多单止盈
SELL(1,1,MARKET);
END
IF AVGENTERPRICE-c>=4*MINDIFF  THEN BEGIN//空单止盈
SELLSHORT(1,1,MARKET);


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/12/14 10:15:22    Post IP:58.246.57.26[只看该作者]

INPUT:m(60,5,100,1);
INPUT:ss(1,1,10,1);
MA1:ROUNDS(MA(CLOSE,m),0);
variable:a1=0,a2=0,a3=0;
variable:numbuy=1,numsell=1;
手数:=ss;
//交易条件
平空开多条件:=CROSS(c,MA1);//开多平空条件
平多开空条件:=CROSS(MA1,c);//开空平多条件

mm:=holding;
if 平空开多条件 and holding<0 then  begin
SELLSHORT(1,holding,MARKETr);
a1:=NUMPROFIT(1);        
a2:=a3;
SS1:=numsell,NODRAW;//取得平空仓的持仓手数,
end       
a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值

if 平空开多条件 then  begin 
平空盈亏b1:a1,NODRAW;
平空前周期亏累计b2:a2,NODRAW;
平空亏损累计b3:a3,NODRAW;
BUY(holding=0,1,MARKETr);
numbuy:=1;
end

nn:=holding;

if 平多开空条件 and holding>0 then begin
SELL(1,holding,MARKETr);
a1:=NUMPROFIT(1);        
a2:=a3;
SS111:=numbuy,NODRAW;//取得平多仓的持仓手数,
end
a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值
if 平多开空条件 then  begin 
平多盈亏b11:a1,NODRAW;
平多前周期亏累计b22:a2,NODRAW,COLORWHITE;
平多亏损累计b33:a3,NODRAW;
BUYSHORT(holding=0,1,MARKETr);
numsell:=1;                         //每次开仓后把对应得手数赋值给全局变量numsell,
end

 

 

if time=closetime(0) then begin

  a1:=0;

  a2:=0;

  a3:=0;

end

 

nn和mm为平仓之前的持仓手数




金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2015/11/29 19:04:29
  发帖心情 Post By:2015/12/14 10:37:34    Post IP:49.69.196.2[只看该作者]

如何将空仓负数去掉,取到的手数为正数

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/12/14 10:50:15    Post IP:58.246.57.26[只看该作者]

取绝对值即可:abs(holding)


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2015/11/29 19:04:29
  发帖心情 Post By:2015/12/16 22:01:27    Post IP:49.83.162.36[只看该作者]

老师好,

关于29楼,30楼,每次平仓取三个值,用直接反手交易,取值是正确的,

1,现需要加上两种不同的方式止盈,取值出现了问题,止盈平仓时取不到三个值,要求三个取值是依次按平仓的顺序取盈亏值的,请老师修改一下三个取值,

2,请老师在下面代码中加入第二种止盈方法,如果盈利超过6点之后回撤达到3点,就平仓,保住盈利,

INPUT:m(60,5,100,1);
INPUT:ss(1,1,10,1);
MA1:ROUNDS(MA(CLOSE,m),0);
variable:a1=0,a2=0,a3=0;
variable:numbuy=1,numsell=1;
手数:=ss;
//交易条件
平空开多条件:=CROSS(c,MA1);//开多平空条件
平多开空条件:=CROSS(MA1,c);//开空平多条件
if 平空开多条件 and holding<0 then  begin
SELLSHORT(1,holding,MARKETr);
a1:=NUMPROFIT(1);        
a2:=a3;
SS1:=numsell,NODRAW;//取得平空仓的持仓手数,
end       
a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值

//直接挂单 空头止盈   
 空头止盈1:SELLSHORT(ENTERPRICE-c>=4*MINDIFF,holding,LIMITR,ENTERPRICE-MINDIFF*4);
 空头止盈2:如果盈利超过10点之后回撤达到3点,就平仓,保住盈利
if 平空开多条件 then  begin 
平空盈亏b1:a1,NODRAW;
平空前周期亏累计b2:a2,NODRAW;
平空亏损累计b3:a3,NODRAW;
BUY(holding=0,1,MARKETr);
numbuy:=1;
end
if 平多开空条件 and holding>0 then begin
SELL(1,holding,MARKETr);
a1:=NUMPROFIT(1);        
a2:=a3;
SS111:=numbuy,NODRAW;//取得平多仓的持仓手数,
end
a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值

//直接挂单
 多头止盈1:SELL( C-ENTERPRICE>=8*MINDIFF,holding,LIMITR,ENTERPRICE+MINDIFF*8);
  多头止盈2:如果盈利超过6点之后回撤达到3点,就平仓,保住盈利
if 平多开空条件 then  begin 
平多盈亏b11:a1,NODRAW;
平多前周期亏累计b22:a2,NODRAW,COLORWHITE;
平多亏损累计b33:a3,NODRAW;
BUYSHORT(holding=0,1,MARKETr);
numsell:=1;                         //每次开仓后把对应得手数赋值给全局变量numsell,
end


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/12/17 8:51:36    Post IP:58.246.57.26[只看该作者]

你的前一次盈亏累计值是前一次和前前一次的盈亏总和还是之前所有交易的盈亏总和?


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:新手上路 帖子:61 积分:0 威望:0 精华:0 注册:2015/11/29 19:04:29
  发帖心情 Post By:2015/12/17 11:00:42    Post IP:49.83.162.36[只看该作者]

这个是依次的,不分条件平仓与止盈止损平仓,我以数字顺序作说明,

第一单平仓时累计值盈利,亏损累计值;取值就为0,

第二单平仓亏损时,        亏损累计值;取值亏损值,

第三单平仓亏损时,        亏损累计值;第三单亏损+第二单亏损累计值

第四单平仓盈利时,        亏损累计值;第四单盈利值+第三单亏损累计值           相加结果大于等于0,取亏损累计值;为0,   相加结果小于0为亏损时,取亏损累计值;为亏损 数值,

第五单平仓盈利时,        亏损累计值;第五单盈利值+第三单亏损累计值           相加结果大于等于0,取亏损累计值;为0,   相加结果小于0为亏损时,取亏损累计值;为亏损 数值,

也就是说当本次平仓盈亏值与上一周期亏损累计值相加,当相加结果大于等于0时,取值就为0,只有亏损时,才有负值与下次平仓结果相加,

具体29楼也有说明,辛苦老师详细看一下,谢谢!


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/12/17 11:12:30    Post IP:58.246.57.26[只看该作者]

移动止盈止损看系统的自带模版写
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看


金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/12/17 11:22:39    Post IP:58.246.57.26[只看该作者]

N1,N2,N3分别对应你29楼所需要的值

INPUT:m(60,5,100,1);
INPUT:ss(1,1,10,1);
MA1:ROUNDS(MA(CLOSE,m),0);
variable:a1=0,a2=0,a3=0;
variable:numbuy=1,numsell=1;

variable:cs=0;


手数:=ss;
//交易条件
平空开多条件:=CROSS(c,MA1);//开多平空条件
平多开空条件:=CROSS(MA1,c);//开空平多条件
if 平空开多条件 and holding<0 then  begin
SELLSHORT(1,holding,MARKETr);
a1:=NUMPROFIT(1);        
a2:=a3;
SS1:=numsell,NODRAW;//取得平空仓的持仓手数,

cs:=cs+1;
end  

   
a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值

//直接挂单 空头止盈   
 if holding<0 and ENTERPRICE-c>=4*MINDIFF then begin

    SELLSHORT(1,holding,LIMITR,ENTERPRICE-MINDIFF*4);

    cs:=cs+1;

end
if holding<0 and 回撤条件 then begin

    sellshort(1,0,limitr,close);

    cs:=cs+1;

end

 

if 平空开多条件 then  begin 
平空盈亏b1:a1,NODRAW;
平空前周期亏累计b2:a2,NODRAW;
平空亏损累计b3:a3,NODRAW;
BUY(holding=0,1,MARKETr);
numbuy:=1;
end
if 平多开空条件 and holding>0 then begin
SELL(1,holding,MARKETr);
a1:=NUMPROFIT(1);        
a2:=a3;
SS111:=numbuy,NODRAW;//取得平多仓的持仓手数,
cs:=cs+1;

end
a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值

//直接挂单
if holding>0 and C-ENTERPRICE>=8*MINDIFF then begin

   SELL( 1,holding,LIMITR,ENTERPRICE+MINDIFF*8);

   cs:=cs+1;

end
if holding>0 and 回撤条件 then begin

    sell(1,0,limitr,close);

    cs:=cs+1;

end

if 平多开空条件 then  begin 
平多盈亏b11:a1,NODRAW;
平多前周期亏累计b22:a2,NODRAW,COLORWHITE;
平多亏损累计b33:a3,NODRAW;
BUYSHORT(holding=0,1,MARKETr);
numsell:=1;                         //每次开仓后把对应得手数赋值给全局变量numsell,
end

 

n1:=if(cs=1,0,if(numprofit(1)+numprofit(2)<0,numprofit(1)+numprofit(2),0));

n2:=numprofit(1);

n3:=if(cs=1,0,if(n1+n2<0,n2+n1,0));    



金字塔—专业程序化交易量化投资平台

客户服务部

----------------------------------------------------------- 欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部