问财量化选股策略逻辑
本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间的股票,并根据企业性质进行进一步筛选。企业性质的定义可以根据投资者自行定义,如选择高成长性的企业、高股息率的企业、环保企业等。该策略主要关注股票价格的波动和流动性,同时结合企业性质等因素寻找股票投资机会,并注意风险控制。
选股逻辑分析
本选股策略以股票价格波动和流动性为基础,通过振幅和换手率等指标找寻较有潜力的股票。同时,根据不同的企业性质对数据集合进行筛选,寻找投资价值更高、前景更好的股票。这一投资策略相对为主观,需要根据个人的诉求和风险偏好来进行调整。
有何风险?
本选股策略的“企业性质”是主观因素,可能存在因为数据采集的不完整性、过度主观等原因造成的投资策略错误。此外,较高的振幅和换手率也是较高风险的表现形式,需要注意风险控制,适当降低仓位和止损。
如何优化?
为了优化选股策略,可以考虑较多数据源,同时加入技术面指标和市场情绪等因素,以全面分析和评估选股策略的投资价值。在企业性质方面,可以选择更加客观的指标,如行业、市盈率等,避免对数据的过度解读。同时,可以加入权重投资策略,依照投资人的风险偏好、股票行情等可确定不同权重配置,达到更好的投资效果。
最终的选股逻辑
本选股策略选取振幅大于1,(昨日换手率*(今日竞价成交量/昨日成交量))在0.5到2之间的股票,并根据客观指标,如行业、市盈率等企业性质进行进一步筛选。同时,加入技术面指标和市场情绪等因素,以全面分析和评估选股策略的投资价值。
同花顺指标公式代码参考
无
Python代码参考
import tushare as ts
import pandas as pd
from datetime import datetime,timedelta
pro = ts.pro_api()
def select_stocks(n, industry):
selected_stocks = []
today = datetime.today().strftime("%Y%m%d")
yesterday = (datetime.today() - timedelta(days=1)).strftime("%Y%m%d")
for code in pro.query('stock_basic', exchange='', list_status='L',
fields='ts_code,name,list_date,list_status,total_mv')["ts_code"]:
if len(selected_stocks) >= n:
break
db = pro.daily(ts_code=code, start_date=(datetime.now() - timedelta(days=365)).strftime("%Y%m%d"),
end_date=date.today().strftime("%Y%m%d"), fields='close,high,low')
if db.empty or len(db) < 250:
continue
db_amplitude = (db['high'] - db['low']) / db['close']
df_moneyflow = pro.moneyflow(ts_code=code, start_date=db['trade_date'].iloc[0].strftime("%Y%m%d"),
end_date=db['trade_date'].iloc[-1].strftime("%Y%m%d"), fields='date,main_buyer')
db_mainmoney = pd.Series(df_moneyflow['main_buyer'].values, index=df_moneyflow['date'])
db_turnover_rate = db['vol'] / pro.query('stock_basic', ts_code=code,
fields='outstanding_share')['outstanding_share'].iloc[0] * 100
if db_amplitude.iloc[-1] > 1 and 0.5 < db_turnover_rate.iloc[-1] * (db['vol'].iloc[-1] / db['vol'].iloc[-2]) < 2:
info = pro.stock_basic(ts_code=code, fields='industry')
if industry in str(info['industry']):
selected_stocks.append({'code':code, 'last_close': db['close'].iloc[-1],
'hot':db_mainmoney.iloc[-1]})
df = pd.DataFrame(selected_stocks)
df_selected = df.sort_values('hot', ascending=False).head(n)
selected_stocks = list(df_selected['code'])
return selected_stocks
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
