以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  为什么不输出maxc  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=80008)

--  作者:uime
--  发布时间:2015/6/21 18:15:44
--  为什么不输出maxc
问题如下:
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) ;

--  作者:王锋
--  发布时间:2015/6/22 17:10:02
--  

应该是你的数据量不够导致了,缩放图标后,数据会被截少了。

试试图标上使用时段限定,保证有足够的数据量


--  作者:uime
--  发布时间:2015/6/23 15:58:26
--  
2、在公式测试的过程中,如果不是从起始k线开始测试,中间没有信号?


--  作者:jinzhe
--  发布时间:2015/6/23 16:00:11
--  

什么是“不从开始k线开始”,测评要如何才能达到你说的状态?


--  作者:uime
--  发布时间:2015/6/25 9:46:07
--  
以螺纹钢指数为标的来进行测评,如果从螺纹钢上市就开始测评有数据。
如果从2010年开始测评就没有任何测试数据

--  作者:jinzhe
--  发布时间:2015/6/25 9:47:39
--  
补充一下数据,再进行测评
--  作者:uime
--  发布时间:2015/6/25 11:06:01
--  
时段限制在哪儿
--  作者:uime
--  发布时间:2015/6/25 11:07:39
--  
现在倒好,开始一段时间还好,多了反倒没信号了,请问什么情况下会有时段限制?
如何设置时段限制?

--  作者:uime
--  发布时间:2015/6/25 11:08:21
--  
测评时,不是自动被充的吗?
--  作者:jinzhe
--  发布时间:2015/6/25 11:09:51
--  

没有“时间段限制信号”,

也没有“测评时自动补充数据”,需要自行手工补充