问财量化选股策略逻辑
选股逻辑为:振幅大于1,流通市值大于100亿元,dea上涨。该选股策略主要考虑了市场交易情况和技术分析等方面。
选股逻辑分析
该选股策略主要考虑了市场交易情况和技术分析等因素,振幅和流通市值筛选了市场交投活跃度和公司规模,而dea指标的上涨则可以有效过滤出处于上涨趋势中的股票,有助于避免追涨杀跌的局面。
有何风险?
该选股策略存在忽略了公司财务数据和经营情况等重要因素的风险,以及忽略了市场环境和政策等风险因素,可能造成风险控制不足。此外,技术指标的使用需要考虑到时间长度和灵敏度等因素,不合理的设置可能会导致过多信号或者漏掉重要信号。
如何优化?
在现有选股逻辑的基础上,可以结合其他股票的基本面信息,如盈利能力、成长性等指标,进一步进行筛选和综合评价。此外,还可以对技术指标进行细化和优化,如加入其他指标或者优化参数等。
最终的选股逻辑
选股条件为:振幅大于1,流通市值大于100亿元,dea指标上涨。该选股策略主要考虑了市场交易情况和技术分析等方面。
同花顺指标公式代码参考
C1: ABS((HIGH/LOW-1)*100)>=1; //振幅大于1
C2: CIRC_MV>10000000000; //流通市值大于100亿元
C3: REF(DIF,1)<REF(DEA,1) AND DIF>DEA; //DEA上涨
SYMBOL: C1 AND C2 AND C3;
python代码参考
import pandas as pd
import tushare as ts
def select_stocks(length):
ts.set_token('your_token')
pro = ts.pro_api()
# 获取所有股票数据
data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,name')
# 筛选符合条件的股票
df_list = []
for i in range(len(data)):
code = data.iloc[i]['ts_code']
quote = pro.futu_quote(code).iloc[0] # 获取实时行情
if abs((quote['high'] / quote['low'] - 1) * 100) < 1: # 振幅小于1
continue
circ_mv = pro.daily_basic(ts_code=code, trade_date=quote['date'], fields='circ_mv').iloc[0]['circ_mv'] # 流通市值
if circ_mv < 10000000000: # 流通市值小于100亿元
continue
df = ts.pro_bar(ts_code=code, adj='qfq', start_date='20210101', end_date=quote['date'])
if len(df) < 60:
continue
df['EMA12'] = df['close'].ewm(span=12).mean()
df['EMA26'] = df['close'].ewm(span=26).mean()
df['DIF'] = df['EMA12'] - df['EMA26']
df['DEA'] = df['DIF'].ewm(span=9).mean()
if df.iloc[-1]['DIF'] > df.iloc[-1]['DEA'] and df.iloc[-2]['DIF'] < df.iloc[-2]['DEA']: # DEA上涨
info = {}
info['ts_code'] = code
info['name'] = data.iloc[i]['name']
df_list.append(info)
# 随机选择一定数量的股票
selected_stocks = pd.DataFrame(df_list)
selected_stocks = selected_stocks.sample(n=length)
return selected_stocks
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
