Skip to content

dingzhengxia/monitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


监控与信号程序 - 配置文件 config.json 详解

概述

本配置文件是整个监控系统的“控制中心”和“大脑”。通过调整此文件中的参数,您可以精细地定义系统的监控范围、策略行为和通知方式,而无需修改任何代码。


第1部分: app_settings - 应用程序全局设置

此部分定义了程序的基础运行环境和核心行为。

参数 值示例 详细说明
exchange "binance" [交易所接口] 指定程序连接的加密货币交易所。名称必须是 ccxt 库支持的标准小写名称 (e.g., "okx", "bybit")。
default_market_type "swap" [默认市场类型] 指定程序在与交易所交互时默认使用的市场类型。
"swap": 永续合约市场。
"spot": 现货市场。
check_interval_minutes 15 [扫描任务频率] 主信号扫描任务的执行周期,单位为分钟。例如,15 表示每隔15分钟,系统会对所有监控对象执行一次全面的策略检查。
log_level "INFO" [日志详细级别] 控制程序在控制台和日志文件 (monitor.log) 中输出信息的详细程度。
"DEBUG": 调试模式,输出所有计算细节,用于排查问题。
"INFO": 标准模式,输出关键流程节点信息,用于日常监控。
"WARNING": 警告模式,只记录潜在问题和错误。
"ERROR": 错误模式,只记录导致程序功能异常的严重错误。
max_workers 2 [并发扫描线程数] 执行信号扫描时,同时工作的最大线程数量。较高的值可以加快扫描100个币种的速度,但也会在短时间内产生更多的API请求。建议范围: 5-15,具体取决于您的网络和API速率限制。

第2部分: market_settings - 市场与扫描对象

此部分定义了程序的“雷达”要扫描哪些目标。

参数 值示例 详细说明
timeframes ["15m", "1h", "4h", "1d"] [分析时间周期] 一个列表,定义了需要进行分析的时间框架。程序会对每一个监控对象,在列表中的所有时间周期上独立运行一次所有策略。
static_symbols ["BTC/USDT:USDT"] [静态监控列表] 一个交易对列表,这些币种将被永久监控,不受动态扫描结果的影响。适合您希望始终关注的核心资产。
dynamic_scan (object) [动态热点扫描配置]
enabled true [启用开关] true: 启用动态扫描,监控列表将是static_symbols和热门币种的并集。false: 关闭动态扫描,程序将监控static_symbols列表中的币种。
top_n_for_signals 100 [扫描广度] 启用动态扫描时,系统会自动获取市场上实时成交额排名前 100 的币种作为监控目标。
exclude_symbols ["USDT", "USDC"] [扫描排除列表] 在动态扫描获取热门币种时,会自动过滤掉此列表中的币种(通常用于排除没有分析意义的稳定币或锚定资产)。

第3部分: strategy_params - 核心交易策略参数

这是系统的“大脑”,所有策略的具体行为和触发条件都在这里定义。

3.1. 动态自适应阈值 (Dynamic Multipliers)

模块目的:为不同流动性(即成交量排名)的资产设定差异化的判断标准,以提高信号质量。

dynamic_volume_multipliers (动态成交量乘数)
  • 应用场景: 作用于所有设置了 volume_confirm: true 的策略,以及强制要求成交量确认的 volume_breakout 策略。
  • 核心功能: 替代策略中固定的 volume_multiplier 参数,根据币种排名动态计算成交量放大倍数阈值。
参数 值示例 技术详解
enabled true [启用开关] true:启用动态成交量乘数。false:所有策略将回退使用各自的静态volume_multiplier参数。
method "linear" [计算方法]
"linear": 线性插值法。乘数会根据币种排名,在min_multipliermax_multiplier之间平滑地线性增长。
"stepped": 阶梯增长法。按rank_step_size将排名分层,同层内的币种使用相同的乘数。
min_multiplier 1.5 [基准下限] 排名第一的资产所需的最低放量倍数。
max_multiplier 10.0 [基准上限] 排名末尾的资产所需的最高放量倍数。旨在过滤低流动性资产的无效放量。
apply_to_rank_n 100 [作用范围] 动态规则生效的排名范围。应与 top_n_for_signals 保持一致。
dynamic_atr_multipliers (动态ATR乘数)
  • 应用场景: 主要作用于 volatility_breakout 策略。
  • 核心功能: 替代固定的 atr_multiplier,为不同波动特性的资产设置不同的“异常波动”判断标准。
参数 值示例 技术详解
enabled false [启用开关] true:启用动态ATR乘数。falsevolatility_breakout 策略将使用其自带的静态atr_multiplier参数。
method "linear" [计算方法]dynamic_volume_multipliers中的method完全相同。
min_multiplier 1.5 [头部资产标准] 排名第一的资产,其波动幅度只需超过近期平均ATR的 1.5 倍即可触发警报。
max_multiplier 5.0 [长尾资产标准] 排名末尾的资产,其波动幅度需要超过近期平均ATR的 5.0 倍才能触发警报。
apply_to_rank_n 100 [作用范围] 该动态规则生效的排名范围。应与top_n_for_signals保持一致。

3.2. 趋势判断 (Trend EMA)

模块目的:提供统一的、多时间周期自适应的趋势判断引擎,作为下游策略顺势交易的依据。

trend_ema_short
  • 应用场景: 用于分析短时间周期图表(≤ 1小时,如 15m, 1h)。
  • 目的: 使用较短的EMA周期组合,以更灵敏地捕捉日内或短线的趋势变化。
参数 值示例 详细说明
fast 12 [快速EMA周期] 代表最短期的价格动能。
medium 26 [中速EMA周期] 代表中期的价格趋势。
long 60 [慢速EMA周期] 代表该时间周期下的长期基准趋势。
trend_ema_long
  • 应用场景: 用于分析长时间周期图表(> 1小时,如 4h, 1d)。
  • 目的: 使用更长的EMA周期组合,以过滤短期噪音,识别更稳定的宏观波段趋势。
参数 值示例 详细说明
fast 26 [快速EMA周期]
medium 50 [中速EMA周期]
long 120 [慢速EMA周期]

3.3. 具体策略 (Strategies)

ema_cross (EMA交叉)

作用:捕捉价格有效突破关键长期均线的信号。

参数 值示例 详细说明
enabled true 是否启用本策略。
period 120 [均线周期] 用于判断交叉的核心EMA均线周期。
volume_confirm true [成交量过滤] 若为true,突破信号必须伴随成交量放大。
volume_multiplier 2.0 [备用值] 如果 dynamic_volume_multipliers 关闭,使用的静态放量倍数。
atr_period 14 用于计算ATR的周期。
atr_multiplier 1.0 [有效突破缓冲区] 价格需突破EMA后再额外走 1.0 * ATR 的距离。注意:1.0 是一个非常严格的值,建议设为 0.1 - 0.3
kdj_cross (KDJ交叉)

作用:捕捉震荡行情中的潜在反转点,并在趋势行情中提供警示。

参数 值示例 详细说明
enabled true 是否启用本策略。
fast_k, slow_k, slow_d 9, 3, 3 KDJ指标的标准参数。
volume_confirm true [成交量过滤] 若为true,KDJ金叉/死叉信号必须伴随成交量放大。
volume_multiplier 2.0 [备用值] 如果 dynamic_volume_multipliers 关闭,使用的静态放量倍数。
volatility_breakout (波动率突破)

作用:监测市场波动性,当单根K线波幅远超近期平均水平时报警。

参数 值示例 详细说明
enabled true 是否启用本策略。
atr_period 14 用于计算ATR以衡量“正常”波动范围的周期。
atr_multiplier 2.5 [波动放大阈值] 当前K线振幅需要超过近期平均ATR的 2.5 倍才算异常。注意: 若dynamic_atr_multipliers启用,此值为备用。
volume_confirm true [成交量过滤] 若为true,异常波动必须伴随成交量放大。
volume_multiplier 2.0 [备用值] 如果 dynamic_volume_multipliers 关闭,使用的静态放量倍数。
volume_breakout (高级量价突破)

作用:系统的核心突破策略,识别价格对被市场反复验证的“价格兴趣区”的有效突破。

参数 值示例 详细说明
enabled true 是否启用本策略。
level_detection (object) 高级水平位检测配置
clustering (object) 价格聚类算法配置,用于识别“价格兴趣区”。
▷▷ atr_grouping_multiplier 0.5 [集群半径] 两个拐点的价格差在0.5 * ATR范围内,即视为同一个区域。值越小,区域越少但越精确。
▷▷ min_cluster_size 2 [区域强度] 一个“兴趣区”至少需要被 2 个不同的拐点触碰过,才被认为有效。
▷▷ min_separation_atr_mult 1.0 [区域间距] 最终输出的任意两个水平位之间,价格距离必须大于 1.0 * ATR
pivots (object) 枢轴点算法配置,用于和“兴趣区”进行共振验证。
breakout_period 120 [备用方案] 当高级算法找不到水平位时,使用的滚动高/低点周期。
volume_ma_period 20 计算成交量均线时回溯的K线数量。
atr_period 14 用于计算ATR的周期。
atr_multiplier_breakout 0.1 [有效突破缓冲区] 价格收盘时,必须超过水平位 0.1 * ATR 的距离才算有效突破。
rsi_divergence (RSI背离)

作用:寻找价格与RSI指标走势不一致的情况,作为潜在趋势反转的早期预警。

参数 值示例 详细说明
enabled false 是否启用本策略。
rsi_period 14 RSI指标的计算周期。
lookback_period 60 寻找背离时,回溯的K线数量。

第4部分: daily_report - 每日报告设置

此部分控制每日定时发送的市场宏观报告内容。

参数 值示例 详细说明
enabled true 是否启用每日报告功能。
scan_time_beijing "08:30" 每日报告在北京时间的运行时间。
top_n_by_volume 300 报告分析的币种范围,基于成交量排名前300的币种。
top_n_gainers 10 报告中显示的“涨幅榜”的数量。
min_consecutive_days 2 一个币种至少连涨2天,才能进入“连涨榜”。
volume_ma_period 20 计算“成交量异动榜”时,使用的成交量均线周期。
top_n_volume_ratio 10 报告中显示的“成交量异动榜”的数量。

第5部分: notification_settings - 通知渠道设置

此部分配置信号和报告的发送目的地。

参数 值示例 详细说明
dingtalk (object) 钉钉机器人配置
enabled true 是否启用钉钉通知。
webhook_url "https://..." 钉钉机器人的Webhook地址。
secret "SEC..." 钉钉机器人的加签密钥 (Secret),如果安全设置中选择了“加签”。
desktop (object) 桌面弹窗通知配置
enabled true 是否启用桌面通知。
timeout_seconds 30 桌面通知的显示驻留时间(秒)。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published