您好,目前遇到一個問題是如果我把程式碼的condition32 condition33的期數由1改成3回測就會測不到9/5號的標的6552照理說9/5 9點20分應該是會有訊號的但是期數只要改3就測不到,但是因為我想寫30分K的均線是上揚的,而我頻率昰5分K,所以照理說30分K的5MA 10MA 20MA 30MA均線要上揚是不是期數要設跟前6期的數值相比(我的想法是5分K裡面前6期應該就是前30分鐘)?可是只要期數改6就一堆標的不會觸發,現在狀況是65529/5號,我連期數改3也不會觸發
我也有把condition30~33的數據print出來看,但是都有符合程式的要求,下面有我print出來的數據圖
以下是我的程式碼,確定是condition30~33的問題,因為我有一個一個改過再回測過了
另外想在這邊也請教一下如果要再5分K裡面寫15分K的5MA 10MA 20MA 30MA還有30分K1的5MA 10MA 20MA 30MA上揚的話期數應該要如何設才正確?
再麻煩幫我看一下是哪邊有問題還是我哪邊誤會了,剛碰程式不久再麻煩指教了,非常感謝!
input: shortlength(5); setinputname(1,"短期均線期數");
input: midlength(10); setinputname(2,"中期均線期數");
input: Longlength(20); setinputname(3,"長期均線期數");
input: Maxlength(30); setinputname(4,"最長期均線期數");
input: Percent(1.6); setinputname(5,"均線糾結區間%");
input: XLen(5); setinputname(6,"均線糾結期數");
variable: shortaverage(0);
variable: midaverage(0);
variable: Longaverage(0);
variable: Maxaverage(0);
variable: shortaverage15(0);
variable: midaverage15(0);
variable: Longaverage15(0);
variable: Maxaverage15(0);
variable: shortaverage30(0);
variable: midaverage30(0);
variable: Longaverage30(0);
variable: Maxaverage30(0);
variable: AvgHLp(0),AvgH(0),AvgL(0),VOL1(0),VOL2(0),VOL3(0),MaxLow1(0),Maxlow2(0);
if barfreq= "Min" or barinterval= 5 then begin
VOL1 = GetField("Volume", "D")[1];//前日量
VOL2= GetField("Volume", "D")[2];//前二日量
VOL3= (VOL1+VOL2)/2;//前兩日均量
shortaverage = average(close,shortlength);//5分K5均線
midaverage = average(close,midlength);//5分K10均線
Longaverage = average(close,Longlength);//5分K20均線
Maxaverage = average(close,Maxlength);//5分K30均線
shortaverage15 = average(GetField("收盤價","15"),shortlength);//15分K5均線
midaverage15 = average(GetField("收盤價","15"),midlength);//15分K10均線
Longaverage15 = average(GetField("收盤價","15"),Longlength);//15分K20均線
Maxaverage15 = average(GetField("收盤價","15"),Maxlength);//15分K30均線
shortaverage30 = average(GetField("收盤價","30"),shortlength);//30分K5均線
midaverage30 = average(GetField("收盤價","30"),midlength);//30分K10均線
Longaverage30 = average(GetField("收盤價","30"),Longlength);//30分K20均線
Maxaverage30 = average(GetField("收盤價","30"),Maxlength);//30分K30均線
Maxlow1 = GetField("最低價","D")[1];
Maxlow2 = lowest(low[1],50);
AvgH = maxlist(shortaverage,midaverage,Longaverage,Maxaverage);
AvgL = minlist(shortaverage,midaverage,Longaverage,Maxaverage);
AvgHLp = 100*AvgH/AvgL -100;
condition1 = trueAll(average(AvgHLp[1],5) < Percent,XLen) and AvgL > 40 and AvgL<100 ;
condition2 = low < AvgL and low*0.995 < Maxlow1 and low*0.995 < Maxlow2;
condition3 = VOL3 > 1500;//2日均量大於1500
condition15 = trueAll(shortaverage15 <= shortaverage15[1],2);//15K條件
condition16 = trueAll(midaverage15 <= midaverage15[1],2);//15K條件
condition17 = trueAll(Longaverage15 <= Longaverage15[1],2); //15K條件
condition18 = trueAll(Maxaverage15 <= Maxaverage15[1],2); //15K條件
condition30 = trueAll(shortaverage30 <= shortaverage30[1],3);//30K條件
condition31 = trueAll(midaverage30 <= midaverage30[1],3);//30K條件
condition32 = trueAll(Longaverage30 <= Longaverage30[1],1); //30K條件
condition33 = trueAll(Maxaverage30 <= Maxaverage30[1],1); //30K條件
ret = condition1 and condition2 and condition3 and condition15 and condition16 and condition17 and condition18 and condition30 and condition31 and condition32 and condition33 ;
end;










12 評論