·服务中心 开户宝

红绿带期货多空指标源码

还有疑问? 16850 位专业答主在线答疑

立即追问
红绿带期货多空指标源码
叩富问财 · 781浏览 · 1个回答

期货吴经理 期货

好评317从业8年知无不言

该回答已获得17个赞同

假设你想实现一个简单的红绿带多空指标,基于 SMA (简单移动平均线) 或 EMA (指数移动平均线) 来定义红绿带的范围。我们可以使用绿色表示上升趋势,红色表示下降趋势。以下是一个基于 SMA 计算的红绿带多空指标的源码示例。


import pandas as pd
import numpy as np
import talib as ta
import matplotlib.pyplot as plt

def generate_red_green_bands(data, window=20):
"""
生成红绿带多空分析信号
:param data: 包含OHLCV数据的DataFrame,必须有 'Close' 列
:param window: 均线窗口大小,默认为20
:return: 生成信号的 DataFrame
"""
# 计算简单移动平均
data['SMA'] = ta.SMA(data['Close'], timeperiod=window)

# 生成红绿带信号
data['Color'] = np.where(data['Close'] > data['SMA'], 'Green', 'Red')

# 根据信号生成多空信号
data['Signal'] = 0 # 默认无信号
data.loc[data['Color'] == 'Green', 'Signal'] = 1 # 价格高于均线 -> 多头信号
data.loc[data['Color'] == 'Red', 'Signal'] = -1 # 价格低于均线 -> 空头信号

return data

# 示例数据
data = pd.DataFrame({
'Close': [100, 102, 104, 103, 107, 108, 110, 112, 113, 115, 116, 117, 119, 120]
})

# 生成红绿带信号
signal_data = generate_red_green_bands(data)

# 打印输出
print(signal_data[['Close', 'SMA', 'Color', 'Signal']])

# 可视化红绿带
plt.figure(figsize=(10, 6))
plt.plot(signal_data['Close'], label='Close Price', color='black')
plt.plot(signal_data['SMA'], label=f'{window}-period SMA', color='blue')

# 绘制红绿带
for i in range(1, len(signal_data)):
if signal_data['Color'].iloc[i] == 'Green':
plt.axvspan(i-1, i, color='green', alpha=0.3) # 多头区域
else:
plt.axvspan(i-1, i, color='red', alpha=0.3) # 空头区域

plt.title("Red-Green Bands (SMA-based)")
plt.legend()
plt.show()

发布于2025-1-3 21:04 杭州

当前我在线 直接咨询我
17

举报

关注
同城推荐
查看更多顾问
相关问题
相关搜索
热点推荐
优选券商
查看更多
相关资讯
搜索更多相关资讯
顾问视频推荐 更多视频
浏览更多不如立即追问,99%用户选择
立即追问

已有38,135,070用户获得帮助

首页>30秒问财 >红绿带期货多空指标源码