期货主图双轨多空分析指标(如布林带或其他双轨系统)的源码一般会结合市场的趋势和波动性来进行多空判断。以下是一个基于 Python 和常用技术指标库 ta-lib 或 pandas 实现的通用版本
import pandas as pd
import numpy as np
import talib as ta
def generate_signals(data, window=20, num_std=2):
"""
生成双轨多空分析信号
:param data: 包含OHLCV数据的DataFrame,必须有 'Close' 列
:param window: 均线窗口大小,默认为20
:param num_std: 标准差倍数,默认为2
:return: 生成信号的 DataFrame
"""
# 计算布林带上下轨
data['SMA'] = ta.SMA(data['Close'], timeperiod=window) # 简单移动平均
data['Upper'] = data['SMA'] + num_std * ta.STDDEV(data['Close'], timeperiod=window)
data['Lower'] = data['SMA'] - num_std * ta.STDDEV(data['Close'], timeperiod=window)
# 生成多空信号
data['Signal'] = 0 # 默认无信号
data.loc[data['Close'] > data['Upper'], 'Signal'] = 1 # 价格穿越上轨 -> 多头信号
data.loc[data['Close'] < data['Lower'], 'Signal'] = -1 # 价格穿越下轨 -> 空头信号
# 返回带有信号的DataFrame
return data
# 示例数据
data = pd.DataFrame({
'Close': [100, 102, 104, 103, 107, 108, 110, 112, 113, 115, 116, 117]
})
# 生成信号
signal_data = generate_signals(data)
print(signal_data[['Close', 'SMA', 'Upper', 'Lower', 'Signal']])
发布于2025-1-3 20:59 杭州

