 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
// 参数设置
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选股; |
|