如圖二,富林-KY這檔股票,外資連買賣都沒有,為何選股會被選出來呢?


另外,請問一下,XQ內建的副圖指標有 外資 這個指標,但是出來的數字和選股腳本所使用的 外資買賣超 所得到的買賣超資料卻不一樣,請問這中間有何差別嗎??


如圖二,富林-KY這檔股票,外資連買賣都沒有,為何選股會被選出來呢?


另外,請問一下,XQ內建的副圖指標有 外資 這個指標,但是出來的數字和選股腳本所使用的 外資買賣超 所得到的買賣超資料卻不一樣,請問這中間有何差別嗎??


你這2個問題20:00後資料更新就會同步了
剛剛又做了一次空方的選股,我的條件是 外資買賣超 < 0 ,結果一堆外資大買的全都跑出來,不知道程式碼哪邊有問題


帥哥元 您好
小幫手檢視您的圖片覺得問題在 "or"
or的意思是 "或是"
代表condition 1 2 3 4 只要其中有一個成立就會跑出來,
如果你要四者皆成立的話,可以使用 "and"
您也可以用print語法看看該檔股票是因為哪一個condition 觸發的
print(date,time,condition1,condition2,condition3,condition4);
回覆小幫手,我是要用 or 四擇一沒錯
所以,我有用 OutPutField 來顯示
看看這檔股票是符合哪一個條件
但是如下圖,只有外資大賣有符合條件,但是該檔股票,外資買賣超卻是正的


帥哥元 您好
主要的原因在於,
您的數據在資料讀取筆數時,
曾經觸發過condition2 所以他在過往時間已經變成true
而您沒有把它歸零的情況下,他就會一直紀錄下去
避開的方法是
if getfield("外資買賣超")<0 and volume>0 then
condition2 = absvalue(getfield("外資買賣超")/volume*100) >= 0
else
condition2=false;
像這樣寫,如果不符合條件就讓condition=false
這樣就會沒問題了

謝謝小幫手
看來是我誤會了 condition1 的意義了
我一直以為 condition1 = 條件式,如果條件成立,condition1 就會是 true,如果不成立,contition1 就會是 false
再次感謝
帥哥元 您好
不好意思,容我再補充說明一下,
您的理解是沒錯的,condition是這樣用的沒問題
這題主要的問題點在於"資料讀取筆數",
系統會自動抓取過往的資料 ex我9/3選股,他會抓前幾天的數據9/2 9/1 ...來運算
而您原本的程式寫法剛好在前面這段時間觸發,並記錄下來
如果不歸零的話 那他就一直會在<-------這才是您遇到問題的主因
所以我才會補上這段else
以下是我print出來的數據,您比對一下應該就能懂了
(小建議: 其實我在一開始學xs 也是都用outputfield來看
但是有些細節用print 才能知道因果,所以我還是建議您偶爾可以用print來偵測
這是我的小經驗,分享給您 感謝)


再次感謝XQ小幫手
稍微了解您的意思了
另外,我想建議一下
在這裡看到很多user有許多問題也跟資料讀取筆數有關
改天是不是能出一篇專門談 資料讀取筆數 的深入探討與應用
也許有很多人都跟我一樣,例如語法中最高只使用到60天均線,那資料筆數只要設定超過60天就好
完全沒想到像這樣,資料讀取筆數還會影響到 condition 的使用
昨晚依照小幫手的方法,執行了一次選股,出來的資料有問題,想說是不是資料還沒更新完,所以剛剛又執行了一次,而且還用了3種方法測試,出來的結果令人傻眼
方法一:有用 Print 指令,以第一筆資料長榮航為例,條件明明沒符合,還是被選出來



方法二:想說會不會又是 condition 的問題,所以改了一下寫法,跟昨天小幫手回覆的寫法相同,但是執行結果還是一樣


方法三:使用選股中心內建的腳本執行,結果卻是OK的


如果說,是選股中心的程式出現Bug,那為何內建的選股程式執行是OK的,如果選股中心沒問題,那就是我的選股語法有問題,不知道語法又是哪邊有問題呢???
帥哥元 您好
是否能夠請您提供
選股匯出檔案(*.DSTX)匯出時記得勾選包含警選股策略自訂腳本。
給小幫手呢? 這樣我比較好檢視您的問題所在
13 評論