加入一个回测,
This commit is contained in:
@@ -30,6 +30,8 @@ class BBDelayReversalConfig:
|
||||
# 布林带参数
|
||||
BB_PERIOD = 10
|
||||
BB_STD = 2.5
|
||||
BB_DDOF = 1 # 与回测pandas rolling.std()默认一致
|
||||
BB_USE_FORMING_CANDLE = False # True更贴近网页实时指标;False更稳健
|
||||
|
||||
# 仓位管理(从框架获取)
|
||||
LEVERAGE = "50"
|
||||
@@ -206,7 +208,7 @@ class BBDelayReversalTrader:
|
||||
return None
|
||||
arr = np.array(closes[-self.cfg.BB_PERIOD:], dtype=float)
|
||||
mid = arr.mean()
|
||||
std = arr.std(ddof=0)
|
||||
std = arr.std(ddof=self.cfg.BB_DDOF)
|
||||
upper = mid + self.cfg.BB_STD * std
|
||||
lower = mid - self.cfg.BB_STD * std
|
||||
return mid, upper, lower
|
||||
@@ -424,6 +426,10 @@ class BBDelayReversalTrader:
|
||||
logger.info(f"布林带延迟反转策略启动")
|
||||
logger.info(f"BB({self.cfg.BB_PERIOD}, {self.cfg.BB_STD}) | "
|
||||
f"{self.cfg.LEVERAGE}x {self.cfg.OPEN_TYPE}")
|
||||
logger.info(
|
||||
f"BB细节: ddof={self.cfg.BB_DDOF} | "
|
||||
f"forming_candle={self.cfg.BB_USE_FORMING_CANDLE}"
|
||||
)
|
||||
logger.info("=" * 60)
|
||||
|
||||
# 设置杠杆
|
||||
@@ -492,7 +498,8 @@ class BBDelayReversalTrader:
|
||||
continue
|
||||
|
||||
# 计算布林带
|
||||
closes = [k['close'] for k in closed_klines]
|
||||
bb_source = klines if self.cfg.BB_USE_FORMING_CANDLE else closed_klines
|
||||
closes = [k['close'] for k in bb_source]
|
||||
bb = self.calc_bollinger(closes)
|
||||
if bb is None:
|
||||
time.sleep(self.cfg.POLL_INTERVAL)
|
||||
@@ -500,11 +507,8 @@ class BBDelayReversalTrader:
|
||||
|
||||
bb_mid, bb_upper, bb_lower = bb
|
||||
|
||||
# 获取当前价格
|
||||
current_price = self.get_current_price()
|
||||
if current_price is None:
|
||||
time.sleep(self.cfg.POLL_INTERVAL)
|
||||
continue
|
||||
# 当前价优先使用当前5m实时K线close,避免1m收盘价滞后导致观感偏差
|
||||
current_price = float(current_kline['close'])
|
||||
|
||||
cur_high = current_kline['high']
|
||||
cur_low = current_kline['low']
|
||||
|
||||
Reference in New Issue
Block a user