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


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

   

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


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

主题:请求帮助改写

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


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

这个我叫已看过,关健是如何加入到我78楼代码中,如何取三个值,请老师帮助改写一下,谢谢!

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/12/17 11:36:51    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 llv(l,enterbars+1)<=enterprice-10 and c>=llv(l,enterbars+1)+3 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 hhv(h,enterbars+1)>enterprice+10 and c<=hhv(h,enterbars+1)-3 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

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


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

前周期取值不对

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


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

请举例


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

客户服务部

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

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

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


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

这取三个值,我从11月29日开始发贴,到目前己近20天,发贴9页,在文华我只发几贴,就解决,现有文华的代码请改写一下,并作这么多的解说,怎么金字塔就这么难呀!

老师好请求帮助将文华源码改写成金字塔源码

N4:=SUMBARS(COUNTSIG(BK,1),1),NODRAW;
N5:=SUMBARS(COUNTSIG(SK,1),1),NODRAW;
N1:=IF(COUNTSIG(BK,0)=0,N5,N4),NODRAW;
N2:=IF(COUNTSIG(SK,0)=0,N4,N5),NODRAW;
N3:=MIN(N1,N2),NODRAW;
YK1:MONEYTOT-REF(MONEYTOT,N3),NODRAW;//取本次平仓盈亏值
YK:IF(COUNTSIG(SP,0)+COUNTSIG(BP,0)=0,0,LOOP2(YK1+REF(YK,N3)>=0,0,YK1+REF(YK,N3))),NODRAW;//取本次平仓后亏损累计值。
YK2:REF(YK,N3),NODRAW;//取本次平仓前一周期的亏损累计值。

将这8行代码加入文华软件,任意模型中都可以看到三个取值,

我是交了三年使用费的用戸,就几行代码改写,已经这么长的时间了,请你们认真从第一帖到目前帖子看一下,有必要烦请你们联系技术部共同解决一下,谢谢!


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


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

我再详细说一下,三个取值,

本次平仓盈亏值;每次平仓,都会有盈亏,要么盈利,亏损,不亏不赚--------取这个盈亏的值--------定为本次平仓盈亏值------------这个本次是指从开仓成交起,这个持仓就存在浮动盈亏,每根k线收盘都会显示当根k线的盈亏,只有出平仓信号的那根k线显示的值--------定为本次平仓盈亏值

前一周期累计亏损值;每次平仓,都会有前一个周期的平仓的盈亏,----------当前一个本次平仓盈亏值前前一周期累计亏损相加出现盈利或不亏不赚就取值为0,当亏损就取亏损值,此值取前一周期的本次平仓亏损累计值从开仓成交起此值为固定的亏损值或者是0,

本次平仓亏损累计值;这个数值从开仓成交起,每根k线都会显示这个数值,用持仓浮动盈亏+前一周期累计亏损,这相加的数值当亏损时就取亏损,相加出现盈利或不亏不赚就取值为0,只有出平仓信号的那根k线显示的值才能定为本次平仓亏损累计值此值平仓结束时为本次平仓亏损累计值            当 开仓就转变为前一周期累计亏损------------也就是说一开仓此值又成为前一周期累计亏损值,

(1)本次平仓亏损累计值到一下次平仓就成为前一周期累计亏损值,

(2)本次平仓亏损累计值是用本次平仓盈亏值+前一周期累计亏损值,

(3)本次平仓亏损累计值是亏损累计,只有亏损时才取亏损值,盈利与不亏不赚取值为0


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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/12/18 8:59:24    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);//开空平多条件
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 holding<0 and ENTERPRICE-c>=4*MINDIFF then begin

    SELLSHORT(1,holding,LIMITR,ENTERPRICE-MINDIFF*4);
 a1:=NUMPROFIT(1);        
 a2:=a3;
 SS1:=numsell,NODRAW;//取得平空仓的持仓手数,
 
end

a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值
if holding<0 and llv(l,enterbars+1)<=enterprice-10 and c>=llv(l,enterbars+1)+3 then begin

    sellshort(1,0,limitr,close);
 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

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 holding>0 and C-ENTERPRICE>=8*MINDIFF then begin

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

   a1:=NUMPROFIT(1);        
 a2:=a3;
 SS1:=numsell,NODRAW;//取得平空仓的持仓手数,
   
end
a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值


if holding>0 and hhv(h,enterbars+1)>enterprice+10 and c<=hhv(h,enterbars+1)-3 then begin

    sell(1,0,limitr,close);

  
 a1:=NUMPROFIT(1);        
 a2:=a3;
 SS1:=numsell,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



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

客户服务部

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

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

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


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

补充一下

三个取值,用鼠标十字光线在任意k线上都能调出三个取值,无任多仓空仓包括无仓位都能调出三个取值,


本次平仓盈亏值------------从开仓成交起,这个值就用浮动盈亏存在,出平仓信号的那根k线的值--------定为本次平仓盈亏值


前一周期累计亏损值;-----------平仓时,此值为本次平仓亏损累计值,开仓一成功,就成为前一周期累计亏损值,此值在开仓后,以固定的亏损值或者是0显示在开仓这周期內,等平仓结束以本次平仓亏损累计值代替,


本次平仓亏损累计值;---------从开仓成交起,这个值显示的浮动亏损或者0,它用持仓浮动盈亏+前一周期累计亏损,当亏损时就取亏损,当盈利或不亏不赚就取值为0,平仓结束显示本次平仓亏损累计值,下次一开仓就成为前一周期累计亏损值,


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


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

老师,目前都在开平仓那根k线上才取到值,我要三个取值,用鼠标十字光线在任意k线上都能调出三个取值,无任多仓空仓包括无仓位都能调出三个取值,我要根据三个取值决定下次开仓手数,请求老师帮我改一下,谢谢!

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


加好友 发短信
等级:罗宾汉 帖子:46311 积分:50819 威望:0 精华:2 注册:2011/3/23 8:50:25
  发帖心情 Post By:2015/12/18 9:45:33    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);//开空平多条件
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 holding<0 and ENTERPRICE-c>=4*MINDIFF then begin

    SELLSHORT(1,holding,LIMITR,ENTERPRICE-MINDIFF*4);
 a1:=NUMPROFIT(1);        
 a2:=a3;
 SS1:=numsell,NODRAW;//取得平空仓的持仓手数,
 
end

a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值
if holding<0 and llv(l,enterbars+1)<=enterprice-10 and c>=llv(l,enterbars+1)+3 then begin

    sellshort(1,0,limitr,close);
 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

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 holding>0 and C-ENTERPRICE>=8*MINDIFF then begin

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

   a1:=NUMPROFIT(1);        
 a2:=a3;
 SS1:=numsell,NODRAW;//取得平空仓的持仓手数,
   
end
a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值


if holding>0 and hhv(h,enterbars+1)>enterprice+10 and c<=hhv(h,enterbars+1)-3 then begin

    sell(1,0,limitr,close);

  
 a1:=NUMPROFIT(1);        
 a2:=a3;
 SS1:=numsell,NODRAW;//取得平空仓的持仓手数,
   
end
a3:=if(a2+a1<0,a2+a1,0);  //a3放到这边来取到数值


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

本次平仓盈亏:if(enterbars<exitbars,openprofit,numprofit(1)),linethick0;

前一周期累计盈亏:if(enterbars<exitbars,a2,a3),linethick0;

本次平仓盈亏累计:if(enterbars<exitbars,a2+openprofit,a3),linethick0;



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

客户服务部

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

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

 回到顶部