金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 202|回复: 5

选股公式求助

[复制链接]

11

主题

69

帖子

69

积分

等级: 免费版

注册:
2025-5-14
曾用名:
发表于 2025-9-3 13:30 | 显示全部楼层 |阅读模式
需要一个公式:见下图公式1条件:
1 选股日MACD>0
2 选股日的K线最高价>=当前MACD红堆中的最高价的次高价(定义见图片)
3 如果条件2成立,记录并输出MACD红堆中的次高价K线所对应的MACD和DIFF和CLOSE

公式2条件:

1 选股日MACD<0
2 选股日的K线最高价>=最近的MACD红堆中的最高价
3 如果条件2成立,记录并输出MACD红堆中最高价K线所对应的MACD和DIFF和CLOSE







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-3 13:42 | 显示全部楼层
// 参数设置
INPUT:MACD_SHORT(12,5,40,1);     // MACD短周期
INPUT:MACD_LONG(26,10,100,1);    // MACD长周期
INPUT:MACD_M(9,2,60,1);          // MACD信号周期

// MACD指标计算
DIFF := EMA(CLOSE,MACD_SHORT) - EMA(CLOSE,MACD_LONG);
DEA  := EMA(DIFF,MACD_M);
MACD := 2 * (DIFF - DEA);

// 红堆识别
红堆开始 := CROSS(MACD,0)=1;  // MACD上穿0轴
红堆结束 := CROSS(0,MACD)=1;  // MACD下穿0轴

// 当前红堆范围
当前红堆起点 := BARSLAST(红堆开始);
当前红堆终点 := BARSLAST(红堆结束);
当前红堆长度 := IF(当前红堆起点<当前红堆终点,当前红堆起点,当前红堆终点);

// 当前红堆内最高价和次高价
当前红堆高价 := HHV(H,当前红堆长度);
当前红堆次高价 := REF(HHV(H,当前红堆长度-1),1);

// 最近完整红堆范围
最近红堆起点 := BARSLAST(红堆结束);
最近红堆长度 := BARSLAST(红堆开始)-最近红堆起点;

// 最近红堆内最高价
最近红堆高价 := REF(HHV(H,最近红堆长度),最近红堆起点);

// 公式1选股条件
条件1 := MACD>0;
条件2 := H>=当前红堆次高价;
公式1选股 := 条件1 AND 条件2;

// 公式1输出
次高价位置 := HHVBARS(H,当前红堆长度-1);
次高价MACD := REF(MACD,次高价位置);
次高价DIFF := REF(DIFF,次高价位置);
次高价CLOSE := REF(CLOSE,次高价位置);

// 公式2选股条件
条件A := MACD<0;
条件B := H>=最近红堆高价;
公式2选股 := 条件A AND 条件B;

// 公式2输出
最高价位置 := REF(HHVBARS(H,最近红堆长度),最近红堆起点);
最高价MACD := REF(MACD,最高价位置);
最高价DIFF := REF(DIFF,最高价位置);
最高价CLOSE := REF(CLOSE,最高价位置);

// 选股信号
SELECT_STOCK := 公式1选股 OR 公式2选股;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

69

帖子

69

积分

等级: 免费版

注册:
2025-5-14
曾用名:
 楼主| 发表于 2025-9-3 21:47 | 显示全部楼层
技术008 发表于 2025-9-3 13:42
// 参数设置
INPUT:MACD_SHORT(12,5,40,1);     // MACD短周期
INPUT:MACD_LONG(26,10,100,1);    // MAC ...

使用上述公式在9/3 日线级别选股 选出 AL2510 合约  但是9/3的日线最高价并没有高于临近的红堆的所有K线的最高价的最高价(见图片)。请问这是为什么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-4 09:25 | 显示全部楼层

// 参数设置
INPUT:MACD_SHORT(12,5,40,1);     // MACD短周期
INPUT:MACD_LONG(26,10,100,1);    // MACD长周期
INPUT:MACD_M(9,2,60,1);          // MACD信号周期

// MACD指标计算
DIFF := EMA(CLOSE,MACD_SHORT) - EMA(CLOSE,MACD_LONG);
DEA  := EMA(DIFF,MACD_M);
MACD := 2 * (DIFF - DEA);

// 红堆识别
红堆开始 := CROSS(MACD,0)=1;  // MACD上穿0轴
红堆结束 := CROSS(0,MACD)=1;  // MACD下穿0轴

// 当前红堆范围
当前红堆起点 : BARSLAST(红堆开始);

// 当前红堆内最高价和次高价
当前红堆高价: HHV(H,当前红堆起点);
当前红堆次高价:large(h,当前红堆起点,2);


// 公式1选股条件
条件1 := MACD>0;
条件2 := H>=当前红堆次高价;
公式1选股 := 条件1 AND 条件2;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

11

主题

69

帖子

69

积分

等级: 免费版

注册:
2025-5-14
曾用名:
 楼主| 发表于 2025-9-4 21:48 | 显示全部楼层
技术008 发表于 2025-9-4 09:25
// 参数设置
INPUT:MACD_SHORT(12,5,40,1);     // MACD短周期
INPUT:MACD_LONG(26,10,100,1);    // M ...

我觉得公式1是MACD>0 时的选股条件, 好像没有问题。我截图中的问题时选股日的最高价和相邻红堆的最高价相比较的时候出了问题。是不是应该修改相邻红堆的最高价的取值方法?
您之前的公式:
// 最近红堆内最高价
最近红堆高价 := REF(HHV(H,最近红堆长度),最近红堆起点);
这个是取相邻红堆的最高价吗? 我感觉是对的啊  
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-9-5 09:02 | 显示全部楼层
选股日的K线最高价>=当前MACD红堆中的最高价的次高价(定义见图片)


你这个说的是当前红队次高

没有是上一个红队概念
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-9-16 10:15 , Processed in 0.114342 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表