用Python screen 股搵VCP

carlam

286 回覆
357 Like 10 Dislike
carlam 2021-03-01 23:50:07
呢個post 志在拋磚引玉 吸引連登CD-DOM既dup code 高手出黎
之前一段時間睇左MM 有關Volume Contraction Pattern既書(俗稱杯柄形態 Cup and Handle Pattern)
打算研究一下 但美股幾千隻 每日搵都唔係路 就算係MM 都係用MarketSmith 只係睇高Relative Strength 既股
自己用過marketsmith 係正既, 但彈性唔大
所以我就想用Python 幫我去每日Screen 我要睇Candle 圖 交易量
仲要唔只今日 我要佢不斷自己向前Screen 唔搞六日 只搞weekdays

思路:
1) 首先要一個股票ticker 既 csv. (https://www.nasdaq.com/market-activity/stocks/screener) 我個csv 名為 companylist.csv

第一個sheet 第一個column(with header) 係ticker 就ok

2)
首先從tickers 搵到符合以下條件既股
MM Screening 有以下條件:
# Condition 1: Current Price > 150 SMA and > 200 SMA
# Condition 2: 50 SMA and > 200 SMA
# Condition 3: 200 SMA trending up for at least 1 month
# Condition 4: 50 SMA> 150 SMA and 50 SMA> 200 SMA
# Condition 5: Current Price > 50 SMA
# Condition 6: Current Price is at least 40% above 52 week low
# Condition 7: Current Price is within 25% of 52 week high
# Condition 8: Turnover is larger than 1.5 million
# Condition 9: true range in the last 10 days is less than 8% of current price
# Condition 10: Close above 20 days moving average
# Condition 11: true range in the last 5 days is less than 6% of current price
# Condition 12: Current price > 10
頭7個條件係本身有, 8 - 12 我自己加上去( 條件11 我暫時無用到)
將符合條件既股ticker save 落另一個csv: stocks.csv
由於MM 佢要計RS, 所以我同時為每一隻股計左RS_Rating(Code 內既 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))
簡而言之就 RS_Rating = 3個月內升幅 X 40% + 6個月內升幅 X 20% + 9個月內升幅 X 20% + 12個月內升幅 X 20% 越高就越強勢

3)
利用stocks.csv 我之後就開多一欄叫 RS_Rank, 將RS_Rating 排Ranking, 最高RS_Rating 既RS_Rank就排第一, 如此類推. 最後我只考慮最高既頭3成.
So far 我就有「符合以上條件中既頭30%最強勢股」既 ticker list.

4)
我地最終目標係搵VCP, 所以我地要將ticker list 既全部以圖既形式輸出.
後來整多一張cover sheet 做封面, 將ticker 順字母排出黎, 方便查看. 當然都show左其他資訊
例如有2月26日當日, 有47%左右 companylist.csv入內既股既收盤價係高過20天線,67%左右既收盤價係高過50天線, 86%左右既20天線係高過50天線
Stock above its 20-DMA: 47.044
Stock above its 50-DMA: 67.268
Stock that its 50-DMA > 200-DMA: 86.038
封面 (26/2)

內頁(LE 係當日符合條件中最強勢既股)


後記:
1. 有時會有Data 缺失問題, 應該係yfinance 唔俾人同時下載太多資料, 所以會令到python 每日都有機會crash 每日要人手維護1-3次(重開)
2. 最後我每日都會有一份pdf, 越多股符合條件, 份pdf就會越大size, 我再將pdf size log 左之後同同期大市放埋一齊, 都幾得意


毒步天下 2021-03-01 23:52:56
Lm
Python高手
潔玲BB老公 2021-03-01 23:53:27
lm
carlam 2021-03-01 23:54:14
post 唔到code 字數問題 可以點開心share
柔弱的角 2021-03-01 23:54:39
寫python唔係連github都唔識下話
wooyeon 2021-03-01 23:54:43
pastebin
沙漠上的北極熊 2021-03-01 23:55:49
go use github
無極星星 2021-03-01 23:57:02
Lm
Hallucination 2021-03-01 23:57:45
樓豬有冇比比較過Market Smith ?

同你自己個code 有咩唔同
泊松分佈 2021-03-01 23:58:32
lm
carlam 2021-03-02 00:02:56
https://pastebin.com/Wu2Mzgug

pastebin 算啦
d Code 唔靚但work ge so far
普通人很普通 2021-03-02 00:03:18
Lm
女權最大 2021-03-02 00:06:06
Lm! 寫緊差唔多嘅嘢 加埋Tradeview api 出圖
浮浪者 2021-03-02 00:06:42
你有無試過back test下其實vcp係以前work唔work
carlam 2021-03-02 00:08:14
我有sub 過 彈性差DD
同埋介面或要click 既位唔係好用得舒服
有D 條件佢冇咁specific 但用python 自己可以調教嘛

當然佢有好多資料我冇啦 例如過去有幾多隻fund 有買, 股息, EPS比過去升跌幾多, 過去RS RANK 既記錄等
carlam 2021-03-02 00:13:06
冇做back test 但我只係信MM 佢自己經驗
單單份Python 未夠全面架 例如我仲未確立一套市寬signal
雞巴打爸爸(日落) 2021-03-02 00:14:49
lm
陳鈺瀅 2021-03-02 00:18:05
留名學野
meloncello 2021-03-02 00:20:12
靜靜地死唔得嘅 2021-03-02 00:20:37
留名學野
RadonNikodym 2021-03-02 00:22:01
lm
翌月台再會 2021-03-02 00:24:01
Lm
(ATA)-1AT 2021-03-02 00:24:09
留名學野
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞