Python 股市Screener 分享

carlam

469 回覆
288 Like 14 Dislike
carlam 2021-08-02 12:41:40
之前開過post, 用Python screen 股票, 如果條件得宜幾容易Screen 到杯柄類突破股

試行MM 既模式做交易
- 分享自 LIHKG 討論區
https://lih.kg/2535691

依家就分享下點樣去整個Python: https://carlam.net/?p=393
以上條link 有.py file and companylist.csv
裡面條件可以自己改 Scan一日要大概要20分鐘

如果想玩下python(有python經驗最好), 只需要在https://carlam.net/?p=393下載
1)Anaconda << 你當係負責run python
2) .py file
3) companylist.csv
(2) and (3) 要放在同一個folder, default set 左 "C:/Users/Program_data/python"
4) Run “Anaconda Power Prompt”
5) Type” python C:\Users\Program_data\python\vcp_screener.py

用Python去Screen前一個交易日收市價計符合條件既股票.
條件為以下:
1)收市價>150日均線>200日均線
2)50日均線>200均線
3)200日均線>200日平均既均線(現在200日均線比過去20日既200日平均為高)
4)50日均線>200日均線 及 150日均線>200日均線
5)收市價>50日均線
6)收市價>52周低位140%
7)收市價>52周高位75%
8)上日交易額>2百萬美金
9)過去10個交易日波幅少於昨天收市價8%(以收市價計)
10)收市價>$10

符合條件既股票會再排Relative Strength.
RS公式:RS = 最近3個月表現*40%+最近6個月表現*20%+最近9個月表現*20%+最近12個月表現*20%
只留意RS中既top20%既股票


祝大家贏開巷
Flinty 2021-08-02 12:43:40
Scan一日 要20分鐘…..乜嘢code黎,仲要唔係ML
RMBJ 2021-08-02 12:44:18
留名
如來過得很快樂 2021-08-02 12:45:12
唔知你嗡乜,但好似好勁,like 咗先
carlam 2021-08-02 12:47:14
5XXX 股要拎佢地200日內既每日股價, 用條件過濾, 再排強度, 之後Generate 頭20%圖, 同埋可能我D code 亂gua
想發達就買TQQQ 2021-08-02 12:52:23
留名
今晚試gen TQQQ
Flinty 2021-08-02 13:10:32
我依加model 美股Russell 3000個tickers,都係幾分鐘搞掂,你個combinations組合仲要遠低過我。


係咪你電腦唔掂,code 唔clean,或者冇multi thread到?
carlam 2021-08-02 13:18:42
我冇行multi thread

Ching 可以講多少 想學野
carlam 2021-08-02 13:20:28
好 要研究下先
請問佢係自動每日gen 定要人手要處理?
Flinty 2021-08-02 13:20:50
我就咁睇🤔,你個code效率低 就一定。但另外兩個因素 就唔知。

另外 你介唔介意放上GitHub?依加番緊工,如果你放上GitHub,至少可以幫你睇下 改下。
hhhfff 2021-08-02 13:22:29
python
用cython
taco_con_pollo 2021-08-02 13:23:38
非技術派 信literate 話多trade 通常輸同信真係好難去beat the market

但係覺得師兄你分享啲嘢非常有趣 同埋好多謝你分享呢啲風氣真係要支持

加油留名
Flinty 2021-08-02 13:31:19
我就咁睇🤔,你個code效率低 就一定。但另外兩個因素 就唔知。

另外 你介唔介意放上GitHub?依加番緊工,如果你放上GitHub,至少可以幫你睇下 改下。
Flinty 2021-08-02 13:33:38
根本唔關yf事,yf只會影響幾時拎哂5000個tickers,佢唔會影響你後面個個screening speed。
Flinty 2021-08-02 13:42:07
我一般有咁既習慣: 只要個code本質上係parallel,就會multi thread佢。

如果個algorithm係 PSO, MDA, MDI, clustering ML,先唔會multi thread佢。



但因為你個code入面個啲screening conditions 都係獨立,因此可以paraellel。


方法:
1. 你用Numba 配合Numpy
http://numba.pydata.org/

2.將pandas轉做numpy,因為numpy係C++起出黎
https://stackoverflow.com/questions/13187778/convert-pandas-dataframe-to-numpy-array/

3. 你個code要盡可能接近C語法
https://zhuanlan.zhihu.com/p/78882641

4. 唔好call咁多functions,有啲lib其實好垃圾,有啲lib一個 有哂你咁多lib既functions
carlam 2021-08-02 13:48:07

好 我今晚處理先 謝ching
Gay本野 2021-08-02 13:50:36
Lm
carlam 2021-08-02 13:51:21
如果可以下載csv 就應該可以配合selenium
但應該多過49隻今晚研究下先 謝謝ching
kaaa 2021-08-02 14:01:23
why ng use BeautifulSoup
or 用左我睇唔到
醉愛正股 2021-08-02 14:01:49
其實可以用library 去scrap
例如
https://finvizfinance.readthedocs.io/en/latest/
不過你應該check 下佢有無bug

另外個RS Rating 係大問題,因為IBD個RS 應該係用依個formula (weighting 可能有啲唔同)
RS_Rating = (((currentClose – close_3m)/close_3m) * 40 + ((currentClose – close_6m)/close_6m) * 20 + ((currentClose – close_9m)/close_9m) * 20 +((currentClose – close_12m)/close_12m) * 20)


計曬8xxx 個RS再由1-99 rank 返個rating。所以用左finviz screen 左啲股票就無辦法計RS。如果係screen 完嘅universe rank 就已經唔係IBD RS。
Flinty 2021-08-02 14:22:37
唔記得提。 csv轉做HDF5 file,都可以提升效能


https://www.neonscience.org/resources/learning-hub/tutorials/about-hdf5
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞