问财量化选股策略逻辑
本选股策略选取以下股票:振幅大于1、昨日主力控盘、上市时间大于X天。该选股策略基于股票的技术面因素和基本面因素,以期能在短期内获得一定的收益。
选股逻辑分析
该选股策略首先筛选了振幅大于1、昨日主力控盘,然后再筛选了上市时间大于X天的股票,从基本面考虑了股票的历史表现和公司基本信息。该选股策略结合了技术面和基本面的因素,能够全面了解股票的市场表现和公司价值。
有何风险?
该选股策略存在一定风险,因为选股策略过于简单,只考虑了振幅、主力控盘和上市时间等因素,忽略了更多的技术面和基本面指标。同时,策略参数也需要根据市场情况和行情进行不断调整和优化,否则可能会导致较大的波动和风险。
如何优化?
可以加入更多的技术面和基本面指标,比如均线、相对强弱指标、财务指标、市场表现、行业趋势等,以更全面地了解股票的市场走势和公司基本信息。此外,策略参数也可以适当调整和优化,比如振幅、主力控盘和上市时间等指标,并根据市场情况和行情及时调整策略。
最终的选股逻辑
选取振幅大于1、昨日主力控盘,上市时间大于X天的股票进行选取。
同花顺指标公式代码参考
无
python代码参考
import tushare as ts
import datetime
amplitude_filter = 0.01
hld_filter = 0.5
listed_days_filter = 365
def select_stock():
stock_list = ts.get_today_all()
selected_stocks = stock_list[stock_list["volume"] > 0]
selected_stocks = selected_stocks[selected_stocks["amplitude"] >= amplitude_filter]
selected_stocks = selected_stocks[selected_stocks["turnoverratio"] >= 5]
selected_stocks = selected_stocks[selected_stocks["per"] >= 0]
selected_stocks = selected_stocks[selected_stocks["pb"] >= 0]
selected_stocks = selected_stocks[selected_stocks["circulating_market_cap"] > selected_stocks["total_market_cap"] / 2]
selected_stocks = selected_stocks[selected_stocks["holders"] > 0]
selected_stocks = selected_stocks[selected_stocks["is_st"] == "否"]
listed_days = datetime.datetime.now() - selected_stocks["timeToMarket"].apply(lambda x: datetime.datetime.strptime(str(x), '%Y%m%d'))
days_delta = listed_days.astype('timedelta64[D]')
days_delta = days_delta / np.timedelta64(1, 'D')
selected_stocks = selected_stocks[days_delta > listed_days_filter]
today_date = ts.get_hist_data(selected_stocks['code'][0], ktype="D", start="2021-12-01", end="2021-12-06", pause=0.01)
ratio = today_date['volume'][0] / ts.get_tick_data(selected_stocks['code'][0], date="2021-12-06", src='tt')[0]['volume']
hld_ratio = selected_stocks["turnoverratio"] * ratio
selected_stocks = selected_stocks[(hld_ratio > hld_filter)]
df_week = ts.get_k_data(selected_stocks['code'][0],ktype="W")
ma_5 = df_week['close'].rolling(window=5,min_periods=1).mean()
ma_10 = df_week['close'].rolling(window=10,min_periods=1).mean()
if ma_5.iloc[-1] > ma_10.iloc[-1] and ma_5.iloc[-2] < ma_10.iloc[-2]:
return selected_stocks
else:
return None
print(select_stock())
以上代码仅供参考,具体实现方法可以根据投资者需要和市场情况进行调整。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
