-
bitcoin $87959.907984 USD
1.34% -
ethereum $2920.497338 USD
3.04% -
tether $0.999775 USD
0.00% -
xrp $2.237324 USD
8.12% -
bnb $860.243768 USD
0.90% -
solana $138.089498 USD
5.43% -
usd-coin $0.999807 USD
0.01% -
tron $0.272801 USD
-1.53% -
dogecoin $0.150904 USD
2.96% -
cardano $0.421635 USD
1.97% -
hyperliquid $32.152445 USD
2.23% -
bitcoin-cash $533.301069 USD
-1.94% -
chainlink $12.953417 USD
2.68% -
unus-sed-leo $9.535951 USD
0.73% -
zcash $521.483386 USD
-2.87%
如何对加密货币的KDJ交易策略进行回报?
The KDJ indicator enhances crypto trading strategies by combining %K, %D, and the sensitive J line to detect overbought/oversold conditions and generate timely buy/sell signals.
2025/08/02 03:56
了解加密货币交易中的KDJ指标
KDJ指标是一种源自随机振荡器的动量振荡器,在技术分析中广泛用于识别金融市场中的过分购买和超卖条件。在加密货币交易的背景下,KDJ在传统%k和%d线上添加了第三个组件-J行,从而提高了信号准确性。该公式涉及根据指定的回顾期(通常为9个周期)在最高高和最低的基础上计算%k值,将其平滑为%d(信号线) ,然后得出%j = 3×%d - 2×%k 。这些值在0到100之间波动,读数超过80个通常表示过多的条件,低于20的信号传导超出水平。
对于高度波动的加密资产,KDJ可以帮助交易者发现潜在的逆转点。 J线的敏感性使其可以在%k和%d线上越过或以下,从而产生或出售信号。将KDJ应用于进行回测时,必须了解这些信号在不同的市场条件下(例如范围,趋势或高挥发性环境)的行为。没有适当的历史验证的指示器误解可能会导致错误的条目和退出。
建立加密策略的回测环境
要回顾一下KDJ策略,您需要一个能够处理历史加密价格数据并执行交易逻辑的强大环境。 Python是一种首选语言,因为其丰富的金融图书馆生态系统。安装关键软件包,例如用于数据操作的pandas ,用于数值操作的numpy以及ccxt或yfinance (带有加密支持),以从Binance或Kraken等交换中获取历史烛台数据。
- 使用PIP安装所需的库:
pip install pandas numpy ccxt matplotlib - 使用
ccxt连接到交换并检索OHLCV(开放,高,低,关闭,音量)数据:import ccxt exchange = ccxt.binance() ohlcv = exchange.fetch_ohlcv('BTC/USDT', '1d', limit=1000) - 将数据转换为带有列的熊猫数据框架:时间戳,开放,高,低,关闭,音量。
- 确保时间戳将其转换为DateTime格式,并正确索引以进行时间序列分析。
此环境使您可以根据定义的规则计算KDJ值并模拟交易。准确性取决于干净,高质量的数据 - 确保在继续之前处理缺失的蜡烛或离群值。
从历史加密数据计算KDJ值
回测的核心在于正确计算KDJ组件。首先定义回顾期(通常是9支蜡烛)。对于每个蜡烛,使用公式计算%k :
%k = [(最关闭 - 最低) /(最高高 - 最低 - 最低)]×100
在哪里:
- 最低最低是最近9个时期的最小值
- 最高高是同一时期的最高高
然后,平滑%k以获得%d ,通常使用3周期简单移动平均线(SMA):
%d = sma(%k,3)
最后,计算%j行:
%j = 3×%d - 2×%k
在Python中实施此功能:
import pandas as pddef calculate_kdj(df,n = 9,d_n = 3):df['lowest_low'] = df['low'].rolling(window=n).min() df['highest_high'] = df['high'].rolling(window=n).max() df['%K'] = ((df['close'] - df['lowest_low']) / (df['highest_high'] - df['lowest_low'])) * 100 df['%D'] = df['%K'].rolling(window=d_n).mean() df['%J'] = 3 * df['%D'] - 2 * df['%K'] return df将此功能应用于您的数据框架。处理可能发生零的划分的边缘案例(例如,高等于低)。适当地填充初始NAN值以避免信号产生错误。
定义和实施KDJ交易规则
典型的基于KDJ的策略会基于交叉和极端水平生成信号。定义明确的进入和退出条件:
- 购买信号:
- %K交叉高于%d,而两者都低于20(超售区)
- %j下降到0以下,然后返回到0
- 卖出信号:
- %k交叉低于%d,而两者都超过80(超买区)
- %j上升到100以上,然后跌至100以下
在代码中实施这些规则:
df['buy_signal'] = ( (df['%K'].shift(1) < df['%D'].shift(1)) & (df['%K'] > df['%D']) & (df['%K'] < 20) & (df['%D'] < 20)) df ['sell_signal'] =(
(df['%K'].shift(1) > df['%D'].shift(1)) & (df['%K'] < df['%D']) & (df['%K'] > 80) & (df['%D'] > 80))
使用状态变量跟踪位置。当购买信号触发并出现卖出信号时,在蜡烛结束时模拟购买。解释滑倒和交易费用(例如,每次交易0.1%)以反映现实世界中的条件。
可视化和评估策略性能
模拟交易后,使用关键指标和视觉工具评估绩效。用KDJ线条和商标绘制价格图表:
import matplotlib.pyplot as plt图,(ax1,ax2)= plt.subplot(2,figsize =(12,8),sharex = true) ax1.plot(df ['close'],label ='btc/usdt') ax1.scatter(df.index [df ['buy_signal']],df'close'],标记='^',color ='green') ax1.scatter(df.index [df ['sell_signal']],df'close'],标记='v',color ='red') ax2.plot(df ['%k'],label ='%k') ax2.plot(df ['%d'],label ='%d') ax2.plot(df ['%j'],label ='%j') ax2.axhline(80,linestyle =' - ',color ='red') ax2.axhline(20,linestyle =' - ',color ='green') plt.legend() plt.show()计算性能指标:
- 总回报:(最终权益 /初始权益) - 1
- 获胜率:盈利交易的百分比
- 利润因素:毛利 /毛利损失
- 最大跌幅:最大的峰值下降
使用pandas来计算累积回报和下降。比较不同的加密货币和时间表的结果,以评估鲁棒性。
常见问题
我可以在流动性低的山寨币上使用KDJ进行回测吗?是的,但是请注意。低流动性山寨币经常表现出价格操纵和不稳定的蜡烛模式,这可能会扭曲KDJ信号。确保数据源提供可靠的OHLCV值。考虑过滤以低于阈值(例如100万美元)的平均每日量的资产,以避免误导结果。
如何调整不同时间范围的KDJ参数?默认的9,3设置适用于每日图表。对于1小时或15分钟的图表,将回顾期降低到5或7,以提高灵敏度。使用参数网格搜索进行测试组合。例如,通过n = 5至14和d_n = 2至4的循环记录每个循环性能。
是否有必要在KDJ进行回测,包括停止损失和替代组织吗?绝对地。原始的KDJ信号可能导致长时间的下降而没有风险控制。实施固定百分比停止损失(例如5%)和投入价的替代利(例如10%) 。如果满足KDJ销售状况或停车/卖方,则修改卖出逻辑以触发。
如何在多个加密货币上自动进行回测?使用循环在交易对列表上迭代。对于每对,获取数据,计算KDJ,应用策略和存储策略结果摘要数据框架。并行使用concurrent.futures形式加快处理。将结果保存到CSV进行比较分析。
免责声明:info@kdj.com
所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!
如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。
- Exaverse 呼啸而至 Roguelike 场景:恐龙冒险等待着您!
- 2026-02-05 00:30:01
- 人工智能彻底改变了小错误狩猎:解锁隐藏的硬币价值
- 2026-02-04 21:50:02
- 区块链进化:比特币核心迎来新维护者,以太坊探索 ERC-8004 和 L2s Advance
- 2026-02-04 21:45:01
- 华尔街的水晶球:一家大银行在市场波动中大胆预测 Solana 2030
- 2026-02-04 22:15:02
- Chiliz 价格飙升:Vision 2030 蓝图公布了 CHZ 积极减少供应并扩大 SportFi 的规模
- 2026-02-04 22:10:01
- 比特币 ETF 紧张吗? “资产崩盘”的说法没有达到预期目标,聪明的资本纷纷涌入超额预售
- 2026-02-04 22:20:01
相关百科
如何识别加密货币趋势延续的“隐藏看涨背离”? (RSI 指南)
2026-02-04 17:19:52
了解隐藏的看涨背离1. 当价格形成更高的低点而 RSI 形成更低的低点时,就会出现隐藏的看涨背离——表明尽管明显疲软,但仍存在潜在的买盘压力。 2. 这种模式通常出现在持续的上升趋势中,表明卖家正在失去动力,而买家在逢低时仍然活跃。 3. 与常规看涨背离不同,隐性背离并不预测逆转——它确认了趋势强度...
如何在加密货币 4 小时时间范围内进行“看跌吞没”交易? (简短设置)
2026-02-04 21:19:33
看跌吞没模式识别1. 当一根小看涨蜡烛紧随其后的是一根较大的看跌蜡烛,其实体完全覆盖前一根蜡烛的实体时,看跌吞没形成。 2. 第二根蜡烛的开盘价必须高于第一根蜡烛的收盘价,收盘价低于第一根蜡烛的开盘价,表明抛售压力很大。 3. 看跌蜡烛时成交量应显着增加,以确认机构参与。 4. 当该形态出现在关键阻...
如何使用力量指数进行加密货币趋势验证? (价格和数量)
2026-02-04 22:40:15
了解力量指数的基本原理1. 力量指数通过将价格变化和交易量结合到单个振荡器中来衡量价格变动背后的力量。 2. 计算方法为今日收盘价与昨日收盘价之差,乘以今日成交量。 3. 正值表示购买压力;负值反映了市场上的销售主导地位。 4. 在加密货币市场中,成交量激增通常先于急剧突破或逆转,力量指数有助于区分...
如何将趋势规律自适应移动平均线(TRAMA)用于加密货币? (噪声滤波器)
2026-02-04 19:39:49
了解 TRAMA 基础知识1. TRAMA 是一种动态移动平均线,旨在适应不断变化的市场波动性和加密货币价格系列的趋势强度。 2. 与传统移动平均线不同,TRAMA 根据最近的价格规律性和偏差指标重新计算其周期和平滑因子。 3. 它通过测量滚动窗口内价格变化的标准偏差并相应地调整响应能力来合并噪声滤...
如何识别加密货币K线上的缓解区块? (SMC条目)
2026-02-04 16:00:10
了解 SMC 上下文中的缓解块1. 缓解区块代表加密 K 线图表上先前的不平衡或流动性已被完全吸收并随后因价格行为而失效的区域。 2. 这些区块出现在强劲的方向性走势之后,随后进行盘整,其中价格重新测试先前的波动高点或低点,但未能继续超越它们。 3. 仅当价格席卷相反的流动性池并果断结束超出先前...
如何在加密货币阻力区交易“乌云盖顶”? (反转形态)
2026-02-04 19:00:30
了解乌云盖层的形成1. 乌云盖顶是一种两蜡烛看跌反转形态,通常出现在加密货币价格图表的上升趋势之后。 2. 它以一根长绿色蜡烛开始,表明强劲的买盘压力和看涨势头的延续。 3. 第二根蜡烛的开盘价高于前一根蜡烛的收盘价,但收盘价低于前一根蜡烛的中点——通常会深入第一根蜡烛的主体。 4. 这种结构反映出...
如何识别加密货币趋势延续的“隐藏看涨背离”? (RSI 指南)
2026-02-04 17:19:52
了解隐藏的看涨背离1. 当价格形成更高的低点而 RSI 形成更低的低点时,就会出现隐藏的看涨背离——表明尽管明显疲软,但仍存在潜在的买盘压力。 2. 这种模式通常出现在持续的上升趋势中,表明卖家正在失去动力,而买家在逢低时仍然活跃。 3. 与常规看涨背离不同,隐性背离并不预测逆转——它确认了趋势强度...
如何在加密货币 4 小时时间范围内进行“看跌吞没”交易? (简短设置)
2026-02-04 21:19:33
看跌吞没模式识别1. 当一根小看涨蜡烛紧随其后的是一根较大的看跌蜡烛,其实体完全覆盖前一根蜡烛的实体时,看跌吞没形成。 2. 第二根蜡烛的开盘价必须高于第一根蜡烛的收盘价,收盘价低于第一根蜡烛的开盘价,表明抛售压力很大。 3. 看跌蜡烛时成交量应显着增加,以确认机构参与。 4. 当该形态出现在关键阻...
如何使用力量指数进行加密货币趋势验证? (价格和数量)
2026-02-04 22:40:15
了解力量指数的基本原理1. 力量指数通过将价格变化和交易量结合到单个振荡器中来衡量价格变动背后的力量。 2. 计算方法为今日收盘价与昨日收盘价之差,乘以今日成交量。 3. 正值表示购买压力;负值反映了市场上的销售主导地位。 4. 在加密货币市场中,成交量激增通常先于急剧突破或逆转,力量指数有助于区分...
如何将趋势规律自适应移动平均线(TRAMA)用于加密货币? (噪声滤波器)
2026-02-04 19:39:49
了解 TRAMA 基础知识1. TRAMA 是一种动态移动平均线,旨在适应不断变化的市场波动性和加密货币价格系列的趋势强度。 2. 与传统移动平均线不同,TRAMA 根据最近的价格规律性和偏差指标重新计算其周期和平滑因子。 3. 它通过测量滚动窗口内价格变化的标准偏差并相应地调整响应能力来合并噪声滤...
如何识别加密货币K线上的缓解区块? (SMC条目)
2026-02-04 16:00:10
了解 SMC 上下文中的缓解块1. 缓解区块代表加密 K 线图表上先前的不平衡或流动性已被完全吸收并随后因价格行为而失效的区域。 2. 这些区块出现在强劲的方向性走势之后,随后进行盘整,其中价格重新测试先前的波动高点或低点,但未能继续超越它们。 3. 仅当价格席卷相反的流动性池并果断结束超出先前...
如何在加密货币阻力区交易“乌云盖顶”? (反转形态)
2026-02-04 19:00:30
了解乌云盖层的形成1. 乌云盖顶是一种两蜡烛看跌反转形态,通常出现在加密货币价格图表的上升趋势之后。 2. 它以一根长绿色蜡烛开始,表明强劲的买盘压力和看涨势头的延续。 3. 第二根蜡烛的开盘价高于前一根蜡烛的收盘价,但收盘价低于前一根蜡烛的中点——通常会深入第一根蜡烛的主体。 4. 这种结构反映出...
查看所有文章














