├── .gitignore
├── LICENSE
├── QAStrategy101
├── strategy001
│ ├── analysis.ipynb
│ ├── readme.md
│ └── strategy001.py
└── strategy002
│ └── readme.md
└── README.md
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | *.egg-info/
24 | .installed.cfg
25 | *.egg
26 | MANIFEST
27 |
28 | # PyInstaller
29 | # Usually these files are written by a python script from a template
30 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
31 | *.manifest
32 | *.spec
33 |
34 | # Installer logs
35 | pip-log.txt
36 | pip-delete-this-directory.txt
37 |
38 | # Unit test / coverage reports
39 | htmlcov/
40 | .tox/
41 | .coverage
42 | .coverage.*
43 | .cache
44 | nosetests.xml
45 | coverage.xml
46 | *.cover
47 | .hypothesis/
48 | .pytest_cache/
49 |
50 | # Translations
51 | *.mo
52 | *.pot
53 |
54 | # Django stuff:
55 | *.log
56 | local_settings.py
57 | db.sqlite3
58 |
59 | # Flask stuff:
60 | instance/
61 | .webassets-cache
62 |
63 | # Scrapy stuff:
64 | .scrapy
65 |
66 | # Sphinx documentation
67 | docs/_build/
68 |
69 | # PyBuilder
70 | target/
71 |
72 | # Jupyter Notebook
73 | .ipynb_checkpoints
74 |
75 | # pyenv
76 | .python-version
77 |
78 | # celery beat schedule file
79 | celerybeat-schedule
80 |
81 | # SageMath parsed files
82 | *.sage.py
83 |
84 | # Environments
85 | .env
86 | .venv
87 | env/
88 | venv/
89 | ENV/
90 | env.bak/
91 | venv.bak/
92 |
93 | # Spyder project settings
94 | .spyderproject
95 | .spyproject
96 |
97 | # Rope project settings
98 | .ropeproject
99 |
100 | # mkdocs documentation
101 | /site
102 |
103 | # mypy
104 | .mypy_cache/
105 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2019 Vincent yu
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/QAStrategy101/strategy001/analysis.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# S001 King Keltner\n",
8 | "\n",
9 | "King Keltner 策略是基于移动平均线创立的, 基本思想是 在由最高价, 最低价, 收盘价得出的中心价格基础上计算出市场价格通道线的上下轨, 当价格上穿上轨时做多, 下穿下轨时做空, 由于不是每一次突破都会成功, 因此, 合理的止损设置显得尤为重要, 在kk策略中, 选择中心价格作为出场信号\n",
10 | "\n",
11 | "1. 计算中心价 MP = 最高价, 最低价, 收盘价三者平均后的40周期移动平均价\n",
12 | "\n",
13 | "MP = MA((high+low+close)/3, 40)\n",
14 | "\n",
15 | "\n",
16 | "2. 计算真实价格区间 TrueRange\n",
17 | "\n",
18 | "TR = max( abs(high_t - low_t), abs(high_t- close_t-1), abs(low_t - close_t-1))\n",
19 | "\n",
20 | "3. 计算通道上下轨 (upBand, dnBand), 其中mu是一个可变参数, 默认为1\n",
21 | "\n",
22 | "upBand = MP + mu*MA(TR, 40)\n",
23 | "\n",
24 | "dnBand = MP - mu*MA(TR, 40)\n",
25 | "\n",
26 | "4. 计算平仓价格\n",
27 | "\n",
28 | "FP = MP = MA((high+low+close)/3, 40)\n",
29 | "\n",
30 | "5. 开平仓条件\n",
31 | "\n",
32 | "买入开仓 BUY_OPEN : 当前周期MP > 上一个周期的MP AND 当前价格 > upBand\n",
33 | "\n",
34 | "卖出开仓 SELL_OPEN: 当前周期MP < 上一个周期的MP AND 当前价格 < dnBand\n",
35 | "\n",
36 | "平仓 : 当前周期价格 下穿 平仓价格FP\n",
37 | "\n",
38 | "平仓 : 当前周期价格 上穿 平仓价格FP\n",
39 | "\n",
40 | "平仓既是止盈 也是止损条件\n",
41 | "\n",
42 | "\n",
43 | "策略简单描述到此, 下面进入分析和策略代码部分"
44 | ]
45 | },
46 | {
47 | "cell_type": "code",
48 | "execution_count": 1,
49 | "metadata": {},
50 | "outputs": [
51 | {
52 | "name": "stdout",
53 | "output_type": "stream",
54 | "text": [
55 | "no display found. Using non-interactive Agg backend\n",
56 | "if you use ssh, you can use ssh with -X parmas to avoid this issue\n"
57 | ]
58 | }
59 | ],
60 | "source": [
61 | "import QUANTAXIS as QA"
62 | ]
63 | },
64 | {
65 | "cell_type": "code",
66 | "execution_count": null,
67 | "metadata": {},
68 | "outputs": [],
69 | "source": []
70 | },
71 | {
72 | "cell_type": "code",
73 | "execution_count": 2,
74 | "metadata": {},
75 | "outputs": [],
76 | "source": [
77 | "N = 40\n",
78 | "mu = 1"
79 | ]
80 | },
81 | {
82 | "cell_type": "code",
83 | "execution_count": 3,
84 | "metadata": {},
85 | "outputs": [],
86 | "source": [
87 | "import pandas as pd\n",
88 | "def strategy001(data, N=40, mu=1):\n",
89 | " MP = QA.MA((data.high+data.low+data.close)/3, N)\n",
90 | " TR = pd.concat([abs(data.high - data.low), abs(data.high- data.close.shift(1)), abs(data.low - data.close.shift(1))],axis=1).max(axis=1)\n",
91 | " upBand = MP + mu*QA.MA(TR, N)\n",
92 | " dnBand = MP - mu*QA.MA(TR, N)\n",
93 | " FP = MP\n",
94 | " return pd.DataFrame({'MP': MP, 'TR': TR, 'upBand': upBand, 'dnBand':dnBand, 'FP':MP})"
95 | ]
96 | },
97 | {
98 | "cell_type": "markdown",
99 | "metadata": {},
100 | "source": [
101 | "## 灌入数据"
102 | ]
103 | },
104 | {
105 | "cell_type": "code",
106 | "execution_count": 4,
107 | "metadata": {},
108 | "outputs": [],
109 | "source": [
110 | "data = QA.QA_fetch_future_day_adv(\"RBL8\", '2018-05-01', '2019-09-10')"
111 | ]
112 | },
113 | {
114 | "cell_type": "code",
115 | "execution_count": 5,
116 | "metadata": {},
117 | "outputs": [
118 | {
119 | "data": {
120 | "text/plain": [
121 | "< QA_DataStruct_Future_day with 1 securities >"
122 | ]
123 | },
124 | "execution_count": 5,
125 | "metadata": {},
126 | "output_type": "execute_result"
127 | }
128 | ],
129 | "source": [
130 | "data"
131 | ]
132 | },
133 | {
134 | "cell_type": "code",
135 | "execution_count": 6,
136 | "metadata": {},
137 | "outputs": [],
138 | "source": [
139 | "ind = data.add_func(strategy001)"
140 | ]
141 | },
142 | {
143 | "cell_type": "code",
144 | "execution_count": 7,
145 | "metadata": {},
146 | "outputs": [
147 | {
148 | "name": "stdout",
149 | "output_type": "stream",
150 | "text": [
151 | " MP TR upBand dnBand FP\n",
152 | "date code \n",
153 | "2019-09-04 RBL8 3721.116667 63.0 3801.866667 3640.366667 3721.116667\n",
154 | "2019-09-05 RBL8 3706.566667 56.0 3787.516667 3625.616667 3706.566667\n",
155 | "2019-09-06 RBL8 3691.416667 64.0 3772.166667 3610.666667 3691.416667\n",
156 | "2019-09-09 RBL8 3678.450000 115.0 3760.275000 3596.625000 3678.450000\n",
157 | "2019-09-10 RBL8 3664.558333 44.0 3745.008333 3584.108333 3664.558333\n"
158 | ]
159 | }
160 | ],
161 | "source": [
162 | "print(ind.tail())"
163 | ]
164 | },
165 | {
166 | "cell_type": "markdown",
167 | "metadata": {},
168 | "source": [
169 | "## 实现策略"
170 | ]
171 | },
172 | {
173 | "cell_type": "code",
174 | "execution_count": 8,
175 | "metadata": {},
176 | "outputs": [],
177 | "source": [
178 | "MPDIFF = ind.MP.diff().dropna()"
179 | ]
180 | },
181 | {
182 | "cell_type": "code",
183 | "execution_count": 9,
184 | "metadata": {},
185 | "outputs": [],
186 | "source": [
187 | "# 在测试阶段, 我们只需要写个伪回测代码即可"
188 | ]
189 | },
190 | {
191 | "cell_type": "code",
192 | "execution_count": 10,
193 | "metadata": {},
194 | "outputs": [
195 | {
196 | "name": "stdout",
197 | "output_type": "stream",
198 | "text": [
199 | "close\n",
200 | "buyOPEN _ (Timestamp('2018-06-29 00:00:00'), 'RBL8')\n",
201 | "buyOPEN _ (Timestamp('2018-07-04 00:00:00'), 'RBL8')\n",
202 | "buyOPEN _ (Timestamp('2018-07-05 00:00:00'), 'RBL8')\n",
203 | "buyOPEN _ (Timestamp('2018-07-09 00:00:00'), 'RBL8')\n",
204 | "buyOPEN _ (Timestamp('2018-07-10 00:00:00'), 'RBL8')\n",
205 | "buyOPEN _ (Timestamp('2018-07-11 00:00:00'), 'RBL8')\n",
206 | "buyOPEN _ (Timestamp('2018-07-12 00:00:00'), 'RBL8')\n",
207 | "buyOPEN _ (Timestamp('2018-07-13 00:00:00'), 'RBL8')\n",
208 | "buyOPEN _ (Timestamp('2018-07-16 00:00:00'), 'RBL8')\n",
209 | "buyOPEN _ (Timestamp('2018-07-17 00:00:00'), 'RBL8')\n",
210 | "buyOPEN _ (Timestamp('2018-07-18 00:00:00'), 'RBL8')\n",
211 | "buyOPEN _ (Timestamp('2018-07-19 00:00:00'), 'RBL8')\n",
212 | "buyOPEN _ (Timestamp('2018-07-20 00:00:00'), 'RBL8')\n",
213 | "buyOPEN _ (Timestamp('2018-07-23 00:00:00'), 'RBL8')\n",
214 | "buyOPEN _ (Timestamp('2018-07-24 00:00:00'), 'RBL8')\n",
215 | "buyOPEN _ (Timestamp('2018-07-25 00:00:00'), 'RBL8')\n",
216 | "buyOPEN _ (Timestamp('2018-07-26 00:00:00'), 'RBL8')\n",
217 | "buyOPEN _ (Timestamp('2018-07-27 00:00:00'), 'RBL8')\n",
218 | "buyOPEN _ (Timestamp('2018-07-30 00:00:00'), 'RBL8')\n",
219 | "buyOPEN _ (Timestamp('2018-07-31 00:00:00'), 'RBL8')\n",
220 | "buyOPEN _ (Timestamp('2018-08-01 00:00:00'), 'RBL8')\n",
221 | "buyOPEN _ (Timestamp('2018-08-02 00:00:00'), 'RBL8')\n",
222 | "buyOPEN _ (Timestamp('2018-08-03 00:00:00'), 'RBL8')\n",
223 | "buyOPEN _ (Timestamp('2018-08-06 00:00:00'), 'RBL8')\n",
224 | "buyOPEN _ (Timestamp('2018-08-07 00:00:00'), 'RBL8')\n",
225 | "buyOPEN _ (Timestamp('2018-08-08 00:00:00'), 'RBL8')\n",
226 | "buyOPEN _ (Timestamp('2018-08-09 00:00:00'), 'RBL8')\n",
227 | "buyOPEN _ (Timestamp('2018-08-10 00:00:00'), 'RBL8')\n",
228 | "buyOPEN _ (Timestamp('2018-08-13 00:00:00'), 'RBL8')\n",
229 | "buyOPEN _ (Timestamp('2018-08-14 00:00:00'), 'RBL8')\n",
230 | "buyOPEN _ (Timestamp('2018-08-15 00:00:00'), 'RBL8')\n",
231 | "buyOPEN _ (Timestamp('2018-08-16 00:00:00'), 'RBL8')\n",
232 | "buyOPEN _ (Timestamp('2018-08-17 00:00:00'), 'RBL8')\n",
233 | "buyOPEN _ (Timestamp('2018-08-20 00:00:00'), 'RBL8')\n",
234 | "buyOPEN _ (Timestamp('2018-08-21 00:00:00'), 'RBL8')\n",
235 | "buyOPEN _ (Timestamp('2018-08-22 00:00:00'), 'RBL8')\n",
236 | "buyOPEN _ (Timestamp('2018-08-23 00:00:00'), 'RBL8')\n",
237 | "buyOPEN _ (Timestamp('2018-08-24 00:00:00'), 'RBL8')\n",
238 | "buyOPEN _ (Timestamp('2018-08-27 00:00:00'), 'RBL8')\n",
239 | "buyOPEN _ (Timestamp('2018-08-28 00:00:00'), 'RBL8')\n",
240 | "close\n",
241 | "close\n",
242 | "buyOPEN _ (Timestamp('2018-09-10 00:00:00'), 'RBL8')\n",
243 | "close\n",
244 | "sellOPEN_ (Timestamp('2018-09-25 00:00:00'), 'RBL8')\n",
245 | "sellOPEN_ (Timestamp('2018-09-26 00:00:00'), 'RBL8')\n",
246 | "sellOPEN_ (Timestamp('2018-09-27 00:00:00'), 'RBL8')\n",
247 | "sellOPEN_ (Timestamp('2018-09-28 00:00:00'), 'RBL8')\n",
248 | "sellOPEN_ (Timestamp('2018-10-08 00:00:00'), 'RBL8')\n",
249 | "sellOPEN_ (Timestamp('2018-10-09 00:00:00'), 'RBL8')\n",
250 | "sellOPEN_ (Timestamp('2018-10-10 00:00:00'), 'RBL8')\n",
251 | "sellOPEN_ (Timestamp('2018-10-11 00:00:00'), 'RBL8')\n",
252 | "close\n",
253 | "close\n",
254 | "close\n",
255 | "close\n",
256 | "sellOPEN_ (Timestamp('2018-11-06 00:00:00'), 'RBL8')\n",
257 | "sellOPEN_ (Timestamp('2018-11-07 00:00:00'), 'RBL8')\n",
258 | "sellOPEN_ (Timestamp('2018-11-08 00:00:00'), 'RBL8')\n",
259 | "sellOPEN_ (Timestamp('2018-11-09 00:00:00'), 'RBL8')\n",
260 | "sellOPEN_ (Timestamp('2018-11-12 00:00:00'), 'RBL8')\n",
261 | "sellOPEN_ (Timestamp('2018-11-13 00:00:00'), 'RBL8')\n",
262 | "sellOPEN_ (Timestamp('2018-11-14 00:00:00'), 'RBL8')\n",
263 | "sellOPEN_ (Timestamp('2018-11-15 00:00:00'), 'RBL8')\n",
264 | "sellOPEN_ (Timestamp('2018-11-16 00:00:00'), 'RBL8')\n",
265 | "sellOPEN_ (Timestamp('2018-11-19 00:00:00'), 'RBL8')\n",
266 | "sellOPEN_ (Timestamp('2018-11-20 00:00:00'), 'RBL8')\n",
267 | "sellOPEN_ (Timestamp('2018-11-21 00:00:00'), 'RBL8')\n",
268 | "sellOPEN_ (Timestamp('2018-11-22 00:00:00'), 'RBL8')\n",
269 | "sellOPEN_ (Timestamp('2018-11-23 00:00:00'), 'RBL8')\n",
270 | "sellOPEN_ (Timestamp('2018-11-26 00:00:00'), 'RBL8')\n",
271 | "sellOPEN_ (Timestamp('2018-11-27 00:00:00'), 'RBL8')\n",
272 | "sellOPEN_ (Timestamp('2018-11-28 00:00:00'), 'RBL8')\n",
273 | "sellOPEN_ (Timestamp('2018-11-29 00:00:00'), 'RBL8')\n",
274 | "sellOPEN_ (Timestamp('2018-11-30 00:00:00'), 'RBL8')\n",
275 | "sellOPEN_ (Timestamp('2018-12-03 00:00:00'), 'RBL8')\n",
276 | "sellOPEN_ (Timestamp('2018-12-04 00:00:00'), 'RBL8')\n",
277 | "sellOPEN_ (Timestamp('2018-12-05 00:00:00'), 'RBL8')\n",
278 | "sellOPEN_ (Timestamp('2018-12-06 00:00:00'), 'RBL8')\n",
279 | "sellOPEN_ (Timestamp('2018-12-07 00:00:00'), 'RBL8')\n",
280 | "sellOPEN_ (Timestamp('2018-12-10 00:00:00'), 'RBL8')\n",
281 | "sellOPEN_ (Timestamp('2018-12-11 00:00:00'), 'RBL8')\n",
282 | "sellOPEN_ (Timestamp('2018-12-12 00:00:00'), 'RBL8')\n",
283 | "sellOPEN_ (Timestamp('2018-12-13 00:00:00'), 'RBL8')\n",
284 | "sellOPEN_ (Timestamp('2018-12-14 00:00:00'), 'RBL8')\n",
285 | "sellOPEN_ (Timestamp('2018-12-17 00:00:00'), 'RBL8')\n",
286 | "sellOPEN_ (Timestamp('2018-12-18 00:00:00'), 'RBL8')\n",
287 | "sellOPEN_ (Timestamp('2018-12-19 00:00:00'), 'RBL8')\n",
288 | "sellOPEN_ (Timestamp('2018-12-20 00:00:00'), 'RBL8')\n",
289 | "sellOPEN_ (Timestamp('2018-12-21 00:00:00'), 'RBL8')\n",
290 | "sellOPEN_ (Timestamp('2018-12-24 00:00:00'), 'RBL8')\n",
291 | "sellOPEN_ (Timestamp('2018-12-25 00:00:00'), 'RBL8')\n",
292 | "sellOPEN_ (Timestamp('2018-12-26 00:00:00'), 'RBL8')\n",
293 | "sellOPEN_ (Timestamp('2018-12-27 00:00:00'), 'RBL8')\n",
294 | "sellOPEN_ (Timestamp('2018-12-28 00:00:00'), 'RBL8')\n",
295 | "sellOPEN_ (Timestamp('2019-01-02 00:00:00'), 'RBL8')\n",
296 | "close\n",
297 | "close\n",
298 | "buyOPEN _ (Timestamp('2019-01-23 00:00:00'), 'RBL8')\n",
299 | "buyOPEN _ (Timestamp('2019-01-24 00:00:00'), 'RBL8')\n",
300 | "buyOPEN _ (Timestamp('2019-01-25 00:00:00'), 'RBL8')\n",
301 | "buyOPEN _ (Timestamp('2019-01-28 00:00:00'), 'RBL8')\n",
302 | "buyOPEN _ (Timestamp('2019-01-29 00:00:00'), 'RBL8')\n",
303 | "buyOPEN _ (Timestamp('2019-01-30 00:00:00'), 'RBL8')\n",
304 | "buyOPEN _ (Timestamp('2019-01-31 00:00:00'), 'RBL8')\n",
305 | "buyOPEN _ (Timestamp('2019-02-01 00:00:00'), 'RBL8')\n",
306 | "buyOPEN _ (Timestamp('2019-02-11 00:00:00'), 'RBL8')\n",
307 | "buyOPEN _ (Timestamp('2019-02-12 00:00:00'), 'RBL8')\n",
308 | "buyOPEN _ (Timestamp('2019-02-13 00:00:00'), 'RBL8')\n",
309 | "buyOPEN _ (Timestamp('2019-02-14 00:00:00'), 'RBL8')\n",
310 | "buyOPEN _ (Timestamp('2019-02-18 00:00:00'), 'RBL8')\n",
311 | "buyOPEN _ (Timestamp('2019-02-19 00:00:00'), 'RBL8')\n",
312 | "buyOPEN _ (Timestamp('2019-02-21 00:00:00'), 'RBL8')\n",
313 | "buyOPEN _ (Timestamp('2019-02-22 00:00:00'), 'RBL8')\n",
314 | "buyOPEN _ (Timestamp('2019-02-25 00:00:00'), 'RBL8')\n",
315 | "buyOPEN _ (Timestamp('2019-02-26 00:00:00'), 'RBL8')\n",
316 | "buyOPEN _ (Timestamp('2019-02-27 00:00:00'), 'RBL8')\n",
317 | "buyOPEN _ (Timestamp('2019-02-28 00:00:00'), 'RBL8')\n",
318 | "buyOPEN _ (Timestamp('2019-03-01 00:00:00'), 'RBL8')\n",
319 | "buyOPEN _ (Timestamp('2019-03-04 00:00:00'), 'RBL8')\n",
320 | "buyOPEN _ (Timestamp('2019-03-05 00:00:00'), 'RBL8')\n",
321 | "buyOPEN _ (Timestamp('2019-03-06 00:00:00'), 'RBL8')\n",
322 | "buyOPEN _ (Timestamp('2019-03-07 00:00:00'), 'RBL8')\n",
323 | "buyOPEN _ (Timestamp('2019-03-08 00:00:00'), 'RBL8')\n",
324 | "buyOPEN _ (Timestamp('2019-03-12 00:00:00'), 'RBL8')\n",
325 | "buyOPEN _ (Timestamp('2019-03-13 00:00:00'), 'RBL8')\n",
326 | "buyOPEN _ (Timestamp('2019-03-14 00:00:00'), 'RBL8')\n",
327 | "buyOPEN _ (Timestamp('2019-03-18 00:00:00'), 'RBL8')\n",
328 | "buyOPEN _ (Timestamp('2019-03-19 00:00:00'), 'RBL8')\n",
329 | "close\n",
330 | "close\n",
331 | "sellOPEN_ (Timestamp('2019-04-01 00:00:00'), 'RBL8')\n",
332 | "close\n",
333 | "sellOPEN_ (Timestamp('2019-04-02 00:00:00'), 'RBL8')\n",
334 | "sellOPEN_ (Timestamp('2019-04-03 00:00:00'), 'RBL8')\n",
335 | "sellOPEN_ (Timestamp('2019-04-04 00:00:00'), 'RBL8')\n",
336 | "close\n",
337 | "buyOPEN _ (Timestamp('2019-04-11 00:00:00'), 'RBL8')\n",
338 | "buyOPEN _ (Timestamp('2019-04-15 00:00:00'), 'RBL8')\n",
339 | "close\n",
340 | "close\n",
341 | "close\n",
342 | "close\n",
343 | "close\n",
344 | "close\n",
345 | "close\n",
346 | "sellOPEN_ (Timestamp('2019-05-14 00:00:00'), 'RBL8')\n",
347 | "close\n",
348 | "buyOPEN _ (Timestamp('2019-05-21 00:00:00'), 'RBL8')\n",
349 | "buyOPEN _ (Timestamp('2019-05-22 00:00:00'), 'RBL8')\n",
350 | "buyOPEN _ (Timestamp('2019-05-23 00:00:00'), 'RBL8')\n",
351 | "buyOPEN _ (Timestamp('2019-05-24 00:00:00'), 'RBL8')\n",
352 | "buyOPEN _ (Timestamp('2019-05-27 00:00:00'), 'RBL8')\n",
353 | "buyOPEN _ (Timestamp('2019-05-28 00:00:00'), 'RBL8')\n",
354 | "buyOPEN _ (Timestamp('2019-05-29 00:00:00'), 'RBL8')\n",
355 | "close\n",
356 | "close\n",
357 | "close\n",
358 | "sellOPEN_ (Timestamp('2019-06-17 00:00:00'), 'RBL8')\n",
359 | "close\n",
360 | "close\n",
361 | "buyOPEN _ (Timestamp('2019-06-21 00:00:00'), 'RBL8')\n",
362 | "buyOPEN _ (Timestamp('2019-06-24 00:00:00'), 'RBL8')\n",
363 | "buyOPEN _ (Timestamp('2019-06-25 00:00:00'), 'RBL8')\n",
364 | "buyOPEN _ (Timestamp('2019-06-26 00:00:00'), 'RBL8')\n",
365 | "buyOPEN _ (Timestamp('2019-06-27 00:00:00'), 'RBL8')\n",
366 | "buyOPEN _ (Timestamp('2019-06-28 00:00:00'), 'RBL8')\n",
367 | "buyOPEN _ (Timestamp('2019-07-01 00:00:00'), 'RBL8')\n",
368 | "buyOPEN _ (Timestamp('2019-07-02 00:00:00'), 'RBL8')\n",
369 | "buyOPEN _ (Timestamp('2019-07-03 00:00:00'), 'RBL8')\n",
370 | "buyOPEN _ (Timestamp('2019-07-04 00:00:00'), 'RBL8')\n",
371 | "buyOPEN _ (Timestamp('2019-07-05 00:00:00'), 'RBL8')\n",
372 | "buyOPEN _ (Timestamp('2019-07-08 00:00:00'), 'RBL8')\n",
373 | "buyOPEN _ (Timestamp('2019-07-09 00:00:00'), 'RBL8')\n",
374 | "buyOPEN _ (Timestamp('2019-07-10 00:00:00'), 'RBL8')\n",
375 | "buyOPEN _ (Timestamp('2019-07-11 00:00:00'), 'RBL8')\n",
376 | "buyOPEN _ (Timestamp('2019-07-12 00:00:00'), 'RBL8')\n",
377 | "buyOPEN _ (Timestamp('2019-07-16 00:00:00'), 'RBL8')\n",
378 | "buyOPEN _ (Timestamp('2019-07-17 00:00:00'), 'RBL8')\n",
379 | "buyOPEN _ (Timestamp('2019-07-18 00:00:00'), 'RBL8')\n",
380 | "buyOPEN _ (Timestamp('2019-07-19 00:00:00'), 'RBL8')\n",
381 | "close\n",
382 | "close\n",
383 | "sellOPEN_ (Timestamp('2019-08-07 00:00:00'), 'RBL8')\n",
384 | "sellOPEN_ (Timestamp('2019-08-08 00:00:00'), 'RBL8')\n",
385 | "sellOPEN_ (Timestamp('2019-08-09 00:00:00'), 'RBL8')\n",
386 | "sellOPEN_ (Timestamp('2019-08-12 00:00:00'), 'RBL8')\n",
387 | "sellOPEN_ (Timestamp('2019-08-13 00:00:00'), 'RBL8')\n",
388 | "sellOPEN_ (Timestamp('2019-08-14 00:00:00'), 'RBL8')\n",
389 | "sellOPEN_ (Timestamp('2019-08-15 00:00:00'), 'RBL8')\n",
390 | "sellOPEN_ (Timestamp('2019-08-16 00:00:00'), 'RBL8')\n",
391 | "sellOPEN_ (Timestamp('2019-08-19 00:00:00'), 'RBL8')\n",
392 | "sellOPEN_ (Timestamp('2019-08-20 00:00:00'), 'RBL8')\n",
393 | "sellOPEN_ (Timestamp('2019-08-21 00:00:00'), 'RBL8')\n",
394 | "sellOPEN_ (Timestamp('2019-08-22 00:00:00'), 'RBL8')\n",
395 | "sellOPEN_ (Timestamp('2019-08-23 00:00:00'), 'RBL8')\n",
396 | "sellOPEN_ (Timestamp('2019-08-26 00:00:00'), 'RBL8')\n",
397 | "sellOPEN_ (Timestamp('2019-08-27 00:00:00'), 'RBL8')\n",
398 | "sellOPEN_ (Timestamp('2019-08-28 00:00:00'), 'RBL8')\n",
399 | "sellOPEN_ (Timestamp('2019-08-29 00:00:00'), 'RBL8')\n",
400 | "sellOPEN_ (Timestamp('2019-08-30 00:00:00'), 'RBL8')\n",
401 | "sellOPEN_ (Timestamp('2019-09-02 00:00:00'), 'RBL8')\n",
402 | "sellOPEN_ (Timestamp('2019-09-03 00:00:00'), 'RBL8')\n",
403 | "sellOPEN_ (Timestamp('2019-09-04 00:00:00'), 'RBL8')\n",
404 | "sellOPEN_ (Timestamp('2019-09-05 00:00:00'), 'RBL8')\n",
405 | "sellOPEN_ (Timestamp('2019-09-06 00:00:00'), 'RBL8')\n",
406 | "sellOPEN_ (Timestamp('2019-09-09 00:00:00'), 'RBL8')\n",
407 | "sellOPEN_ (Timestamp('2019-09-10 00:00:00'), 'RBL8')\n"
408 | ]
409 | }
410 | ],
411 | "source": [
412 | "\n",
413 | "lastprice = 0\n",
414 | "\n",
415 | "for idx, item in data.iterrows():\n",
416 | " try:\n",
417 | " if MPDIFF.loc[idx]>0 and item['close']> ind.upBand.loc[idx]:\n",
418 | " print('buyOPEN _ {}'.format(idx))\n",
419 | " if MPDIFF.loc[idx]<0 and item['close']< ind.dnBand.loc[idx]:\n",
420 | " print('sellOPEN_ {}'.format(idx))\n",
421 | " if lastprice< ind.FP.loc[idx] and item['close']> ind.FP.loc[idx]:\n",
422 | " print('close')\n",
423 | " if lastprice> ind.FP.loc[idx] and item['close']< ind.FP.loc[idx]:\n",
424 | " print('close')\n",
425 | " except:\n",
426 | " pass\n",
427 | " lastprice = item['close']"
428 | ]
429 | },
430 | {
431 | "cell_type": "markdown",
432 | "metadata": {},
433 | "source": [
434 | "## 回测代码"
435 | ]
436 | },
437 | {
438 | "cell_type": "code",
439 | "execution_count": 11,
440 | "metadata": {},
441 | "outputs": [],
442 | "source": [
443 | "user = QA.QA_User(username='quantaxiss', password='quantaxis')\n",
444 | "portfolio = user.new_portfolio('strategy101')"
445 | ]
446 | },
447 | {
448 | "cell_type": "code",
449 | "execution_count": null,
450 | "metadata": {},
451 | "outputs": [],
452 | "source": []
453 | },
454 | {
455 | "cell_type": "code",
456 | "execution_count": 12,
457 | "metadata": {},
458 | "outputs": [
459 | {
460 | "name": "stdout",
461 | "output_type": "stream",
462 | "text": [
463 | "QAACCOUNT: THIS ACCOUNT DOESNOT HAVE ANY TRADE\n",
464 | "QAACCOUNT: THIS ACCOUNT DOESNOT HAVE ANY TRADE\n",
465 | "close\n",
466 | "buyOPEN _ (Timestamp('2018-06-29 00:00:00'), 'RBL8')\n",
467 | "close\n",
468 | "close\n",
469 | "buyOPEN _ (Timestamp('2018-09-10 00:00:00'), 'RBL8')\n",
470 | "close\n",
471 | "sellOPEN_ (Timestamp('2018-09-25 00:00:00'), 'RBL8')\n",
472 | "close\n",
473 | "close\n",
474 | "close\n",
475 | "close\n",
476 | "sellOPEN_ (Timestamp('2018-11-06 00:00:00'), 'RBL8')\n",
477 | "close\n",
478 | "close\n",
479 | "buyOPEN _ (Timestamp('2019-01-23 00:00:00'), 'RBL8')\n",
480 | "close\n",
481 | "close\n",
482 | "sellOPEN_ (Timestamp('2019-04-01 00:00:00'), 'RBL8')\n",
483 | "close\n",
484 | "sellOPEN_ (Timestamp('2019-04-02 00:00:00'), 'RBL8')\n",
485 | "close\n",
486 | "buyOPEN _ (Timestamp('2019-04-11 00:00:00'), 'RBL8')\n",
487 | "close\n",
488 | "close\n",
489 | "close\n",
490 | "close\n",
491 | "close\n",
492 | "close\n",
493 | "close\n",
494 | "sellOPEN_ (Timestamp('2019-05-14 00:00:00'), 'RBL8')\n",
495 | "close\n",
496 | "buyOPEN _ (Timestamp('2019-05-21 00:00:00'), 'RBL8')\n",
497 | "close\n",
498 | "close\n",
499 | "close\n",
500 | "sellOPEN_ (Timestamp('2019-06-17 00:00:00'), 'RBL8')\n",
501 | "close\n",
502 | "close\n",
503 | "buyOPEN _ (Timestamp('2019-06-21 00:00:00'), 'RBL8')\n",
504 | "close\n",
505 | "close\n",
506 | "sellOPEN_ (Timestamp('2019-08-07 00:00:00'), 'RBL8')\n"
507 | ]
508 | }
509 | ],
510 | "source": [
511 | "acc = portfolio.new_account(account_cookie='acc001', init_hold={'RBL8':0}, init_cash=30000, market_type=QA.MARKET_TYPE.FUTURE_CN)\n",
512 | "lastprice = 0\n",
513 | "\n",
514 | "for idx, item in data.iterrows():\n",
515 | " try:\n",
516 | " if acc.hold_available.get(idx[1],0) ==0 and MPDIFF.loc[idx]>0 and item['close']> ind.upBand.loc[idx]:\n",
517 | " print('buyOPEN _ {}'.format(idx))\n",
518 | " acc.receive_simpledeal(\n",
519 | " code= idx[1],\n",
520 | " trade_price = item['close'],\n",
521 | " trade_amount = 1,\n",
522 | " trade_towards= QA.ORDER_DIRECTION.BUY_OPEN,\n",
523 | " trade_time= idx[0])\n",
524 | " if acc.hold_available.get(idx[1],0) ==0 and MPDIFF.loc[idx]<0 and item['close']< ind.dnBand.loc[idx]:\n",
525 | " print('sellOPEN_ {}'.format(idx))\n",
526 | " acc.receive_simpledeal(\n",
527 | " code= idx[1],\n",
528 | " trade_price = item['close'],\n",
529 | " trade_amount = 1,\n",
530 | " trade_towards= QA.ORDER_DIRECTION.SELL_OPEN,\n",
531 | " trade_time= idx[0])\n",
532 | " if lastprice< ind.FP.loc[idx] and item['close']> ind.FP.loc[idx]:\n",
533 | " print('close')\n",
534 | " if acc.hold_available.get(idx[1],0)>0:\n",
535 | " #多单止盈\n",
536 | " acc.receive_simpledeal(\n",
537 | " code= idx[1],\n",
538 | " trade_price = item['close'],\n",
539 | " trade_amount = 1,\n",
540 | " trade_towards= QA.ORDER_DIRECTION.SELL_CLOSE,\n",
541 | " trade_time= idx[0])\n",
542 | " elif acc.hold_available.get(idx[1],0)<0:\n",
543 | " # 空单止损\n",
544 | " acc.receive_simpledeal(\n",
545 | " code= idx[1],\n",
546 | " trade_price = item['close'],\n",
547 | " trade_amount = 1,\n",
548 | " trade_towards= QA.ORDER_DIRECTION.BUY_CLOSE,\n",
549 | " trade_time= idx[0])\n",
550 | " \n",
551 | " if lastprice> ind.FP.loc[idx] and item['close']< ind.FP.loc[idx]:\n",
552 | " print('close')\n",
553 | " if acc.hold_available.get(idx[1],0)>0:\n",
554 | " #多单止损\n",
555 | " acc.receive_simpledeal(\n",
556 | " code= idx[1],\n",
557 | " trade_price = item['close'],\n",
558 | " trade_amount = 1,\n",
559 | " trade_towards= QA.ORDER_DIRECTION.SELL_CLOSE,\n",
560 | " trade_time= idx[0])\n",
561 | " elif acc.hold_available.get(idx[1],0)<0:\n",
562 | " # 空单止盈\n",
563 | " acc.receive_simpledeal(\n",
564 | " code= idx[1],\n",
565 | " trade_price = item['close'],\n",
566 | " trade_amount = 1,\n",
567 | " trade_towards= QA.ORDER_DIRECTION.BUY_CLOSE,\n",
568 | " trade_time= idx[0])\n",
569 | " except:\n",
570 | " pass\n",
571 | " lastprice = item['close']"
572 | ]
573 | },
574 | {
575 | "cell_type": "code",
576 | "execution_count": 13,
577 | "metadata": {},
578 | "outputs": [
579 | {
580 | "data": {
581 | "text/html": [
582 | "
\n",
583 | "\n",
596 | "
\n",
597 | " \n",
598 | " \n",
599 | " | \n",
600 | " datetime | \n",
601 | " code | \n",
602 | " price | \n",
603 | " amount | \n",
604 | " cash | \n",
605 | " order_id | \n",
606 | " realorder_id | \n",
607 | " trade_id | \n",
608 | " account_cookie | \n",
609 | " commission | \n",
610 | " tax | \n",
611 | " message | \n",
612 | " frozen | \n",
613 | " direction | \n",
614 | " total_frozen | \n",
615 | "
\n",
616 | " \n",
617 | " \n",
618 | " \n",
619 | " 0 | \n",
620 | " 2018-06-29 00:00:00 | \n",
621 | " RBL8 | \n",
622 | " 3807.0 | \n",
623 | " 1 | \n",
624 | " 26569.893 | \n",
625 | " None | \n",
626 | " None | \n",
627 | " None | \n",
628 | " acc001 | \n",
629 | " 3.807 | \n",
630 | " 0 | \n",
631 | " None | \n",
632 | " 3426.3 | \n",
633 | " 2 | \n",
634 | " 3426.3 | \n",
635 | "
\n",
636 | " \n",
637 | " 1 | \n",
638 | " 2018-08-30 00:00:00 | \n",
639 | " RBL8 | \n",
640 | " 4118.0 | \n",
641 | " -1 | \n",
642 | " 33102.075 | \n",
643 | " None | \n",
644 | " None | \n",
645 | " None | \n",
646 | " acc001 | \n",
647 | " 4.118 | \n",
648 | " 0 | \n",
649 | " None | \n",
650 | " 0.0 | \n",
651 | " -3 | \n",
652 | " 0.0 | \n",
653 | "
\n",
654 | " \n",
655 | " 2 | \n",
656 | " 2018-09-10 00:00:00 | \n",
657 | " RBL8 | \n",
658 | " 4284.0 | \n",
659 | " 1 | \n",
660 | " 29242.191 | \n",
661 | " None | \n",
662 | " None | \n",
663 | " None | \n",
664 | " acc001 | \n",
665 | " 4.284 | \n",
666 | " 0 | \n",
667 | " None | \n",
668 | " 3855.6 | \n",
669 | " 2 | \n",
670 | " 3855.6 | \n",
671 | "
\n",
672 | " \n",
673 | " 3 | \n",
674 | " 2018-09-11 00:00:00 | \n",
675 | " RBL8 | \n",
676 | " 4071.0 | \n",
677 | " -1 | \n",
678 | " 30963.720 | \n",
679 | " None | \n",
680 | " None | \n",
681 | " None | \n",
682 | " acc001 | \n",
683 | " 4.071 | \n",
684 | " 0 | \n",
685 | " None | \n",
686 | " 0.0 | \n",
687 | " -3 | \n",
688 | " 0.0 | \n",
689 | "
\n",
690 | " \n",
691 | " 4 | \n",
692 | " 2018-09-25 00:00:00 | \n",
693 | " RBL8 | \n",
694 | " 4060.0 | \n",
695 | " -1 | \n",
696 | " 27305.660 | \n",
697 | " None | \n",
698 | " None | \n",
699 | " None | \n",
700 | " acc001 | \n",
701 | " 4.060 | \n",
702 | " 0 | \n",
703 | " None | \n",
704 | " 3654.0 | \n",
705 | " -2 | \n",
706 | " 3654.0 | \n",
707 | "
\n",
708 | " \n",
709 | " 5 | \n",
710 | " 2018-10-17 00:00:00 | \n",
711 | " RBL8 | \n",
712 | " 4197.0 | \n",
713 | " 1 | \n",
714 | " 29585.463 | \n",
715 | " None | \n",
716 | " None | \n",
717 | " None | \n",
718 | " acc001 | \n",
719 | " 4.197 | \n",
720 | " 0 | \n",
721 | " None | \n",
722 | " 0.0 | \n",
723 | " 3 | \n",
724 | " 0.0 | \n",
725 | "
\n",
726 | " \n",
727 | " 6 | \n",
728 | " 2018-11-06 00:00:00 | \n",
729 | " RBL8 | \n",
730 | " 3962.0 | \n",
731 | " -1 | \n",
732 | " 26015.701 | \n",
733 | " None | \n",
734 | " None | \n",
735 | " None | \n",
736 | " acc001 | \n",
737 | " 3.962 | \n",
738 | " 0 | \n",
739 | " None | \n",
740 | " 3565.8 | \n",
741 | " -2 | \n",
742 | " 3565.8 | \n",
743 | "
\n",
744 | " \n",
745 | " 7 | \n",
746 | " 2019-01-08 00:00:00 | \n",
747 | " RBL8 | \n",
748 | " 3505.0 | \n",
749 | " 1 | \n",
750 | " 34147.996 | \n",
751 | " None | \n",
752 | " None | \n",
753 | " None | \n",
754 | " acc001 | \n",
755 | " 3.505 | \n",
756 | " 0 | \n",
757 | " None | \n",
758 | " 0.0 | \n",
759 | " 3 | \n",
760 | " 0.0 | \n",
761 | "
\n",
762 | " \n",
763 | " 8 | \n",
764 | " 2019-01-23 00:00:00 | \n",
765 | " RBL8 | \n",
766 | " 3644.0 | \n",
767 | " 1 | \n",
768 | " 30864.752 | \n",
769 | " None | \n",
770 | " None | \n",
771 | " None | \n",
772 | " acc001 | \n",
773 | " 3.644 | \n",
774 | " 0 | \n",
775 | " None | \n",
776 | " 3279.6 | \n",
777 | " 2 | \n",
778 | " 3279.6 | \n",
779 | "
\n",
780 | " \n",
781 | " 9 | \n",
782 | " 2019-03-25 00:00:00 | \n",
783 | " RBL8 | \n",
784 | " 3692.0 | \n",
785 | " -1 | \n",
786 | " 34620.660 | \n",
787 | " None | \n",
788 | " None | \n",
789 | " None | \n",
790 | " acc001 | \n",
791 | " 3.692 | \n",
792 | " 0 | \n",
793 | " None | \n",
794 | " 0.0 | \n",
795 | " -3 | \n",
796 | " 0.0 | \n",
797 | "
\n",
798 | " \n",
799 | " 10 | \n",
800 | " 2019-04-01 00:00:00 | \n",
801 | " RBL8 | \n",
802 | " 3497.0 | \n",
803 | " -1 | \n",
804 | " 31469.863 | \n",
805 | " None | \n",
806 | " None | \n",
807 | " None | \n",
808 | " acc001 | \n",
809 | " 3.497 | \n",
810 | " 0 | \n",
811 | " None | \n",
812 | " 3147.3 | \n",
813 | " -2 | \n",
814 | " 3147.3 | \n",
815 | "
\n",
816 | " \n",
817 | " 11 | \n",
818 | " 2019-04-01 00:00:00 | \n",
819 | " RBL8 | \n",
820 | " 3497.0 | \n",
821 | " 1 | \n",
822 | " 34613.666 | \n",
823 | " None | \n",
824 | " None | \n",
825 | " None | \n",
826 | " acc001 | \n",
827 | " 3.497 | \n",
828 | " 0 | \n",
829 | " None | \n",
830 | " 0.0 | \n",
831 | " 3 | \n",
832 | " 0.0 | \n",
833 | "
\n",
834 | " \n",
835 | " 12 | \n",
836 | " 2019-04-02 00:00:00 | \n",
837 | " RBL8 | \n",
838 | " 3560.0 | \n",
839 | " -1 | \n",
840 | " 31406.106 | \n",
841 | " None | \n",
842 | " None | \n",
843 | " None | \n",
844 | " acc001 | \n",
845 | " 3.560 | \n",
846 | " 0 | \n",
847 | " None | \n",
848 | " 3204.0 | \n",
849 | " -2 | \n",
850 | " 3204.0 | \n",
851 | "
\n",
852 | " \n",
853 | " 13 | \n",
854 | " 2019-04-08 00:00:00 | \n",
855 | " RBL8 | \n",
856 | " 3730.0 | \n",
857 | " 1 | \n",
858 | " 32906.376 | \n",
859 | " None | \n",
860 | " None | \n",
861 | " None | \n",
862 | " acc001 | \n",
863 | " 3.730 | \n",
864 | " 0 | \n",
865 | " None | \n",
866 | " 0.0 | \n",
867 | " 3 | \n",
868 | " 0.0 | \n",
869 | "
\n",
870 | " \n",
871 | " 14 | \n",
872 | " 2019-04-11 00:00:00 | \n",
873 | " RBL8 | \n",
874 | " 3808.0 | \n",
875 | " 1 | \n",
876 | " 29475.368 | \n",
877 | " None | \n",
878 | " None | \n",
879 | " None | \n",
880 | " acc001 | \n",
881 | " 3.808 | \n",
882 | " 0 | \n",
883 | " None | \n",
884 | " 3427.2 | \n",
885 | " 2 | \n",
886 | " 3427.2 | \n",
887 | "
\n",
888 | " \n",
889 | " 15 | \n",
890 | " 2019-04-18 00:00:00 | \n",
891 | " RBL8 | \n",
892 | " 3710.0 | \n",
893 | " -1 | \n",
894 | " 31918.858 | \n",
895 | " None | \n",
896 | " None | \n",
897 | " None | \n",
898 | " acc001 | \n",
899 | " 3.710 | \n",
900 | " 0 | \n",
901 | " None | \n",
902 | " 0.0 | \n",
903 | " -3 | \n",
904 | " 0.0 | \n",
905 | "
\n",
906 | " \n",
907 | " 16 | \n",
908 | " 2019-05-14 00:00:00 | \n",
909 | " RBL8 | \n",
910 | " 3663.0 | \n",
911 | " -1 | \n",
912 | " 28618.495 | \n",
913 | " None | \n",
914 | " None | \n",
915 | " None | \n",
916 | " acc001 | \n",
917 | " 3.663 | \n",
918 | " 0 | \n",
919 | " None | \n",
920 | " 3296.7 | \n",
921 | " -2 | \n",
922 | " 3296.7 | \n",
923 | "
\n",
924 | " \n",
925 | " 17 | \n",
926 | " 2019-05-16 00:00:00 | \n",
927 | " RBL8 | \n",
928 | " 3742.0 | \n",
929 | " 1 | \n",
930 | " 31121.453 | \n",
931 | " None | \n",
932 | " None | \n",
933 | " None | \n",
934 | " acc001 | \n",
935 | " 3.742 | \n",
936 | " 0 | \n",
937 | " None | \n",
938 | " 0.0 | \n",
939 | " 3 | \n",
940 | " 0.0 | \n",
941 | "
\n",
942 | " \n",
943 | " 18 | \n",
944 | " 2019-05-21 00:00:00 | \n",
945 | " RBL8 | \n",
946 | " 3919.0 | \n",
947 | " 1 | \n",
948 | " 27590.434 | \n",
949 | " None | \n",
950 | " None | \n",
951 | " None | \n",
952 | " acc001 | \n",
953 | " 3.919 | \n",
954 | " 0 | \n",
955 | " None | \n",
956 | " 3527.1 | \n",
957 | " 2 | \n",
958 | " 3527.1 | \n",
959 | "
\n",
960 | " \n",
961 | " 19 | \n",
962 | " 2019-05-31 00:00:00 | \n",
963 | " RBL8 | \n",
964 | " 3750.0 | \n",
965 | " -1 | \n",
966 | " 29423.784 | \n",
967 | " None | \n",
968 | " None | \n",
969 | " None | \n",
970 | " acc001 | \n",
971 | " 3.750 | \n",
972 | " 0 | \n",
973 | " None | \n",
974 | " 0.0 | \n",
975 | " -3 | \n",
976 | " 0.0 | \n",
977 | "
\n",
978 | " \n",
979 | " 20 | \n",
980 | " 2019-06-17 00:00:00 | \n",
981 | " RBL8 | \n",
982 | " 3704.0 | \n",
983 | " -1 | \n",
984 | " 26086.480 | \n",
985 | " None | \n",
986 | " None | \n",
987 | " None | \n",
988 | " acc001 | \n",
989 | " 3.704 | \n",
990 | " 0 | \n",
991 | " None | \n",
992 | " 3333.6 | \n",
993 | " -2 | \n",
994 | " 3333.6 | \n",
995 | "
\n",
996 | " \n",
997 | " 21 | \n",
998 | " 2019-06-19 00:00:00 | \n",
999 | " RBL8 | \n",
1000 | " 3770.0 | \n",
1001 | " 1 | \n",
1002 | " 28756.310 | \n",
1003 | " None | \n",
1004 | " None | \n",
1005 | " None | \n",
1006 | " acc001 | \n",
1007 | " 3.770 | \n",
1008 | " 0 | \n",
1009 | " None | \n",
1010 | " 0.0 | \n",
1011 | " 3 | \n",
1012 | " 0.0 | \n",
1013 | "
\n",
1014 | " \n",
1015 | " 22 | \n",
1016 | " 2019-06-21 00:00:00 | \n",
1017 | " RBL8 | \n",
1018 | " 3859.0 | \n",
1019 | " 1 | \n",
1020 | " 25279.351 | \n",
1021 | " None | \n",
1022 | " None | \n",
1023 | " None | \n",
1024 | " acc001 | \n",
1025 | " 3.859 | \n",
1026 | " 0 | \n",
1027 | " None | \n",
1028 | " 3473.1 | \n",
1029 | " 2 | \n",
1030 | " 3473.1 | \n",
1031 | "
\n",
1032 | " \n",
1033 | " 23 | \n",
1034 | " 2019-07-25 00:00:00 | \n",
1035 | " RBL8 | \n",
1036 | " 3940.0 | \n",
1037 | " -1 | \n",
1038 | " 29558.511 | \n",
1039 | " None | \n",
1040 | " None | \n",
1041 | " None | \n",
1042 | " acc001 | \n",
1043 | " 3.940 | \n",
1044 | " 0 | \n",
1045 | " None | \n",
1046 | " 0.0 | \n",
1047 | " -3 | \n",
1048 | " 0.0 | \n",
1049 | "
\n",
1050 | " \n",
1051 | " 24 | \n",
1052 | " 2019-08-07 00:00:00 | \n",
1053 | " RBL8 | \n",
1054 | " 3711.0 | \n",
1055 | " -1 | \n",
1056 | " 26214.900 | \n",
1057 | " None | \n",
1058 | " None | \n",
1059 | " None | \n",
1060 | " acc001 | \n",
1061 | " 3.711 | \n",
1062 | " 0 | \n",
1063 | " None | \n",
1064 | " 3339.9 | \n",
1065 | " -2 | \n",
1066 | " 3339.9 | \n",
1067 | "
\n",
1068 | " \n",
1069 | "
\n",
1070 | "
"
1071 | ],
1072 | "text/plain": [
1073 | " datetime code price amount cash order_id \\\n",
1074 | "0 2018-06-29 00:00:00 RBL8 3807.0 1 26569.893 None \n",
1075 | "1 2018-08-30 00:00:00 RBL8 4118.0 -1 33102.075 None \n",
1076 | "2 2018-09-10 00:00:00 RBL8 4284.0 1 29242.191 None \n",
1077 | "3 2018-09-11 00:00:00 RBL8 4071.0 -1 30963.720 None \n",
1078 | "4 2018-09-25 00:00:00 RBL8 4060.0 -1 27305.660 None \n",
1079 | "5 2018-10-17 00:00:00 RBL8 4197.0 1 29585.463 None \n",
1080 | "6 2018-11-06 00:00:00 RBL8 3962.0 -1 26015.701 None \n",
1081 | "7 2019-01-08 00:00:00 RBL8 3505.0 1 34147.996 None \n",
1082 | "8 2019-01-23 00:00:00 RBL8 3644.0 1 30864.752 None \n",
1083 | "9 2019-03-25 00:00:00 RBL8 3692.0 -1 34620.660 None \n",
1084 | "10 2019-04-01 00:00:00 RBL8 3497.0 -1 31469.863 None \n",
1085 | "11 2019-04-01 00:00:00 RBL8 3497.0 1 34613.666 None \n",
1086 | "12 2019-04-02 00:00:00 RBL8 3560.0 -1 31406.106 None \n",
1087 | "13 2019-04-08 00:00:00 RBL8 3730.0 1 32906.376 None \n",
1088 | "14 2019-04-11 00:00:00 RBL8 3808.0 1 29475.368 None \n",
1089 | "15 2019-04-18 00:00:00 RBL8 3710.0 -1 31918.858 None \n",
1090 | "16 2019-05-14 00:00:00 RBL8 3663.0 -1 28618.495 None \n",
1091 | "17 2019-05-16 00:00:00 RBL8 3742.0 1 31121.453 None \n",
1092 | "18 2019-05-21 00:00:00 RBL8 3919.0 1 27590.434 None \n",
1093 | "19 2019-05-31 00:00:00 RBL8 3750.0 -1 29423.784 None \n",
1094 | "20 2019-06-17 00:00:00 RBL8 3704.0 -1 26086.480 None \n",
1095 | "21 2019-06-19 00:00:00 RBL8 3770.0 1 28756.310 None \n",
1096 | "22 2019-06-21 00:00:00 RBL8 3859.0 1 25279.351 None \n",
1097 | "23 2019-07-25 00:00:00 RBL8 3940.0 -1 29558.511 None \n",
1098 | "24 2019-08-07 00:00:00 RBL8 3711.0 -1 26214.900 None \n",
1099 | "\n",
1100 | " realorder_id trade_id account_cookie commission tax message frozen \\\n",
1101 | "0 None None acc001 3.807 0 None 3426.3 \n",
1102 | "1 None None acc001 4.118 0 None 0.0 \n",
1103 | "2 None None acc001 4.284 0 None 3855.6 \n",
1104 | "3 None None acc001 4.071 0 None 0.0 \n",
1105 | "4 None None acc001 4.060 0 None 3654.0 \n",
1106 | "5 None None acc001 4.197 0 None 0.0 \n",
1107 | "6 None None acc001 3.962 0 None 3565.8 \n",
1108 | "7 None None acc001 3.505 0 None 0.0 \n",
1109 | "8 None None acc001 3.644 0 None 3279.6 \n",
1110 | "9 None None acc001 3.692 0 None 0.0 \n",
1111 | "10 None None acc001 3.497 0 None 3147.3 \n",
1112 | "11 None None acc001 3.497 0 None 0.0 \n",
1113 | "12 None None acc001 3.560 0 None 3204.0 \n",
1114 | "13 None None acc001 3.730 0 None 0.0 \n",
1115 | "14 None None acc001 3.808 0 None 3427.2 \n",
1116 | "15 None None acc001 3.710 0 None 0.0 \n",
1117 | "16 None None acc001 3.663 0 None 3296.7 \n",
1118 | "17 None None acc001 3.742 0 None 0.0 \n",
1119 | "18 None None acc001 3.919 0 None 3527.1 \n",
1120 | "19 None None acc001 3.750 0 None 0.0 \n",
1121 | "20 None None acc001 3.704 0 None 3333.6 \n",
1122 | "21 None None acc001 3.770 0 None 0.0 \n",
1123 | "22 None None acc001 3.859 0 None 3473.1 \n",
1124 | "23 None None acc001 3.940 0 None 0.0 \n",
1125 | "24 None None acc001 3.711 0 None 3339.9 \n",
1126 | "\n",
1127 | " direction total_frozen \n",
1128 | "0 2 3426.3 \n",
1129 | "1 -3 0.0 \n",
1130 | "2 2 3855.6 \n",
1131 | "3 -3 0.0 \n",
1132 | "4 -2 3654.0 \n",
1133 | "5 3 0.0 \n",
1134 | "6 -2 3565.8 \n",
1135 | "7 3 0.0 \n",
1136 | "8 2 3279.6 \n",
1137 | "9 -3 0.0 \n",
1138 | "10 -2 3147.3 \n",
1139 | "11 3 0.0 \n",
1140 | "12 -2 3204.0 \n",
1141 | "13 3 0.0 \n",
1142 | "14 2 3427.2 \n",
1143 | "15 -3 0.0 \n",
1144 | "16 -2 3296.7 \n",
1145 | "17 3 0.0 \n",
1146 | "18 2 3527.1 \n",
1147 | "19 -3 0.0 \n",
1148 | "20 -2 3333.6 \n",
1149 | "21 3 0.0 \n",
1150 | "22 2 3473.1 \n",
1151 | "23 -3 0.0 \n",
1152 | "24 -2 3339.9 "
1153 | ]
1154 | },
1155 | "execution_count": 13,
1156 | "metadata": {},
1157 | "output_type": "execute_result"
1158 | }
1159 | ],
1160 | "source": [
1161 | "acc.history_table"
1162 | ]
1163 | },
1164 | {
1165 | "cell_type": "code",
1166 | "execution_count": 14,
1167 | "metadata": {},
1168 | "outputs": [],
1169 | "source": [
1170 | "performance = QA.QA_Performance(acc)"
1171 | ]
1172 | },
1173 | {
1174 | "cell_type": "code",
1175 | "execution_count": 15,
1176 | "metadata": {},
1177 | "outputs": [
1178 | {
1179 | "data": {
1180 | "text/html": [
1181 | "\n",
1182 | "\n",
1195 | "
\n",
1196 | " \n",
1197 | " \n",
1198 | " | \n",
1199 | " sell_date | \n",
1200 | " buy_date | \n",
1201 | " amount | \n",
1202 | " sell_price | \n",
1203 | " buy_price | \n",
1204 | " rawdirection | \n",
1205 | " unit | \n",
1206 | " pnl_ratio | \n",
1207 | " pnl_money | \n",
1208 | " hold_gap | \n",
1209 | " if_buyopen | \n",
1210 | " openprice | \n",
1211 | " opendate | \n",
1212 | " closeprice | \n",
1213 | " closedate | \n",
1214 | "
\n",
1215 | " \n",
1216 | " code | \n",
1217 | " | \n",
1218 | " | \n",
1219 | " | \n",
1220 | " | \n",
1221 | " | \n",
1222 | " | \n",
1223 | " | \n",
1224 | " | \n",
1225 | " | \n",
1226 | " | \n",
1227 | " | \n",
1228 | " | \n",
1229 | " | \n",
1230 | " | \n",
1231 | " | \n",
1232 | "
\n",
1233 | " \n",
1234 | " \n",
1235 | " \n",
1236 | " RBL8 | \n",
1237 | " 2018-08-30 | \n",
1238 | " 2018-06-29 | \n",
1239 | " 1 | \n",
1240 | " 4118.0 | \n",
1241 | " 3807.0 | \n",
1242 | " buy | \n",
1243 | " 10 | \n",
1244 | " 0.081692 | \n",
1245 | " 3110.0 | \n",
1246 | " 62 days | \n",
1247 | " True | \n",
1248 | " 3807.0 | \n",
1249 | " 2018-06-29 00:00:00 | \n",
1250 | " 4118.0 | \n",
1251 | " 2018-08-30 00:00:00 | \n",
1252 | "
\n",
1253 | " \n",
1254 | " RBL8 | \n",
1255 | " 2018-09-11 | \n",
1256 | " 2018-09-10 | \n",
1257 | " 1 | \n",
1258 | " 4071.0 | \n",
1259 | " 4284.0 | \n",
1260 | " buy | \n",
1261 | " 10 | \n",
1262 | " -0.049720 | \n",
1263 | " -2130.0 | \n",
1264 | " 1 days | \n",
1265 | " True | \n",
1266 | " 4284.0 | \n",
1267 | " 2018-09-10 00:00:00 | \n",
1268 | " 4071.0 | \n",
1269 | " 2018-09-11 00:00:00 | \n",
1270 | "
\n",
1271 | " \n",
1272 | " RBL8 | \n",
1273 | " 2018-09-25 | \n",
1274 | " 2018-10-17 | \n",
1275 | " 1 | \n",
1276 | " 4060.0 | \n",
1277 | " 4197.0 | \n",
1278 | " sell | \n",
1279 | " 10 | \n",
1280 | " -0.032642 | \n",
1281 | " -1370.0 | \n",
1282 | " 22 days | \n",
1283 | " False | \n",
1284 | " 4060.0 | \n",
1285 | " 2018-09-25 00:00:00 | \n",
1286 | " 4197.0 | \n",
1287 | " 2018-10-17 00:00:00 | \n",
1288 | "
\n",
1289 | " \n",
1290 | " RBL8 | \n",
1291 | " 2018-11-06 | \n",
1292 | " 2019-01-08 | \n",
1293 | " 1 | \n",
1294 | " 3962.0 | \n",
1295 | " 3505.0 | \n",
1296 | " sell | \n",
1297 | " 10 | \n",
1298 | " 0.130385 | \n",
1299 | " 4570.0 | \n",
1300 | " 63 days | \n",
1301 | " False | \n",
1302 | " 3962.0 | \n",
1303 | " 2018-11-06 00:00:00 | \n",
1304 | " 3505.0 | \n",
1305 | " 2019-01-08 00:00:00 | \n",
1306 | "
\n",
1307 | " \n",
1308 | " RBL8 | \n",
1309 | " 2019-03-25 | \n",
1310 | " 2019-01-23 | \n",
1311 | " 1 | \n",
1312 | " 3692.0 | \n",
1313 | " 3644.0 | \n",
1314 | " buy | \n",
1315 | " 10 | \n",
1316 | " 0.013172 | \n",
1317 | " 480.0 | \n",
1318 | " 61 days | \n",
1319 | " True | \n",
1320 | " 3644.0 | \n",
1321 | " 2019-01-23 00:00:00 | \n",
1322 | " 3692.0 | \n",
1323 | " 2019-03-25 00:00:00 | \n",
1324 | "
\n",
1325 | " \n",
1326 | " RBL8 | \n",
1327 | " 2019-04-01 | \n",
1328 | " 2019-04-01 | \n",
1329 | " 1 | \n",
1330 | " 3497.0 | \n",
1331 | " 3497.0 | \n",
1332 | " sell | \n",
1333 | " 10 | \n",
1334 | " 0.000000 | \n",
1335 | " 0.0 | \n",
1336 | " 0 days | \n",
1337 | " False | \n",
1338 | " 3497.0 | \n",
1339 | " 2019-04-01 00:00:00 | \n",
1340 | " 3497.0 | \n",
1341 | " 2019-04-01 00:00:00 | \n",
1342 | "
\n",
1343 | " \n",
1344 | " RBL8 | \n",
1345 | " 2019-04-02 | \n",
1346 | " 2019-04-08 | \n",
1347 | " 1 | \n",
1348 | " 3560.0 | \n",
1349 | " 3730.0 | \n",
1350 | " sell | \n",
1351 | " 10 | \n",
1352 | " -0.045576 | \n",
1353 | " -1700.0 | \n",
1354 | " 6 days | \n",
1355 | " False | \n",
1356 | " 3560.0 | \n",
1357 | " 2019-04-02 00:00:00 | \n",
1358 | " 3730.0 | \n",
1359 | " 2019-04-08 00:00:00 | \n",
1360 | "
\n",
1361 | " \n",
1362 | " RBL8 | \n",
1363 | " 2019-04-18 | \n",
1364 | " 2019-04-11 | \n",
1365 | " 1 | \n",
1366 | " 3710.0 | \n",
1367 | " 3808.0 | \n",
1368 | " buy | \n",
1369 | " 10 | \n",
1370 | " -0.025735 | \n",
1371 | " -980.0 | \n",
1372 | " 7 days | \n",
1373 | " True | \n",
1374 | " 3808.0 | \n",
1375 | " 2019-04-11 00:00:00 | \n",
1376 | " 3710.0 | \n",
1377 | " 2019-04-18 00:00:00 | \n",
1378 | "
\n",
1379 | " \n",
1380 | " RBL8 | \n",
1381 | " 2019-05-14 | \n",
1382 | " 2019-05-16 | \n",
1383 | " 1 | \n",
1384 | " 3663.0 | \n",
1385 | " 3742.0 | \n",
1386 | " sell | \n",
1387 | " 10 | \n",
1388 | " -0.021112 | \n",
1389 | " -790.0 | \n",
1390 | " 2 days | \n",
1391 | " False | \n",
1392 | " 3663.0 | \n",
1393 | " 2019-05-14 00:00:00 | \n",
1394 | " 3742.0 | \n",
1395 | " 2019-05-16 00:00:00 | \n",
1396 | "
\n",
1397 | " \n",
1398 | " RBL8 | \n",
1399 | " 2019-05-31 | \n",
1400 | " 2019-05-21 | \n",
1401 | " 1 | \n",
1402 | " 3750.0 | \n",
1403 | " 3919.0 | \n",
1404 | " buy | \n",
1405 | " 10 | \n",
1406 | " -0.043123 | \n",
1407 | " -1690.0 | \n",
1408 | " 10 days | \n",
1409 | " True | \n",
1410 | " 3919.0 | \n",
1411 | " 2019-05-21 00:00:00 | \n",
1412 | " 3750.0 | \n",
1413 | " 2019-05-31 00:00:00 | \n",
1414 | "
\n",
1415 | " \n",
1416 | " RBL8 | \n",
1417 | " 2019-06-17 | \n",
1418 | " 2019-06-19 | \n",
1419 | " 1 | \n",
1420 | " 3704.0 | \n",
1421 | " 3770.0 | \n",
1422 | " sell | \n",
1423 | " 10 | \n",
1424 | " -0.017507 | \n",
1425 | " -660.0 | \n",
1426 | " 2 days | \n",
1427 | " False | \n",
1428 | " 3704.0 | \n",
1429 | " 2019-06-17 00:00:00 | \n",
1430 | " 3770.0 | \n",
1431 | " 2019-06-19 00:00:00 | \n",
1432 | "
\n",
1433 | " \n",
1434 | " RBL8 | \n",
1435 | " 2019-07-25 | \n",
1436 | " 2019-06-21 | \n",
1437 | " 1 | \n",
1438 | " 3940.0 | \n",
1439 | " 3859.0 | \n",
1440 | " buy | \n",
1441 | " 10 | \n",
1442 | " 0.020990 | \n",
1443 | " 810.0 | \n",
1444 | " 34 days | \n",
1445 | " True | \n",
1446 | " 3859.0 | \n",
1447 | " 2019-06-21 00:00:00 | \n",
1448 | " 3940.0 | \n",
1449 | " 2019-07-25 00:00:00 | \n",
1450 | "
\n",
1451 | " \n",
1452 | "
\n",
1453 | "
"
1454 | ],
1455 | "text/plain": [
1456 | " sell_date buy_date amount sell_price buy_price rawdirection unit \\\n",
1457 | "code \n",
1458 | "RBL8 2018-08-30 2018-06-29 1 4118.0 3807.0 buy 10 \n",
1459 | "RBL8 2018-09-11 2018-09-10 1 4071.0 4284.0 buy 10 \n",
1460 | "RBL8 2018-09-25 2018-10-17 1 4060.0 4197.0 sell 10 \n",
1461 | "RBL8 2018-11-06 2019-01-08 1 3962.0 3505.0 sell 10 \n",
1462 | "RBL8 2019-03-25 2019-01-23 1 3692.0 3644.0 buy 10 \n",
1463 | "RBL8 2019-04-01 2019-04-01 1 3497.0 3497.0 sell 10 \n",
1464 | "RBL8 2019-04-02 2019-04-08 1 3560.0 3730.0 sell 10 \n",
1465 | "RBL8 2019-04-18 2019-04-11 1 3710.0 3808.0 buy 10 \n",
1466 | "RBL8 2019-05-14 2019-05-16 1 3663.0 3742.0 sell 10 \n",
1467 | "RBL8 2019-05-31 2019-05-21 1 3750.0 3919.0 buy 10 \n",
1468 | "RBL8 2019-06-17 2019-06-19 1 3704.0 3770.0 sell 10 \n",
1469 | "RBL8 2019-07-25 2019-06-21 1 3940.0 3859.0 buy 10 \n",
1470 | "\n",
1471 | " pnl_ratio pnl_money hold_gap if_buyopen openprice \\\n",
1472 | "code \n",
1473 | "RBL8 0.081692 3110.0 62 days True 3807.0 \n",
1474 | "RBL8 -0.049720 -2130.0 1 days True 4284.0 \n",
1475 | "RBL8 -0.032642 -1370.0 22 days False 4060.0 \n",
1476 | "RBL8 0.130385 4570.0 63 days False 3962.0 \n",
1477 | "RBL8 0.013172 480.0 61 days True 3644.0 \n",
1478 | "RBL8 0.000000 0.0 0 days False 3497.0 \n",
1479 | "RBL8 -0.045576 -1700.0 6 days False 3560.0 \n",
1480 | "RBL8 -0.025735 -980.0 7 days True 3808.0 \n",
1481 | "RBL8 -0.021112 -790.0 2 days False 3663.0 \n",
1482 | "RBL8 -0.043123 -1690.0 10 days True 3919.0 \n",
1483 | "RBL8 -0.017507 -660.0 2 days False 3704.0 \n",
1484 | "RBL8 0.020990 810.0 34 days True 3859.0 \n",
1485 | "\n",
1486 | " opendate closeprice closedate \n",
1487 | "code \n",
1488 | "RBL8 2018-06-29 00:00:00 4118.0 2018-08-30 00:00:00 \n",
1489 | "RBL8 2018-09-10 00:00:00 4071.0 2018-09-11 00:00:00 \n",
1490 | "RBL8 2018-09-25 00:00:00 4197.0 2018-10-17 00:00:00 \n",
1491 | "RBL8 2018-11-06 00:00:00 3505.0 2019-01-08 00:00:00 \n",
1492 | "RBL8 2019-01-23 00:00:00 3692.0 2019-03-25 00:00:00 \n",
1493 | "RBL8 2019-04-01 00:00:00 3497.0 2019-04-01 00:00:00 \n",
1494 | "RBL8 2019-04-02 00:00:00 3730.0 2019-04-08 00:00:00 \n",
1495 | "RBL8 2019-04-11 00:00:00 3710.0 2019-04-18 00:00:00 \n",
1496 | "RBL8 2019-05-14 00:00:00 3742.0 2019-05-16 00:00:00 \n",
1497 | "RBL8 2019-05-21 00:00:00 3750.0 2019-05-31 00:00:00 \n",
1498 | "RBL8 2019-06-17 00:00:00 3770.0 2019-06-19 00:00:00 \n",
1499 | "RBL8 2019-06-21 00:00:00 3940.0 2019-07-25 00:00:00 "
1500 | ]
1501 | },
1502 | "execution_count": 15,
1503 | "metadata": {},
1504 | "output_type": "execute_result"
1505 | }
1506 | ],
1507 | "source": [
1508 | "performance.pnl_fifo"
1509 | ]
1510 | },
1511 | {
1512 | "cell_type": "code",
1513 | "execution_count": 16,
1514 | "metadata": {},
1515 | "outputs": [
1516 | {
1517 | "data": {
1518 | "text/plain": [
1519 | "'future_cn'"
1520 | ]
1521 | },
1522 | "execution_count": 16,
1523 | "metadata": {},
1524 | "output_type": "execute_result"
1525 | }
1526 | ],
1527 | "source": [
1528 | "acc.market_type"
1529 | ]
1530 | },
1531 | {
1532 | "cell_type": "code",
1533 | "execution_count": 17,
1534 | "metadata": {},
1535 | "outputs": [
1536 | {
1537 | "name": "stdout",
1538 | "output_type": "stream",
1539 | "text": [
1540 | "margin!\n"
1541 | ]
1542 | }
1543 | ],
1544 | "source": [
1545 | "risk = QA.QA_Risk(acc)"
1546 | ]
1547 | },
1548 | {
1549 | "cell_type": "code",
1550 | "execution_count": null,
1551 | "metadata": {},
1552 | "outputs": [],
1553 | "source": []
1554 | },
1555 | {
1556 | "cell_type": "code",
1557 | "execution_count": 18,
1558 | "metadata": {},
1559 | "outputs": [
1560 | {
1561 | "data": {
1562 | "text/plain": [
1563 | ""
1564 | ]
1565 | },
1566 | "execution_count": 18,
1567 | "metadata": {},
1568 | "output_type": "execute_result"
1569 | },
1570 | {
1571 | "data": {
1572 | "image/png": "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\n",
1573 | "text/plain": [
1574 | ""
1575 | ]
1576 | },
1577 | "metadata": {
1578 | "needs_background": "light"
1579 | },
1580 | "output_type": "display_data"
1581 | }
1582 | ],
1583 | "source": [
1584 | "# 用市价计算的每日总资产\n",
1585 | "(risk.daily_market_value+ acc.daily_cash.cash).plot()"
1586 | ]
1587 | },
1588 | {
1589 | "cell_type": "code",
1590 | "execution_count": 19,
1591 | "metadata": {},
1592 | "outputs": [
1593 | {
1594 | "data": {
1595 | "text/plain": [
1596 | ""
1597 | ]
1598 | },
1599 | "execution_count": 19,
1600 | "metadata": {},
1601 | "output_type": "execute_result"
1602 | },
1603 | {
1604 | "data": {
1605 | "image/png": "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\n",
1606 | "text/plain": [
1607 | ""
1608 | ]
1609 | },
1610 | "metadata": {
1611 | "needs_background": "light"
1612 | },
1613 | "output_type": "display_data"
1614 | }
1615 | ],
1616 | "source": [
1617 | "# 用冻结保证金计算的总资产\n",
1618 | "\n",
1619 | "(acc.daily_frozen+ acc.daily_cash.cash).plot()"
1620 | ]
1621 | },
1622 | {
1623 | "cell_type": "code",
1624 | "execution_count": null,
1625 | "metadata": {},
1626 | "outputs": [],
1627 | "source": []
1628 | },
1629 | {
1630 | "cell_type": "code",
1631 | "execution_count": 20,
1632 | "metadata": {},
1633 | "outputs": [
1634 | {
1635 | "data": {
1636 | "text/plain": [
1637 | ""
1638 | ]
1639 | },
1640 | "execution_count": 20,
1641 | "metadata": {},
1642 | "output_type": "execute_result"
1643 | },
1644 | {
1645 | "data": {
1646 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0IAAAKfCAYAAABDiXgxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd1QV1/o38C/FGDuoKRYUFEU8hQMoRYOASOw12AvYYkFJTFQ0xlhibjR6NWKJMTGixhZ7iRUbdooilqjoD6wkIgqRgEp53j94mStyDiKiXu/5ftZyrZw9M3s/M5zZZ549eyYmIiIgIiIiIiIyIqavOwAiIiIiIqJXjYkQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBER0QuztrZGmTJlUL58eVhaWqJt27a4ceNGgfUmT54MExMTnDx5Ml/548eP8fnnn6NmzZooX748rK2t8emnn+arPywsTPmcmJiIgQMHolq1aqhQoQIaNGiASZMm4Z9//inQZkJCAkxMTJCVlQUACAgIgImJCSIiIpR1rly5AhMTE+Wzl5cX3n77bZQvX175d/z4cQCAiGDmzJmoV68eypQpg1q1amH8+PF49OhRMY8eERG9DkyEiIioRGzbtg1paWlITEzEe++9h5EjR+ZbLiJYvnw5KleujOXLl+db9u233yIqKgoRERF48OABDh48CCcnJ73t3Lt3D+7u7sjIyMDx48fx4MED7N27FykpKbh69WqRYq1cuTK+/PLLQteZP38+0tLSlH/u7u4AgKCgICxevBjLly/HgwcPsHPnTuzbtw/dunUrUttERPTfgYkQERGVqLfffht+fn64cOFCvvLDhw8jMTERISEhWLNmDR4/fqwsi4yMROfOnVG9enWYmJjA2toa/fr101v/7NmzUaFCBfz666+wtrYGAFhZWWHu3LnQarVFitHf3x+xsbE4dOjQc+1bXFwcFi5ciJUrV8Ld3R3m5uZQqVTYsGEDdu3ahf379z9XfURE9PowESIiohKVnp6OtWvXws3NLV/5smXL0L59e+XOybZt25Rlbm5umD17NhYuXIizZ89CRAzWHxYWhi5dusDUtPg/YWXLlsUXX3yBCRMmPNd2+/btQ82aNeHi4pKv3MrKCm5ubti7d2+xYyIioleLiRAREZWITp06wcLCApUqVcLevXsxZswYZVl6ejrWrVuHXr16oVSpUvDz88s3PW78+PEIDg7GypUr0ahRI9SoUQPLli3T205ycjKqVav2wvEOGTIE169fx86dO/UuDwoKgoWFBSwsLJRpenfv3jXYdrVq1XD37t0XjouIiF4NJkJERFQiNm/ejJSUFDx8+BDz58+Hp6cn/vzzTwDApk2bYG5ujjZt2gAAevfujZ07dyIpKQkAYGZmhsDAQBw9ehQpKSmYMGECBgwYgD/++KNAO1WqVEFiYuILx1u6dGlMnDgREydO1Ls8JCQEKSkpSElJwalTpwAAVatWNdh2YmIiqlat+sJxERHRq8FEiIiISpSZmRm6dOkCMzMzHDlyBEDutLi0tDTUqlUL77//Prp27YrMzEysWrWqwPZlypRBYGAgLC0tCzxnBAAtWrTApk2bkJOT88Kx9u/fHykpKdi4cWOR1m/evDlu3LiR741zAHDjxg2cOHECPj4+LxwTERG9GkyEiIioRIkItmzZgvv378Pe3h63bt3Cvn37sH37dsTExCAmJgZnzpxBcHCwMj3u+++/x8GDB5GRkYGsrCwsW7YMDx48gKOjY4H6P/vsM/z999/w9/fHtWvXAAC3bt3CZ599htjY2OeK1dzcHFOmTMGMGTOKtH79+vUxdOhQ9O7dGydOnEB2djbOnz+Pjz76CC1atECLFi2eq30iInp9mAgREVGJaN++PcqXL4+KFStiwoQJWLZsGVQqFVasWAGdTocPP/wQ77//vvIvKCgIsbGxOHfuHMqWLYvPP/8c77//PqpWrYoFCxZgw4YNqFOnToF2KleujGPHjqFUqVJwdXVFhQoV4OPjg0qVKsHW1va54+7Zs+dzPXM0f/58DBo0CH369EH58uXRqlUreHl5YcOGDc/dNhERvT4mUtireYiIiIiIiP4H8Y4QEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR0mAgREREREZHRYSJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR0mAgREREREZHRYSJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR0mAgREREREZHRYSJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIlRCEhISsGrVqlfSlrW1Ne7evVugvEmTJq+k/aIQEQQFBcHW1hZarRanTp1Sli1btgz16tVDvXr1sGzZMqV8woQJsLKyQvny5V9HyEQlJjQ0FLdv31Y+Hz58GCqVCjqdDhkZGXq3SUhIgFqtBgBERUUhKCjolcSqj75z8Pbt2/Dz83tpbR48eBDHjh177u1iYmKwY8eOlxARMGDAALz77rvK3yXPvXv34Ovri3r16sHX1xf3798HAFy8eBHu7u4oXbo0Zs2a9VJiInqVvLy8EBUVVaC8TZs2SElJeeH6J0+eXOBcefIa55tvvoFKpYJWq4VOp8PJkyeVuOzs7KDT6aDT6ZS+afLkyahRowZ0Oh0aNmyI1atXFysuLy8v1KpVCyKilHXq1EnpG5/uD48cOQIXFxc0aNAAdnZ2WLhwobIsKSkJrq6ucHR0xOHDh5WYdTodqlatik8//RQAMHv2bDRs2BBarRY+Pj64du2aUkdwcDDUajXUajXWrl1brH0i/ZgIlZBXmQgZUpyLiJdl586diIuLQ1xcHBYvXoxhw4YByL2AmDJlCk6ePImIiAhMmTJFuYho3749IiIiXmfYRC8sOzu7QCK0cuVKjB8/HjExMShTpswz62jUqBFCQkJeZpjPrXr16li/fv1Lq7+wRCgrK8vgdi8zEQoICMCuXbsKlE+fPh0+Pj6Ii4uDj48Ppk+fDgCoXLkyQkJCMHr06JcSD9HTCjs3XqYdO3bAwsLipbZx/PhxbN++HadOnUJsbCzCwsJgZWWlLF+5ciViYmIQExOTr28aNWoUYmJisGXLFgwZMgSZmZnFat/CwgJHjx4FAKSkpCAxMVFZ9mR/+Oeff6JXr15YtGgRLl68iKNHj2LJkiXYtGkTAGDfvn3QaDQ4ffo0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38ZEiIiIiIiIjM4b+9Y4IiIiIiKi4mIiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR0mAgREREREZHRYSJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR0mAgREREREZHRYSJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR03thEKCEhAWq1+qW2YW1tjbt3777UNgAgICAA69evf+nteHl5ISoqqkTq+vbbb2Fraws7Ozvs3r1bKd+1axfs7Oxga2uL6dOnK+Xx8fFwdXWFra0tunfvjsePHwMAFi1aBI1GA51Ohw8++AAXLlwodhtEJSElJQULFy5UPt++fRt+fn6vMaKStXfvXjg7O0Oj0cDZ2Rn79+8HADx48AA6nU75V7VqVXz66acAgPDwcDg5OcHc3PyV9FVEVLJK8nqmpK4lXiSmR48eoXv37rC1tYWrqysSEhL0rjdgwAC8++67Ba4Xu3fvrvR11tbW0Ol0xYqD3nxvbCL0vyIrK+t1h/DcLly4gDVr1uD8+fPYtWsXhg8fjuzsbGRnZyMwMBA7d+7EhQsXsHr1aiWxCQ4OxqhRo3DlyhVYWlpiyZIlAIBevXrh7NmziImJwdixY/HZZ58Vuw2ikvB0IlS9evX/qYv/qlWrYtu2bTh79iyWLVuGvn37AgAqVKiAmJgY5V/t2rXRpUsXAECtWrUQGhqKXr16vc7QiagEiQhycnJedxjFsmTJElhaWuLKlSsYNWoUgoOD9a4XEBCAXbt2FShfu3at0td99NFHSl9HxueNToSysrLQu3dv2Nvbw8/PD+np6QCA6OhoeHp6wtnZGS1btkRiYiKA3FGM4OBguLi4oH79+jh8+DAAIDs7G6NHj4ZarYZWq8W8efOUNubNmwcnJydoNBpcvHgRADB58mT4+/vDw8MDtWvXxsaNGzF27FhoNBq0atUKmZmZAICpU6ei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Fbp164aGDRuiVatWWLBgAczMzGBubo758+ejZcuWsLe3R7du3aBSqQAAM2bMwOzZs2Fra4vk5GQMHDgQADB//nyoVCrodDrMnj1b6diK0wZRSahSpQqaNm0KtVqNMWPGFKuOlStXYsmSJXBwcIBKpSr0hR7ff/89Zs+eDa1WiytXrqBSpUoAcqeoREVFQaPRYPny5WjQoIGyjb6+72mGzt/58+fjypUrmDp1qvL62Dt37ijL9T04HBkZiZo1a2LdunUYMmQIzzmil2js2LEYP348HB0d881EGTVqFAIDA1G/fn0sWbIE48aNy3fuPmnSpEkIDw+HSqXCxo0bUatWLb3rVatWDdOnT4e3tzccHBzg7OysDFSWK1cOERERUKvV2L9/P7766itlu7fffhuOjo4YOnSo8hZYQ3E/6xpr7ty5yMjIwNixYwvEN2jQIL2v6h44cCCSk5Nha2uL2bNnK/8rjdu3b6NNmzbKej179oS7uzsuXbqEmjVrKrECuQNPHPQhExE9r9kgIqJXIj09HWXKlIGJiQnWrFmD1atXF5o4JSQkoF27djh37twrjJKIjE358uWf642yRG+iN/oZISKiN110dDRGjBgBEYGFhQV++eWX1x0SERGRUeAdof9SnTt3Rnx8fL6yGTNmoGXLlq8pIiJ6Ed98843y3FCerl27YsKECa8pIiJ60y1durTA/4+wadOmWLBgwWuKiOjNwkSIiIiIiIiMzhv9sgQiIiIiIqLiYCJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR0mAgREREREZHRYSJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR0mAgREREREZHRYSJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERG9AS5evAidTgdHR0dcvXoVTZo0AQAkJCRg1apVL1x/q1atYGFhgXbt2hlc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vXpBo9HAysoKY8eOfaF9IiqqvIuVAQMGoGHDhgYvVoqqd+/eaN++PTQaDRo1aoQGDRoUu66mTZvCxsYGDRs2hL29vXKuODg4wNHREQ0aNMg3tc+Q+fPn4969e8pLEho1aoSff/4ZoaGh6NmzpzLVbdq0aahfv36B7VeuXIlhw4Zh2rRpyMzMRI8ePeDg4IAePXpg8ODBCAkJwfr16zF69Gh069YNixcvRtu2bYu933nyng96eorckSNHMH36dJQqVQqmpqZYuHAhqlatCiD3leE///wzqlevjhkzZqBHjx748ssv4ejoiIEDB+ptJ+/OdN6zXyNHjkTjxo1hYWGh9wULREVhbm6OX3/9tUD501NfdTqd3gHeyZMn5/ucN1W+VKlS2L9/v8F2izp4mfdSlqc9eS3w9ttvK4MghTExMcn3aIK9vT1OnTpVpDiIXhUTeZ7X8hARERHRc0tISEC7du1w7ty51x0KEf1/TISIiIiIiMjovLFT4950gYGBBV4N+8knn6B///6vKSIielFnz55V3nyYp3Tp0jh58uRrioiIiIgM4R0hIiIiIiIyOm/sW+OIiIiIiIiKi4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR0mAgREREREZHRYSJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERERkdFhIkREREREREaHiRARERERERkdJkJERERERGR0mAgREREREZHRYSJERERERERGh4kQEREREREZHSZCRERERERkdJgIERERERGR0WEiRERERERERoeJEBERERERGR0mQkREREREZHSYCBERERH9l0lISIBarX7mOqtWrVI+R0VFISgoCAAQGhqKESNGAAAWLVqE5cuXK+W3b98ukRhFBEFBQbC1tYVWq8WpU6cKrJOeno62bduiQYMGUKlUGDduXIm0TVQS3uhEqEmTJs9cZ9CgQbhw4QIA4F//+tfLDgkHDx5Eu3btir393r174ezsDI1GA2dnZ+zfv19ZtnbtWmi1WqhUKgQHByvl165dg4+PD7RaLby8vHDz5k1l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ly6lf//+mM3mbOsSESmolAiJiDwg33//PRcuXOBf//oXtWrVyvAzYMAANm3aRFhYGNHR0bRo0YLFixcTEhJCWFgY69ev57XXXqNy5crWu/yBgYHMnTuXQ4cOcf78ebZu3cqLL75IyZIladmypXW9ZrOZy5cvZ/rJ6v1FeTVv3jwCAwNp1KhRhu3w9/fnqaeeyvEifNy4cSQmJrJq1apM827FGhERwalTp/jss89o2LAhCQkJzJkzJ9e4bty4Yd2+0NBQhg4diouLC+3atctQLiYmJtP++Gv3ubzEPGXKFKpVq0bDhg35+OOPCQ0N5dy5c6xevZrAwMAsny1ycnLi66+/pm3btrRu3ZqdO3dmuc5WrVpx9erVbBPkJUuWYGdnx8CBAzN9nvr27ZvroAnPPvssAP/73/+ynN+6dWs2btzI2rVr6d27N6mpqdnWJSJSECkREhF5QD7++GMaNGhAxYoVM80LCgrCzc2NTz75hKJFi9K4cWNmz55NUFAQ3t7ejBw5kqCgIHbu3ImjoyMAHTp0YOnSpXTs2JEaNWowcOBAqlWrxp49ezK0nISFhVG2bNlMP9m9byY3twZJ6NWrV5bze/fuzY4dO7IdNKF48eJMmjQpy1aaW7GWL1+ehg0bMmvWLP7xj39w/PhxatSokWts7733nnX7goKCiI2NZcOGDVSvXj1Dua5du2baH6+99lq29WYXc4kSJdi3bx/Dhg1j1qxZNGzYkDp16jB16lR69+6dKQG7xdHRkS+++ILg4GA6dOjAxo0bsyzn4eGBs7NzlvPmz59P586dcXFxyTSvR48eJCYmZjlowi1OTk6MGDGCadOmERsbm2WZpk2bsnXrVrZv3063bt3y3IonIlIQmIz8Pu0pIiIiIiJSwKlFSEREREREbI4SIRERERERsTlKhERERERExOYoERIREREREZujREhERERERGyOQ+5F/r7Cw8Otv3t4eBAVFfUQo5H7Rcf20aTj+mjScX006Dg+mnRcH006rjnz8vLKdp5ahERERERExOYoERIREREREZujREhERERERGxOgX5GSERERERsk2EYJCUlYbFYMJlMDzuchyYyMpLk5OSHHcZDZRgGdnZ2ODs75+uzoERIRERERAqcpKQkHB0dcXCw7ctZBwcH7O3tH3YYD11aWhpJSUm4uLjkeRl1jRMRERGRAsdisdh8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\n",
1647 | "text/plain": [
1648 | ""
1649 | ]
1650 | },
1651 | "metadata": {},
1652 | "output_type": "display_data"
1653 | }
1654 | ],
1655 | "source": [
1656 | "\n",
1657 | "risk.plot_assets_curve()\n"
1658 | ]
1659 | },
1660 | {
1661 | "cell_type": "code",
1662 | "execution_count": 21,
1663 | "metadata": {},
1664 | "outputs": [],
1665 | "source": [
1666 | "risk.save()\n",
1667 | "acc.save()"
1668 | ]
1669 | },
1670 | {
1671 | "cell_type": "code",
1672 | "execution_count": null,
1673 | "metadata": {},
1674 | "outputs": [],
1675 | "source": []
1676 | }
1677 | ],
1678 | "metadata": {
1679 | "kernelspec": {
1680 | "display_name": "Python 3",
1681 | "language": "python",
1682 | "name": "python3"
1683 | },
1684 | "language_info": {
1685 | "codemirror_mode": {
1686 | "name": "ipython",
1687 | "version": 3
1688 | },
1689 | "file_extension": ".py",
1690 | "mimetype": "text/x-python",
1691 | "name": "python",
1692 | "nbconvert_exporter": "python",
1693 | "pygments_lexer": "ipython3",
1694 | "version": "3.6.5"
1695 | }
1696 | },
1697 | "nbformat": 4,
1698 | "nbformat_minor": 4
1699 | }
1700 |
--------------------------------------------------------------------------------
/QAStrategy101/strategy001/readme.md:
--------------------------------------------------------------------------------
1 | # S001 King Keltner
2 |
3 | King Keltner 策略是基于移动平均线创立的, 基本思想是 在由最高价, 最低价, 收盘价得出的中心价格基础上计算出市场价格通道线的上下轨, 当价格上穿上轨时做多, 下穿下轨时做空, 由于不是每一次突破都会成功, 因此, 合理的止损设置显得尤为重要, 在kk策略中, 选择中心价格作为出场信号
4 |
5 | 1. 计算中心价 MP = 最高价, 最低价, 收盘价三者平均后的40周期移动平均价
6 |
7 | MP = MA((high+low+close)/3, 40)
8 |
9 |
10 | 2. 计算真实价格区间 TrueRange
11 |
12 | TR = max( abs(high_t - low_t), abs(high_t- close_t-1), abs(low_t - close_t-1))
13 |
14 | 3. 计算通道上下轨 (upBand, dnBand), 其中mu是一个可变参数, 默认为1
15 |
16 | upBand = MP + mu*MA(TR, 40)
17 |
18 | dnBand = MP - mu*MA(TR, 40)
19 |
20 | 4. 计算平仓价格
21 |
22 | FP = MP = MA((high+low+close)/3, 40)
23 |
24 | 5. 开平仓条件
25 |
26 | 买入开仓 BUY_OPEN : 当前周期MP > 上一个周期的MP AND 当前价格 > upBand
27 |
28 | 卖出开仓 SELL_OPEN: 当前周期MP < 上一个周期的MP AND 当前价格 < dnBand
29 |
30 | 平仓 : 当前周期价格 下穿 平仓价格FP
31 |
32 | 平仓 : 当前周期价格 上穿 平仓价格FP
33 |
34 | 平仓既是止盈 也是止损条件
35 |
36 |
37 | 策略简单描述到此, 下面进入分析和策略代码部分
--------------------------------------------------------------------------------
/QAStrategy101/strategy001/strategy001.py:
--------------------------------------------------------------------------------
1 | #
2 | import QUANTAXIS as QA
3 | import pandas as pd
4 |
5 |
6 | def strategy001(data, N=40, mu=1):
7 | MP = QA.MA((data.high+data.low+data.close)/3, N)
8 | TR = pd.concat([abs(data.high - data.low), abs(data.high - data.close.shift(1)),
9 | abs(data.low - data.close.shift(1))], axis=1).max(axis=1)
10 | upBand = MP + mu*QA.MA(TR, N)
11 | dnBand = MP - mu*QA.MA(TR, N)
12 | FP = MP
13 |
14 | return pd.DataFrame({'MP': MP, 'MPDIFF': MP.diff(), 'TR': TR, 'upBand': upBand, 'dnBand': dnBand, 'FP': FP})
15 |
--------------------------------------------------------------------------------
/QAStrategy101/strategy002/readme.md:
--------------------------------------------------------------------------------
1 | # S002 Bolling Bandit 布林带策略
2 |
3 | Bolling Bandit 策略是基于 Bolling Bandit 布林带衍生而来, 标准的Bolling Bandit有三根线: 上下两条是价格的阻力线和支撑线, 中间一条为价格均线
4 |
5 | 布林带策略是基于移动平均线的基础上加减n个标准差来确定通道的上下轨, 其中n由置信水平确定, 当价格突破轨道线的时候进行开平仓操作
6 |
7 |
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # QASTRATEGY101
2 | strategy 101 从今天开始 逐步开放101个基础策略的QA实现 包含5个大类
3 |
4 |
5 | 总共分5个大类:
6 |
7 | s001 -s017 趋势跟踪策略
8 |
9 | s018 - s066 技术分析型
10 |
11 | s067 - s069 套利策略
12 |
13 | s070 - s081 数理统计策略
14 |
15 | s082 - s101 其他策略
16 |
17 |
18 | 链接逐步更新
19 |
20 |
21 | [S001 King Keltner策略](QAStrategy101/strategy001/analysis.ipynb)
22 |
23 |
--------------------------------------------------------------------------------