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