KDJ指标金叉选股公式介绍
以下代码由今日美股网(www.TodayUSStock.com)代码学院提供,KDJ指标是一种基于价格动量的技术分析工具,由K线(快速指标)、D线(慢速指标)和J线组成。当K线从下方穿过D线时,形成金叉,这通常被视为短线买入信号,表明可能出现反弹机会。
参数与数值的意义
参数 | 数值 | 意义 |
---|---|---|
Period | 9 | 计算RSV的周期,决定指标的敏感度。9天周期为常用标准,捕捉近期市场动量。 |
K Period | 3 | K线的平滑周期,影响K线的反应速度。3周期提供较快的反应。 |
D Period | 3 | D线的平滑周期,影响D线的平滑度。同样为3周期,使D线相对平滑。 |
针对不同产品的推荐参数
产品类型 | 推荐参数(Period, K Period, D Period) | 推荐理由 |
---|---|---|
股票日线图 | 9, 3, 3 | 标准设置,适用于大多数股票市场的日线图,提供较好的短期信号。 |
外汇或加密货币(短期图表) | 9, 2, 2 | 市场波动性高,使用较短周期以更快响应价格变化。 |
期货市场 | 9, 3, 3 | 标准参数适用于期货市场的趋势识别。 |
国内股票软件代码
通达信(中国)
// 通达信KDJ指标金叉选股公式 // RSV计算当前收盘价在9天内的相对位置 RSV := (currentClose - lowestLow(9)) / (highestHigh(9) - lowestLow(9)) * 100; // K线为RSV的3天移动平均 K := SMA(RSV, 3, 1); // D线为K线的3天移动平均 D := SMA(K, 3, 1); // J线为K线的3倍减去D线的2倍 J := 3 * K - 2 * D; // 判断K线是否在当天穿越D线(金叉) CROSS(K, D);
加载方法:进入“公式系统”菜单,选择“自定义指标”,输入或粘贴代码,保存为新指标,然后在图表中加载或在选股条件中使用。
同花顺(中国)
// 同花顺KDJ指标金叉选股公式 RSV := (C - LLV(L, 9)) / (HHV(H, 9) - LLV(L, 9)) * 100; K := SMA(RSV, 3, 1); D := SMA(K, 3, 1); J := 3 * K - 2 * D; CROSS(K, D);
加载方法:进入“选股器”或“条件选股”,选择“自定义选股公式”,输入或粘贴代码并保存,运行选股。
大智慧(中国)
// 大智慧KDJ指标金叉选股公式 RSV := (CLOSE - LLV(LOW, 9)) / (HHV(HIGH, 9) - LLV(LOW, 9)) * 100; K := SMA(RSV, 3, 1); D := SMA(K, 3, 1); J := 3 * K - 2 * D; CROSS(K, D);
加载方法:进入“自定义指标”或“选股”功能,选择“公式编辑器”,输入代码并保存,应用到图表或选股器中。
国外股票软件代码
MetaTrader 4/5 (MT4/MT5)
// MetaTrader 4/5 KDJ指标金叉选股公式 double RSV = (currentClose - lowestLow(9)) / (highestHigh(9) - lowestLow(9)) * 100; double K = iMAOnArray(RSV, 0, 3, 0, MODE_SMA, 1); double D = iMAOnArray(K, 0, 3, 0, MODE_SMA, 1); double J = 3 * K - 2 * D; if (Cross(K, D)) return true; else return false;
加载方法:在“导航器”中右键点击“指标”选项,选择“自定义指标”,点击“新建”,粘贴代码,保存并编译指标,然后应用到图表上。
TradingView (Pine Script)
// TradingView KDJ指标金叉选股公式 n = 9 kPeriod = 3 dPeriod = 3 lowestLow = lowest(low, n) highestHigh = highest(high, n) rsv = (close - lowestLow) / (highestHigh - lowestLow) * 100 K = ema(rsv, kPeriod) D = ema(K, dPeriod) J = 3 * K - 2 * D goldenCross = crossover(K, D)
加载方法:在图表上点击“Pine Editor”,新建脚本,粘贴代码,保存并应用到图表。
Thinkorswim (美国)
// Thinkorswim KDJ指标金叉选股公式 input period = 9; input kPeriod = 3; input dPeriod = 3; def lowestLow = Lowest(low, period); def highestHigh = Highest(high, period); def rsv = (close - lowestLow) / (highestHigh - lowestLow) * 100; def K = ExpAverage(rsv, kPeriod); def D = ExpAverage(K, dPeriod); def J = 3 * K - 2 * D; plot GoldenCross = if K crosses above D then 1 else 0;
加载方法:在图表上点击“研究”标签,选择“编辑研究”,然后“新建研究”,粘贴代码并保存。
NinjaTrader (美国)
// NinjaTrader KDJ指标金叉选股公式 protected override void OnBarUpdate() { int period = 9; int kPeriod = 3; int dPeriod = 3; double lowestLow = MIN(Low, period)[0]; double highestHigh = MAX(High, period)[0]; double rsv = (Close[0] - lowestLow) / (highestHigh - lowestLow) * 100; double K = EMA(rsv, kPeriod)[0]; double D = EMA(K, dPeriod)[0]; double J = 3 * K - 2 * D; if (CrossAbove(K, D, 1)) Alert("KDJ Golden Cross Detected"); }
加载方法:从“新建”菜单中选择“指标”,编写或粘贴代码,编译并应用到图表。
eSignal (全球)
// eSignal KDJ指标金叉选股公式(需要转换到易语言) RSV := (C - LLV(L, 9)) / (HHV(H, 9) - LLV(L, 9)) * 100; K := Mov(RSV, 3, S); D := Mov(K, 3, S); J := 3 * K - 2 * D; Golden_Cross := CROSS(K, D);
加载方法:使用“易语言”编写指标,代码需要转换,在“指标”菜单中加载新指标。
优点和缺点
优点 | 缺点 |
---|---|
灵敏,适用于短线交易 | 信号频繁,可能产生多余的交易成本 |
在超买超卖区域有效 | 在横盘市场中效果不佳 |
结合趋势分析效果更好 | 需要确认信号以避免假突破 |
如何正确使用
在多个时间框架上观察KDJ金叉,确保不是短期波动。
结合其他技术分析工具(如MACD或均线)确认趋势方向。
关注市场的整体环境,避免在重大新闻发布时使用这种短线策略。
建议在历史数据上进行回测,或在模拟账户中测试策略,以验证策略的有效性。
根据市场条件或个人交易风格调整参数,如在高波动市场减少周期,或在低波动市场增加周期。
使用注意事项
在极端市场条件下(如市场崩盘或超级牛市),KDJ指标的表现可能不佳。结合使用多种指标进行确认,并在使用前对策略进行充分测试。
来源:今日美股网