通达信公式卖出2.txt 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. { 持有股票名称和成本价 }
  2. BUYDATE1:=1000000+250818;
  3. NAME1:='300806';
  4. PRICE1:=23.40;
  5. BUYDATE2:=BUYDATE1;
  6. NAME2:='301165';
  7. PRICE2:=74.57;
  8. BUYDATE3:=BUYDATE1;
  9. NAME3:='';
  10. PRICE3:=0;
  11. MYBUYPRICE:=IF(CODELIKE(NAME1),PRICE1,IF(CODELIKE(NAME2),PRICE2,IF(CODELIKE(NAME3),PRICE3,0)));
  12. MYBUYDATE:=IF(CODELIKE(NAME1),BUYDATE1,IF(CODELIKE(NAME2),BUYDATE2,IF(CODELIKE(NAME3),BUYDATE3,0)));
  13. { ===================== 参数设置 =====================}
  14. N1_BASE:=2; { 基础回撤阈值系数 }
  15. N2:=3; { 开盘过滤时间(分钟) }
  16. N3:=2; { 保守系数 }
  17. N4_BASE:=1.5; { 基础动态止盈回撤系数 }
  18. N5:=0.5; { 大盘弱势系数 }
  19. N6:=-5; { 集合大幅低开阈值 }
  20. N7:=0.7; { 基础流动性阈值(%) }
  21. N7_创业板:=0.6; { 创业板流动性阈值(%) }
  22. STOPLOSS:=5; { 基础止损阈值(%) }
  23. TAKEPROFIT:=10; { 基础止盈阈值(%) }
  24. { ========== 创业板特殊参数 (300/301开头股票) ========== }
  25. 创业板标识 := CODELIKE('300') OR CODELIKE('301');
  26. N1 := IF(创业板标识, 2.75, N1_BASE); { 创业板用2.75,其他用基础值 }
  27. N4 := IF(创业板标识, 2.25, N4_BASE); { 创业板用2.25,其他用基础值 }
  28. 流动性阈值 := IF(创业板标识, N7_创业板, N7);
  29. { ===================== 时间控制 =====================}
  30. 集合竞价时段 := MACHINETIME>=092500 AND MACHINETIME<=093000;
  31. 上午开盘后 := MACHINETIME >= (093000 + N2*100) AND MACHINETIME <= 113000;
  32. 下午开盘后 := MACHINETIME >= 130000 AND MACHINETIME <= 145500;
  33. 有效时段 := 上午开盘后 OR 下午开盘后;
  34. { ===================== 基础数据 =====================}
  35. TR1 := MAX(MAX(H-L, ABS(REF(C,1)-H)), ABS(REF(C,1)-L));
  36. 相对ATR := MA(TR1,14)/REF(C,1)*100;
  37. 日内系数 := FROMOPEN/240;
  38. 分时均价 := DYNAINFO(11);
  39. 基准价 := MAX(O, REF(C,1));
  40. { 动态计算最高价 }
  41. { 方法1:使用BARSLASTCOUNT检测持续状态 }
  42. 持续高波动 := BARSLASTCOUNT(相对ATR > 0.5);
  43. { 方法2:使用SUM直接计算高波动天数 }
  44. 高波动天数 := SUM(相对ATR > 0.5, 100);
  45. { 组合方法 - 确保在各种情况下都能获得有效周期 }
  46. 有效周期 := IF(相对ATR > 0.5,
  47. MIN(MAX(持续高波动, 高波动天数), 30),
  48. 10);
  49. 有效最高价 := HHV(H, 有效周期);
  50. 当前回撤 := IF(基准价>0, (有效最高价 - C)/基准价*100, 0);
  51. { ===================== 集合竞价策略 =====================}
  52. 集合竞价低开 := (O-REF(C,1))/REF(C,1)*100;
  53. 集合卖出 := 集合竞价时段 AND (
  54. (MYBUYPRICE>0 AND (O - MYBUYPRICE)/MYBUYPRICE*100 <= -STOPLOSS)
  55. OR 集合竞价低开 < N6
  56. );
  57. { ===================== 动态止盈止损 =====================}
  58. 当前盈利 := IF(MYBUYPRICE>0, (C - MYBUYPRICE)/MYBUYPRICE*100, 0);
  59. 动态止损 := MAX(STOPLOSS, 1.2 * 相对ATR);
  60. 动态止盈 := MAX(TAKEPROFIT, 当前盈利 - N4 * 相对ATR); { 使用调整后的N4 }
  61. 止损触发 := MYBUYPRICE>0 AND 当前盈利 <= -动态止损;
  62. 止盈准备 := MYBUYPRICE>0 AND 当前盈利 >= 动态止盈;
  63. { ===================== 动态回撤阈值 =====================}
  64. 动态回撤阈值 := (1 + 相对ATR/100) * N1 * (1 - 0.3*日内系数) * N3; { 使用调整后的N1 }
  65. { ===================== 量价动能 =====================}
  66. 缩量回落 := V < MA(V,20) * 0.8;
  67. DIF := EMA(C,12)-EMA(C,26);
  68. 动能转弱 := DIF < REF(DIF,1) AND MACD<0;
  69. 下破均价 := C < 分时均价 AND REF(C,1) >= REF(分时均价,1);
  70. { ===================== 板块计算 =====================}
  71. 行业涨幅 := HORCALC(HYBLOCK,105,2,3);
  72. 板块弱势 := 行业涨幅 < REF(行业涨幅,1) AND 行业涨幅 < 0;
  73. { ===================== L2信号 =====================}
  74. 主力对倒 := L2_AMO(1,3) > L2_AMO(1,2)*1.2
  75. AND (L2_AMO(1,3)+L2_AMO(1,2)) > MA(V,10)*C*0.3;
  76. 主动出货 := L2_AMO(0,3) > L2_AMO(0,2)*2
  77. AND L2_VOL(0,3)/V > 0.3
  78. AND V/MA(V,5) > 1.2;
  79. { ===================== 信号分层 =====================}
  80. 强制卖出 := 止损触发 OR 主动出货;
  81. { 大盘计算 }
  82. HS300C:="399300$C";
  83. HS300ATR:= MA(ABS(REF(HS300C,1)-HS300C),14)/REF(HS300C,1)*100;
  84. 大盘弱势:=HS300C < REF(HS300C,1) * (1 - HS300ATR*N5/100);
  85. 弱信号1 := (当前回撤 >= 动态回撤阈值) AND 下破均价;
  86. 弱信号2 := 缩量回落 AND 动能转弱;
  87. 弱信号3 := 板块弱势;
  88. 弱信号4 := 主力对倒;
  89. 弱信号5 := 大盘弱势;
  90. 组合卖出 := (弱信号1 + 弱信号2*2 + 弱信号3 + 弱信号4 + 弱信号5) >= 3;
  91. { ===================== 最终信号 =====================}
  92. 成交过滤 := V > MA(V,5)*流动性阈值;
  93. 持仓天数 :=DATETODAY(DATE)-DATETODAY(MYBUYDATE);
  94. 综合信号: MYBUYPRICE>0 AND (
  95. 集合卖出
  96. OR (有效时段 AND (强制卖出 OR 组合卖出))
  97. OR (止盈准备 AND (强制卖出 OR 组合卖出))
  98. )
  99. AND 成交过滤
  100. AND 持仓天数>=1;
  101. { ===================== 可视化 =====================}
  102. DRAWICON(综合信号, L*0.98, 2);