crypto_quant/trade_ma_strategy_main.py

63 lines
2.3 KiB
Python
Raw Normal View History

2025-08-22 10:48:59 +00:00
import core.logger as logging
from datetime import datetime
from time import sleep
import pandas as pd
from core.biz.market_data import MarketData
from core.trade.ma_break_statistics import MaBreakStatistics
from core.db.db_market_data import DBMarketData
from core.biz.metrics_calculation import MetricsCalculation
from core.utils import (
datetime_to_timestamp,
timestamp_to_datetime,
transform_date_time_to_timestamp,
)
from trade_data_main import TradeDataMain
from config import (
API_KEY,
SECRET_KEY,
PASSPHRASE,
SANDBOX,
2025-08-31 03:20:59 +00:00
OKX_MONITOR_CONFIG,
2025-08-22 10:48:59 +00:00
MYSQL_CONFIG,
BAR_THRESHOLD,
)
logger = logging.logger
class TradeMaStrategyMain:
2025-09-01 10:01:21 +00:00
def __init__(self, is_us_stock: bool = False):
self.ma_break_statistics = MaBreakStatistics(is_us_stock=is_us_stock)
2025-08-22 10:48:59 +00:00
def batch_ma_break_statistics(self):
"""
批量计算MA突破统计
"""
logger.info("开始批量计算MA突破统计")
strategy_dict = self.ma_break_statistics.main_strategy
2025-08-23 17:44:33 +00:00
pct_chg_df_list = []
2025-08-22 10:48:59 +00:00
for strategy_name, strategy_info in strategy_dict.items():
2025-08-23 17:44:33 +00:00
pct_chg_df = self.ma_break_statistics.batch_statistics(strategy_name=strategy_name)
pct_chg_df_list.append(pct_chg_df)
2025-08-25 08:58:38 +00:00
2025-08-23 17:44:33 +00:00
pct_chg_df = pd.concat(pct_chg_df_list)
def statistics_pct_chg(self, pct_chg_df: pd.DataFrame):
"""
1. 将各个symbol, 各个bar, 各个策略的pct_chg_total构建为新的数据结构,
symbol, bar, stratege_name_1, stratege_name_2, stratege_name_3, ...
stratege_name_1的值, 为该策略的pct_chg_total的值
2. 构建新的数据结构: symbol, bar, max_pct_chg_total_strategy_name, min_pct_chg_total_strategy_name
: BCT-USDT, 15m, 均线macd结合策略2, 全均线策略
3. 构建新的数据结构, bar, max_pct_chg_total_strategy_name, min_pct_chg_total_strategy_name
: 15m, 均线macd结合策略2, 全均线策略
4. 构建新的数据结构, symbol, max_pct_chg_total_strategy_name, min_pct_chg_total_strategy_name
: BCT-USDT, 均线macd结合策略2, 全均线策略
"""
logger.info("开始统计pct_chg")
2025-08-22 10:48:59 +00:00
if __name__ == "__main__":
2025-09-01 10:01:21 +00:00
trade_ma_strategy_main = TradeMaStrategyMain(is_us_stock=True)
2025-08-22 10:48:59 +00:00
trade_ma_strategy_main.batch_ma_break_statistics()