- 注册时间
- 2023-2-19
- 最后登录
- 2025-4-29
- 阅读权限
- 200
- 积分
- 3618
- 精华
- 0
- 帖子
- 1037
  
|
{
MACD
}
{ 计算 MACD 指标 }
DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIF,9);
MACD DIF-DEA)*2;
{ 判断 MACD 在 0 轴以上 }
MACD_ABOVE_ZERO := MACD > 0;
{
MACD END
}
{UPTREND}
MA5:=MA(C,5);
MA10:=MA(C,10);
{判断价格在均线之上}
PRICEABOVEMA:=C>MA5 AND C>MA10;
{判断 5 日均线上穿 10 日均线形成金叉}
CROSSOVER:=CROSS(MA5,MA10);
{判断均线发散上扬,即 5 日均线斜率大于 0 且 10 日均线斜率大于 0,同时 5 日均线斜率大于 10 日均线斜率}
SLOPEMA5:=(MA5-REF(MA5,1))>0;
SLOPEMA10:=(MA10-REF(MA10,1))>0;
DIVERGENCE:=SLOPEMA5 AND SLOPEMA10 AND (MA5-REF(MA5,1))>(MA10-REF(MA10,1));
{综合条件}
UPTREND: PRICEABOVEMA AND CROSSOVER AND DIVERGENCE;
{UPTREAND ENDIING}
{判断是否为阳线}
IS_UP := C > O;
{判断是否两连阳}
TWO_UP := REF(IS_UP, 1) AND REF(IS_UP, 2);
{ 最近两连阳位置}
LAST_TWO_BAR := BARSLAST(TWO_UP);
{两连阳距现在不超8天}
TWO_UP_8D := LAST_TWO_BAR <= 8 AND LAST_TWO_BAR > 0;
{两连阳首根K线最高价}
FIRST_UP_H := REF(H, LAST_TWO_BAR + 1);
{两连阳次根K线最高价}
SECOND_UP_H := REF(H, LAST_TWO_BAR);
{次根K线最高价大于首根}
UP_H_COND := SECOND_UP_H > FIRST_UP_H;
IS_DOWN := CLOSE < OPEN;
{两连阳之后第一根 K 线开始到当前的阴线最高价
DOWN_MAX_HIGH := REF(HHV(IF(IS_DOWN, HIGH, 0), LAST_TWO_BAR - 1), 1);
}
{REF(..., 1):运用 REF 函数引用上一个交易日的计算结果,
也就是前面 N 天到上一个交易日的每日 K 线的最高价。
}
DOWN_MAX_HIGH := REF(HHV(IF(IS_DOWN, HIGH, 0), LAST_TWO_BAR + 1), 1);
{尾阳线判断,即当前为阳线}
TAIL_UP := IS_UP;
{尾阳线收盘价}
TAIL_CLOSE := CLOSE;
{判断尾阳线收盘价是否突破前面两连阳之后阴线的最高价}
CONDITION_BREAK := TAIL_CLOSE > DOWN_MAX_HIGH;
{今日收阳线}
TODAY_UP := IS_UP;
{今日最高价}
TODAY_HIGH := HIGH;
TODAY_CLOSE:= CLOSE;
COND_BREAK2:= TODAY_CLOSE>DOWN_MAX_HIGH;
{两连阳到今日前K线最高价}
BETWEEN_H := REF(HHV(H, LAST_TWO_BAR - 1), 1);
{两连阳K线最高值}
MAX_TWO_UP_H := MAX(FIRST_UP_H, SECOND_UP_H);
{今日最高价大于相关最高价}
TODAY_H_COND := TODAY_HIGH > MAX(MAX_TWO_UP_H, BETWEEN_H);
{综合筛选条件}
FINAL_COND := TWO_UP_8D AND UP_H_COND AND TODAY_UP AND TODAY_H_COND; { AND CONDITION_BREAK;{ AND COND_BREAK2;{ AND MACD_ABOVE_ZERO AND UPTREND;}
{输出筛选结果}
FILTER(FINAL_COND, 0);
|
|