判斷創 N 期新低的腳本要如何改?

  •   158 
  • 最後發表   love07050618  2023 九月 26
love07050618 發文於   2023/09/17

判斷創 N 期新低的腳本要如何改?

這篇文章有提到
https://xshelp.xq.com.tw/XSHelp/?HelpName=GetFieldStartOffset&group=GENERALFUNC
範例選股範例:判斷創 N 期新高,想知道如果要改成創新低的情況要如何去著手?謝謝

input: min_period(12, "最低期別");
value1 = GetFieldStartOffset("月營收", "M");
value2 = GetField("月營收", "M");// 最新一期營收
var: idx(0);
idx = 1;
while idx <= value1 begin
    if GetField("月營收", "M")[idx] < value2 then
        idx = idx + 1
    else
        break;
end;     
if idx >= min_period then begin
    ret=1;
    OutputField(1, idx, 0, "創新高期別");
    OutputField(2, GetField("月營收", "M")[idx], "創新高的月營收");
    OutputField(3, GetFielddate("月營收", "M")[idx], 0, "創新高的月營收資料日期");
end;

排序方式: 標準 | 最新
XQ小幫手 發文於   2023/09/26

Hello love07050618,

 

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

 

您只需要把 GetField("月營收", "M")[idx] < value2 改為 GetField("月營收", "M")[idx] > value2 即可。

 

input: min_period(12, "最低期別");

value1 = GetFieldStartOffset("月營收", "M");

value2 = GetField("月營收", "M");// 最新一期營收

var: idx(0);

idx = 1;

while idx <= value1 begin

    if GetField("月營收", "M")[idx] > value2 then

        idx = idx + 1

    else

        break;

    end;     

if idx >= min_period then begin

    ret=1;

    OutputField(1, idx, 0, "創新低期別");

    OutputField(2, GetField("月營收", "M")[idx], "由此月開始創新低的月營收");

    OutputField(3, GetFielddate("月營收", "M")[idx], 0, "由此月開始創新低的月營收資料日期");

    end;

  • 按讚來自於
  • youthful
love07050618 發文於   2023/09/26

謝謝小幫手,問題已解決 :)

 

發表回覆
Close