使用XS選股腳本撰寫在過去N天內,不超過這幾天的K值的最高及最低值

  •   365 
  • 最後發表   Jack  2018 四月 19
Jack 發文於   2017/09/30

大家好,

分享使用XS範例選股腳本撰寫:

在過去N天內,不超過這幾天的K值( KD指標 )的最高及最低值。

 

大致撰寫邏輯:

1. 使用 Stochastic 系統函數,計算出K值

2. 使用 數值變數 紀錄幾天的K值的最高及最低值

3. 使用 outputfield 語法,驗證計算數值是否正確( 請參考 選股欄位放大鏡:談OutputField )

 

資料讀取筆數設定:50筆,如下圖

 

選股範例腳本:

input: KD_Length(9), RSVt(3), Kt(3), N_Length(10);
variable: rsv(0), k(0), _d(0);

SetInputName(1, "KD_天數");
SetInputName(2, "RSVt權數");
SetInputName(3, "Kt權數");
SetInputName(4, "N天內");

Stochastic(KD_Length, RSVt, Kt, rsv, k, _d);

value100 = highest(k[1],N_Length);
value101 = Lowest(k[1],N_Length);

if k < value100 and k > value101 then ret = 1;

outputfield1(value100,"highest");
outputfield2(value101,"Lowest");
outputfield3(k,"k");

 

 以上供參考,有問題歡迎詢問。

 

  • 按讚來自於
  • CHUN0712
排序方式: 標準 | 最新
chun0712 發文於   2018/04/16

Jack 大:

請教我寫的語法,哪邊有問題呢? 我去debug好像沒有完整抓到以下條件,另外如果有問題想私下請教您,有聯絡方式嗎?

//****KD創10日新低*********// input: KDLength(9), RSVt(3), Kt(3), NLength(9); variable: rsv(0), k(0), d(0); SetInputName(1, "KD天數"); SetInputName(2, "RSVt權數"); SetInputName(3, "Kt權數");

 

condition3=k cross below lowest(k[1],N_Length);

Jack 發文於   2018/04/17

Chun0712 兄,

你的程式碼裏頭,K值沒有做運算,故 k 與 lowest(k[1],N_Length) 這兩個數值都為 0,

K值運算,可以使用 Stochastic 先運算看看,運算出來的數值可以用 Print 或 Outputfield 將數值顯示出來,以利除錯,

你先嘗試撰寫看看,有問題可以在問我~

chun0712 發文於   2018/04/18

補充:昨天我照JACK大,建議方式以 outputfield 來debug,看到XOR邏輯運算是顯示 1 or 0 and 0 or 1 這樣結果沒有錯.
不過我檢視一下搜出來的標的,似乎是我的第一個條件"8日內曾是創10日新低" 這一個條件沒有完全成立.
能請JACK大,幫我try run看看哪一邊還能做fine tune嗎?  感謝

Jack 發文於   2018/04/18

chun兄,

請問你覺得有問題的點在哪?要請你指名一下,我這樣比較好去分析,

另外,創新低,應該不是用 Cross below( 死亡交叉 ),應該是用 " <  " 比較合理,

最後,我覺得你 K 值還是會算錯,把 SettotalBar 註解, 在 選股中心介面設定資料讀取筆數為 100 筆,會比較正確,如下圖,

你在試試看,有問題再問我~

chun0712 發文於   2018/04/19

Jack 大:
謝謝提點細節部分,我大概知道要怎麼改成我想要的東西了. 非常謝謝您....
例外請教一下關於print 印出來的部分,是只要按執行選股,下方的"執行"處就會跑出印出的結果嗎?
昨天我試了一下是空白,而我買的是選股模組,有影響嗎?

Jack 發文於   2018/04/19

chun 兄,

Print 不支援選股,

選股要除錯用 OutputField 將數值列在選股中心的列表上,查看數值有無錯誤,

在這一篇文章有說明:

這裡提醒大家,Print指令目前只有在本機執行的狀況下才有作用(像是XS指標或策略雷達),至於在選股腳本內該怎麼除錯,就請大家繼續看OutputField的妙用這一篇文章。

所以選股策略就用  OutputField 除錯吧~

chun0712 發文於   2018/04/19

懂! 我是有買書...但是覺得書裡的內容跟我平常撰寫的C CODE差不多(介紹 > 活用),倒是因為XQ有許多內建的指令,覺得很方便,但要兜在一起時就會卡住,JACK大的文章比書裡的內容活用多了. 期待JACK大出一本XQ的書籍~ 或是 可以再出一本更進階的XQ書籍.
不過coding就是這樣,邊寫邊debug~程式已經fine tune差不多了,最後感謝JACK大的協助.

  • 按讚來自於
  • jacklee
發表回覆
Close