腳本請益(close確認條件一,後續n日判斷條件二)

  •   215 
  • 最後發表   里歐  2023 四月 03
里歐 發文於   2023/02/26

如標題,有時有成功抓到,有時沒有,不知哪裡出問題,再麻煩幫健檢一下了....感謝
如下圖 6245立端,
紫色箭頭日期(2022/11/24)要抓到此股,但失敗。
橘色箭頭日期(2022/12/09)要抓到此股,成功。



腳本如下:

value1=close[3];

//飆股判定驗收條件日期,設在前三天

 

condition1=

value1 > close[4] and

value1 > close[5] and

value1 > close[6] and

value1 > close[7] and

value1 > close[8] ;// and

//value1 > close[7] and

//value1 > close[8] and

//value1 > close[9] and

//value1 > close[10] and

//value1 > close[11];

 

//Condition2=Condition20 and Not Condition20[1];

//Condition10=Condition1 and Not Condition1[1];

 

if condition1 then begin

    value2 = close[3]*0.97;  //不跌破價格

    value3 = close[3]*1.03;   //不漲超過高點3%

end;

 

condition2 = trueall(close > value2, 3) and trueall(close < value3, 3);  

//這邊配合上方條件1,寫死trueall3

 

if condition2 then begin   //當條件2滿足時重置 value1 和 value2

    value2 = 0;

value3 = 0;

end;

 

//if condition10 then ret =1;

 

if condition1 and condition2 then ret =1;

排序方式: 標準 | 最新
里歐 發文於   2023/02/28

還有其他地方想詢問
例如:
1.condition1,是想設定突破前高,但因為抓到突破前高當日之後,還要再往後兩~三天做condition2判斷
就不知道怎麼寫了...變成手動寫一大串。

2.承1想寫成input的方式,不然下方confition2 trueall裡的第二個參數,也要配合1的設定位置做更改...
例如condition1 我去抓close[3],所以
condition2 參數也要寫成3

需求大概是以下:
condition1達成條件之後,condition2"才開始"判斷條件,因為這點不太會寫...

XQ小幫手 發文於   2023/03/03

Hello 里歐,

 

問題在於您的 condition1 是比較3天前的數值,但條件成立時 value2 和 value3 才會改變,換句話說飆股成立後的第3天value2跟value3才改變。

因此trueall就會出問題,您可以將 value2, value2[1], value2[2] 印出來確認。

 

建議您可以將 condition1修改為判斷當下是否為飆股,接著再用 condition[3] 的方式來判斷3天前是否為飆股。

這樣的話就 trueall 就可以正常運作,判斷是否觸發也只用 condition2 即可,亦不用將 value2 和 value3 重置。

 

1.建議您用小幫手上面所說 condition1[N] 的方式判斷 N期前條件是否成立。

另外您的條件 "連續大於前期值N期" 其實可以寫為 trueall(close > close[1], N)。

 

2.如上所說,用trueall 的話第二個參數就可以用input設定。

 

要改變思考的模式,因為XS無法取得運算當下那根Bar之後的數值,所以要反向思考。

A條件後的N根Bar  =>  N根Bar前的A條件

里歐 發文於   2023/03/25

我寫死成以下,看起來有找到我想要的股
(close[3]相關資訊判斷是否飆股,close[2][1][0] 判斷條件2 )

但還是不懂 trueall的部份(condition2 註解的部份,替換確實有問題)

XQ小幫手 發文於   2023/03/28

Hello 里歐,

 

您可以直接打開 trueall 內建腳本來看其是如何判斷的。

小幫手這邊簡單說明兩者為何不同。

trueall(close > value2, 2) 會是判斷 close > value2 and close[1] > value2[1],和您寫死的 close > value2 and close > value2[1] 不同。

里歐 發文於   2023/03/28

那請問,我的需求是我目前寫死的方式,有對應的func可以用嗎?!


=================================================================
trueall的部份感謝說明,這樣有大概理解~
我原以為是如下範例,會是判斷close>close[1], close>close[2]這樣

您可以直接打開 trueall 內建腳本來看其是如何判斷的。 我是看這邊的,哪裡可以打開?
(因為我不知道哪些內建腳本會運用到trueall)

https://xshelp.xq.com.tw/XSHelp/?HelpName=TrueAll&group=LOGICFUNC

XQ小幫手 發文於   2023/03/29

Hello 里歐,

 

我的需求是我目前寫死的方式,有對應的func可以用嗎?

<=  沒有,但是您可以自行撰寫函數腳本,或使用for迴圈來簡化腳本撰寫。

 

哪裡可以打開?

<=  您可以在XS編輯器裡直接打開內建函數腳本觀看。(參考附圖)

附加文件

里歐 發文於   2023/04/03
發表回覆
Close