请查问题 [金字塔]
-
咨询内容:
基本思路: 开平仓条件80\81\82\83分别为独立策略的条件。各策略在开平仓各自盈利>500后平仓不再开仓。现在需将以上四个策略同时放在一个策略中运行,并独立开平仓,各策略条件在开平仓总盈利>500后平仓不再开仓。若其中任意三个策略条件满足盈利>500平仓后不再开仓,策略此时需同时平了第四个条件开的仓。
以下内容为程序代码:
1 VARIABLE:H0=0,H1=0,H2=0,H3=0,P0=0,P1=0,P2=0,P3=0,TH=0,AA0=0,AA1=0,AA2=0,AA3=0,TZKC=0;
2 TH:=ABS(H0)+ABS(H1)+ABS(H2)+ABS(H3);//总开仓数
3 //=================以下近似的每手开仓手续费计算============
4 if TH>0 then FEE:=((H0*(C-P0)+H1*(C-P1)+H2*(C-P2)+H3*(C-P3))*MULTIPLIER-OPENPROFIT)/TH;
5 if TH=0 then FEE:=0;
6 //=================以上近似的每手开仓手续费计算============
7 AA00:=AA0+H0*(C-P0)*MULTIPLIER-FEE;//80开平仓总的动态盈利
8 AA01:=AA1+H1*(C-P1)*MULTIPLIER-FEE;//81开平仓总的动态盈利
9 AA02:=AA2+H2*(C-P2)*MULTIPLIER-FEE;//82开平仓总的动态盈利
10 AA03:=AA3+H3*(C-P3)*MULTIPLIER-FEE;//83开平仓总的动态盈利
11 //===========================80条件=====
12 BPK80:=A1;//条件A1
13 SPK80:=A2;//条件A2
14 BP80:=A1&&AA00>=500;
15 SP80:=A2&&AA00>=500;
16 //===========================81条件=====
17 BPK81:=B1;//条件B1
18 SPK81:=B2;//条件B2
19 BP81:=B1&&AA01>=500;
20 SP81:=B2&&AA01>=500;
21 //===========================82条件=====
22 BPK82:=C1;//条件C1
23 SPK82:=C2;//条件C2
24 BP82:=C1&&AA02>=500;
25 SP82:=C2&&AA02>=500;
26 //===========================83条件=====
27 BPK83:=D1;//条件D1
28 SPK83:=D2;//条件D2
29 BP83:=D1&&AA03>=500;
30 SP83:=D2&&AA03>=500;
31 //===========================80开平仓==============================
32 IF H0>=0&&SPK80 THEN BEGIN //若持有多单
33 if H0>0 then begin
34 SELL(1,1,MARKET); //80平多单
35 AA0:=AA0+H0*(CLOSE-P0)*MULTIPLIER-FEE;//80平仓总盈亏
36 H0:=0;//80持单数为”0”
37 P0:=0;//80持单价位为”0”
38 if AA0>150 then TZKC:=TZKC+1; //80停止开仓条件满足,停止开仓数TZKC+1。
39 end
40 if H0=0&&AA0<=150&&TZKC<3 then begin
41 BUYSHORT(1,1,MARKET); //开空单
42 H0:=-1;//80持单数为”-1”
43 P0:=ClOSE;//80持单价位为”ClOSE”
44 end
45 END
46 IF H0<=0&&BPK80 THEN BEGIN //若持有空单
47 if H0<0 then begin
48 SELLSHORT(1,1,MARKET); //平空单
49 AA0:=AA0+H0*(CLOSE-P0)*MULTIPLIER-FEE;
50 H0:=0;
51 P0:=0;
52 if AA0>150 then TZKC:=TZKC+1;
53 end
54 if H0=0&&AA0<=150&&TZKC<3 then begin
55 BUY(1,1,MARKET); //开多单
56 H0:=1;
57 P0:=ClOSE;
58 end
59 END
60 IF H0>0&&SP80 THEN BEGIN //若持有多单
61 SELL(1,1,MARKET); //平多单
62 AA0:=AA0+H0*(CLOSE-P0)*MULTIPLIER-FEE;
63 H0:=0;
64 P0:=0;
65 TZKC:=TZKC+1;
66 END
67 IF H0<0&&BP80 THEN BEGIN //若持有空单
68 SELLSHORT(1,1,MARKET); //平空单
69 AA0:=AA0+H0*(CLOSE-P0)*MULTIPLIER-FEE;
70 H0:=0;
71 P0:=0;
72 TZKC:=TZKC+1;
73 END
74 //==================81开平仓============================================
75 IF H1>=0&&SPK81 THEN BEGIN //若持有多单
76 if H1>0 then begin
77 SELL(1,1,MARKET); //平多单
78 AA1:=AA1+H1*(CLOSE-P1)*MULTIPLIER-FEE;
79 H1:=0;
80 P1:=0;
81 if AA1>150 then TZKC:=TZKC+1;
82 end
83 if H1=0&&AA1<=150&&TZKC<3 then begin
84 BUYSHORT(1,1,MARKET); //开空单
85 H1:=-1;
86 P1:=ClOSE;
87 TH:=ABS(H0)+ABS(H1)+ABS(H2)+ABS(H3);
88 end
89 END
90 IF H1<=0&&BPK81 THEN BEGIN //若持有空单
91 if H1<0 then begin
92 SELLSHORT(1,1,MARKET); //平空单
93 AA1:=AA1+H1*(CLOSE-P1)*MULTIPLIER-FEE;
94 H1:=0;
95 P1:=0;
96 if AA1>150 then TZKC:=TZKC+1;
97 end
98 if H1=0&&AA1<=150&&TZKC<3 then begin
99 BUY(1,1,MARKET); //开多单
100 H1:=1;
101 P1:=ClOSE;
102 end
103 END
104 IF H1>0&&SP81 THEN BEGIN //若持有多单
105 SELL(1,1,MARKET); //平多单
106 AA1:=AA1+H1*(CLOSE-P1)*MULTIPLIER-FEE;
107 H1:=0;
108 P1:=0;
109 TZKC:=TZKC+1;
110 END
111 IF H1<0&&BP81 THEN BEGIN //若持有空单
112 SELLSHORT(1,1,MARKET); //平空单
113 AA1:=AA1+H1*(CLOSE-P1)*MULTIPLIER-FEE;
114 H1:=0;
115 P1:=0;
116 TZKC:=TZKC+1;
117 END
118 //============82开平仓================================================
119 IF H2>=0&&SPK82 THEN BEGIN //若持有多单
120 if H2>0 then begin
121 SELL(1,1,MARKET); //平多单
122 AA2:=AA2+H2*(CLOSE-P2)*MULTIPLIER-FEE;
123 H2:=0;
124 P2:=0;
125 if AA2>150 then TZKC:=TZKC+1;
126 end
127 if H2=0&&AA2<=150&&TZKC<3 then BEGIN
128 BUYSHORT(1,1,MARKET); //开空单
129 H2:=-1;
130 P2:=ClOSE;
131 end
132 END
133 IF H2<=0&&BPK82 THEN BEGIN //若持有空单
134 if H2<0 then begin
135 SELLSHORT(1,1,MARKET); //平空单
136 AA2:=AA2+H2*(CLOSE-P2)*MULTIPLIER-FEE;
137 H2:=0;
138 P2:=0;
139 if AA2>150 then TZKC:=TZKC+1;
140 end
141 if H2=0&&AA2<=150&&TZKC<3 then BEGIN
142 BUY(1,1,MARKET); //开多单
143 H2:=1;
144 P2:=ClOSE;
145 end
146 END
147 IF H2>0&&SP82 THEN BEGIN //若持有多单
148 SELL(1,1,MARKET); //平多单
149 AA2:=AA2+H2*(CLOSE-P2)*MULTIPLIER-FEE;
150 H2:=0;
151 P2:=0;
152 TZKC:=TZKC+1;
153 END
154 IF H2<0&&BP82 THEN BEGIN //若持有空单
155 SELLSHORT(1,1,MARKET); //平空单
156 AA2:=AA2+H2*(CLOSE-P2)*MULTIPLIER-FEE;
157 H2:=0;
158 P2:=0;
159 TZKC:=TZKC+1;
160 END
161 //================83开平仓====================================================
162 IF H3>=0&&SPK83 THEN BEGIN //若持有多单
163 if H3>0 then begin
164 SELL(1,1,MARKET); //平多单
165 AA3:=AA3+H3*(CLOSE-P3)*MULTIPLIER-FEE;
166 H3:=0;
167 P3:=0;
168 if AA3>150 then TZKC:=TZKC+1;
169 end
170 if H3=0&&AA3<=150&&TZKC<3 then BEGIN
171 BUYSHORT(1,1,MARKET); //开空单
172 H3:=-1;
173 P3:=ClOSE;
174 end
175 END
176 IF H3<=0&&BPK83 THEN BEGIN //若持有空单
177 if H3<0 then begin
178 SELLSHORT(1,1,MARKET); //平空单
179 AA3:=AA3+H3*(CLOSE-P3)*MULTIPLIER-FEE;
180 H3:=0;
181 P3:=0;
182 if AA3>150 then TZKC:=TZKC+1;
183 end
184 if H3=0&&AA3<=150&&TZKC<3 then BEGIN
185 BUY(1,1,MARKET); //开多单
186 H3:=1;
187 P3:=ClOSE;
188 end
189 END
190 IF H3>0&&SP83 THEN BEGIN //若持有多单
191 SELL(1,1,MARKET); //平多单
192 AA3:=AA3+H3*(CLOSE-P3)*MULTIPLIER-FEE;
193 H3:=0;
194 P3:=0;
195 TZKC:=TZKC+1;
196 END
197 IF H3<0&&BP83 THEN BEGIN //若持有空单
198 SELLSHORT(1,1,MARKET); //平空单
199 AA3:=AA3+H3*(CLOSE-P3)*-FEE;
200 H3:=0;
201 P3:=0;
202 TZKC:=TZKC+1;
203 END
204 IF TZKC=3 THEN BEGIN//80、81、82、83任意3个停止开仓条件满足即清空持仓,不再开仓。
205 SELLSHORT(1,0,MARKET); //平空单
206 SELL(1,0,MARKET); //平多单
207 END
208 //============================83============================================
209 赢:asset-1000000,NOAXIS,COLORYELLOW;来源: WWW.CXH99.COM
-
金字塔客服:
四个策略同时放在一个策略中运行,并独立开平仓
这个没有办法,策略和策略之间是可以独立,但是如果放在一起没有办法做区分的
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容