{ 持有股票名称和成本价 } BUYDATE1:=1000000+250819; NAME1:='600487'; PRICE1:=18.76; BUYDATE2:=BUYDATE1; NAME2:='301171'; PRICE2:=34.10; BUYDATE3:=1000000+250818; NAME3:='301165'; PRICE3:=74.57; BUYDATE4:=BUYDATE3; NAME4:='300806'; PRICE4:=23.40; MYBUYPRICE:=IF(CODELIKE(NAME1),PRICE1,IF(CODELIKE(NAME2),PRICE2,IF(CODELIKE(NAME3),PRICE3,IF(CODELIKE(NAME4),PRICE4,0)))); MYBUYDATE:=IF(CODELIKE(NAME1),BUYDATE1,IF(CODELIKE(NAME2),BUYDATE2,IF(CODELIKE(NAME3),BUYDATE3,IF(CODELIKE(NAME4),BUYDATE4,0)))); 持仓天数 :=DATETODAY(DATE)-DATETODAY(MYBUYDATE); { ===================== 参数设置 ===================== } N1_BASE:=2; N2:=3; N3:=2; N4_BASE:=1.5; N5:=0.5; N6:=-5; STOPLOSS:=5; TAKEPROFIT:=10; 创业板标识 := CODELIKE('300') OR CODELIKE('301'); N1 := IF(创业板标识, 2.75, N1_BASE); N4 := IF(创业板标识, 2.25, N4_BASE); { ===================== 时间控制 ===================== } 集合竞价时段 := MACHINETIME>=092500 AND MACHINETIME<=093000; 上午开盘后 := MACHINETIME >= (093000 + N2*100) AND MACHINETIME <= 113000; 下午开盘后 := MACHINETIME >= 130000 AND MACHINETIME <= 145500; 有效时段 := 上午开盘后 OR 下午开盘后; { ===================== 基础数据 ===================== } TR1 := MAX(MAX(H-L, ABS(REF(C,1)-H)), ABS(REF(C,1)-L)); 相对ATR := MA(TR1,14)/REF(C,1)*100; 日内系数 := FROMOPEN/240; 分时均价 := DYNAINFO(11); 基准价 := MAX(O, REF(C,1)); 持续高波动 := BARSLASTCOUNT(相对ATR > 0.5); 高波动天数 := SUM(相对ATR > 0.5, 100); 有效周期 := IF(相对ATR > 0.5, MIN(MAX(持续高波动, 高波动天数), 30), 10); 有效最高价 := HHV(H, 有效周期); 当前回撤 := IF(基准价>0, (有效最高价 - C)/基准价*100, 0); { ===================== 集合竞价策略 ===================== } 集合竞价低开 := (O-REF(C,1))/REF(C,1)*100; 集合卖出 := 集合竞价时段 AND ( (MYBUYPRICE>0 AND (O - MYBUYPRICE)/MYBUYPRICE*100 <= -STOPLOSS) OR 集合竞价低开 < N6 ); { ===================== 动态止盈止损 ===================== } 当前盈利 := IF(MYBUYPRICE>0, (C - MYBUYPRICE)/MYBUYPRICE*100, 0); 动态止损 := MAX(STOPLOSS, 1.2 * 相对ATR); 动态止盈 := MAX(TAKEPROFIT, 当前盈利 - N4 * 相对ATR); 止损触发瞬时 := MYBUYPRICE>0 AND 当前盈利 <= -动态止损; 止盈准备瞬时 := MYBUYPRICE>0 AND 当前盈利 >= 动态止盈; { ---- 锁定逻辑 ---- } 止损锁定 := IF(BARSLAST(止损触发瞬时)=DRAWNULL,0, BARSLAST(止损触发瞬时)< 10000); 止盈准备锁定 := IF(BARSLAST(止盈准备瞬时)=DRAWNULL,0, BARSLAST(止盈准备瞬时)< 10000); { ===================== 动态回撤阈值 ===================== } 动态回撤阈值 := (1 + 相对ATR/100) * N1 * (1 - 0.3*日内系数) * N3; { ===================== 量价动能 ===================== } 缩量回落 := V < MA(V,20) * 0.8; DIF := EMA(C,12)-EMA(C,26); 动能转弱 := DIF < REF(DIF,1) AND MACD<0; 下破均价 := C < 分时均价 AND REF(C,1) >= REF(分时均价,1); { ===================== 板块计算 ===================== } 行业涨幅 := HORCALC(HYBLOCK,105,2,3); 板块弱势 := 行业涨幅 < REF(行业涨幅,1) AND 行业涨幅 < 0; { ===================== L2信号 ===================== } 主力对倒 := L2_AMO(1,3) > L2_AMO(1,2)*1.2 AND (L2_AMO(1,3)+L2_AMO(1,2)) > MA(V,10)*C*0.3; 主动出货 := L2_AMO(0,3) > L2_AMO(0,2)*2 AND L2_VOL(0,3)/V > 0.3 AND V/MA(V,5) > 1.2; { ===================== 信号分层 ===================== } 强制卖出 := 止损锁定 OR 主动出货; HS300C:="399300$C"; HS300ATR:= MA(ABS(REF(HS300C,1)-HS300C),14)/REF(HS300C,1)*100; 大盘弱势:=HS300C < REF(HS300C,1) * (1 - HS300ATR*N5/100); 弱信号1 := (当前回撤 >= 动态回撤阈值) AND 下破均价; 弱信号2 := 缩量回落 AND 动能转弱; 弱信号3 := 板块弱势; 弱信号4 := 主力对倒; 弱信号5 := 大盘弱势; 组合卖出 := (弱信号1 + 弱信号2*2 + 弱信号3 + 弱信号4 + 弱信号5) >= 3; { ===================== 成交过滤 ===================== } 基础过滤 := V > MA(V,5)*0.7; 紧急情况 := (REF(C,1)-C)/REF(C,1)*100 > 5 OR (止损锁定 AND EVERY(V < MA(V,5)*0.8, 3)) OR C <= ROUND(REF(C,1)*0.9*100)/100; 创业板紧急情况 := (REF(C,1)-C)/REF(C,1)*100 > 4 OR (止损锁定 AND EVERY(V < MA(V,5)*0.8, 2)) OR C <= ROUND(REF(C,1)*0.86*100)/100; 成交过滤 := IF(创业板标识, 基础过滤 OR 创业板紧急情况, 基础过滤 OR 紧急情况); { ===================== 综合信号 ===================== } 综合信号瞬时 := MYBUYPRICE>0 AND ( 集合卖出 OR (有效时段 AND (强制卖出 OR 组合卖出)) OR (止盈准备锁定 AND (强制卖出 OR 组合卖出)) ) AND 成交过滤 AND 持仓天数>=1; { ---- 综合信号锁定(记忆功能) ---- } 综合信号锁定 := IF(BARSLAST(综合信号瞬时)=DRAWNULL,0, BARSLAST(综合信号瞬时)< 10000); { ---- 自动清零逻辑:新建仓时重置 ---- } 综合信号 : IF(MYBUYPRICE>0, 综合信号锁定, 0); { ===================== 可视化 ===================== } DRAWICON(综合信号, L*0.98, 2);