關於寶塔線寫法修改

  •   622 
  • 最後發表   BRIAN888  2024 四月 25
BRIAN888 發文於   2024/04/22

大家好,最近剛學習寫XQ 我想寫寶塔線轉紅第一根選股,但這樣的寫法似乎會避開前一天,收盤介於最高跟最低之間的股票。 寶塔線定義是收盤大於前三天的最高或是最低價 想寫成轉綠或是轉紅的第一根,希望可以請社團大大協助指導,謝謝~~

input:TWR(3);

variable:HH(0),LL(0);

HH = highest(GetField("high", "D"),TWR+1)[1];

LL = lowest(GetField("Low", "D"),TWR+1)[1];

 

if close > HH then

begin

value1 = 1;

end

else if close < LL then

begin

value1 = -1;

end; if value1[1]=-1 and value1 = 1 then ret = 1;

 

 

排序方式: 標準 | 最新
虎科大許教授 發文於   2024/04/22

HH = highest(GetField("high", "D")[1],TWR);

LL = lowest(GetField("Low", "D")[1],TWR);

BRIAN888 發文於   2024/04/22

我剛測試一下,還是會找到寶塔線不是第一根紅

或者我把最後一行改成

 

 if value1[1]=1 and value1 = -1 then ret = 1;

也是會找到不是第一根轉綠的,有些是2-3根後才選出來的股票,主要是語法有問題嗎?非常謝謝

  • 按讚來自於
  • stone77
虎科大許教授 發文於   2024/04/22

if value1[1]=1 or value1 = -1 then ret = 1;

  • 按讚來自於
  • stone77
BRIAN888 發文於   2024/04/22

這個誤差更多了,要用and才有辦法

虎科大許教授 發文於   2024/04/22

看看這樣對不對。你若清楚定義什麼叫做轉紅,應該會比較容易處理。

input:TWR(3);

variable:HH(0),LL(0);

HH = highest(GetField("high", "D")[1],TWR);

LL = lowest(GetField("Low", "D")[1],TWR);

if c>HH and c[1]<HH then ret=1;

BRIAN888 發文於   2024/04/23

還是有問題說~~

虎科大許教授 發文於   2024/04/23

定義~定義~定義~,什麼叫轉紅,什麼叫轉綠!

BRIAN888 發文於   2024/04/23

謝謝教授,很感謝幫忙

 

轉紅就是 

 

今天的收盤價,高於前3天的最高價 (也就是四天去比較),則寶塔線翻紅

 

反之

今天的收盤價,低於前3天的最低價(也就是四天去比較),則寶塔線翻綠

 

我需要選出第一跟翻綠或是翻紅的股票,不要有延續兩根、三個綠或是紅的股票

 

虎科大許教授 發文於   2024/04/23

input:TWR(3);

variable:HH(0),LL(0);

HH = highest(GetField("high", "D")[1],TWR);

LL = lowest(GetField("Low", "D")[1],TWR);

condition1=c>HH;

condition2=c<LL;

if (condition1 and condition2[1])

or (condition2 and condition1[1]) 

then ret=1;

XS小編 發文於   2024/04/25

 Hello BRIAN888,

 

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

 

另外關於寶塔線的部分已經有不少的討論,您可以參考

如何寫XS語法抓寶塔線由綠翻紅第一根呢?

請問寶塔線

這兩篇文章,裡面都有些範例。

 

感謝 虎科大許教授 的熱心回覆。

發表回覆
Close