?老師:
我寫了個(gè)股票程序如下:
LENGTH1:=5;
LENGTH2:=30;
FUND:=100000;
VAR1:=MAX(100,INTPART(FUND/C));
MA1:=MA(CLOSE,LENGTH1);
MA2:MA(CLOSE,LENGTH2);
CROSSUP(MA1,MA2),BK(VAR1);
CROSSDOWN(MA1,MA2),SP(VAR1);
STOCKDIVD(0);
我的程序里面設(shè)定了開倉(cāng)的資金是10萬元,在回測(cè)參數(shù)設(shè)置里面設(shè)的是50萬元,為什么我從2006年回測(cè)的時(shí)候,在2006年回測(cè)報(bào)告里面用的是50萬元開的倉(cāng),而在最近的回測(cè)報(bào)告里面用的本金是10萬元呢?如圖:
?
?
?來源:程序化99
?如果設(shè)置了復(fù)權(quán),直接使用CLOSE函數(shù)計(jì)算開倉(cāng)手?jǐn)?shù)取的是復(fù)權(quán)后的價(jià)格
?
所以在歷史K線上會(huì)存在手?jǐn)?shù)計(jì)算錯(cuò)誤的問題,這樣改一下:
?
LENGTH1:=5;
LENGTH2:=30;
FUND:=100000;
CC:=RAWDATA('CLOSE');
VAR1:=MAX(100,INTPART(FUND/CC));
MA1:=MA(C,LENGTH1);
MA2:=MA(C,LENGTH2);
CROSSUP(MA1,MA2),BK(VAR1);
CROSSDOWN(MA1,MA2),SP(VAR1);
STOCKDIVD(0);