
// ===== 参数设置 =====
N1:=20; // 短期均线
N2:=60; // 长期均线
ADX_N:=14; // ADX周期
ADX_LIM:=22; // ADX阈值(低于此值视为横盘)
// ===== 1. 趋势与均线 =====
MA1:EMA(CLOSE,N1),COLORRED,LINETHICK2;
MA2:EMA(CLOSE,N2),COLORGREEN,LINETHICK2;
// ===== 2. 横盘过滤器 (ADX) =====
HD:=HIGH-REF(HIGH,1);
LD:=REF(LOW,1)-LOW;
DMP:=SUM(IF(HD>0 AND HD>LD,HD,0),ADX_N);
DMM:=SUM(IF(LD>0 AND LD>HD,LD,0),ADX_N);
TR_VAL:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),ADX_N);
PDI:=DMP*100/TR_VAL;
MDI:=DMM*100/TR_VAL;
ADX_VAL:=MA(ABS(MDI-PDI)/(MDI+PDI)*100,ADX_N);
TREND_MODE:=ADX_VAL > ADX_LIM; // 只有ADX足够大才允许交易
// ===== 3. 开仓信号 =====
BUY_CONDITION:=CROSS(MA1,MA2) AND TREND_MODE;
SELL_CONDITION:=CROSS(MA2,MA1) AND TREND_MODE;
// ===== 4. 动态计算图标位置 (紧贴K线) =====
ATR_VAL:=MA(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),14);
BUY_ICON_POS:=LOW-ATR_VAL*0.2; // 箭头位于最低价下方一点点
SELL_ICON_POS:=HIGH+ATR_VAL*0.2; // 箭头位于最高价上方一点点
// ===== 5. 绘图 =====
DRAWICON(BUY_CONDITION,BUY_ICON_POS,1); // 1=向上红箭头
DRAWICON(SELL_CONDITION,SELL_ICON_POS,2); // 2=向下绿箭头
夜雨聆风