""" 订单流交易系统配置 所有敏感配置和参数都在此文件中管理 """ import os # ============ SMTP邮件配置 ============ SMTP_CONFIG = { "server": "smtp.qq.com", "port": 465, "sender": "240884432@qq.com", "receivers": ["240884432@qq.com"], "username": "240884432@qq.com", "password": os.getenv("SMTP_PASSWORD", "osjyjmbqrzxtbjbf"), # 从环境变量读取 } # ============ 飞书通知配置 ============ FEISHU_CONFIG = { "enabled": True, # 是否启用飞书通知 "webhook_url": "https://open.feishu.cn/open-apis/bot/v2/hook/8608dfa4-e599-462a-8dba-6ac72873dd27", "receivers": ["240884432@qq.com"], # 备用接收人列表 } # ============ 信号通知阈值配置 ============ SIGNAL_THRESHOLD = { "time_period": 30, # 平滑周期 "delta_sum_trend": 0, # delta累计趋势(保留字段) "delta_trend": 0, # delta趋势(保留字段) "dj_trend": 0, # dj趋势(保留字段) "delta_rate": 0.8, # delta信号阈值比例(0.8倍前120根最大值) "dj_rate": 0.8, # dj信号阈值比例(0.8倍前120根极值) "min_delta_abs": 350, # delta最小绝对值 "min_dj_abs": 8, # dj最小绝对值 } # ============ 交易参数配置 ============ # key: 合约代码, value: 交易参数 TRADING_PARAMS = { "IM2606": { "lots": 1, "price_offset": 5, "delta_threshold": 200, "imbalance_ratio": 3, "accumulation_threshold": 3, "period": "1min", "min_volume": 20, "merge_price": 5, "mini_price": 0.2, }, # "jm2609": { # "lots": 1, # "price_offset": 1, # 黄金波动较小,价格偏移也小 # "delta_threshold": 300, # "imbalance_ratio": 3, # "accumulation_threshold": 3, # "period": "1min", # "min_volume": 10, # 黄金成交量较大,可适当调高 # "merge_price": 2, # "mini_price": 0.5, # 黄金最小变动价位 # }, } # ============ SimNow模拟账户配置 ============ SIMNOW_CONFIG = { "investor_id": "223828", "password": os.getenv("SIMNOW_PASSWORD", "Zj1234!@#%"), "server_name": "TEST", # 交易服务器(电信1、电信2、移动、TEST、N视界、TEST环境) } # ============ 实盘账户配置(注释备用) ============ # LIVE_ACCOUNT_CONFIG = { # "broker_id": "", # "td_server": "121.37.80.177:20002", # "md_server": "121.37.80.177:20004", # "investor_id": "1114", # "password": os.getenv("LIVE_PASSWORD", ""), # "app_id": "", # "auth_code": "", # } # ============ 系统常量 ============ SYSTEM_CONFIG = { "queue_timeout": 5, "queue_max_size": 10, "queue_share_size": 200, "queue_warning_size": 5, # 超过此数量才警告 "json_save_interval": 10, "json_records_limit": 20, "stops_load_interval": 60, "data_dir": "traderdata", # === 回测/录制配置 === "mode": "backtest", # "live" | "backtest" "backtest_mode": "ofdata", # "ofdata" | "tick" "backtest_results_dir": "backtest_results", "initial_equity": 1000000.0, "contract_multiplier": { "im2606": 300, "jm2609": 60, # 焦煤:吨/手 "au2608": 1000, # 黄金:克/手 }, "record_tick": True, # 是否录制 tick 数据 "tick_record_interval": 1, # 录制间隔(每N个tick录一个) } # ============ 夜盘收盘时间字典 ============ # key: 品种代码(去掉数字), value: 夜盘收盘时间 NIGHT_CLEARING_TIME = { "sc": (2, 30), # SC 原油 "bc": (1, 0), # BC 碳酸锂 "lu": (23, 0), # LU 低硫燃料油 "nr": (23, 0), # NR 天然橡胶 "au": (2, 30), # AU 黄金 "ag": (2, 30), # AG 白银 "ss": (1, 0), # SS 不锈钢 "sn": (1, 0), # SN 锡 "ni": (1, 0), # NI 镍 "pb": (1, 0), # PB 铅 "zn": (1, 0), # ZN 锌 "al": (1, 0), # AL 铝 "cu": (1, 0), # CU 铜 "ru": (23, 0), # RU 橡胶 "rb": (23, 0), # RB 螺纹钢 "hc": (23, 0), # HC 热卷 "fu": (23, 0), # FU 燃料油 "bu": (23, 0), # BU 沥青 "sp": (23, 0), # SP 纸浆 "PF": (23, 0), # PF 短纤维 "SR": (23, 0), # SR 白糖 "CF": (23, 0), # CF 棉花 "CY": (23, 0), # CY 棉纱 "RM": (23, 0), # RM 菜籽粕 "MA": (23, 0), # MA 甲醇 "TA": (23, 0), # TA PTA "ZC": (23, 0), # ZC 动力煤 "FG": (23, 0), # FG 玻璃 "OI": (23, 0), # OI 菜籽油 "SA": (23, 0), # SA 纯碱 "p": (23, 0), # P 棕榈油 "j": (23, 0), # J 焦炭 "jm": (23, 0), # JM 焦煤 "i": (23, 0), # I 铁矿石 "l": (23, 0), # L 塑料 "v": (23, 0), # V PVC "pp": (23, 0), # PP 聚丙烯 "eg": (23, 0), # EG 乙二醇 "c": (23, 0), # C 玉米 "cs": (23, 0), # CS 玉米淀粉 "y": (23, 0), # Y 豆油 "m": (23, 0), # M 豆粕 "a": (23, 0), # A 大豆 "b": (23, 0), # B 豆二 "rr": (23, 0), # RR 粳米 "eb": (23, 0), # EB 苯乙烯 "pg": (23, 0), # PG 液化石油气 }