问财量化选股策略逻辑
- 至少5根均线重合的股票
- KDJ刚形成金叉
- 20日均线大于120日均线
选股逻辑分析
这个策略的逻辑是基于技术分析,寻找股票的买入信号。首先,需要至少5根均线重合,这表明股票价格在不同时间段内的趋势是稳定的,有助于降低买入的风险。其次,KDJ指标刚刚形成金叉,表示股票价格已经进入上升趋势,买入信号较强。最后,20日均线大于120日均线,表示股票价格已经进入长期上升趋势,买入更加安全。
有何风险?
这个策略的买入信号可能过于频繁,导致交易次数过多,增加交易成本和风险。此外,如果股票价格在短期内出现回调,可能会导致投资者出现亏损。
如何优化?
可以考虑加入更多的技术指标,例如布林线、MACD等,以提高策略的准确性和稳定性。同时,可以考虑加入股票的财务数据和基本面分析,以更好地判断股票的价值和未来走势。
最终的选股逻辑
import talib
import pandas as pd
def check_5均线策略(df):
# 获取股票的收盘价和时间序列
close_prices = df['close'].values
time序列 = df['date'].values
# 计算5日、10日、20日、60日和120日均线
ma5 = talib.MA(close_prices, timeperiod=5)
ma10 = talib.MA(close_prices, timeperiod=10)
ma20 = talib.MA(close_prices, timeperiod=20)
ma60 = talib.MA(close_prices, timeperiod=60)
ma120 = talib.MA(close_prices, timeperiod=120)
# 检查5日、10日、20日均线是否重合
if ma5[-1] == ma10[-1] == ma20[-1]:
return True
# 检查KDJ指标是否金叉
if talib.KDJ(close_prices[-1], timeperiod=9)[-1] > talib.KDJ(close_prices[-2], timeperiod=9)[-1] and talib.KDJ(close_prices[-1], timeperiod=9)[-1] > talib.KDJ(close_prices[-3], timeperiod=9)[-1]:
return True
# 检查20日均线是否大于120日均线
if ma20[-1] > ma120[-1]:
return True
# 如果以上条件都不满足,则返回False
return False
python代码参考
import talib
import pandas as pd
def check_5均线策略(df):
# 获取股票的收盘价和时间序列
close_prices = df['close'].values
time_sequence = df['date'].values
# 计算5日、10日、20日、60日和120日均线
ma5 = talib.MA(close_prices, timeperiod=5)
ma10 = talib.MA(close_prices, timeperiod=10)
ma20 = talib.MA(close_prices, timeperiod=20)
ma60 = talib.MA(close_prices, timeperiod=60)
ma120 = talib.MA(close_prices, timeperiod=120)
# 检查5日、10日、20日均线是否重合
if ma5[-1] == ma10[-1] == ma20[-1]:
return True
# 检查KDJ指标是否金叉
if talib.KDJ(close_prices[-1], timeperiod=9)[-1] > talib.KDJ(close_prices[-2], timeperiod=9)[-1] and talib.KDJ(close_prices[-1], timeperiod=9)[-1] > talib.KDJ(close_prices[-3], timeperiod=9)[-1]:
return True
# 检查20日均线是否大于120日均线
if ma20[-1] > ma120[-1]:
return True
# 如果以上条件都不满足,则返回False
return False
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。