Hello James Ya,
是的,您的寫法是除了adx向上穿越-di外還加上其他許多條件。
如果您要單純穿越的話:
input:Length(14);
setinputname(1,"期數");
variable:pdi_value(0),ndi_value(0),adx_value(0);
settotalbar(Length*11);
directionmovement(length,pdi_value,ndi_value,adx_value);
if adx_value cross over ndi_value then ret = 1;
// adx 向上穿越 -di
// if adx_value cross under ndi_value then ret = 1;
// adx 向下穿越 -di
ADX 當週穿越 -DI,這樣看起來您的頻率應該還是用日。(DMI要用日頻率計算)
那您可以在將條件改寫為
if adx_value cross over ndi_value then value1 = WeekOfYear(date); //當adx向上穿越ndi時紀錄那是該年的第幾個禮拜
if WeekOfYear(date) = value1 then ret = 1; //如果還在同個禮拜的話篩選出來
如果您ADX的計算長度要設為6,其他的要設為14的話,另外計算一個長度為6的DMI就可以了。
input:Length1(14, "期數1"), Length2(6, "期數");
variable:pdi_value1(0),ndi_value1(0),adx_value1(0), pdi_value2(0),ndi_value2(0),adx_value2(0);
settotalbar(maxlist(Length1, length2)*11);
directionmovement(Length1,pdi_value1,ndi_value1,adx_value1);
directionmovement(Length2,pdi_value2,ndi_value2,adx_value2);
if adx_value2 cross over ndi_value1 then value1 = WeekOfYear(date); //當6期adx向上穿越14期ndi時紀錄那是該年的第幾個禮拜
if WeekOfYear(date) = value1 then ret = 1; //如果還在同個禮拜的話篩選出來
小幫手建議您可以先閱讀官網的教學區,裡面有XS語法的教學與應用。
5 評論