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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 为什么不输出maxc

   

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


  共有3262人关注过本帖平板打印复制链接

主题:为什么不输出maxc

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


加好友 发短信
等级:论坛游民 帖子:114 积分:27 威望:0 精华:0 注册:2013/5/9 7:26:16
为什么不输出maxc  发帖心情 Post By:2015/6/21 18:15:44    Post IP:123.11.81.144[只看该作者]

问题如下:
1、在图表缩放的过程中,maxc不输出
2、在公式测试的过程中,如果不是从起始k线开始测试,中间没有信号。
3、用debugfile2输出后,asset和maxc没有数值,不知道原因何在。我想要在调试目标文件中显示每一根k线下对应的maxc值和asset值。
代码如下:
variable:position=0,maxc=asset,N=0,myentryprice=0,myexitprice=0;
input:tupo(10,2,100,1),zhis(15,5,100,1),zhiying(3,1,10,1);
hi20:ref(hhv(h,tupo),1);
lo20:ref(llv(l,tupo),1);
ATR:=ma(tr,20);
zhisun:=zhis/10;
kd:=cross(h,hi20);
kk:=cross(lo20,l);


//如果没有持仓,开多仓

IF POSITION=0 AND barpos>20  THEN BEGIN
                if maxc<asset then maxc:=asset;
                N:=atr;
                if CASH(0)<MAXC*0.9 and CASH(0)>MAXC*0.8 THEN PosNum:=cash(0)*0.015/n/MULTIPLIER ;
                else if
                CASH(0)<MAXC*0.8 and CASH(0)>MAXC*0.7 THEN PosNum:=cash(0)*0.0075/N/MULTIPLIER;
                else if
                CASH(0)<MAXC*0.7 and CASH(0)>MAXC*0.6 THEN PosNum:=cash(0)*0.004/N/MULTIPLIER;
                else if
                else PosNum:=cash(0)*0.03/N/MULTIPLIER;
                posnum:=floor(posnum);
                
                if kd  THEN BEGIN
                        MYENTRYPRICE := IF(OPEN>hi20+MINDIFF ,OPEN ,hi20+MINDIFF ) ;
                        //posnum:=intpart (asset*0.02/N/MULTIPLIER);
                        BUY(cash(0)>(posnum*myentryprice+posnum*zhisun*N*MULTIPLIER),POSNUM,LIMITR,MYENTRYPRICE);
                        POSITION := 1 ;        
                end
                if kk then BEGIN
                        MYENTRYPRICE := IF(OPEN<lo20+MINDIFF ,OPEN ,lo20-MINDIFF ) ;
                        BUYshort(cash(0)>(posnum*myentryprice+posnum*zhisun*N*MULTIPLIER),POSNUM,LIMITR,MYENTRYPRICE);
                        POSITION := -1 ;
                end        
end




//如果已经开仓,加多仓;
if position>0 and h>myentryprice+zhiying*N and (cash(0)-posnum*h-(holding+posnum)*zhisun*N*MULTIPLIER)>0 THEN
        begin
        myentryprice:=if(open>enterprice+zhiying*N+mindiff,open,enterprice+zhiying*N+mindiff);
        buy(1,posnum,limitr,myentryprice);
        position:=position+1;
        myentryprice:=myentryprice+zhiying*N;
        end
        
//如果已经开空仓,加仓;
if position<0 and l<myentryprice-zhiying*N and (cash(1)-posnum*h-(abs(holding)+posnum)*zhisun*N*MULTIPLIER)>0 THEN
        begin
        myentryprice:=if(open<enterprice-zhiying*N+mindiff,open,enterprice-zhiying*N+mindiff);
        buyshort(1,posnum,limitr,myentryprice);
        position:=position-1;
        myentryprice:=myentryprice-zhiying*N;
        end
        
        
//多仓出局
if position>0 and low<enterprice-zhisun*N then
begin
                MYEXITPRICE := IF(OPEN<MYENTRYPRICE-zhisun*N ,OPEN ,MYENTRYPRICE-zhisun*N ) ;                
                MYEXITPRICE := FLOOR(MYEXITPRICE/MINDIFF)*MINDIFF ;        
                SELL( 1,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                //if maxc<cash(0) then maxc:=cash(0);
END

//空仓止损
if position<0 and high>enterprice+zhisun*N then
begin
                MYEXITPRICE := IF(OPEN>MYENTRYPRICE+zhisun*N ,OPEN ,MYENTRYPRICE+zhisun*N ) ;                
                MYEXITPRICE := ceiling(MYEXITPRICE/MINDIFF)*MINDIFF ;        
                SELLshort( 1,0,LIMITR,MYEXITPRICE);
                POSITION := 0 ;
                //if maxc<cash(0) then maxc:=cash(0);
END

持仓:holding,linethick0;
maxasset:maxc,noaxis;
资产:asset,noaxis;
可用现金:cash(0),linethick0;
DEBUGFILE2('d:\DEBUGFILE.TXT','maxc=%.0F' ,maxc,0) ;
DEBUGFILE2('d:\DEBUGFILE.TXT','asset=%.0F' ,asset ,0) ;

 回到顶部
总数 20 1 2 下一页