需要Python代码实现双龙战法3种买入信号:1、均线由下降逐渐转为盘整或上升,价格从均线下方向上突破平均线,为买入信号。 2、价格虽跌破均线,但又回升到均线上方,均线仍保持上升态势,为买进信号。 3、股价在上升初期突然暴跌破平均线,且远离均线,则有可能反弹上升,为买进信号。
时间: 2023-03-04 16:32:15 浏览: 128
基于Python实现的获取股票数据,计算股票指标,识别股票形态,内置选股策略,股票验证回测,股票自动交易,支持PC及移动设备
5星 · 资源好评率100%
以下是实现双龙战法3种买入信号的Python代码:
```python
import pandas as pd
def buy_signal_1(df, ma):
"""
均线由下降逐渐转为盘整或上升,价格从均线下方向上突破平均线,为买入信号。
df: 数据框
ma: 均线天数
"""
if len(df) < ma:
return False
else:
ma_col = f'MA{ma}'
df[ma_col] = df['close'].rolling(ma).mean()
if df[ma_col].iloc[-1] > df[ma_col].iloc[-2] and df['close'].iloc[-1] > df[ma_col].iloc[-1]:
return True
else:
return False
def buy_signal_2(df, ma):
"""
价格虽跌破均线,但又回升到均线上方,均线仍保持上升态势,为买进信号。
df: 数据框
ma: 均线天数
"""
if len(df) < ma:
return False
else:
ma_col = f'MA{ma}'
df[ma_col] = df['close'].rolling(ma).mean()
if df[ma_col].iloc[-1] > df[ma_col].iloc[-2] and df['close'].iloc[-1] > df[ma_col].iloc[-1] and df['close'].iloc[-1] > df[ma_col].iloc[-2]:
return True
else:
return False
def buy_signal_3(df, ma):
"""
股价在上升初期突然暴跌破平均线,且远离均线,则有可能反弹上升,为买进信号。
df: 数据框
ma: 均线天数
"""
if len(df) < ma:
return False
else:
ma_col = f'MA{ma}'
df[ma_col] = df['close'].rolling(ma).mean()
if df['close'].iloc[-1] < df[ma_col].iloc[-1] and df[ma_col].iloc[-2] < df[ma_col].iloc[-1] and df['close'].iloc[-1] < df[ma_col].iloc[-ma]:
return True
else:
return False
```
这些函数可以接受一个数据框和一个整数作为参数,其中数据框包含一些历史的股票价格数据,整数表示均线的天数。每个函数都返回一个布尔值,表示当前是否出现了对应的买入信号。你可以将这些函数应用于你自己的数据框中,以判断是否出现了买入信号。
阅读全文