營業毛利率創4季新高

  •   180 
  • 最後發表   Sien  2024 一月 07
Sien 發文於   2024/01/05

這幾天測試了選股中心, 用 "營業毛利率創4季新高" 選股及回測.

好奇之下在選股腳本寫了下面這幾種寫法, 結果發現結果都不一樣! 怎麼會這樣呢!?

第1種:

Value1 = GetField("營業毛利率","Q"); 

condition1= value1=highest(value1,4); 

Ret=condition1;

第2種:

condition1= GetField("營業毛利率","Q")=highest(GetField("營業毛利率","Q"),4); 

Ret=condition1;

第3種:

Value1 = GetField("營業毛利率","Q"); 

condition1=value1>value1[1] and value1>value1[2] and value1>value1[3]; 

Ret=condition1;

第4種:

condition1= GetField("營業毛利率","Q")>GetField("營業毛利率","Q")[1] And GetField("營業毛利率","Q")>GetField("營業毛利率","Q")[2] And GetField("營業毛利率","Q")>GetField("營業毛利率","Q")[3];

Ret=condition1;

-----------------------------

以上4種選股腳本跟選股中心用 "營業毛利率創4季新高" 選股條件, 這5種選股及回測都差異頗大,

不知是哪裡錯了?

排序方式: 標準 | 最新
交易練習生 發文於   2024/01/07

GetField 參數內容存到 value1 後再使用 value[1] 跟直接使用 GetField("xxx", "oo")[1] 是不一樣的概念,前者是用腳本執行的頻率回去找前一根K棒的 value 值,後者是根據 GetField("xxx", "oo") 的 oo 拿前一期的資料,先確認一下你想要的是哪一種邏輯。

Debug的話,建議試試在腳本裡加上一系列 OutputField 去顯示你用到的所有參數與你所判斷的Condition1結果,選股選出來後,確認一下數字正不正確(跟XQ其他頁面的資料比對,或是跟其他平台的資料做比對)。

要驗證"回測"結果,則需要你加上 Print 指令,把有疑慮的參數都印出來,然後勾選「啟動腳本內Print指令」去跑回測。檢查一下 Print 出來的內容,觸發選股的時候,有沒有可能用到未來值,或是當下給的值是錯誤的。

 

 

  • 按讚來自於
  • b24524658
Sien 發文於   2024/01/07

謝謝解惑.

我是在"日"頻率來跑, 應該使用GetField("營業毛利率","Q")才是我要的.

不過, 前幾天測試, 上面的第2種、第4種跟在選股中心選用 "營業毛利率創4季新高"結果都不相同.

我再用OutPutField跟Print測試看看....

謝謝您!

發表回覆
Close