 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
INPUT:MA_PERIOD(20,1,200,1); // 20 日均线参数
// MACD 计算
DIFF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIFF,9);
MACD:=2*(DIFF-DEA),COLORSTICK;
// 计算底背离和顶背离信号
N:=BARSLAST(CROSS(DIFF,DEA))+1;
N1:=BARSLAST(CROSS(DEA,DIFF))+1;
DIFF1:=REF(REF(DIFF,N-1),1);
DIFF2:=REF(REF(DIFF,N1-1),1);
C1:=REF(REF(CLOSE,N-1),1);
C2:=REF(REF(CLOSE,N1-1),1);
DBL1:=DIFF>DIFF1 AND CROSS(DIFF,DEA) AND CLOSE<C1; // 底背离
DBL:=DIFF<DIFF2 AND CROSS(DEA,DIFF) AND CLOSE>C2; // 顶背离
// 计算 20 日均线
MA20:=EMA(CLOSE,MA_PERIOD);
// 判断价格创新低和创新高
NEW_LOW:=close=llv(CLOSE,N);
NEW_HIGH:=close=hhv(CLOSE,N);
// 开多条件:底背离且 K线为阳线并上穿 20 日均线
BUY_CONDITION:=DBL1 AND NEW_LOW AND C>MA20;
// 平多条件:顶背离且 K线为阴线并下穿 20 日均线
SELL_CONDITION:=DBL AND NEW_HIGH AND C<MA20;
// 下单模块
IF BUY_CONDITION THEN BEGIN
BUY(1,1,marketr); // 买入 1手,市价成交
END
IF SELL_CONDITION THEN BEGIN
SELL(1,1,marketr); // 卖出 1手,市价成交
END
// 提示符号显示
IF DBL1 THEN BEGIN
DRAWTEXT(1,low,"底背离");
END
IF DBL THEN BEGIN
DRAWTEXT(1,high,"顶背离");
END |
|