项目地址: https://github.com/ahsan3219/ChartScanAI
策略介绍
增强型加密货币交易策略
该策略综合运用技术指标、基于市场状况的动态权重分配、蜡烛图模式确认以及专为加密货币交易量身定制的风险管理,数据通过 ccxt 获取。
可用周期 :1 小时(1h)、4 小时(4h)、1 天(1d)、1 周(1w)。
1. 指标
- 核心指标 :RSI(14)、EMA(50)、ADX(14)、OBV
- 风险指标 :ATR(14)
2. 市场状况(ADX)
- ADX > 25 :趋势行情(提高 EMA 和 ADX 的权重)
- ADX < 20 :盘整行情(提高 RSI 的权重)
- 20 - 25 :中性行情(基础权重)
3. 指标信号
- RSI :若小于 30,信号为 +1;若大于 70,信号为 -1;否则为 0
- EMA :若收盘价大于 EMA(50),信号为 +1;若收盘价小于 EMA(50),信号为 -1;否则为 0
- ADX :信号为 0(影响权重,不直接影响得分)
- OBV :若当前值大于前值,信号为 +1;若当前值小于前值,信号为 -1;否则为 0
4. 风险管理
- 止损 :入场价 ±(2 × ATR)
- 止盈 :入场价 ±(4 × ATR)(风险回报比 1:2)
- 头寸规模 :若得分绝对值 > 5,满仓;若 0 < 得分绝对值 ≤5,半仓
5. 蜡烛图确认
- 被识别的蜡烛图模式(如锤子线、吞没形态等)仅在方向(看涨 / 看跌)与基础得分方向一致时,分别添加权重 1.12。
6. 最终信号
- 由加权信号总和 + 条件蜡烛图调整共同计算得出。
- 输出:多 / 空 / 中性信号、头寸规模、止损 / 止盈价位。
核心逻辑
1. 数据检查
输入数据验证:函数首先检查输入数据框(df)是否为空或行数少于 2 行。因为至少需要两行数据来比较 OBV(能量潮指标)等指标。
2. 获取最新和前一行数据
提取数据:获取数据框中最新一行(latest)和前一行(previous)的数据,用于后续指标的比较和计算。
3. 市场条件适应
ADX 值获取:从最新数据中获取 ADX(平均趋向指数)值,用于判断市场处于趋势行情还是盘整行情。
权重调整:根据 ADX 值调整不同指标的权重。如果 ADX 大于 25,市场处于趋势行情,增加 EMA(指数移动平均线)和 ADX 的权重;如果 ADX 小于 20,市场处于盘整行情,增加 RSI(相对强弱指数)的权重。
4. 指标信号定义
RSI 信号:根据 RSI 值生成买卖信号。RSI 低于 30 表示超卖(买入信号),高于 70 表示超买(卖出信号)。
EMA 信号:比较收盘价和 EMA 的大小,生成买卖信号。收盘价高于 EMA 为买入信号,低于 EMA 为卖出信号。
OBV 信号:比较最新和前一时刻的 OBV 值,生成买卖信号。OBV 增加为买入信号,减少为卖出信号。
5. 计算分数和最终信号
基础分数计算:根据调整后的权重和指标信号计算基础总分。
蜡烛图模式整合:调用函数获取蜡烛图模式信号,并根据基础分数和蜡烛图模式调整最终分数。
最终信号生成:根据最终分数生成交易信号(买入、卖出或持币)。
6. 风险管理
ATR 值获取:从最新数据中获取 ATR(平均真实波幅)值,用于计算止损和止盈价位。
头寸大小确定:根据最终分数的绝对值确定头寸大小。如果分数绝对值大于某个阈值,使用全额头寸;否则使用半额头寸。
止损和止盈计算:根据 ATR 值和交易信号计算止损和止盈价位。
7. 返回结果
结果汇总:将所有计算结果汇总到一个字典中并返回,包括各个指标的值、调整后的权重、市场条件、基础和最终分数、交易信号、头寸大小、止损和止盈价位等。
核心逻辑
综合多种技术指标:结合多个技术指标(如 RSI、EMA、OBV、ADX)的优点,全面分析市场状况。
市场条件适应性:根据市场是趋势行情还是盘整行情,动态调整指标权重,提高策略的适应性和有效性。
风险管理:通过 ATR 指标计算合理的止损和止盈价位,控制交易风险。
信号整合:将各个指标的信号整合成一个综合分数,最终生成明确的交易信号。
该函数通过综合分析多个技术指标和市场条件,生成可靠的交易信号,同时考虑风险管理和头寸控制。