宣告變數型態 導致篩選有誤

  •   185 
  • 最後發表   里歐  2024 六月 13
里歐 發文於   2024/03/02

如標題 想請問

這種寫法,條件7 ,正常運作

Value1 = average(close, 5);

Value2 = average(close, 10);

Value3 = average(close, 20);

value5 = MaxList(Value1, Value2, Value3); //均線取最大

value6 = MaxList2(Value1, Value2, Value3); //均線第二大

value7 = MinList(Value1, Value2, Value3);

value8 = MinList2(Value1, Value2, Value3);

//if  condition111 and condition7 then ret =1;

condition7 = close/value5 < 1.051;
========================================================

但這種寫法,會有問題找不到個股
條件1 條件2 條件3 出問題,完全找不到個股,不知道是哪邊寫錯。

Vars:avg_5(average(close, 5));

Vars:avg_10(average(close, 10));

Vars:avg_20(average(close, 20));

 

Vars:avg_60(average(close, 60));

Vars:avg_max(MaxList(avg_5, avg_10, avg_20)); //均線取最大

Vars:avg_max2(MaxList2(avg_5, avg_10, avg_20)); //均線第二大

Vars:avg_min(MinList(avg_5, avg_10, avg_20));

 

 

//condition4 = close > value5; //收盤價大於最大的均線

 

Vars:value_max(avg_max/avg_min);

condition1 = value_max < 1.021; //差距最大的兩條均線,差距需小於0.21 //糾結
condition2 = close > avg_5 and close > avg_10 and close > avg_20;   //當日收盤價,

Vars:value_closeMaxDist(close/value_max);

condition3 =value_closeMaxDist < 1.051;

排序方式: 標準 | 最新
里歐 發文於   2024/03/03

因為用value1,value2 來當變數名稱閱讀很麻煩 所以想更改寫法

XS小編 發文於   2024/03/06

Hello 里歐,

 

小編建議您先閱覽網站上的教學區教學影片,裡面有XS語法的基礎和應用可以閱覽。

如果您將數值輸出的話 (print/plot/outputfield),會看到每根Bar的數字都會相同。

因為 Vars:avg_5(average(close, 5)); 只會在腳本第一次運算,宣告變數時計算 average(close, 5)。

 

正確的寫法應該是:

var: avg_5(0);

avg_5 = average(close, 5);

這樣才會每根Bar都計算。

 

里歐 發文於   2024/06/10

感謝回覆 

請問有什麼辦法可以直接搜尋到相關解釋
我是search var: 沒找到資訊
https://xshelp.xq.com.tw/XSHelp/search?a=var%3A

XS小編 發文於   2024/06/13

Hello 里歐,

 

可以參考 var 的相關說明。

但您遇到的狀況其實跟 XS 的運作方式比較有關,單看這邊的說明沒辦法看出問題原因。

要了解XS運作最簡單的方法就是加上print並讓其印出相關資訊,會比較容易理解。

發表回覆
Close