以下是一个基于MACD和oBV组合交易策略的Python代码示例:

import pandas as pdimport numpy as npimport talib# 计算MACD指标def calculate_macd(data): close_price = data['close'] macd, signal, hist = talib.MACD(close_price, fastperiod=12, slowperiod=26, signalperiod=9) return macd, signal, hist# 计算oBV指标def calculate_obv(data): close_price = data['close'] volume = data['volume'] obv = talib.OBV(close_price, volume) return obv# 定义交易策略def trading_strategy(data): # 计算MACD指标 macd, signal, hist = calculate_macd(data) # 计算oBV指标 obv = calculate_obv(data) # 生成交易信号 trading_signal = np.zeros(len(data)) for i in range(1, len(data)): if macd[i] > signal[i] and macd[i-1] < signal[i-1] and obv[i] > obv[i-1]: # MACD上穿信号且oBV上升,买入 trading_signal[i] = 1 elif macd[i] < signal[i] and macd[i-1] > signal[i-1] and obv[i] < obv[i-1]: # MACD下穿信号且oBV下降,卖出 trading_signal[i] = -1 return trading_signal# 示例:读取股票数据并运行交易策略data = pd.read_csv('stock_data.csv') # 读取股票数据文件# 运行交易策略signals = trading_strategy(data)# 输出交易信号for i, signal in enumerate(signals): if signal == 1: print(f"买入信号 - 日期: {data['date'][i]}, 价格: {data['close'][i]}") elif signal == -1: print(f"卖出信号 - 日期: {data['date'][i]}, 价格: {data['close'][i]}")

请注意,以上代码仅为示例,实际应用时需要根据具体需求进行适当的修改和优化。此外,代码中使用了talib库来计算MACD和oBV指标,你需要确保已将该库正确安装。

发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/77193
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!