mirror of
https://github.com/silencesdg/mt5_python_ea_suite.git
synced 2026-08-13 02:38:08 +00:00
基本完毕
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
策略基类
|
||||
"""
|
||||
|
||||
from logger import logger
|
||||
|
||||
class BaseStrategy:
|
||||
"""策略基类 (已重构为依赖注入)"""
|
||||
|
||||
def __init__(self, data_provider, symbol, timeframe):
|
||||
self.data_provider = data_provider
|
||||
self.symbol = symbol
|
||||
self.timeframe = timeframe
|
||||
self.name = self.__class__.__name__
|
||||
|
||||
def _log_signal(self, signal, reason=None):
|
||||
"""记录信号日志"""
|
||||
if signal != 0:
|
||||
direction = "买入" if signal > 0 else "卖出"
|
||||
logger.info(f"{self.name}: 生成 {direction} 信号 (强度: {signal:.2f}), 原因: {reason}")
|
||||
else:
|
||||
logger.debug(f"{self.name}: 无信号, 原因: {reason}")
|
||||
|
||||
def generate_signal(self):
|
||||
"""生成交易信号 - 子类必须实现此方法"""
|
||||
raise NotImplementedError("子类必须实现 generate_signal 方法")
|
||||
|
||||
def run_backtest(self, df):
|
||||
"""回测方法 - 子类必须实现此方法"""
|
||||
raise NotImplementedError("子类必须实现 run_backtest 方法")
|
||||
Reference in New Issue
Block a user