优化代码风格
This commit is contained in:
@@ -38,7 +38,7 @@ def calculate_indicators(data):
|
||||
|
||||
返回:
|
||||
DataFrame, 添加了指标列:
|
||||
- dif: MACD 线 (dif)
|
||||
- macd: MACD 线 (macd)
|
||||
- signal: MACD 信号线 (DEA)
|
||||
- hist: MACD 柱状图 (Histogram)
|
||||
- ema: 日指数移动平均线
|
||||
@@ -49,7 +49,7 @@ def calculate_indicators(data):
|
||||
# talib.MACD 返回三个值: (macd, macdsignal, macdhist)
|
||||
macd, macdsignal, macdhist = talib.MACD(data["Close"], fastperiod=10, slowperiod=20, signalperiod=9)
|
||||
|
||||
data["dif"] = macd
|
||||
data["macd"] = macd
|
||||
data["signal"] = macdsignal
|
||||
data["hist"] = macdhist
|
||||
|
||||
@@ -92,10 +92,10 @@ class MacdTrendStrategy(Strategy):
|
||||
注册指标到 backtesting 框架
|
||||
"""
|
||||
# 注册 MACD 线
|
||||
self.macd = self.I(lambda x: x, self.data.dif)
|
||||
self.macd = self.I(lambda x: x, self.data.macd)
|
||||
|
||||
# 注册 MACD 信号线
|
||||
self.macd_signal = self.I(lambda x: x, self.data.signal)
|
||||
self.signal = self.I(lambda x: x, self.data.signal)
|
||||
|
||||
# 注册 EMA 趋势线
|
||||
self.ema = self.I(lambda x: x, self.data.ema)
|
||||
@@ -113,12 +113,11 @@ class MacdTrendStrategy(Strategy):
|
||||
- 或价格 < EMA (趋势转向,强制平仓)
|
||||
"""
|
||||
# 买入条件: MACD 金叉 AND 价格 > EMA
|
||||
if crossover(self.macd, self.macd_signal) and self.data.Close[-1] > self.ema[-1]:
|
||||
self.position.close() # 先平掉现有仓位
|
||||
if crossover(self.macd, self.signal) and self.data.Close[-1] > self.ema[-1]:
|
||||
self.buy() # 开多仓
|
||||
|
||||
# 卖出条件: MACD 死叉 OR 价格 < EMA
|
||||
elif crossover(self.macd_signal, self.macd) or self.data.Close[-1] < self.ema[-1]:
|
||||
elif crossover(self.signal, self.macd) or self.data.Close[-1] < self.ema[-1]:
|
||||
self.position.close() # 平掉多仓
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user