自訂排行榜

  •   693 
  • 最後發表   red  2019 十一月 18
red 發文於   2019/11/08

Hi 小幫手,

我依照內建的 "外資買賣超排行榜" 函數,改成 投信 與 市值,但是在選股中心出現錯誤,想了解該如何修改?

 

SetBarMode(1);

 

// 這是一個自訂排行條件的範例

// 示範如何依外資連續N期買超的張數進行排序

// 使用者可以自行替換成需要使用的欄位

//

// Length是期數

 

 

input:

Length(10, numericsimple, "計算期間");

 

if TrueAll(GetField("總市值(元)") > 0, Length) Then

   retval = Summation(GetField("總市值(元)"), Length)

Else

   return;

 

//如果要排序投信連續買超,可以改用"投信買賣超"的欄位:

if TrueAll(GetField("投信買賣超") > 0, Length) Then

   retval = Summation(GetField("投信買賣超"), Length)

Else

   return;

 

//如果要排序自營商連續買超,可以改用"自營商買賣超"的欄位:

if TrueAll(GetField("自營商買賣超") > 0, Length) Then

   retval = Summation(GetField("自營商買賣超"), Length)

Else

   return;

   

//可以依需要自行更換欄位

}

 

感謝

 

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

Hi red

您好,函數語法其目的是為了供多個程式都使用到同一個運算邏輯或是排行邏輯而製成。

其腳本語法撰寫方式與其他腳本不太相同。

您所取得的這個系統函數,可以將其內容複製到另一個自訂函數(新增空白函數腳本)

SetBarMode(1);

// 這是一個自訂排行條件的範例
// 示範如何依外資連續N期買超的張數進行排序
// 使用者可以自行替換成需要使用的欄位
//
// Length是期數
//

{input:
    Length(10, numericsimple, "計算期間");

if TrueAll(GetField("外資買賣超") > 0, Length) Then
   retval = Summation(GetField("外資買賣超"), Length)
Else
   return;}


//如果要排序投信連續買超,可以改用"投信買賣超"的欄位:
if TrueAll(GetField("投信買賣超") > 0, Length) Then
   retval = Summation(GetField("投信買賣超"), Length)
Else
   return;

{//如果要排序自營商連續買超,可以改用"自營商買賣超"的欄位:
if TrueAll(GetField("自營商買賣超") > 0, Length) Then
   retval = Summation(GetField("自營商買賣超"), Length)
Else
   return;

//可以依需要自行更換欄位
}

如上語法,我將原本的"外資買賣超"那一段隱藏起來

再請您新增自訂函數腳本之後,比對一下即可。

謝謝您的詢問。

red 發文於   2019/11/12

Hi 小幫手,

你貼的就是我打的阿,都是複製內建腳本,照步驟改成投信,在選股中心執行依然出現錯誤!

已更新最新版,錯誤如上方附圖重新編譯(50010)

XQ小幫手 發文於   2019/11/15

Hi red

小幫手這邊執行是可以的,這邊把操作步驟提供給您,謝謝。

1.將以上語法,新增函數並且編譯

2.在選股中心點選新增策略-->自訂排行條件--->投信買賣超排行榜

3.執行選股

謝謝您的詢問

red 發文於   2019/11/18

問題已排除,感謝!

發表回覆
Close