|
|
4 weeks ago | |
|---|---|---|
| .. | ||
| README.md | 1 month ago | |
| future_all_change_trend.py | 4 months ago | |
| future_candlestick_hatch_analysis.py | 1 month ago | |
| future_grid_trading_analysis.py | 1 month ago | |
| future_grid_trading_analysis2.py | 4 weeks ago | |
| future_ma5_deviation_analysis.py | 1 month ago | |
| future_ma_cross_analysis.py | 4 months ago | |
| future_pattern_comprehensive.py | 1 month ago | |
| get_dominant_future.py | 1 month ago | |
本目录包含期货市场的各种研究算法和分析工具,用于量化分析期货市场的技术指标、价格走势和交易策略。所有代码基于聚宽API开发,适用于聚宽在线研究平台。
future_ma_cross_analysis.py)分析期货合约的多均线穿越事件,识别同时穿越至少3条均线的K线,并分析后续收益表现。
def check_multi_ma_cross(row):
"""检查单日K线是否向上或向下穿越了至少3条均线"""
# 条件:开盘价在均线一侧,收盘价在均线另一侧
# 上穿:开盘价 < 均线 且 收盘价 > 均线
# 下穿:开盘价 > 均线 且 收盘价 < 均线
future_all_change_trend.py)分析期货市场整体的价格变化趋势,计算每日市场平均变化率和正负变化分布。
def process_data(df, std_dev_multiplier=3):
"""处理数据并过滤异常值"""
# 计算每日平均变化率
# 统计正负变化数量
# 计算滚动平均值
# 过滤异常值
future_pattern_comprehensive.py)核心研究项目 - 研究期货品种在大幅下跌后出现特定K线形态的规律,并分析后续走势表现。这是一个综合性的技术形态分析工具。
第一部分:分析配置参数 (AnalysisConfig类)
第二部分:技术形态分析器主类 (FuturePatternAnalyzer类)
第三部分:测试和演示代码 (PatternAnalysisTests类)
第四部分:主程序入口 (main函数)
# 时间设置
START_DATE = '2022-01-01' # 建议至少2年数据
END_DATE = '2024-12-31'
# 筛选条件
MIN_DRAWDOWN_THRESHOLD = 0.30 # 30%最小回撤
KLINE_CONDITIONS = {
'max_open_close_diff': 0.01, # 1%开收差异
'min_high_open_gain': 0.03, # 3%最高涨幅
}
# 分析参数
FOLLOW_UP_WEEKS = 10 # 后续跟踪10周
SUCCESS_RETURN_THRESHOLD = 0.05 # 5%成功率阈值
# 基本使用 - 完整分析
results = run_pattern_analysis(mode='full')
# 快速测试
results = run_pattern_analysis(mode='quick')
# 自定义参数测试
results = run_pattern_analysis(mode='custom')
# 逐步功能测试
run_pattern_analysis(mode='step')
# 直接使用分析器类
analyzer = FuturePatternAnalyzer('2022-01-01', '2024-12-31')
results = analyzer.run_full_analysis()
future_major_decline_YYYYMMDD_HHMMSS.csv - 大幅下跌期货品种future_kline_patterns_YYYYMMDD_HHMMSS.csv - 识别的K线形态future_pattern_performance_YYYYMMDD_HHMMSS.csv - 后续走势分析future_pattern_summary_YYYYMMDD_HHMMSS.csv - 统计汇总kline_pattern_{品种}_{日期}.png - K线图表=== 期货技术形态规律分析报告 ===
总分析期货品种数: 85
大幅下跌品种数: 12
识别出的目标形态数: 8
完成后续走势分析数: 8
=== 后续走势统计分析 ===
10周内最高收益率统计:
平均值: 15.32%
正收益比例: 7/8 (87.5%)
=== 交易成功率分析 ===
成功率: 75.0%
future_grid_trading_analysis.py)研究期货网格交易策略在不同配置下的表现,支持多种交易场景的对比分析。该工具实现了完整的网格交易系统,核心功能包括主力合约自动切换、强制平仓和重新建仓逻辑。
1. 主力合约监控与选择
# 合约选择算法
def select_contracts():
"""
1. 首先获取商品的主导合约
2. 如果主导合约在可用列表中,选择它
3. 如果主导合约不在列表中,选择未来到期日期最近且晚于主导合约的合约
例如:主导合约SA2507.XZCE -> 选择SA2509.XZCE而不是SA2601.XZCE
"""
2. 合约切换与强制平仓
3. 智能重新建仓规则
基础头寸交易重新建仓:
网格交易头寸重新建仓:
合约切换示例(SA2509→SA2601,之前网格头寸为1250和1200):
网格对冲交易头寸重新建仓:
1. 基础头寸交易
2. 网格交易策略
3. 网格对冲策略
4. 组合策略
class GridTradingConfig:
# 时间范围
START_DATE = datetime.datetime(2025, 6, 1)
END_DATE = datetime.datetime(2025, 9, 20)
# 核心商品配置
CORE_COMMODITIES = {
'SA': ['SA2509.XZCE', 'SA2601.XZCE'], # 纯碱
'MA': ['MA2501.XZCE', 'MA2505.XZCE'], # 甲醇
'AU': ['AU2412.XSGE', 'AU2502.XSGE'], # 黄金
'AG': ['AG2412.XSGE', 'AG2502.XSGE'], # 白银
'RU': ['RU2501.XSGE', 'RU2505.XSGE'], # 橡胶
}
# 基础头寸网格
BASE_POSITION_GRID = {
'SA': {1400: 10, 1300: 10, 1200: 10, 1100: 10, 1000: 10, 900: 10},
'MA': {2500: 8, 2400: 8, 2300: 8, 2200: 8, 2100: 8, 2000: 8},
# ...
}
# 网格交易配置
GRID_TRADING_CONFIG = {
'SA': {
'start_price': 1250,
'grid_size': 50,
'quantity_per_grid': 5,
'exit_grid_size': 50
},
# ...
}
# 网格对冲配置
GRID_HEDGE_CONFIG = {
'stop_loss_percentage': 0.02, # 2%止损
'enable_hedge_strategy': True
}
# 基本使用
results = run_grid_trading_analysis()
# 自定义配置
class CustomConfig(GridTradingConfig):
START_DATE = datetime.datetime(2025, 1, 1)
END_DATE = datetime.datetime(2025, 12, 31)
GRID_HEDGE_CONFIG = {
'stop_loss_percentage': 0.015, # 1.5%止损
'enable_hedge_strategy': True
}
results = run_grid_trading_analysis(CustomConfig)
grid_trading_records_YYYYMMDD_HHMMSS.csv
grid_trading_performance_YYYYMMDD_HHMMSS.csv
=== 四种交易场景对比分析 ===
策略名称 总交易次数 胜率 总盈亏 平均盈亏 盈亏比
基础头寸交易 45 73.33% 1250.50 27.79 2.15
网格交易策略 32 68.75% 890.25 27.82 1.87
网格对冲策略 28 64.29% 650.75 23.24 1.54
组合策略 60 66.67% 1541.00 25.68 1.78
future_candlestick_hatch_analysis.py)分析期货合约中带有明显影线的K线,识别具备预测价值的烛台形态,并分析它们对未来价格走势的预测能力。
# 形态识别条件
def check_hatch_pattern(row, body_threshold, hatch_ratio=1.2, opposite_ratio=0.5):
"""检查K线是否符合影线形态条件"""
body_length = abs(close - open)
upper_hatch = high - max(open, close)
lower_hatch = min(open, close) - low
# 条件1: 实体长度 >= 历史平均实体长度
# 条件2: 主影线长度 >= 1.2 × 实体长度
# 条件3: 相反影线长度 < 0.5 × 实体长度
class CandlestickHatchConfig:
ANALYSIS_START_DATE = datetime.datetime(2025, 8, 1) # 分析开始日期
ANALYSIS_END_DATE = datetime.datetime(2025, 8, 20) # 分析结束日期
HISTORICAL_DAYS = 365 # 历史数据回溯期
FORWARD_DAYS = 15 # 前向分析期
FUTURE_MONITOR_DAYS = 10 # 未来表现跟踪期
HATCH_TO_BODY_RATIO = 1.2 # 影线与实体长度比率阈值
OPPOSITE_HATCH_RATIO = 0.5 # 相反影线与实体长度比率阈值
MAX_REVENUE_THRESHOLD = 0.02 # 最大盈利阈值
MAX_LOSS_THRESHOLD = 0.005 # 最大亏损阈值
MAX_ANALYSIS_CONTRACTS = 10 # 最大分析合约数
# 交易仓位管理参数
INITIAL_TRADE_AMOUNT = 20000 # 初始交易金额
LOSS_RATE = 0.01 # 亏损交易的亏损率
PROFIT_DRAWDOWN_RATE = 0.02 # 盈利交易的回撤率
# 主力合约数据结构 (dict1)
contract_data = {
'L2601.XDCE': [开始日期, 结束日期],
'A2505.XDCE': [开始日期, 结束日期]
}
# 影线形态数据结构 (dict2)
pattern_data = {
'L2601.XDCE': {
datetime.date(2025, 8, 5): {
'date': '2025-08-05',
'high': 6520.0, 'low': 6450.0, 'open': 6480.0, 'close': 6500.0,
'body_len': 20.0, 'hatch_dire': 'up', 'hatch_len': 50.0,
'max_revenue_date': '2025-08-08', 'max_revenue': 0.0234,
'min_revenue_date': '2025-08-06', 'min_revenue': -0.0156,
'conclusion': 'true', # 形态有效性判断
'body_direction': 'up', # 实体方向
'direction_consistency': 'false' # 方向一致性
}
}
}
系统自动为每个识别的形态计算conclusion字段,判断逻辑:
# 基本使用
results = run_candlestick_hatch_analysis()
# 自定义配置
class CustomConfig(CandlestickHatchConfig):
HATCH_TO_BODY_RATIO = 1.5 # 更严格的影线要求
OPPOSITE_HATCH_RATIO = 0.3 # 更严格的相反影线要求
MAX_REVENUE_THRESHOLD = 0.03 # 更高的盈利阈值要求
MAX_LOSS_THRESHOLD = 0.003 # 更低的亏损容忍度
FUTURE_MONITOR_DAYS = 15 # 更长的跟踪期
results = run_candlestick_hatch_analysis(CustomConfig)
future_candlestick_hatch_analysis_YYYYMMDD_HHMMSS.csvimport pandas as pd # 数据处理
import numpy as np # 数值计算
from jqdata import * # 聚宽API
import matplotlib.pyplot as plt # 图表绘制
future_candlestick_hatch_analysis.py)维护团队: jukuan研究团队
最后更新: 2025年9月
技术支持: 基于聚宽平台开发,需要相应API权限
使用许可: 仅供研究和学习使用