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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. { 持有股票名称和成本价 }
  2. BUYDATE1:=1000000+250819;
  3. NAME1:='600487';
  4. PRICE1:=18.76;
  5. BUYDATE2:=BUYDATE1;
  6. NAME2:='301171';
  7. PRICE2:=34.10;
  8. BUYDATE3:=1000000+250818;
  9. NAME3:='301165';
  10. PRICE3:=74.57;
  11. BUYDATE4:=BUYDATE3;
  12. NAME4:='300806';
  13. PRICE4:=23.40;
  14. MYBUYPRICE:=IF(CODELIKE(NAME1),PRICE1,IF(CODELIKE(NAME2),PRICE2,IF(CODELIKE(NAME3),PRICE3,IF(CODELIKE(NAME4),PRICE4,0))));
  15. MYBUYDATE:=IF(CODELIKE(NAME1),BUYDATE1,IF(CODELIKE(NAME2),BUYDATE2,IF(CODELIKE(NAME3),BUYDATE3,IF(CODELIKE(NAME4),BUYDATE4,0))));
  16. 持仓天数 :=DATETODAY(DATE)-DATETODAY(MYBUYDATE);
  17. { ===================== 参数设置 ===================== }
  18. N1_BASE:=2;
  19. N2:=3;
  20. N3:=2;
  21. N4_BASE:=1.5;
  22. N5:=0.5;
  23. N6:=-5;
  24. STOPLOSS:=5;
  25. TAKEPROFIT:=10;
  26. 创业板标识 := CODELIKE('300') OR CODELIKE('301');
  27. N1 := IF(创业板标识, 2.75, N1_BASE);
  28. N4 := IF(创业板标识, 2.25, N4_BASE);
  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. 持续高波动 := BARSLASTCOUNT(相对ATR > 0.5);
  41. 高波动天数 := SUM(相对ATR > 0.5, 100);
  42. 有效周期 := IF(相对ATR > 0.5, MIN(MAX(持续高波动, 高波动天数), 30), 10);
  43. 有效最高价 := HHV(H, 有效周期);
  44. 当前回撤 := IF(基准价>0, (有效最高价 - C)/基准价*100, 0);
  45. { ===================== 集合竞价策略 ===================== }
  46. 集合竞价低开 := (O-REF(C,1))/REF(C,1)*100;
  47. 集合卖出 := 集合竞价时段 AND (
  48. (MYBUYPRICE>0 AND (O - MYBUYPRICE)/MYBUYPRICE*100 <= -STOPLOSS)
  49. OR 集合竞价低开 < N6
  50. );
  51. { ===================== 动态止盈止损 ===================== }
  52. 当前盈利 := IF(MYBUYPRICE>0, (C - MYBUYPRICE)/MYBUYPRICE*100, 0);
  53. 动态止损 := MAX(STOPLOSS, 1.2 * 相对ATR);
  54. 动态止盈 := MAX(TAKEPROFIT, 当前盈利 - N4 * 相对ATR);
  55. 止损触发瞬时 := MYBUYPRICE>0 AND 当前盈利 <= -动态止损;
  56. 止盈准备瞬时 := MYBUYPRICE>0 AND 当前盈利 >= 动态止盈;
  57. { ---- 锁定逻辑 ---- }
  58. 止损锁定 := IF(BARSLAST(止损触发瞬时)=DRAWNULL,0, BARSLAST(止损触发瞬时)< 10000);
  59. 止盈准备锁定 := IF(BARSLAST(止盈准备瞬时)=DRAWNULL,0, BARSLAST(止盈准备瞬时)< 10000);
  60. { ===================== 动态回撤阈值 ===================== }
  61. 动态回撤阈值 := (1 + 相对ATR/100) * N1 * (1 - 0.3*日内系数) * N3;
  62. { ===================== 量价动能 ===================== }
  63. 缩量回落 := V < MA(V,20) * 0.8;
  64. DIF := EMA(C,12)-EMA(C,26);
  65. 动能转弱 := DIF < REF(DIF,1) AND MACD<0;
  66. 下破均价 := C < 分时均价 AND REF(C,1) >= REF(分时均价,1);
  67. { ===================== 板块计算 ===================== }
  68. 行业涨幅 := HORCALC(HYBLOCK,105,2,3);
  69. 板块弱势 := 行业涨幅 < REF(行业涨幅,1) AND 行业涨幅 < 0;
  70. { ===================== L2信号 ===================== }
  71. 主力对倒 := L2_AMO(1,3) > L2_AMO(1,2)*1.2
  72. AND (L2_AMO(1,3)+L2_AMO(1,2)) > MA(V,10)*C*0.3;
  73. 主动出货 := L2_AMO(0,3) > L2_AMO(0,2)*2
  74. AND L2_VOL(0,3)/V > 0.3
  75. AND V/MA(V,5) > 1.2;
  76. { ===================== 信号分层 ===================== }
  77. 强制卖出 := 止损锁定 OR 主动出货;
  78. HS300C:="399300$C";
  79. HS300ATR:= MA(ABS(REF(HS300C,1)-HS300C),14)/REF(HS300C,1)*100;
  80. 大盘弱势:=HS300C < REF(HS300C,1) * (1 - HS300ATR*N5/100);
  81. 弱信号1 := (当前回撤 >= 动态回撤阈值) AND 下破均价;
  82. 弱信号2 := 缩量回落 AND 动能转弱;
  83. 弱信号3 := 板块弱势;
  84. 弱信号4 := 主力对倒;
  85. 弱信号5 := 大盘弱势;
  86. 组合卖出 := (弱信号1 + 弱信号2*2 + 弱信号3 + 弱信号4 + 弱信号5) >= 3;
  87. { ===================== 成交过滤 ===================== }
  88. 基础过滤 := V > MA(V,5)*0.7;
  89. 紧急情况 := (REF(C,1)-C)/REF(C,1)*100 > 5
  90. OR (止损锁定 AND EVERY(V < MA(V,5)*0.8, 3))
  91. OR C <= ROUND(REF(C,1)*0.9*100)/100;
  92. 创业板紧急情况 := (REF(C,1)-C)/REF(C,1)*100 > 4
  93. OR (止损锁定 AND EVERY(V < MA(V,5)*0.8, 2))
  94. OR C <= ROUND(REF(C,1)*0.86*100)/100;
  95. 成交过滤 := IF(创业板标识, 基础过滤 OR 创业板紧急情况, 基础过滤 OR 紧急情况);
  96. { ===================== 综合信号 ===================== }
  97. 综合信号瞬时 := MYBUYPRICE>0 AND (
  98. 集合卖出
  99. OR (有效时段 AND (强制卖出 OR 组合卖出))
  100. OR (止盈准备锁定 AND (强制卖出 OR 组合卖出))
  101. )
  102. AND 成交过滤
  103. AND 持仓天数>=1;
  104. { ---- 综合信号锁定(记忆功能) ---- }
  105. 综合信号锁定 := IF(BARSLAST(综合信号瞬时)=DRAWNULL,0, BARSLAST(综合信号瞬时)< 10000);
  106. { ---- 自动清零逻辑:新建仓时重置 ---- }
  107. 综合信号 : IF(MYBUYPRICE>0, 综合信号锁定, 0);
  108. { ===================== 可视化 ===================== }
  109. DRAWICON(综合信号最终, L*0.98, 2);