问财量化选股策略逻辑
选股逻辑:选择RSI小于65、周线MACD在零轴之上、市值在100亿以下的无亏损企业的股票。(其中无亏损企业可以通过判断近5年净利润是否全为正数来确定)
选股逻辑分析
该逻辑通过综合考虑技术指标、市值、盈利等因素,挖掘表现稳健的个股,具有一定的实际操作价值。
有何风险?
该逻辑侧重于技术指标的筛选,并且过度依赖于市值以及有利益偏差。同时,该逻辑忽略了公司的负面因素,例如基本面数据和公司治理结构。
如何优化?
可以在该逻辑的基础上,增加更多的技术指标和基本面指标,例如看待公司的负利润历史和资产负债表的数据,同时对公司的治理结构进行细致的研究,这有助于提高挑选股票的准确性。
最终的选股逻辑
综合考虑技术指标和基本面指标,选择市值在100亿以下且近5年净利润全为正数、RSI小于65、周线MACD在零轴之上的优质股票。
同花顺指标公式代码参考
C1: RSI(C,14) < 65 AND MACD(12,26,9) >= 0 AND MARKETVALUE<10000000000 AND (NET_PROFIT>0 AND NET_PROFIT_1>0 AND NET_PROFIT_2>0 AND NET_PROFIT_3>0 AND NET_PROFIT_4>0) SELECT * FROM (SELECT CODE, NAME, CLOSE, WEEKMACD(),NULL AS NET_PROFIT, NULL AS NET_PROFIT_1, NULL AS NET_PROFIT_2, NULL AS NET_PROFIT_3,NULL AS NET_PROFIT_4,MARKETVALUE FROM STOCK_LIST WHERE TRADE_DATE>=T-4Y) WHERE C1
Python代码参考
import pandas as pd
import akshare as ak
import talib
def get_stock_list():
stock_list = ak.stock_zh_a_daily_em(symbol="sh600000")
stock_list['RSI'] = talib.RSI(stock_list['收盘价'], timeperiod=14)
macd, signal, hist = talib.MACD(stock_list['收盘价'], fastperiod=12, slowperiod=26, signalperiod=9)
stock_list['MACD'] = macd
stock_list['MACD_SIGNAL'] = signal
stock_list['MACD_HIST'] = hist
stock_list = pd.merge(stock_list, ak.stock_financial_report_sina(stock="600000", symbol="balancesheet"), on="报告日期")
profit = stock_list[['报告日期', '净利润']]
profit['year'] = pd.to_datetime(profit['报告日期']).dt.year
profit = profit.groupby('year').sum()
no_loss = (profit['净利润'] > 0).all()
stock_list = stock_list[stock_list['RSI'] < 65]
stock_list = stock_list[(stock_list['MACD'] > 0) & (stock_list['MARKETVALUE'] < 10000000000) & no_loss]
return stock_list[['股票代码', '名称', '收盘价', 'RSI', 'MACD', 'MARKETVALUE']]
get_stock_list()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


