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

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. { 持有股票名称和成本价 }
  2. NAME1:='300806';
  3. PRICE1:=23.40;
  4. NAME2:='301165';
  5. PRICE2:=74.57;
  6. NAME3:='';
  7. PRICE3:=0;
  8. MYBUYPRICE:=IF(CODELIKE(NAME1),PRICE1,IF(CODELIKE(NAME2),PRICE2,IF(CODELIKE(NAME3),PRICE3,0))); { 买入均价,若=0则忽略基于买入价的止盈止损 }
  9. { ===================== 参数设置 =====================}
  10. N1:=2; { 回撤阈值系数(相对ATR的倍数) }
  11. N2:=3; { 开盘过滤时间(分钟) }
  12. N3:=2; { 保守系数 }
  13. STOPLOSS:=5; { 基础止损阈值(%),动态止损不会低于此值 }
  14. TAKEPROFIT:=10; { 基础止盈阈值(%),动态止盈不会低于此值 }
  15. { ===================== 基础数据 =====================}
  16. { ATR(相对化)与日内权重 }
  17. TR1 := MAX(MAX(HIGH-LOW, ABS(REF(CLOSE,1)-HIGH)), ABS(REF(CLOSE,1)-LOW));
  18. ATR1 := MA(TR1,14);
  19. 相对ATR := IF(REF(C,1)=0,0,ATR1/REF(C,1))*100; { 相对波动率(%) }
  20. 日内系数 := FROMOPEN/240; { 0~1 的时间占比 }
  21. 分时均价 := DYNAINFO(11); { 分时均价 }
  22. 基准价 := MAX(OPEN, REF(C,1)); { 取开盘与前收较高者 }
  23. 有效最高价 := HHV(C, BETWEEN(FLOOR(相对ATR*10),5,30));
  24. 当前回撤 := IF(基准价=0, 0, (有效最高价 - C)/基准价*100);
  25. { ===================== 动态止盈止损(自适应波动) =====================}
  26. 当前盈利 := IF(MYBUYPRICE>0,(C - MYBUYPRICE)/MYBUYPRICE*100,0);
  27. 动态止损 := MAX(STOPLOSS, 1.2 * 相对ATR); { 不低于基础止损 }
  28. 动态止盈 := MAX(TAKEPROFIT, MAX(0, 2.5 * 相对ATR - 当前盈利*0.1));
  29. { 基于买入价的浮动盈亏(可选)}
  30. 止损触发 := MYBUYPRICE>0 AND 当前盈利 <= -动态止损;
  31. 止盈准备 := MYBUYPRICE>0 AND 当前盈利 >= 动态止盈;
  32. { ===================== 时间控制(覆盖午休) =====================}
  33. 开盘分钟后_上午 := MACHINETIME >= (093000 + N2*100) AND MACHINETIME <= 113000;
  34. 开盘分钟后_下午 := MACHINETIME >= 130000 AND MACHINETIME <= 145500;
  35. 有效时段 := 开盘分钟后_上午 OR 开盘分钟后_下午;
  36. { ===================== 动态回撤阈值(相对ATR + 日内权重) =====================}
  37. 动态回撤阈值 := (1.0 + 相对ATR/100) * N1 * (1 - 0.3*日内系数) * N3;
  38. { 注:给出保守放大系数2.0,可按标的适度微调 }
  39. { ===================== 量价与动能(精简版) =====================}
  40. 缩量回落 := V < MA(V,20) * 0.8;
  41. DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);
  42. DEA:=EMA(DIF,9);
  43. MACD:=2*(DIF-DEA);
  44. 动能转弱 := DIF < REF(DIF,1) AND MACD < 0;
  45. { 分时均价“下破”判定}
  46. 下破均价 := C < 分时均价 AND REF(C,1) >= REF(分时均价,1);
  47. { 假突破(精简)}
  48. BOLL_M:=MA(C,20);
  49. BOLL_U:=BOLL_M + 2*STD(C,20);
  50. 假突破:=REF(C,1) > REF(BOLL_U,1) AND C < BOLL_M AND C < REF(C,1);
  51. 假突破过滤:=假突破 AND (BARSTATUS=2 AND BARSCOUNT(C)>20);
  52. { ===================== 板块动态(弱化为过滤,不做强信号) =====================}
  53. 行业收盘 := HORCALC(HYBLOCK,103,2,3);
  54. 行业涨幅 := HORCALC(HYBLOCK,105,2,3);
  55. 行业成交 := HORCALC(HYBLOCK,104,2,2);
  56. 行业价格变动 := 行业收盘 - REF(行业收盘,1);
  57. 行业上涨均值 := SMA(MAX(行业价格变动,0),14,1);
  58. 行业下跌均值 := SMA(ABS(MIN(行业价格变动,0)),14,1);
  59. RSI计算:= IF((行业上涨均值+行业下跌均值)=0,0,行业上涨均值/(行业上涨均值+行业下跌均值))*100;
  60. 行业RSI:=IF(行业收盘=0,50,RSI计算);
  61. 板块弱势 := 行业RSI < 50 AND 行业涨幅 < REF(行业涨幅,1)
  62. AND 行业成交 < REF(MA(行业成交,5),1)
  63. AND C < MA(C,60);
  64. { ===================== 【可选】L2 主力行为 =====================}
  65. 主力对倒 := (L2_AMO(1,3) > L2_AMO(1,2)*1.2 AND L2_AMO(1,2) > 0)
  66. AND (L2_AMO(1,3)+L2_AMO(1,2)) > MA(VOL,10)*C*0.5
  67. AND IF((ACTOUTVOL + ACTINVOL)=0,0,ABS(ACTOUTVOL - ACTINVOL)/(ACTOUTVOL + ACTINVOL)) < 0.3
  68. AND IF(MA(VOL,10)=0,0,L2_VOL(2,3)/MA(VOL,10)) < 0.5
  69. AND VOL>0;
  70. 主动出货 := (L2_AMO(0,3) > L2_AMO(0,2)*2 AND L2_AMO(1,3) > L2_AMO(1,2)*1.5)
  71. AND IF(VOL=0,0,L2_VOL(0,3)/VOL) > 0.5
  72. AND (VOL/MA(VOL,5) > 1.5 OR VOL > MA(VOL,20)*2)
  73. AND (C < O OR (C < REF(C,1) AND IF(C=0,0,(H - C)/C) > 0.03))
  74. AND IF(REF(C,1)=0,0,(H - L)/REF(C,1)) > 0.06;
  75. { ===================== 信号分层 =====================}
  76. { —— 强信号(立即型)——}
  77. 强制卖出 := 止损触发 OR 主动出货;
  78. {—— 组合信号(需合成 ≥2 条)——}
  79. 回撤超下破均价 := (当前回撤 >= 动态回撤阈值) AND 下破均价;
  80. 量价转弱 := (缩量回落 OR VOL < MA(VOL,5)) AND 动能转弱;
  81. 板块弱势确认 := 板块弱势;
  82. 可选_主力对倒 := 主力对倒;
  83. { 沪深300走势 }
  84. HS300C:="399300$CLOSE";
  85. HS300H:="399300$HIGH";
  86. HS300L:="399300$LOW";
  87. HS300TR:= MAX(MAX(HS300H-HS300L, ABS(REF(HS300C,1)-HS300H)), ABS(REF(HS300C,1)-HS300L));
  88. HS300ATR:= MA(HS300TR,14)/REF(HS300C,1)*100;
  89. 大盘弱势:=HS300C < REF(HS300C,1) * (1 - HS300ATR/200); {跌超半ATR}
  90. 弱信号1 := 回撤超下破均价;
  91. 弱信号2 := 量价转弱;
  92. 弱信号3 := 板块弱势确认;
  93. 弱信号4 := 可选_主力对倒;
  94. 弱信号5 := 大盘弱势;
  95. 组合卖出 := (弱信号1*2 + 弱信号2 + 弱信号3 + 弱信号4 + 弱信号5) >= 3;
  96. { —— 止盈与强/弱联动 ——}
  97. 触发型止盈 := 止盈准备 AND (强制卖出 OR 组合卖出);
  98. { ===================== 最终信号与过滤 =====================}
  99. 成交过滤 := (VOL > MA(VOL,5)*0.8 OR (VOL > MA(VOL,20) AND 缩量回落=0)) AND VOL < MA(VOL,20)*5; { 允许温和缩量 }
  100. 持仓天数 := IF(MYBUYPRICE>0, BARSCOUNT(C)-BARSCOUNT(IF(MYBUYPRICE>0,1,0)), 0);
  101. 综合信号 : MYBUYPRICE>0
  102. AND (强制卖出 OR 组合卖出 OR 触发型止盈)
  103. AND 有效时段
  104. AND 成交过滤
  105. AND 持仓天数>=1
  106. AND NOT(假突破过滤);
  107. { ===================== 可视化 =====================}
  108. DRAWICON(综合信号, C, 2);
  109. STICKLINE(综合信号, O, C, 3, 0), COLORRED;