同樣的函數,不同的數值?

  •   195 
  • 最後發表   tdf  2018 三月 09
tdf 發文於   2018/03/02

兩個腳本的組合選股結果如圖

ALLR是我自設函數

兩個腳本程式碼如下

value1 = GetField("散戶持股比例","D");

value2 = GetField("散戶持股比例","D")[1];

value3 = GetField("散戶持股比例","D")[2];

 

if value1 > value2 and value2 > value3 

  and ( value1 - value3 ) > 1

then ret = 1;

 

//----- 註解 ----- 

SetOutputName1("散戶持股比例");

OutputField1(value1);

 

SetOutputName2("上週散戶持股比例");

OutputField2(value2);

 

SetOutputName4("ALLR");

OutputField4(ALLR);

 

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

settotalbar(150); 

 

condition1 = ACRV < 80 and ALLR < 0;

 

if condition1 

then ret = 1;

 

// ----- 

SetOutputName1("ALLR");

OutputField1(ALLR);

 

請問小幫手為何ALLR兩個腳本的數值不同?

 

 

附加文件

排序方式: 標準 | 最新
XQ小幫手 發文於   2018/03/02

Hi tdf,

待小幫手查看後再跟您說明,謝謝。

XQ小幫手 發文於   2018/03/06

HI tdf,

請提供 ALLR 此自訂函數腳本完整語法,以利小幫手查看問題的原因,謝謝。

tdf 發文於   2018/03/07

可以寄給小幫手嗎

不想這函數公開捏

 

XQ小幫手 發文於   2018/03/08

Hi tdf,

拍謝捏,小幫手希望是公開解題,以便讓大家學習~

請問為什麼不直接把第二個選股條件程式碼,寫至第一個選股條件程式碼中?以這樣的方式呈現應該就沒問題了,呈請試試看,謝謝。

tdf 發文於   2018/03/08

小幫手說到重點了...請問為什麼不直接把第二個選股條件程式碼,寫至第一個選股條件程式碼中?

因為我發現很多邏輯條件

就算是頻率一樣  開的天數一樣

寫在一起的選股結果

與拆開為兩個腳本再組合的結果常會不一樣

等等我再PO些例子

 

 

 

  • 按讚來自於
  • b24524658
tdf 發文於   2018/03/08

舉這個例子

condition1 = false; condition2 = false;

// ----- RSI多空 -----

vars:P4(0);

P4 = 0;

value5 = xf_RSI("W",GetField("Close","W"),6); //計算6期的週RSI指標

value6 = xf_RSI("W",GetField("Close","W"),26);

condition1 = value5 > value6 + 3; 

//----- 集中度 -----

condition2 = ( Getfield("大戶持股比例","W",param:=100)   - Getfield("大戶持股比例","W",param:=100)[1] ) > 1;

//----- final -----

if condition1 and condition2 

then ret = 1;

與拆開成兩個腳本如下

condition1 = false;  

// ----- RSI多空 -----

vars:P4(0);

P4 = 0;

value5 = xf_RSI("W",GetField("Close","W"),6); //計算6期的週RSI指標

value6 = xf_RSI("W",GetField("Close","W"),26);

condition1 = value5 > value6 + 3; 

if condition1

then ret = 1;

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

condition2 = false;

//----- 集中度 -----

condition2 = ( Getfield("大戶持股比例","W",param:=100) 

  - Getfield("大戶持股比例","W",param:=100)[1] ) > 1;  

if condition2 

then ret = 1;

再把兩個腳本組合

都是週頻 開150天

但兩者的選股結果會不一樣

如附圖

XQ小幫手 發文於   2018/03/08

Hi tdf,

好的,待小幫手查看後再向您說明,謝謝。

XQ小幫手 發文於   2018/03/09

Hi tdf,

小幫手查看後,發現可能有問題,待小幫手詢問相關人員後,再向您說明,謝謝。

XQ小幫手 發文於   2018/03/09

Hi tdf,

您舉的範例,會產生這樣的結果,是因為 大戶持股比例 在本週有無資料有關係。

在本週還沒有 大戶持股比例的情況下,

  • 計算RSI 與大戶持比例一同寫進同個腳本,則週RSI取到的數值會是上週的期末數值 ( RSI6:65.74% );因為本週的大戶持股比例為N/A數值,昨日的大戶持股比例也是N/A值,所以取用上週的RSI數值。

 

  • 兩者拆開為兩個選股條件時,則週RSI取到的數值會是昨日的週RSI數值 ( RSI6:45.78% );

 

基於以上的說明,故選股結果會不一樣,以上說明,謝謝。

tdf 發文於   2018/03/09

所以應該是要寫在同一個腳本才正確是吧

*-*///   又要把全部的腳本改回去了...

顯示更多回應 發表回覆
Close