以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (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 -- 没有“时间段限制信号”, 也没有“测评时自动补充数据”,需要自行手工补充 |