| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- { 持有股票名称和成本价 }
- BUYDATE1:=1000000+250818;
- NAME1:='300806';
- PRICE1:=23.40;
- BUYDATE2:=BUYDATE1;
- NAME2:='301165';
- PRICE2:=74.57;
- BUYDATE3:=BUYDATE1;
- NAME3:='';
- PRICE3:=0;
- MYBUYPRICE:=IF(CODELIKE(NAME1),PRICE1,IF(CODELIKE(NAME2),PRICE2,IF(CODELIKE(NAME3),PRICE3,0)));
- MYBUYDATE:=IF(CODELIKE(NAME1),BUYDATE1,IF(CODELIKE(NAME2),BUYDATE2,IF(CODELIKE(NAME3),BUYDATE3,0)));
- { ===================== 参数设置 =====================}
- N1_BASE:=2; { 基础回撤阈值系数 }
- N2:=3; { 开盘过滤时间(分钟) }
- N3:=2; { 保守系数 }
- N4_BASE:=1.5; { 基础动态止盈回撤系数 }
- N5:=0.5; { 大盘弱势系数 }
- N6:=-5; { 集合大幅低开阈值 }
- N7:=0.7; { 基础流动性阈值(%) }
- N7_创业板:=0.6; { 创业板流动性阈值(%) }
- STOPLOSS:=5; { 基础止损阈值(%) }
- TAKEPROFIT:=10; { 基础止盈阈值(%) }
- { ========== 创业板特殊参数 (300/301开头股票) ========== }
- 创业板标识 := CODELIKE('300') OR CODELIKE('301');
- N1 := IF(创业板标识, 2.75, N1_BASE); { 创业板用2.75,其他用基础值 }
- N4 := IF(创业板标识, 2.25, N4_BASE); { 创业板用2.25,其他用基础值 }
- 流动性阈值 := IF(创业板标识, N7_创业板, N7);
- { ===================== 时间控制 =====================}
- 集合竞价时段 := 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));
- { 动态计算最高价 }
- { 方法1:使用BARSLASTCOUNT检测持续状态 }
- 持续高波动 := BARSLASTCOUNT(相对ATR > 0.5);
- { 方法2:使用SUM直接计算高波动天数 }
- 高波动天数 := 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); { 使用调整后的N4 }
- 止损触发 := MYBUYPRICE>0 AND 当前盈利 <= -动态止损;
- 止盈准备 := MYBUYPRICE>0 AND 当前盈利 >= 动态止盈;
- { ===================== 动态回撤阈值 =====================}
- 动态回撤阈值 := (1 + 相对ATR/100) * N1 * (1 - 0.3*日内系数) * N3; { 使用调整后的N1 }
- { ===================== 量价动能 =====================}
- 缩量回落 := 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)*流动性阈值;
- 持仓天数 :=DATETODAY(DATE)-DATETODAY(MYBUYDATE);
- 综合信号: MYBUYPRICE>0 AND (
- 集合卖出
- OR (有效时段 AND (强制卖出 OR 组合卖出))
- OR (止盈准备 AND (强制卖出 OR 组合卖出))
- )
- AND 成交过滤
- AND 持仓天数>=1;
- { ===================== 可视化 =====================}
- DRAWICON(综合信号, L*0.98, 2);
|