請問專業幫手(8)策略雷達腳本問題

  •   268 
  • 最後發表   施先生  2022 十一月 28
施先生 發文於   2022/11/17

請教策略雷達 盤中警示 程式如何撰寫?
觸發條件如下:
用於 1分鐘技術線圖
1. 5均線連續2個TICK向下,斜度向下比45度向下更陡
2. 且5均<10均<20均

(如果斜度可以在.腳本設定的值欄位調整更佳)
以上麻煩您敬請指教!

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/11/21

Hello 施先生,

 

您可以使用 Average 計算均線,並使用 LinearRegAngle 來計算弧度。

須注意 LinearRegAngle 只能用來計算執行頻率的弧度,所以沒辦法用來計算變數兩個tick間的斜率,要另外自行撰寫函數才能辦到。

如果要比較兩個 tick 值的話,您可以使用 intrabarpersist 的變數或陣列來保存之前洗價運算的結果 (快市的話可能是多筆 Tick 才運算一次)。

舉例來說:

input: angle_period(5, "計算弧度期數"), angle_limit(45, "弧度限制");

var: intrabarpersist ma5(0), intrabarpersist ma5_1(0), intrabarpersist ma5_2(0), ma5_angle(0), ma10(0), ma20(0);

ma5_2 = ma5_1;  //上上次腳本運算的ma5值

ma5_1 = ma_5;  //上次腳本運算的ma5值

ma5 = average(close, 5);

ma10 = average(close, 10);

ma20 = average(close, 20);

ma5_angle = LinearRegAngle(ma5, angle_period);

 

condition1 = ma5_2 > ma5_1 and ma5_1 > ma5 and ma5_angle < (-1 * angle_limit);

condition2 = ma5 < ma10 and ma10 < ma20;

if condition1 and condition2 then ret = 1;

 

弧度計算出來的值可能和您在圖上看到的不一樣,因為XQ的圖有經過調整讓其較為容易觀看。

建議您可以將相關數值print出來檢查。

施先生 發文於   2022/11/21

非常謝謝您熱心協助!

 

施先生 發文於   2022/11/22

求救
編譯結果  第七行有錯誤
ma5_1 = ma_5;  //上次腳本運算的ma5值

錯誤描述:
未知關鍵字"ma_5"請檢查是否有宣告此變數或是拼字是否有誤

請問如何更正?

XQ小幫手 發文於   2022/11/24

Hello 施先生,

 

您只需要將 ma5_1 = ma_5; 改為 ma5_1 = ma5; 即可。

這是因為變數的名稱是 ma5,但小幫手輸入太快手誤打成 ma_5。

網站上有教學區,裡面有XS語法的基礎和應用可以閱覽。

施先生 發文於   2022/11/25

已經正常 謝謝您!!

請教 策略雷達 屬性設定裡面 資料讀取 設定200筆跟3筆有何差異

我的經驗是所有雷達都設200筆XQ會當掉(電腦硬體很強大沒問題.是軟體弱)

施先生 發文於   2022/11/25

還有請問
腳本設定的參數值 設定5是連續5TICK陡於45度才觸發,設定2是連續2TICK陡於45度才觸發,這樣正確嗎?

XQ小幫手 發文於   2022/11/28

Hello 施先生,

 

資料讀取 設定200筆跟3筆有何差異

=>  您可以參考 資料讀取範圍與腳本執行的關係 裡面的說明。

簡單的來說就是設定為 n ,就會在開始執行時腳本預先算 n 根Bar的資料。

 

腳本設定的參數值 設定5是連續5TICK陡於45度才觸發,設定2是連續2TICK陡於45度才觸發

=> 不對,如同小幫手上面回覆所說: 須注意 LinearRegAngle 只能用來計算執行頻率的弧度,所以沒辦法用來計算變數兩個tick間的斜率,要另外自行撰寫函數才能辦到。

所以 計算弧度期數 設定為 5 的話就是近5根Bar的線性回歸斜率。

而弧度限制則是向下弧度要大於 45 度。

如果您要計算 tick 的斜率的話,需要自行抓近n根 tick 資訊來計算。

發表回覆
Close