?老師:
我寫了個股票程序如下:
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);
我的程序里面設定了開倉的資金是10萬元,在回測參數設置里面設的是50萬元,為什么我從2006年回測的時候,在2006年回測報告里面用的是50萬元開的倉,而在最近的回測報告里面用的本金是10萬元呢?如圖:
?
?
?來源:程序化99
?如果設置了復權,直接使用CLOSE函數計算開倉手數取的是復權后的價格
?
所以在歷史K線上會存在手數計算錯誤的問題,這樣改一下:
?
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);