|
|
@@ -1,73 +1,32 @@
|
|
1
|
|
-{==================== 参数设置(需手动修改)====================}
|
|
2
|
|
-BLK1 := '880001'; { 将此处改为您的板块代码1 }
|
|
3
|
|
-BLK2 := '880002'; { 将此处改为您的板块代码2 }
|
|
4
|
|
-BLK3 := '880003'; { 将此处改为您的板块代码3 }
|
|
5
|
|
-BUY_PRICE := 10; { 修改为您的买入均价 }
|
|
6
|
|
-STOP_PROFIT := 5; { 修改为止盈百分比(%) }
|
|
7
|
|
-STOP_LOSS := 3; { 修改为止损百分比(%) }
|
|
|
1
|
+{=== 参数区:手动改这里 ===}
|
|
|
2
|
+BUY_PRICE:=10.50; {买入均价}
|
|
|
3
|
+STOP_PROFIT:=0.05; {止盈5%}
|
|
|
4
|
+STOP_LOSS:=0.03; {止损3%}
|
|
8
|
5
|
|
|
9
|
|
-{==================== 自动识别大盘 ====================}
|
|
10
|
|
-IS_SH := IF(INBLOCK('上证A股'), 1, 0);
|
|
11
|
|
-INDEX_CODE := IF(IS_SH, 'SH000001', 'SZ399001');
|
|
12
|
6
|
|
|
13
|
|
-{==================== 板块强弱计算 ====================}
|
|
14
|
|
-BLK1_C := STKINDI(BLK1, 'C', 0, 0);
|
|
15
|
|
-BLK1_REF := REF(STKINDI(BLK1, 'C', 0, 1), 1);
|
|
16
|
|
-BLK1_ZDF := IF(BLK1_C > 0, (BLK1_C - BLK1_REF) / BLK1_REF * 100, -1000);
|
|
|
7
|
+{=== 大盘数据 ===}
|
|
|
8
|
+DP_ZDF:=(INDEXC-REF(INDEXC,1))/REF(INDEXC,1)*100;
|
|
17
|
9
|
|
|
18
|
|
-BLK2_C := STKINDI(BLK2, 'C', 0, 0);
|
|
19
|
|
-BLK2_REF := REF(STKINDI(BLK2, 'C', 0, 1), 1);
|
|
20
|
|
-BLK2_ZDF := IF(BLK2_C > 0, (BLK2_C - BLK2_REF) / BLK2_REF * 100, -1000);
|
|
|
10
|
+{=== 股票数据 ===}
|
|
|
11
|
+CUR_ZDF:=(C-REF(C,1))/REF(C,1)*100;
|
|
21
|
12
|
|
|
22
|
|
-BLK3_C := STKINDI(BLK3, 'C', 0, 0);
|
|
23
|
|
-BLK3_REF := REF(STKINDI(BLK3, 'C', 0, 1), 1);
|
|
24
|
|
-BLK3_ZDF := IF(BLK3_C > 0, (BLK3_C - BLK3_REF) / BLK3_REF * 100, -1000);
|
|
|
13
|
+{=== 止盈止损价 ===}
|
|
|
14
|
+Z_Y:=BUY_PRICE*(1+STOP_PROFIT);
|
|
|
15
|
+Z_S:=BUY_PRICE*(1-STOP_LOSS);
|
|
25
|
16
|
|
|
26
|
|
-BEST_BLK_ZDF := MAX(MAX(BLK1_ZDF, BLK2_ZDF), BLK3_ZDF);
|
|
|
17
|
+{=== 次日情景模拟 ===}
|
|
|
18
|
+G1:=C*1.01; G2:=C*1.02; G3:=C*1.03;
|
|
|
19
|
+D1:=C*0.99; D2:=C*0.98; D3:=C*0.97;
|
|
27
|
20
|
|
|
28
|
|
-{==================== 大盘强弱计算 ====================}
|
|
29
|
|
-INDEX_C := STKINDI(INDEX_CODE, 'C', 0, 0);
|
|
30
|
|
-INDEX_REF := REF(STKINDI(INDEX_CODE, 'C', 0, 1), 1);
|
|
31
|
|
-INDEX_ZDF := (INDEX_C - INDEX_REF) / INDEX_REF * 100;
|
|
|
21
|
+SELL_SIGNAL(P):=IF(P>=Z_Y,1,IF(P<=Z_S,-1,IF(DP_ZDF<0,-1,2)));
|
|
32
|
22
|
|
|
33
|
|
-{==================== 止盈止损价格 ====================}
|
|
34
|
|
-STOP_PROFIT_PRICE := BUY_PRICE * (1 + STOP_PROFIT / 100);
|
|
35
|
|
-STOP_LOSS_PRICE := BUY_PRICE * (1 - STOP_LOSS / 100);
|
|
|
23
|
+DRAWTEXT_FIX(1,0.00,0.10,0,'高开1%:'+NUMTOSTR(SELL_SIGNAL(G1),0)),COLORWHITE;
|
|
|
24
|
+DRAWTEXT_FIX(1,0.00,0.15,0,'高开2%:'+NUMTOSTR(SELL_SIGNAL(G2),0)),COLORWHITE;
|
|
|
25
|
+DRAWTEXT_FIX(1,0.00,0.20,0,'高开3%:'+NUMTOSTR(SELL_SIGNAL(G3),0)),COLORWHITE;
|
|
|
26
|
+DRAWTEXT_FIX(1,0.00,0.25,0,'低开1%:'+NUMTOSTR(SELL_SIGNAL(D1),0)),COLORWHITE;
|
|
|
27
|
+DRAWTEXT_FIX(1,0.00,0.30,0,'低开2%:'+NUMTOSTR(SELL_SIGNAL(D2),0)),COLORWHITE;
|
|
|
28
|
+DRAWTEXT_FIX(1,0.00,0.35,0,'低开3%:'+NUMTOSTR(SELL_SIGNAL(D3),0)),COLORWHITE;
|
|
36
|
29
|
|
|
37
|
|
-{==================== 策略决策函数 ====================}
|
|
38
|
|
-STRATEGY := FUNCTION(OPEN_PRICE) {
|
|
39
|
|
- IF OPEN_PRICE >= STOP_PROFIT_PRICE THEN RETURN 1;
|
|
40
|
|
- IF OPEN_PRICE <= STOP_LOSS_PRICE THEN RETURN -1;
|
|
41
|
|
- IF BEST_BLK_ZDF < 0 AND INDEX_ZDF < 0 THEN RETURN -1;
|
|
42
|
|
- IF BEST_BLK_ZDF < 0 OR INDEX_ZDF < 0 THEN RETURN 0;
|
|
43
|
|
- RETURN 2;
|
|
44
|
|
-};
|
|
45
|
|
-
|
|
46
|
|
-{==================== 模拟开盘情景 ====================}
|
|
47
|
|
-SIM_HIGH1 := STRATEGY(C * 1.01);
|
|
48
|
|
-SIM_HIGH2 := STRATEGY(C * 1.02);
|
|
49
|
|
-SIM_HIGH3 := STRATEGY(C * 1.03);
|
|
50
|
|
-SIM_LOW1 := STRATEGY(C * 0.99);
|
|
51
|
|
-SIM_LOW2 := STRATEGY(C * 0.98);
|
|
52
|
|
-SIM_LOW3 := STRATEGY(C * 0.97);
|
|
53
|
|
-
|
|
54
|
|
-{==================== 策略说明 ====================}
|
|
55
|
|
-STR_TXT := FUNCTION(X) {
|
|
56
|
|
- IF X = -1 THEN RETURN '全出';
|
|
57
|
|
- IF X = 0 THEN RETURN '减仓';
|
|
58
|
|
- IF X = 1 THEN RETURN '止盈全出';
|
|
59
|
|
- RETURN '持有';
|
|
60
|
|
-};
|
|
61
|
|
-
|
|
62
|
|
-DRAWTEXT_FIX(1, 0.00, 0.10, 0, '高开+1%: ' + STR_TXT(SIM_HIGH1)), COLORWHITE;
|
|
63
|
|
-DRAWTEXT_FIX(1, 0.00, 0.15, 0, '高开+2%: ' + STR_TXT(SIM_HIGH2)), COLORWHITE;
|
|
64
|
|
-DRAWTEXT_FIX(1, 0.00, 0.20, 0, '高开+3%: ' + STR_TXT(SIM_HIGH3)), COLORWHITE;
|
|
65
|
|
-DRAWTEXT_FIX(1, 0.00, 0.25, 0, '低开-1%: ' + STR_TXT(SIM_LOW1)), COLORWHITE;
|
|
66
|
|
-DRAWTEXT_FIX(1, 0.00, 0.30, 0, '低开-2%: ' + STR_TXT(SIM_LOW2)), COLORWHITE;
|
|
67
|
|
-DRAWTEXT_FIX(1, 0.00, 0.35, 0, '低开-3%: ' + STR_TXT(SIM_LOW3)), COLORWHITE;
|
|
68
|
|
-
|
|
69
|
|
-{==================== 画止盈止损线 ====================}
|
|
70
|
|
-DRAWLINE(CURRBARSCOUNT = 1, STOP_PROFIT_PRICE, ISLASTBAR, STOP_PROFIT_PRICE, 0), COLORGREEN, LINETHICK2;
|
|
71
|
|
-DRAWLINE(CURRBARSCOUNT = 1, STOP_LOSS_PRICE, ISLASTBAR, STOP_LOSS_PRICE, 0), COLORRED, LINETHICK2;
|
|
72
|
|
-DRAWTEXT(ISLASTBAR, STOP_PROFIT_PRICE, '止盈:' + NUMTOSTR(STOP_PROFIT_PRICE, 2)), COLORGREEN;
|
|
73
|
|
-DRAWTEXT(ISLASTBAR, STOP_LOSS_PRICE, '止损:' + NUMTOSTR(STOP_LOSS_PRICE, 2)), COLORRED;
|
|
|
30
|
+{=== 止盈止损线 ===}
|
|
|
31
|
+STICKLINE(1,Z_Y,Z_Y,3,0),COLORGREEN;
|
|
|
32
|
+STICKLINE(1,Z_S,Z_S,3,0),COLORRED;
|