|
6 | 6 | "metadata": {},
|
7 | 7 | "outputs": [],
|
8 | 8 | "source": [
|
9 |
| - "import shift\n", |
10 | 9 | "import sys\n",
|
11 |
| - "import time" |
| 10 | + "import time\n", |
| 11 | + "\n", |
| 12 | + "import shift" |
12 | 13 | ]
|
13 | 14 | },
|
14 | 15 | {
|
|
38 | 39 | "outputs": [],
|
39 | 40 | "source": [
|
40 | 41 | "# subscribe to all available order books\n",
|
41 |
| - "trader.subAllOrderBook()" |
| 42 | + "trader.sub_all_order_book()" |
42 | 43 | ]
|
43 | 44 | },
|
44 | 45 | {
|
|
49 | 50 | "source": [
|
50 | 51 | "# submit a limit buy order by indicating order type, symbol, size, and limit price.\n",
|
51 | 52 | "limit_buy = shift.Order(shift.Order.LIMIT_BUY, \"AAPL\", 1, 10.00)\n",
|
52 |
| - "trader.submitOrder(limit_buy)" |
| 53 | + "trader.submit_order(limit_buy)" |
53 | 54 | ]
|
54 | 55 | },
|
55 | 56 | {
|
|
60 | 61 | "source": [
|
61 | 62 | "# submit 2 limit buy orders by indicating order type, symbol, size, and limit price.\n",
|
62 | 63 | "aapl_limit_buy = shift.Order(shift.Order.LIMIT_BUY, \"AAPL\", 10, 10.00)\n",
|
63 |
| - "trader.submitOrder(aapl_limit_buy)\n", |
| 64 | + "trader.submit_order(aapl_limit_buy)\n", |
64 | 65 | "\n",
|
65 | 66 | "xom_limit_buy = shift.Order(shift.Order.LIMIT_BUY, \"XOM\", 10, 10.00)\n",
|
66 |
| - "trader.submitOrder(xom_limit_buy)" |
| 67 | + "trader.submit_order(xom_limit_buy)" |
67 | 68 | ]
|
68 | 69 | },
|
69 | 70 | {
|
|
75 | 76 | "# print the local bid order book for AAPL\n",
|
76 | 77 | "print(\"AAPL:\")\n",
|
77 | 78 | "print(\" Price\\t\\tSize\\t Dest\\t\\tTime\")\n",
|
78 |
| - "for order in trader.getOrderBook(\"AAPL\", shift.OrderBookType.LOCAL_BID):\n", |
79 |
| - " print(\"%7.2f\\t\\t%4d\\t%6s\\t\\t%19s\" %\n", |
80 |
| - " (order.price, order.size, order.destination, order.time))" |
| 79 | + "for order in trader.get_order_book(\"AAPL\", shift.OrderBookType.LOCAL_BID):\n", |
| 80 | + " print(\n", |
| 81 | + " \"%7.2f\\t\\t%4d\\t%6s\\t\\t%19s\"\n", |
| 82 | + " % (order.price, order.size, order.destination, order.time)\n", |
| 83 | + " )" |
81 | 84 | ]
|
82 | 85 | },
|
83 | 86 | {
|
|
89 | 92 | "# print the local bid order book for XOM\n",
|
90 | 93 | "print(\"XOM:\")\n",
|
91 | 94 | "print(\" Price\\t\\tSize\\t Dest\\t\\tTime\")\n",
|
92 |
| - "for order in trader.getOrderBook(\"XOM\", shift.OrderBookType.LOCAL_BID):\n", |
93 |
| - " print(\"%7.2f\\t\\t%4d\\t%6s\\t\\t%19s\" %\n", |
94 |
| - " (order.price, order.size, order.destination, order.time))" |
| 95 | + "for order in trader.get_order_book(\"XOM\", shift.OrderBookType.LOCAL_BID):\n", |
| 96 | + " print(\n", |
| 97 | + " \"%7.2f\\t\\t%4d\\t%6s\\t\\t%19s\"\n", |
| 98 | + " % (order.price, order.size, order.destination, order.time)\n", |
| 99 | + " )" |
95 | 100 | ]
|
96 | 101 | },
|
97 | 102 | {
|
|
101 | 106 | "outputs": [],
|
102 | 107 | "source": [
|
103 | 108 | "# print all current waiting orders information\n",
|
104 |
| - "print(\"Symbol\\t\\t\\t Type\\t Price\\t\\tSize\\tID\\t\\t\\t\\t\\tTimestamp\")\n", |
105 |
| - "for order in trader.getWaitingList():\n", |
106 |
| - " print(\"%6s\\t%21s\\t%7.2f\\t\\t%4d\\t%36s\\t%26s\" %\n", |
107 |
| - " (order.symbol, order.type, order.price, order.size, order.id, order.timestamp))" |
| 109 | + "print(\n", |
| 110 | + " \"Symbol\\t\\t Type\\t Price\\t\\tSize\\t Executed\\t\\t\\t Status\"\n", |
| 111 | + ")\n", |
| 112 | + "for order in trader.get_waiting_list():\n", |
| 113 | + " print(\n", |
| 114 | + " \"%6s\\t%16s\\t%7.2f\\t\\t%4d\\t\\t%4d\\t%23s\"\n", |
| 115 | + " % (\n", |
| 116 | + " order.symbol,\n", |
| 117 | + " order.type,\n", |
| 118 | + " price,\n", |
| 119 | + " order.size,\n", |
| 120 | + " order.executed_size,\n", |
| 121 | + " order.status,\n", |
| 122 | + " )\n", |
| 123 | + " )" |
108 | 124 | ]
|
109 | 125 | },
|
110 | 126 | {
|
|
114 | 130 | "outputs": [],
|
115 | 131 | "source": [
|
116 | 132 | "# cancel all pending orders\n",
|
117 |
| - "trader.cancelAllPendingOrders()" |
| 133 | + "trader.cancel_all_pending_orders()" |
118 | 134 | ]
|
119 | 135 | },
|
120 | 136 | {
|
|
124 | 140 | "outputs": [],
|
125 | 141 | "source": [
|
126 | 142 | "# print all current waiting orders information\n",
|
127 |
| - "print(\"Symbol\\t\\t\\t Type\\t Price\\t\\tSize\\tID\\t\\t\\t\\t\\tTimestamp\")\n", |
128 |
| - "for order in trader.getWaitingList():\n", |
129 |
| - " print(\"%6s\\t%21s\\t%7.2f\\t\\t%4d\\t%36s\\t%26s\" %\n", |
130 |
| - " (order.symbol, order.type, order.price, order.size, order.id, order.timestamp))" |
| 143 | + "print(\n", |
| 144 | + " \"Symbol\\t\\t Type\\t Price\\t\\tSize\\t Executed\\t\\t\\t Status\"\n", |
| 145 | + ")\n", |
| 146 | + "for order in trader.get_waiting_list():\n", |
| 147 | + " print(\n", |
| 148 | + " \"%6s\\t%16s\\t%7.2f\\t\\t%4d\\t\\t%4d\\t%23s\"\n", |
| 149 | + " % (\n", |
| 150 | + " order.symbol,\n", |
| 151 | + " order.type,\n", |
| 152 | + " price,\n", |
| 153 | + " order.size,\n", |
| 154 | + " order.executed_size,\n", |
| 155 | + " order.status,\n", |
| 156 | + " )\n", |
| 157 | + " )" |
131 | 158 | ]
|
132 | 159 | },
|
133 | 160 | {
|
|
138 | 165 | "source": [
|
139 | 166 | "# submit 2 market buy orders\n",
|
140 | 167 | "aapl_market_buy = shift.Order(shift.Order.MARKET_BUY, \"AAPL\", 1)\n",
|
141 |
| - "trader.submitOrder(aapl_market_buy)\n", |
| 168 | + "trader.submit_order(aapl_market_buy)\n", |
142 | 169 | "\n",
|
143 | 170 | "xom_market_buy = shift.Order(shift.Order.MARKET_BUY, \"XOM\", 1)\n",
|
144 |
| - "trader.submitOrder(xom_market_buy)" |
| 171 | + "trader.submit_order(xom_market_buy)" |
145 | 172 | ]
|
146 | 173 | },
|
147 | 174 | {
|
|
152 | 179 | "source": [
|
153 | 180 | "# print current portfolio summary information\n",
|
154 | 181 | "print(\"Buying Power\\tTotal Shares\\tTotal P&L\\tTimestamp\")\n",
|
155 |
| - "print(\"%12.2f\\t%12d\\t%9.2f\\t%26s\" % (trader.getPortfolioSummary().getTotalBP(),\n", |
156 |
| - " trader.getPortfolioSummary().getTotalShares(),\n", |
157 |
| - " trader.getPortfolioSummary().getTotalRealizedPL(),\n", |
158 |
| - " trader.getPortfolioSummary().getTimestamp()))" |
| 182 | + "print(\n", |
| 183 | + " \"%12.2f\\t%12d\\t%9.2f\\t%26s\"\n", |
| 184 | + " % (\n", |
| 185 | + " trader.get_portfolio_summary().get_total_bp(),\n", |
| 186 | + " trader.get_portfolio_summary().get_total_shares(),\n", |
| 187 | + " trader.get_portfolio_summary().get_total_realized_pl(),\n", |
| 188 | + " trader.get_portfolio_summary().get_timestamp(),\n", |
| 189 | + " )\n", |
| 190 | + ")" |
159 | 191 | ]
|
160 | 192 | },
|
161 | 193 | {
|
|
165 | 197 | "outputs": [],
|
166 | 198 | "source": [
|
167 | 199 | "# print current portfolio items information\n",
|
168 |
| - "print(\"Symbol\\t\\tShares\\t Price\\t P&L\\t\\tTimestamp\")\n", |
169 |
| - "for item in trader.getPortfolioItems().values():\n", |
170 |
| - " print(\"%6s\\t\\t%6d\\t%9.2f\\t%7.2f\\t\\t%26s\" %\n", |
171 |
| - " (item.getSymbol(), item.getShares(), item.getPrice(), item.getRealizedPL(), item.getTimestamp()))" |
| 200 | + "print(\"Symbol\\t\\tShares\\t Price\\t P&L\\tTimestamp\")\n", |
| 201 | + "for item in trader.get_portfolio_items().values():\n", |
| 202 | + " print(\n", |
| 203 | + " \"%6s\\t\\t%6d\\t%9.2f\\t%9.2f\\t%26s\"\n", |
| 204 | + " % (\n", |
| 205 | + " item.get_symbol(),\n", |
| 206 | + " item.get_shares(),\n", |
| 207 | + " item.get_price(),\n", |
| 208 | + " item.get_realized_pl(),\n", |
| 209 | + " item.get_timestamp(),\n", |
| 210 | + " )\n", |
| 211 | + " )" |
172 | 212 | ]
|
173 | 213 | },
|
174 | 214 | {
|
|
179 | 219 | "source": [
|
180 | 220 | "# submit 2 market sell orders\n",
|
181 | 221 | "aapl_market_sell = shift.Order(shift.Order.MARKET_SELL, \"AAPL\", 1)\n",
|
182 |
| - "trader.submitOrder(aapl_market_sell)\n", |
| 222 | + "trader.submit_order(aapl_market_sell)\n", |
183 | 223 | "\n",
|
184 | 224 | "xom_market_sell = shift.Order(shift.Order.MARKET_SELL, \"XOM\", 1)\n",
|
185 |
| - "trader.submitOrder(xom_market_sell)" |
| 225 | + "trader.submit_order(xom_market_sell)" |
186 | 226 | ]
|
187 | 227 | },
|
188 | 228 | {
|
|
193 | 233 | "source": [
|
194 | 234 | "# print current portfolio summary information\n",
|
195 | 235 | "print(\"Buying Power\\tTotal Shares\\tTotal P&L\\tTimestamp\")\n",
|
196 |
| - "print(\"%12.2f\\t%12d\\t%9.2f\\t%26s\" % (trader.getPortfolioSummary().getTotalBP(),\n", |
197 |
| - " trader.getPortfolioSummary().getTotalShares(),\n", |
198 |
| - " trader.getPortfolioSummary().getTotalRealizedPL(),\n", |
199 |
| - " trader.getPortfolioSummary().getTimestamp()))" |
| 236 | + "print(\n", |
| 237 | + " \"%12.2f\\t%12d\\t%9.2f\\t%26s\"\n", |
| 238 | + " % (\n", |
| 239 | + " trader.get_portfolio_summary().get_total_bp(),\n", |
| 240 | + " trader.get_portfolio_summary().get_total_shares(),\n", |
| 241 | + " trader.get_portfolio_summary().get_total_realized_pl(),\n", |
| 242 | + " trader.get_portfolio_summary().get_timestamp(),\n", |
| 243 | + " )\n", |
| 244 | + ")" |
200 | 245 | ]
|
201 | 246 | },
|
202 | 247 | {
|
|
206 | 251 | "outputs": [],
|
207 | 252 | "source": [
|
208 | 253 | "# print current portfolio items information\n",
|
209 |
| - "print(\"Symbol\\t\\tShares\\t Price\\t P&L\\t\\tTimestamp\")\n", |
210 |
| - "for item in trader.getPortfolioItems().values():\n", |
211 |
| - " print(\"%6s\\t\\t%6d\\t%9.2f\\t%7.2f\\t\\t%26s\" %\n", |
212 |
| - " (item.getSymbol(), item.getShares(), item.getPrice(), item.getRealizedPL(), item.getTimestamp()))" |
| 254 | + "print(\"Symbol\\t\\tShares\\t Price\\t P&L\\tTimestamp\")\n", |
| 255 | + "for item in trader.get_portfolio_items().values():\n", |
| 256 | + " print(\n", |
| 257 | + " \"%6s\\t\\t%6d\\t%9.2f\\t%9.2f\\t%26s\"\n", |
| 258 | + " % (\n", |
| 259 | + " item.get_symbol(),\n", |
| 260 | + " item.get_shares(),\n", |
| 261 | + " item.get_price(),\n", |
| 262 | + " item.get_realized_pl(),\n", |
| 263 | + " item.get_timestamp(),\n", |
| 264 | + " )\n", |
| 265 | + " )" |
213 | 266 | ]
|
214 | 267 | },
|
215 | 268 | {
|
|
219 | 272 | "outputs": [],
|
220 | 273 | "source": [
|
221 | 274 | "# print all submitted orders information\n",
|
222 |
| - "print(\"Symbol\\t\\t\\t Type\\t Price\\t\\tSize\\tID\\t\\t\\t\\t\\tTimestamp\")\n", |
223 |
| - "for order in trader.getSubmittedOrders():\n", |
224 |
| - " print(\"%6s\\t%21s\\t%7.2f\\t\\t%4d\\t%36s\\t%26s\" %\n", |
225 |
| - " (order.symbol, order.type, order.price, order.size, order.id, order.timestamp))" |
| 275 | + "print(\n", |
| 276 | + " \"Symbol\\t\\t Type\\t Price\\t\\tSize\\t Executed\\t\\t\\t Status\"\n", |
| 277 | + ")\n", |
| 278 | + "for order in trader.get_submitted_orders():\n", |
| 279 | + " if order.status == shift.Order.Status.FILLED:\n", |
| 280 | + " price = order.executed_price\n", |
| 281 | + " else:\n", |
| 282 | + " price = order.price\n", |
| 283 | + " print(\n", |
| 284 | + " \"%6s\\t%16s\\t%7.2f\\t\\t%4d\\t\\t%4d\\t%23s\"\n", |
| 285 | + " % (\n", |
| 286 | + " order.symbol,\n", |
| 287 | + " order.type,\n", |
| 288 | + " price,\n", |
| 289 | + " order.size,\n", |
| 290 | + " order.executed_size,\n", |
| 291 | + " order.status,\n", |
| 292 | + " )\n", |
| 293 | + " )" |
226 | 294 | ]
|
227 | 295 | },
|
228 | 296 | {
|
|
232 | 300 | "outputs": [],
|
233 | 301 | "source": [
|
234 | 302 | "# print the global bid order book for AAPL\n",
|
235 |
| - "print(\"AAPL:\")\n", |
236 | 303 | "print(\" Price\\t\\tSize\\t Dest\\t\\tTime\")\n",
|
237 |
| - "for order in trader.getOrderBook(\"AAPL\", shift.OrderBookType.GLOBAL_BID, 5):\n", |
238 |
| - " print(\"%7.2f\\t\\t%4d\\t%6s\\t\\t%19s\" %\n", |
239 |
| - " (order.price, order.size, order.destination, order.time))" |
| 304 | + "for order in trader.get_order_book(\"AAPL\", shift.OrderBookType.GLOBAL_BID, 5):\n", |
| 305 | + " print(\n", |
| 306 | + " \"%7.2f\\t\\t%4d\\t%6s\\t\\t%19s\"\n", |
| 307 | + " % (order.price, order.size, order.destination, order.time)\n", |
| 308 | + " )" |
240 | 309 | ]
|
241 | 310 | },
|
242 | 311 | {
|
|
273 | 342 | "name": "python",
|
274 | 343 | "nbconvert_exporter": "python",
|
275 | 344 | "pygments_lexer": "ipython3",
|
276 |
| - "version": "3.7.2" |
| 345 | + "version": "3.7.4" |
277 | 346 | }
|
278 | 347 | },
|
279 | 348 | "nbformat": 4,
|
|
0 commit comments