想請問一下,我用跟以下貼的程式碼合併在一起選股,站上均線糾結選日頻率,月營收則選月頻率,請問各要設搜尋多少筆資料,才能跑出正確的選股呢,理論上兩者合併應該能在2021/01/15選出6485點序,2021/01/18進場,不過總是會有些錯誤選股的情況發生,感謝您的回覆。
input: shortlength(5); setinputname(1,"短期均線期數");
input: midlength(10); setinputname(2,"中期均線期數");
input: Longlength(20); setinputname(3,"長期均線期數");
input: Qlength(60); setinputname(4,"季均線期數");
input: HalfYearlength(120); setinputname(5,"半年均線期數");
input: Yearlength(240); setinputname(6,"年均線期數");
input: Percent(15); setinputname(7,"均線糾結區間%");
input: Volpercent(100); setinputname(8,"放量幅度%");//帶量突破的量是5日均量的兩倍
input: VolLimit(2000); setinputname(9,"最小成交量");
input: OverDaysClose(20); setinputname(10,"超越幾天的收盤價");
variable: shortaverage(0);
variable: midaverage(0);
variable: Longaverage(0);
variable: Qaverage(0);
variable: HYaverage(0);
variable: Yaverage(0);
variable: maxaverage(0);
shortaverage = average(close,shortlength);
midaverage = average(close,midlength);
Longaverage = average(close,Longlength);
Qaverage= average(close,Qlength);
HYaverage= average(close,HalfYearlength);
Yaverage= average(close,Yearlength);
maxaverage = maxlist(shortaverage,midaverage,Longaverage,Qaverage,HYaverage,Yaverage);
if
volume > average(volume,shortlength) * (1 + volpercent * 0.01) and
volume > VolLimit and
Close > maxaverage and
Close> highest(close[1],OverDaysClose)
then
begin
value1= absvalue(shortaverage -midaverage);
value2= absvalue(midaverage -Longaverage);
value3= absvalue(Longaverage -Qaverage);
value4= absvalue(Qaverage -HYaverage);
value5= absvalue(HYaverage -Yaverage);
value6= absvalue(Yaverage -shortaverage);
if maxlist(value1,value2,value3,value4,value5,value6)*100 < Percent*Close then ret=1;
end;
---------------------------------------------------------------------------------------------------------------------------------------
Value1 = GetField("月營收","M");
value2= value1+value1[1]+value1[2]; //近三個月營收總和
value3= value1[12]+value1[13]+value1[14];//過去同期近三個月營收總和
variable:i(0);
value4 = 0;
For i = 0 to 11
Begin
value4 = value4 + value1[i];
End;// 近十二個月的月營收總和
value5 = 0;
For i = 12 to 23
Begin
value5 = value5 + value1[i];
End;// 過去同期十二個月的月營收總和
if (value2-value3)/value3 > (value4-value5)/value5
then ret=1;
outputfield(1,(value2-value3)/value3 ,2,"近三個月營收年增率");
outputfield(2,(value4-value5)/value5 ,2,"近十二個月營收年增率");
1 評論