XS highest邏輯問題

  •   521 
  • 最後發表   red  2019 十一月 20
red 發文於   2019/11/18

hi 小幫手,

想問一個取區間創新高的邏輯問題,

我想用選股找創60日新高的股票,

input: period(60);

(1) if C>highest(h,period)[1] then ret=1;  // 選出74檔

(2) if C>highest(h[1],period) then ret=1; // 選出63檔

(3) condition1=C>highest(h,period); if condition[1] then ret=1; // 選出0檔

(1)是錯的,(2)是我要的,(3)選不出來。分不太清楚他們的差異,不知道為什麼他們的結果會不一樣?

另外將(1)改成

value1=highest(h,period);

if C>value1[1] then ret=1; 結果就會跟(2)一樣,會是60日新高選股的結果。

 

 

排序方式: 標準 | 最新
XQ小幫手 發文於   2019/11/20

Hi red

在資料筆數大於60的狀況下,(1).(2)小幫手這邊做出來的結果是相同的喔

以上補上小幫手做的選股檔案與圖片供您參考,請您比對看看,謝謝。

 而condition1會儲存結果是ture或是false,因此即使是condition1[1]也會記錄ture或是false

依照您的需求,其判斷也會是C[1]>highest(h,period)[1]; 並不符合您的需求

謝謝您的詢問

附加文件

red 發文於   2019/11/20

hi 小編您好,

 

if C>highest(h,60)[1] then ret=1;

outputfield1(highest(h,60));

outputfield2(highest(h,60)[1]);

outputfield3(highest(h[1],60));

 

如果改成這樣,結果就會是錯的,因是為什麼呢?

 

if C>highest(h,60)[1] then ret=1;

//outputfield1(highest(h,60));

//outputfield2(highest(h,60)[1]);

//outputfield3(highest(h[1],60));

 

outputfield3不是只是顯示欄位嗎?

發表回覆
Close