7.8 KiB
7.8 KiB
加密货币市场K线形态策略使用指南
本项目已支持将K线形态策略应用于加密货币市场(Binance),可以同时扫描A股和加密货币市场。
新增功能
1. Binance数据获取器
- 文件:
src/data/binance_fetcher.py - 功能:
- 获取Binance交易所的K线数据
- 支持多种时间周期(1d, 4h, 1h等)
- 获取热门交易对(按24h交易量排序)
- 支持交易对搜索和筛选
- 自动缓存机制,减少API调用
2. 加密货币K线形态策略
- 文件:
src/strategy/crypto_kline_pattern_strategy.py - 特点:
- 继承自原有的
KLinePatternStrategy - 适配加密货币市场特点(24小时交易、高波动性)
- 支持USDT、BTC等多种计价货币
- 可配置最小交易量过滤
- 继承自原有的
3. 加密货币市场扫描脚本
- 文件:
crypto_scanner.py - 功能: 扫描Binance热门交易对,识别K线形态信号
安装依赖
# 安装python-binance库
pip install -r requirements.txt
或单独安装:
pip install python-binance>=1.0.19
配置说明
1. 编辑配置文件
打开 config/config.yaml,配置Binance API(可选):
data_source:
# Binance API配置(获取公开数据不需要API密钥)
binance_api_key: "" # 可选
binance_api_secret: "" # 可选
binance_testnet: false # 是否使用测试网
2. 策略参数配置
在 config/config.yaml 中配置加密货币策略参数:
strategy:
crypto_kline_pattern:
enabled: true # 是否启用
min_entity_ratio: 0.55 # 阳线实体最小占比55%
final_yang_min_ratio: 0.40 # 突破阳线实体最小占比40%
max_turnover_ratio: 100.0 # 最大换手率(加密货币较高)
timeframes: ["4hour", "daily", "weekly"] # 时间周期:4小时、日线、周线
scan_symbols_count: 100 # 扫描交易对数量
quote_asset: "USDT" # 计价货币
min_volume_usdt: 1000000 # 最小24h交易量(美元)
# 回踩监控配置
pullback_tolerance: 0.02 # 回踩容忍度2%
monitor_days: 30 # 监控天数
pullback_confirmation_days: 7 # 回踩确认天数
使用方法
方法1: 使用启动脚本(推荐)
# 扫描100个热门交易对
./start_crypto_scanner.sh
# 扫描50个热门交易对
./start_crypto_scanner.sh 50
# 扫描200个热门交易对
./start_crypto_scanner.sh 200
方法2: 直接运行Python脚本
# 扫描100个热门交易对(默认)
python crypto_scanner.py
# 扫描指定数量的交易对
python crypto_scanner.py 50
方法3: 在代码中使用
from src.data.binance_fetcher import BinanceFetcher
from src.strategy.crypto_kline_pattern_strategy import CryptoKLinePatternStrategy
from src.utils.notification import NotificationManager
# 初始化数据获取器
data_fetcher = BinanceFetcher()
# 初始化策略
strategy_config = {
'min_entity_ratio': 0.55,
'timeframes': ['4hour', 'daily', 'weekly'], # 4小时、日线、周线
'quote_asset': 'USDT'
}
notification_config = {'dingtalk': {'enabled': False}}
notification_manager = NotificationManager(notification_config)
strategy = CryptoKLinePatternStrategy(
data_fetcher,
notification_manager,
strategy_config
)
# 扫描市场
results = strategy.scan_market(max_symbols=100)
定时任务配置
使用crontab定时扫描
编辑 crontab/crypto-scanner 文件已包含预设的定时任务:
# 每天早上8点扫描
0 8 * * * root cd /app && python crypto_scanner.py 100
# 每天下午4点扫描
0 16 * * * root cd /app && python crypto_scanner.py 100
# 每天晚上12点扫描
0 0 * * * root cd /app && python crypto_scanner.py 100
# 每4小时扫描(适合4小时K线)
0 */4 * * * root cd /app && python crypto_scanner.py 50
# 周日深度扫描
0 10 * * 0 root cd /app && python crypto_scanner.py 200
加载定时任务:
# 在Docker容器中
crontab crontab/crypto-scanner
# 或在本地系统
crontab -e
# 然后复制crypto-scanner内容
策略说明
K线形态识别
与A股策略相同,识别"两阳线+阴线+突破阳线"形态:
- 基础形态(前3根K线): 阳线 + 阳线 + 阴线
- 前两根阳线: 实体部分占振幅55%以上
- 突破确认: 第4/5/6根K线中任意一根突破阴线最高价
- 突破阳线: 实体占振幅40%以上,收盘在EMA20上方
- 回踩确认: 价格先创新高,再回踩到阴线最高价附近
加密货币市场特点
- 24小时交易: 没有开盘收盘限制
- 高波动性: 换手率阈值设置较高(100%)
- 支持多周期: 4小时线(4h)、日线(1d)、周线(1w)
- 实时数据: 可以随时获取最新K线数据
输出结果
日志文件
- 位置:
logs/crypto_scanner_YYYY-MM-DD.log - 包含: 详细的扫描过程、信号发现、错误信息
数据库存储
扫描结果会自动保存到MySQL数据库:
- 扫描会话信息
- 发现的信号详情
- 形态形成记录
钉钉通知
如果配置了钉钉webhook,会自动发送:
- 信号汇总通知(每10个信号一组)
- 回踩提醒(每5个提醒一组)
- 包含交易对、价格、形态类型等关键信息
常见问题
1. 如何选择扫描的交易对数量?
- 日常监控: 50-100个交易对,速度快
- 全面扫描: 100-200个交易对,覆盖更全
- 深度分析: 200+个交易对,周末或特殊时段
2. 需要Binance API密钥吗?
- 不需要: 获取K线、ticker等公开数据不需要API密钥
- 需要: 如果要查询账户信息、下单等操作才需要
3. 时间周期如何选择?
- weekly(周线): 适合长线信号,信号质量最高,趋势更明确
- daily(日线): 适合中线信号,平衡信号质量和频率
- 4hour(4小时): 适合短线交易,信号更频繁,适合波段操作
4. 与A股策略有什么区别?
- 数据源: Binance API vs Tushare API
- 交易时间: 24小时 vs 交易日限制
- 换手率: 阈值更高,适应加密货币高波动
- 计价单位: USDT/BTC vs 人民币
5. 如何同时运行A股和加密货币扫描?
两个脚本独立运行,互不影响:
# A股扫描
./start_market_scanner.sh 200
# 加密货币扫描
./start_crypto_scanner.sh 100
注意事项
- API限制: Binance对API调用频率有限制,建议控制扫描频率
- 网络连接: 需要稳定的网络连接访问Binance API
- 数据准确性: 加密货币市场波动大,建议结合其他指标综合判断
- 风险提示: 本工具仅用于技术分析,不构成投资建议
技术架构
TradingAI/
├── src/
│ ├── data/
│ │ ├── binance_fetcher.py # Binance数据获取器(新增)
│ │ └── tushare_fetcher.py # A股数据获取器(原有)
│ └── strategy/
│ ├── crypto_kline_pattern_strategy.py # 加密货币策略(新增)
│ └── kline_pattern_strategy.py # A股策略(原有)
├── crypto_scanner.py # 加密货币扫描脚本(新增)
├── market_scanner.py # A股扫描脚本(原有)
├── start_crypto_scanner.sh # 加密货币启动脚本(新增)
├── start_market_scanner.sh # A股启动脚本(原有)
└── crontab/
├── crypto-scanner # 加密货币定时任务(新增)
└── market-scanner # A股定时任务(原有)
更新日志
v1.1.0 (2025-10-12)
- ✨ 新增Binance数据获取器
- ✨ 新增加密货币K线形态策略
- ✨ 新增加密货币市场扫描脚本
- ✨ 新增定时任务配置
- 📝 更新配置文件支持加密货币
- 📝 新增使用文档
贡献
欢迎提交Issue和Pull Request来改进此功能!
许可
与主项目保持一致