按照优化建议修改后输出
时间: 2024-03-26 18:35:10 浏览: 27
以下是按照优化建议进行修改后的代码:
```
import talib
def signal_cr(df, para=[20, 50], proportion=1):
n = int(para[0])
m = int(para[1])
# CR指标
df['TYP'] = (df['high'] + df['low'] + df['close']) / 3
df['H'] = df['high'] - df['TYP'].shift(1)
df['L'] = df['TYP'].shift(1) - df['low']
df['CR'] = df['H'].rolling(n).sum() / df['L'].rolling(n).sum() * 100
# 均线指标
df['KAMA'] = talib.KAMA(df['close'], timeperiod=m)
# 过滤器:RSI指标
df['RSI'] = talib.RSI(df['close'], timeperiod=14)
# 趋势判断指标:EMA
df['EMA5'] = talib.EMA(df['close'], timeperiod=5)
df['EMA20'] = talib.EMA(df['close'], timeperiod=20)
# 计算KAMA标准差
df['std'] = df['KAMA'].rolling(m).std() * 3
# 找出做多信号
condition1 = (df['CR'] > 200) & (df['KAMA'] > (df['low_KAMA'] + df['std']))
condition2 = df['CR'].shift() <= 200
condition3 = (df['RSI'] > 50) & (df['EMA5'] > df['EMA20'])
df.loc[condition1 & condition2 & condition3, 'signal_long'] = 1
# 找出做空信号
condition1 = (df['CR'] < 50) & (df['KAMA'] < (df['high_KAMA'] - df['std']))
condition2 = df['CR'].shift() >= 50
condition3 = (df['RSI'] < 50) & (df['EMA5'] < df['EMA20'])
df.loc[condition1 & condition2 & condition3, 'signal_short'] = -1
# 合并做多做空信号,去除重复信号
df['signal'] = df[['signal_long', 'signal_short']].sum(axis=1, min_count=1, skipna=True)
temp = df[df['signal'].notnull()][['signal']]
temp = temp[temp['signal'] != temp['signal'].shift(1)]
df['signal'] = temp['signal']
# 删除无关变量
df.drop(['signal_long', 'signal_short'], axis=1, inplace=True)
# 进行止盈止损
df = process_stop_loss_close(df, proportion)
return df
```
修改后的代码增加了RSI指标作为过滤器,加入了EMA5和EMA20作为趋势判断指标,同时在做多和做空信号判断中加入了RSI和EMA的条件,从而提高了信号的准确性。
相关推荐
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)