├── .gitignore
├── .idea
├── .name
├── encodings.xml
├── ig basic.iml
├── misc.xml
├── modules.xml
├── scopes
│ └── scope_settings.xml
├── vcs.xml
└── workspace.xml
├── README.md
├── __pycache__
├── ig_service.cpython-35.pyc
└── ig_service_config.cpython-35.pyc
├── application.py
├── data
├── 2018-12-07.csv
├── 2018-12-08.csv
├── 2018-12-10.csv
├── 2018-12-11.csv
├── 2018-12-12.csv
├── 2018-12-13.csv
├── 2018-12-14.csv
├── 2018-12-15.csv
├── 2018-12-17.csv
├── 2018-12-18.csv
├── 2018-12-19.csv
├── 2018-12-20.csv
├── 2018-12-21.csv
├── 2018-12-22.csv
├── 2018-12-24.csv
├── 2018-12-25.csv
├── 2018-12-26.csv
├── 2018-12-27.csv
├── 2018-12-28.csv
├── 2018-12-29.csv
├── 2018-12-31.csv
├── 2019-01-01.csv
├── 2019-01-02.csv
├── 2019-01-03.csv
├── 2019-01-04.csv
├── 2019-01-05.csv
├── 2019-01-07.csv
├── 2019-01-08.csv
├── 2019-01-09.csv
├── 2019-01-10.csv
├── 2019-01-11.csv
├── 2019-01-12.csv
├── 2019-01-14.csv
├── 2019-01-15.csv
├── 2019-01-16.csv
├── 2019-01-17.csv
├── 2019-01-18.csv
├── 2019-01-19.csv
├── 2019-01-21.csv
├── 2019-01-22.csv
├── 2019-01-23.csv
├── 2019-01-24.csv
├── 2019-01-25.csv
├── 2019-01-26.csv
├── 2019-01-28.csv
├── 2019-01-29.csv
├── 2019-01-30.csv
├── 2019-01-31.csv
├── 2019-02-01.csv
├── 2019-02-02.csv
├── 2019-02-04.csv
├── 2019-02-05.csv
├── 2019-02-06.csv
├── 2019-02-07.csv
├── 2019-02-08.csv
├── 2019-02-09.csv
├── 2019-02-11.csv
├── 2019-02-12.csv
├── 2019-02-13.csv
├── 2019-02-14.csv
├── 2019-02-15.csv
├── 2019-02-16.csv
├── 2019-02-18.csv
├── 2019-02-19.csv
├── 2019-02-20.csv
├── 2019-02-21.csv
├── 2019-02-22.csv
├── 2019-02-23.csv
├── 2019-02-25.csv
├── 2019-02-26.csv
├── 2019-02-27.csv
├── 2019-02-28.csv
├── 2019-03-01.csv
├── 2019-03-02.csv
├── 2019-03-04.csv
├── 2019-03-05.csv
├── 2019-03-06.csv
├── 2019-03-07.csv
├── 2019-03-08.csv
├── 2019-03-09.csv
├── 2019-03-11.csv
├── 2019-03-12.csv
├── 2019-03-13.csv
├── 2019-03-14.csv
├── 2019-03-15.csv
├── 2019-03-16.csv
├── 2019-03-18.csv
├── 2019-03-19.csv
├── 2019-03-20.csv
├── 2019-03-21.csv
├── 2019-03-22.csv
├── 2019-03-23.csv
├── 2019-03-25.csv
├── 2019-03-26.csv
├── 2019-03-27.csv
├── 2019-03-28.csv
├── 2019-03-29.csv
├── 2019-03-30.csv
├── 2019-04-01.csv
├── 2019-04-02.csv
├── 2019-04-03.csv
├── 2019-04-04.csv
├── 2019-04-05.csv
├── 2019-04-06.csv
├── 2019-04-08.csv
├── 2019-04-09.csv
├── 2019-04-10.csv
├── 2019-04-11.csv
├── 2019-04-12.csv
├── 2019-04-13.csv
├── 2019-04-15.csv
├── 2019-04-16.csv
├── 2019-04-17.csv
└── 2019-04-18.csv
├── dataprovider
├── ig_service.py
└── test_ig_service.py
├── mlcore
├── custom_gym.py
├── ml_model.py
└── rl_agent.py
└── risk_adjusted_metrics.py
/.gitignore:
--------------------------------------------------------------------------------
1 | ig_service_config.py
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | ig basic
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/ig basic.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/scopes/scope_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # AutoTrading
2 | ## Key Objective
3 | ---------------
4 | 1) reinforcement machine learning algorithm to trade profitably daily basis (pending <-- most likely dqn or rdn)
5 | 2) robust when back tested against historical data 2 month (Downloaded <-- calmar ratio writen)
6 | 3) automate trade demo using model and algorithm (completed custom gym environment for agent to interact with based on ig dow jones data in 5min resolution)
7 |
8 |
9 | ## IG Markets REST API - Python Library
10 | --------------------------------------
11 |
12 | A lightweight Python library that can be used to connect to the IG Markets REST API with a LIVE or DEMO account.
13 |
14 | You can use the IG Markets HTTP / REST API to submit trade orders, open positions, close positions and view market sentiment. IG Markets provide Retail Spread Betting and CFD accounts for trading Equities, Forex, Commodities, Indices and much more.
15 |
16 | Full details about the API along with information about how to open an account with IG can be found at the link below:
17 |
18 | [http://labs.ig.com/](http://labs.ig.com/)
19 |
20 | ### How To Use The Library
21 | --------------------------
22 |
23 | Using this library to connect to the IG Markets API is extremely easy. All you need to do is import the IGService class, create an instance, and call the methods you wish to use. There is a method for each endpoint exposed by their API. The code sample below shows you how to connect to the API, switch to a secondary account and retrieve all open positions for the active account.
24 |
25 | **Note:** The secure session with IG is established when you create an instance of the IGService class.
26 |
27 | ```python
28 | from ig_service import IGService
29 | from ig_service_config import *
30 |
31 | ig_service = IGService(username, password, api_key, acc_type)
32 | ig_service.create_session()
33 |
34 | account_info = ig_service.switch_account(acc_number, False)
35 | print(account_info)
36 |
37 | open_positions = ig_service.fetch_open_positions()
38 | print(open_positions)
39 | ```
40 |
41 | **Note:** For Singapore account password has to be encrypted via RSA with timestamp using token received
42 |
43 | ```python
44 | # get encrypted key for singaporean x.x
45 | requestKeyAndTimestamp = requests.get(self.BASE_URL + '/session/encryptionKey', headers=self.BASIC_HEADERS)
46 |
47 | m_data = requestKeyAndTimestamp.json()
48 |
49 | decoded = base64.b64decode(m_data['encryptionKey'])
50 | rsakey = RSA.importKey(decoded)
51 |
52 | # using rsaKey, encrypt password + "|" + timestamp
53 | message = self.IG_PASSWORD + '|' + str(m_data['timeStamp'])
54 | #print(message.encode('utf-8'))
55 | input = base64.b64encode(message.encode('utf-8'))
56 | # we encode and decode from base 64 string so that the byte is read in same format b4 converting back to string for our json payload
57 | encryptedPassword = base64.b64encode(PKCS1_v1_5.new(rsakey).encrypt(input)).decode('utf-8')
58 |
59 | # yup replace plain clear text password with the rsa encrypted password
60 | params['password'] = encryptedPassword
61 |
62 | response = requests.post(self.BASE_URL + '/session', data=json.dumps(params), headers=self.BASIC_HEADERS)
63 | ```
64 |
65 | with `ig_service_config.py`
66 |
67 | ```python
68 | username = "YOUR_USERNAME"
69 | password = "YOUR_PASSWORD"
70 | api_key = "YOUR_API_KEY"
71 | acc_type = "DEMO" # LIVE / DEMO
72 | acc_number = "ABC123"
73 | ```
74 |
--------------------------------------------------------------------------------
/__pycache__/ig_service.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/poryee/AutoTrading/eefee75de3e67a90b6eb2c2da5ea87eb250fa6c4/__pycache__/ig_service.cpython-35.pyc
--------------------------------------------------------------------------------
/__pycache__/ig_service_config.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/poryee/AutoTrading/eefee75de3e67a90b6eb2c2da5ea87eb250fa6c4/__pycache__/ig_service_config.cpython-35.pyc
--------------------------------------------------------------------------------
/application.py:
--------------------------------------------------------------------------------
1 | from mlcore.custom_gym import CustomEnv
2 |
3 | __author__ = 'po'
4 |
5 | # scheduler
6 | from datetime import datetime, timedelta
7 |
8 | # plot indicator charts
9 | import matplotlib.pyplot as plt
10 |
11 | # ig services
12 | from dataprovider.ig_service import IGService
13 | # defines username, password, api_key, acc_type
14 | from dataprovider.ig_service_config import *
15 | # libs
16 | from risk_adjusted_metrics import *
17 | from mlcore.rl_agent import torchDQN
18 | import glob
19 | import pandas as pd
20 | import collections
21 |
22 | # fetch the open high low and close at daily time resolution for the past 20 days for analysis
23 | def getHistoricalData(specificDate):
24 | ig_service = IGService(username, password, api_key, acc_type)
25 | ig_service.create_session()
26 |
27 | '''
28 | # dynamically retrieve the epic/product code
29 | print("fetch_all_watchlists")
30 | response = ig_service.fetch_all_watchlists()
31 | # get "MyWatchlist"
32 | watchlist_id = response['id'].iloc[2]
33 |
34 | print("fetch_watchlist_markets")
35 | response = ig_service.fetch_watchlist_markets(watchlist_id)
36 | print(response)
37 | epic = response['epic'].iloc[0]
38 |
39 | print("fetch_market_by_epic")
40 | response = ig_service.fetch_market_by_epic(epic)
41 | print(response)
42 | '''
43 |
44 | print("search_pricing")
45 | # Instrument tag # US500 DFB
46 | epic = 'IX.D.DOW.IGD.IP'
47 |
48 | # Price resolution (SECOND, MINUTE, MINUTE_2, MINUTE_3, MINUTE_5, MINUTE_10, MINUTE_15, MINUTE_30, HOUR, HOUR_2, HOUR_3, HOUR_4, DAY, WEEK, MONTH)
49 | resolution = 'MINUTE_5' # resolution = 'H', '1Min'
50 |
51 |
52 |
53 | # (yyyy:MM:dd-HH:mm:ss)
54 | # today = datetime.today()
55 | # startDate = str(today.date() - timedelta(days=2)).replace("-", ":") + "-00:00:00"
56 | #endDate = str(today.date() - timedelta(days=0)).replace("-", ":") + "-00:00:00"
57 |
58 | startDate = specificDate.date().strftime('%Y:%m:%d') + "-00:00:00"
59 | endDate = (specificDate + timedelta(days=1)).date().strftime('%Y:%m:%d') + "-23:55:00"
60 |
61 | response = ig_service.fetch_historical_prices_by_epic_and_date_range(epic, resolution, startDate, endDate)
62 | return response['prices']
63 |
64 |
65 | def bulkDownload(date, numberOfDays):
66 | specificDate = datetime.strptime(date, '%Y-%m-%d')
67 |
68 | # 10 days
69 | for i in range(numberOfDays):
70 | if (specificDate.weekday() != 6):
71 | pastData = getHistoricalData(specificDate)
72 | saveSpecificDate(pastData, specificDate)
73 | specificDate -= timedelta(days=1)
74 |
75 |
76 | def getAverage(dataArray):
77 | tempList = []
78 | for priceObject in dataArray:
79 | if (priceObject['bid'] != None and priceObject['ask'] != None):
80 | tempList.append(round((priceObject['ask'] + priceObject['bid']) / 2, 2))
81 | else:
82 | tempList.append(0)
83 | return tempList
84 |
85 |
86 | def saveSpecificDate(pastData, date):
87 | # iterate list of json and average up the results
88 | pastData['averageOpen'] = getAverage(pastData['openPrice'])
89 | pastData['averageLow'] = getAverage(pastData['lowPrice'])
90 | pastData['averageHigh'] = getAverage(pastData['highPrice'])
91 | pastData['averageClose'] = getAverage(pastData['closePrice'])
92 |
93 | pastData.to_csv("data/" + str(date.date()) + ".csv")
94 |
95 |
96 | # construct stochastic indicator to determine momentum in direction using (formula is just highest high - close/ highest high - lowest low)* 100 to get percentage
97 | def constructIndicator(pastData):
98 | # http://www.andrewshamlet.net/2017/07/13/python-tutorial-stochastic-oscillator/
99 | # http://www.pythonforfinance.net/2017/10/10/stochastic-oscillator-trading-strategy-backtest-in-python/
100 |
101 | # Create the "lowestLow" column in the DataFrame
102 | pastData['lowestLow'] = pastData['averageLow'].rolling(window=14).min()
103 |
104 | # Create the "highestHigh" column in the DataFrame
105 | pastData['highestHigh'] = pastData['averageHigh'].rolling(window=14).max()
106 |
107 | # Create the "%K" column in the DataFrame refer to the function comment for formula of stochastic ociliator
108 | pastData['%K'] = ((pastData['averageClose'] - pastData['lowestLow']) / (
109 | pastData['highestHigh'] - pastData['lowestLow'])) * 100
110 |
111 |
112 | # Create the "%D" column in the DataFrame moving average of calculated K
113 | pastData['%D'] = pastData['%K'].rolling(window=3).mean()
114 |
115 | # drop 14 bar ago cut away parts of chart without indicator
116 | # pastData.drop(pastData.index[:15], inplace=True)
117 |
118 | fig, axes = plt.subplots(nrows=2, ncols=1, figsize=(20, 10))
119 |
120 | pastData['averageClose'].plot(ax=axes[0]);
121 | axes[0].set_title('Close')
122 | pastData[['%K', '%D']].plot(ax=axes[1]);
123 | axes[1].set_title('Oscillator')
124 | # plt.show()
125 |
126 | return pastData
127 | # consider building other indicator
128 |
129 |
130 | # measure and evaluate system developed
131 | def performanceTest(returns):
132 | # Calmar
133 | # The Calmar ratio discounts the expected excess return of a portfolio by the worst expected maximum draw down for that portfolio,
134 |
135 | # simulation
136 | # Returns from the portfolio (r) and market (m)
137 | # returns = nrand.uniform(-1, 1, 50)
138 |
139 | # Expected return
140 | averageExpectedReturn = np.mean(returns)
141 |
142 | # Risk Free Rate assumption that 6% from other investment as benchmark (Opportunity cost)
143 | riskFreeRate = 0.06
144 |
145 | print("Calmar Ratio =", calmar_ratio(averageExpectedReturn, returns, riskFreeRate))
146 |
147 |
148 | # retrieve all downloaded data concatenated in dataframe
149 | def retrievePastDataDataframe():
150 | # retrieve all csv in data folder
151 | allFiles = glob.glob("data/*.csv")
152 |
153 | # concat csv
154 | list_ = []
155 | for file_ in allFiles:
156 | df = pd.read_csv(file_, sep=',', index_col=0, header=0)
157 | list_.append(df)
158 | # concatenate every row in the list and reset index to sequential
159 | pastData = pd.concat(list_, axis=0, ignore_index=True)
160 |
161 | # setsnapshotTime as index
162 | pastDataAsState = pastData[
163 | ['snapshotTime', 'averageOpen', 'averageHigh', 'averageLow', 'averageClose', 'lastTradedVolume']]
164 | pastDataAsState.snapshotTime = pd.to_datetime(pastData['snapshotTime'], format='%Y:%m:%d-%H:%M:%S')
165 | pastDataAsState.set_index('snapshotTime', inplace=True)
166 |
167 | # print(pastDataAsState.info())
168 | # asd=pastDataAsState.iloc[0,:]
169 | # print(pastDataAsState.loc['2019-02-01'])
170 | # print(type(pastDataAsState.loc['2019-02-01']))
171 |
172 | return pastDataAsState
173 |
174 |
175 | def resampleDataframe(dataframe, timeframe):
176 | pd.set_option('display.max_columns', None)
177 |
178 | data = dataframe.resample(timeframe).agg({'averageOpen': 'first',
179 | 'averageHigh': 'max',
180 | 'averageLow': 'min',
181 | 'averageClose': 'last',
182 | 'lastTradedVolume': 'sum'
183 | })
184 | data.dropna(inplace=True)
185 | return data
186 |
187 |
188 | def visualise(dataframe, episodeAction, episodeReward):
189 | fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(15, 15))
190 |
191 | dataframe.plot(y="averageClose", ax=ax1)
192 | buyTime, buyPrice, sellTime, sellPrice = [], [], [], []
193 | for index, action in enumerate(episodeAction):
194 | if (action == 0):
195 | buyTime.append(dataframe.index[index])
196 | buyPrice.append(dataframe.averageClose[index])
197 | elif action == 2:
198 | sellTime.append(dataframe.index[index])
199 | sellPrice.append(dataframe.averageClose[index])
200 |
201 | ax1.scatter(buyTime, buyPrice, c='g', marker="^", s=25)
202 | ax1.scatter(sellTime, sellPrice, c='r', marker="v", s=25)
203 |
204 | ax2.plot(episodeReward)
205 | fig.subplots_adjust(hspace=1)
206 |
207 | plt.show()
208 |
209 |
210 | def trainMLModel(endDate, timeResolution, trainingDays, totalEpisodes):
211 | # retrieve pastdata
212 | pastDataAsState = retrievePastDataDataframe()
213 | pastDataAsState = resampleDataframe(pastDataAsState, timeResolution)
214 |
215 | dqn = torchDQN(tensorboard=True)
216 | total_reward = []
217 | total_action = []
218 | total_steps = 0
219 |
220 | endDate = datetime.strptime(endDate, '%Y-%m-%d')
221 |
222 | # because we want to include endDate in the training hence -1
223 | traingDate = endDate - timedelta(days=trainingDays - 1)
224 |
225 | # so we end up with largest quotient when dividing totalEpisodes with trainingDays so we end training on endDate
226 | trainingEpisode = (totalEpisodes // trainingDays) * trainingDays
227 |
228 | print('\nCollecting experience...')
229 | for i_episode in range(trainingEpisode):
230 | if (i_episode % (trainingDays) == 0):
231 | # because we want to include endDate in the training hence -1
232 | traingDate = endDate - timedelta(days=trainingDays - 1)
233 |
234 | if (pastDataAsState[traingDate.date().strftime('%Y-%m-%d')].empty):
235 | traingDate += timedelta(days=1)
236 | continue
237 |
238 | # initialise gym environment with single day slice of past data
239 | env = CustomEnv(pastDataAsState.loc[traingDate.date().strftime('%Y-%m-%d')])
240 |
241 | # multiday training do we reset the balance?
242 | s = env.reset()
243 | ep_r = 0
244 | while True:
245 | # env.render()
246 | # see how random trading with 2:1 RRR will perform
247 | # a = np.random.randint(0, 4)
248 |
249 | a = dqn.choose_action(s)
250 | total_action.append(a)
251 | # take action
252 | s_, r, done, info = env.step(a)
253 |
254 | # modify the reward
255 | # x, x_dot, theta, theta_dot = s_
256 | # r1 = (env.x_threshold - abs(x)) / env.x_threshold - 0.8
257 | # r2 = (env.theta_threshold_radians - abs(theta)) / env.theta_threshold_radians - 0.5
258 | # r = r1 + r2
259 |
260 | dqn.store_transition(s, a, r, s_)
261 | ep_r += r
262 |
263 | # every 10k steps we train our model both eval and target
264 | if dqn.memory_counter > 10000:
265 | # but target updates at a slower rate so learning is more stable
266 | # think of eval as the hyper active child and target as the parent that critics the child exploration
267 | dqn.learn(total_steps)
268 |
269 | if done:
270 | print('Ep: ', i_episode, '| Training Date: ', traingDate.date().strftime('%Y-%m-%d'), '| Ep_r: ',
271 | round(r, 2))
272 | ep_r = r
273 | break
274 | s = s_
275 | total_steps+=1
276 |
277 | total_reward.append(ep_r)
278 | traingDate += timedelta(days=1)
279 |
280 | counter = collections.Counter(total_action)
281 | print("total unique action ", print(counter))
282 |
283 | # display visualisation of training result
284 | plt.title('Reward')
285 | plt.xlabel('No of Episodes')
286 | plt.ylabel('Total reward')
287 | plt.plot(np.arange(len(total_reward)), total_reward, 'r-', lw=5)
288 | plt.show()
289 |
290 | # save trained model
291 | dqn.save()
292 |
293 |
294 | def evaluateMLModel(evalutionDate, timeResolution="5min", showChart=False):
295 | # retrieve past data
296 | pastDataAsState = retrievePastDataDataframe()
297 | pastDataAsState = resampleDataframe(pastDataAsState, timeResolution)
298 |
299 | # initialise gym environment with single day slice of past data
300 | env = CustomEnv(pastDataAsState.loc[evalutionDate])
301 |
302 | dqn = torchDQN()
303 | totalFinalReward = []
304 | totalAction = []
305 | print('\nCollecting experience...')
306 |
307 | # trade the same day 10 times
308 | for i_episode in range(100):
309 | s = env.reset()
310 | episodeAction = []
311 | episodeBalance = [env.balance]
312 | while True:
313 | # env.render()
314 | # see how random trading with 2:1 RRR will perform
315 | # a = np.random.randint(0, 4)
316 |
317 | a = dqn.choose_action(s)
318 | episodeAction.append(a)
319 | # take action
320 | s_, r, done, info = env.step(a)
321 |
322 | # store balance note that reward is balance - initial capital hence 0
323 | episodeBalance.append(env.balance)
324 |
325 | # no training for evaluation
326 |
327 | if done:
328 | print('Ep: ', i_episode, '| Ep_r: ', round(r, 2))
329 | if (showChart == True):
330 | visualise(env.dataframe, episodeAction, episodeBalance)
331 |
332 | break
333 | s = s_
334 | # collect stats
335 | totalFinalReward.append(r)
336 | totalAction.extend(episodeAction)
337 |
338 | counter = collections.Counter(totalAction)
339 | print("total unique action ", print(counter))
340 |
341 | plt.title('Reward')
342 | plt.xlabel('No of Episodes')
343 | plt.ylabel('Total Final Reward')
344 | plt.plot(np.arange(len(totalFinalReward)), totalFinalReward, 'r-', lw=5)
345 |
346 | # Calculate the simple average of the rewards
347 | yMean = [np.mean(totalFinalReward)] * len(totalFinalReward)
348 | plt.plot(yMean, label='Mean', linestyle='--')
349 | plt.text(1, yMean[0], "Average Returns: {:.3f}".format(yMean[0]))
350 | plt.show()
351 |
352 | winloseRatio = len(list(filter(lambda x: x > 0, totalFinalReward))) / len(totalFinalReward)
353 | print(winloseRatio)
354 | # temporary placeholder for balance
355 | return True
356 |
357 |
358 | def automateTrading():
359 | pass
360 | # pastDataWithIndicator = constructIndicator(pastData)
361 |
362 | # using past 20 day data
363 | # machineLearning(pastData)
364 |
365 |
366 | '''
367 | what is the key outcome?
368 | 1) reinforcement to trade profitably daily basis <-- Done DDQN will trt rdn when got time
369 | 2) robust when back tested against historical data 2 month <-- Done
370 | 3) automate trade demo using model and algorithm (completed custom gym environment for agent to interact with based on ig dow jones data in 5min resolution)
371 | 4) unrealised profit or loss into state & new action close position <-- Done
372 | 5) Multiday training and validation <-- Done only slight gains from 25points sl 50tp 2:1 RRR
373 | 6) resample to high time frame for evaluation (Check if need to do that for training as well) <-- Done (so that we don't have to trade that late at night)
374 | 7) custom env to provide returns array via info for performanceTest (Optimise hyper param) 1 month training plus 1 week walk forward
375 | (have yet to test other point base sl:tp, e.g 40:80 okok but must make sure loss is low, 50:100 seems lit, 25:75 cmi, 50:25 not worth the drawdowns)
376 | (100:50 crazy drawdown on certain days, 150:50 high winrate but not much profit a few losses would wipe the floor) <-- seems like scalping isnt the way to go here
377 | 8) check if underfit or overfit model <-- Done added tensorboard to monitor loss overtime noticed that beyond 20k steps aka 600ish episode the model starts to diverge
378 | 9) Trade profiler for evaluation Average High/Low + Max High/Low, Win/Lose Rate, RRR
379 | 10) https://www.kaggle.com/itoeiji/deep-reinforcement-learning-on-stock-data
380 | 11) check for shitty data 0.0,0.0,0.0,0.0 ctrl+shift+f
381 | '''
382 | if __name__ == "__main__":
383 | #bulkDownload('2019-05-08', 4)
384 | #trainMLModel(endDate="2019-04-13", timeResolution="30min", trainingDays=30, totalEpisodes=600)
385 |
386 | # exactly the same steps as trainMLModel but without saving while loading trained model
387 | results = evaluateMLModel(evalutionDate="2019-04-17", timeResolution="30min", showChart=False)
388 | # performanceTest(results)list(filter(lambda x: x >0, nums))
389 |
390 | # automateTrading()
391 | # TODO after all is set and done final todo is to use it on CFD account
--------------------------------------------------------------------------------
/data/2019-01-12.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'ask': 23902.0, 'lastTraded': None, 'bid': 23900.4}","{'ask': 23924.0, 'lastTraded': None, 'bid': 23922.4}",1956,"{'ask': 23897.0, 'lastTraded': None, 'bid': 23895.4}","{'ask': 23912.0, 'lastTraded': None, 'bid': 23910.4}",2019:01:12-00:00:00,23911.2,23896.2,23923.2,23901.2
3 | 1,"{'ask': 23898.5, 'lastTraded': None, 'bid': 23896.9}","{'ask': 23905.0, 'lastTraded': None, 'bid': 23903.4}",1587,"{'ask': 23885.0, 'lastTraded': None, 'bid': 23883.4}","{'ask': 23901.0, 'lastTraded': None, 'bid': 23899.4}",2019:01:12-00:05:00,23900.2,23884.2,23904.2,23897.7
4 | 2,"{'ask': 23865.5, 'lastTraded': None, 'bid': 23863.9}","{'ask': 23899.5, 'lastTraded': None, 'bid': 23897.9}",2728,"{'ask': 23852.0, 'lastTraded': None, 'bid': 23850.4}","{'ask': 23899.0, 'lastTraded': None, 'bid': 23897.4}",2019:01:12-00:10:00,23898.2,23851.2,23898.7,23864.7
5 | 3,"{'ask': 23893.0, 'lastTraded': None, 'bid': 23891.4}","{'ask': 23899.0, 'lastTraded': None, 'bid': 23897.4}",1632,"{'ask': 23858.5, 'lastTraded': None, 'bid': 23856.9}","{'ask': 23866.0, 'lastTraded': None, 'bid': 23864.4}",2019:01:12-00:15:00,23865.2,23857.7,23898.2,23892.2
6 | 4,"{'ask': 23894.0, 'lastTraded': None, 'bid': 23892.4}","{'ask': 23904.5, 'lastTraded': None, 'bid': 23902.9}",1325,"{'ask': 23873.5, 'lastTraded': None, 'bid': 23871.9}","{'ask': 23892.5, 'lastTraded': None, 'bid': 23890.9}",2019:01:12-00:20:00,23891.7,23872.7,23903.7,23893.2
7 | 5,"{'ask': 23890.5, 'lastTraded': None, 'bid': 23888.9}","{'ask': 23899.0, 'lastTraded': None, 'bid': 23897.4}",1433,"{'ask': 23877.0, 'lastTraded': None, 'bid': 23875.4}","{'ask': 23895.0, 'lastTraded': None, 'bid': 23893.4}",2019:01:12-00:25:00,23894.2,23876.2,23898.2,23889.7
8 | 6,"{'ask': 23899.0, 'lastTraded': None, 'bid': 23897.4}","{'ask': 23902.5, 'lastTraded': None, 'bid': 23900.9}",1248,"{'ask': 23883.0, 'lastTraded': None, 'bid': 23881.4}","{'ask': 23891.0, 'lastTraded': None, 'bid': 23889.4}",2019:01:12-00:30:00,23890.2,23882.2,23901.7,23898.2
9 | 7,"{'ask': 23896.5, 'lastTraded': None, 'bid': 23894.9}","{'ask': 23907.0, 'lastTraded': None, 'bid': 23905.4}",995,"{'ask': 23894.0, 'lastTraded': None, 'bid': 23892.4}","{'ask': 23899.5, 'lastTraded': None, 'bid': 23897.9}",2019:01:12-00:35:00,23898.7,23893.2,23906.2,23895.7
10 | 8,"{'ask': 23917.5, 'lastTraded': None, 'bid': 23915.9}","{'ask': 23922.0, 'lastTraded': None, 'bid': 23920.4}",1387,"{'ask': 23895.5, 'lastTraded': None, 'bid': 23893.9}","{'ask': 23897.0, 'lastTraded': None, 'bid': 23895.4}",2019:01:12-00:40:00,23896.2,23894.7,23921.2,23916.7
11 | 9,"{'ask': 23940.0, 'lastTraded': None, 'bid': 23938.4}","{'ask': 23940.5, 'lastTraded': None, 'bid': 23938.9}",2057,"{'ask': 23917.0, 'lastTraded': None, 'bid': 23915.4}","{'ask': 23917.0, 'lastTraded': None, 'bid': 23915.4}",2019:01:12-00:45:00,23916.2,23916.2,23939.7,23939.2
12 | 10,"{'ask': 23923.0, 'lastTraded': None, 'bid': 23921.4}","{'ask': 23942.0, 'lastTraded': None, 'bid': 23940.4}",1321,"{'ask': 23919.5, 'lastTraded': None, 'bid': 23917.9}","{'ask': 23940.5, 'lastTraded': None, 'bid': 23938.9}",2019:01:12-00:50:00,23939.7,23918.7,23941.2,23922.2
13 | 11,"{'ask': 23938.0, 'lastTraded': None, 'bid': 23936.4}","{'ask': 23939.5, 'lastTraded': None, 'bid': 23937.9}",760,"{'ask': 23919.0, 'lastTraded': None, 'bid': 23917.4}","{'ask': 23922.5, 'lastTraded': None, 'bid': 23920.9}",2019:01:12-00:55:00,23921.7,23918.2,23938.7,23937.2
14 | 12,"{'ask': 23946.5, 'lastTraded': None, 'bid': 23944.9}","{'ask': 23956.5, 'lastTraded': None, 'bid': 23954.9}",1654,"{'ask': 23933.0, 'lastTraded': None, 'bid': 23931.4}","{'ask': 23937.5, 'lastTraded': None, 'bid': 23935.9}",2019:01:12-01:00:00,23936.7,23932.2,23955.7,23945.7
15 | 13,"{'ask': 23942.0, 'lastTraded': None, 'bid': 23940.4}","{'ask': 23966.0, 'lastTraded': None, 'bid': 23964.4}",1285,"{'ask': 23942.0, 'lastTraded': None, 'bid': 23940.4}","{'ask': 23947.0, 'lastTraded': None, 'bid': 23945.4}",2019:01:12-01:05:00,23946.2,23941.2,23965.2,23941.2
16 | 14,"{'ask': 23945.0, 'lastTraded': None, 'bid': 23943.4}","{'ask': 23946.0, 'lastTraded': None, 'bid': 23944.4}",809,"{'ask': 23930.0, 'lastTraded': None, 'bid': 23928.4}","{'ask': 23942.5, 'lastTraded': None, 'bid': 23940.9}",2019:01:12-01:10:00,23941.7,23929.2,23945.2,23944.2
17 | 15,"{'ask': 23944.0, 'lastTraded': None, 'bid': 23942.4}","{'ask': 23950.0, 'lastTraded': None, 'bid': 23948.4}",568,"{'ask': 23940.0, 'lastTraded': None, 'bid': 23938.4}","{'ask': 23945.5, 'lastTraded': None, 'bid': 23943.9}",2019:01:12-01:15:00,23944.7,23939.2,23949.2,23943.2
18 | 16,"{'ask': 23943.0, 'lastTraded': None, 'bid': 23941.4}","{'ask': 23946.0, 'lastTraded': None, 'bid': 23944.4}",935,"{'ask': 23927.0, 'lastTraded': None, 'bid': 23925.4}","{'ask': 23944.5, 'lastTraded': None, 'bid': 23942.9}",2019:01:12-01:20:00,23943.7,23926.2,23945.2,23942.2
19 | 17,"{'ask': 23948.0, 'lastTraded': None, 'bid': 23946.4}","{'ask': 23963.5, 'lastTraded': None, 'bid': 23961.9}",1298,"{'ask': 23942.5, 'lastTraded': None, 'bid': 23940.9}","{'ask': 23942.5, 'lastTraded': None, 'bid': 23940.9}",2019:01:12-01:25:00,23941.7,23941.7,23962.7,23947.2
20 | 18,"{'ask': 23969.5, 'lastTraded': None, 'bid': 23967.9}","{'ask': 23976.0, 'lastTraded': None, 'bid': 23974.4}",1244,"{'ask': 23942.0, 'lastTraded': None, 'bid': 23940.4}","{'ask': 23948.5, 'lastTraded': None, 'bid': 23946.9}",2019:01:12-01:30:00,23947.7,23941.2,23975.2,23968.7
21 | 19,"{'ask': 23972.0, 'lastTraded': None, 'bid': 23970.4}","{'ask': 23981.0, 'lastTraded': None, 'bid': 23979.4}",1210,"{'ask': 23958.5, 'lastTraded': None, 'bid': 23956.9}","{'ask': 23970.0, 'lastTraded': None, 'bid': 23968.4}",2019:01:12-01:35:00,23969.2,23957.7,23980.2,23971.2
22 | 20,"{'ask': 23973.0, 'lastTraded': None, 'bid': 23971.4}","{'ask': 23981.5, 'lastTraded': None, 'bid': 23979.9}",1261,"{'ask': 23971.0, 'lastTraded': None, 'bid': 23969.4}","{'ask': 23971.5, 'lastTraded': None, 'bid': 23969.9}",2019:01:12-01:40:00,23970.7,23970.2,23980.7,23972.2
23 | 21,"{'ask': 23950.5, 'lastTraded': None, 'bid': 23948.9}","{'ask': 23973.5, 'lastTraded': None, 'bid': 23971.9}",1335,"{'ask': 23944.5, 'lastTraded': None, 'bid': 23942.9}","{'ask': 23972.5, 'lastTraded': None, 'bid': 23970.9}",2019:01:12-01:45:00,23971.7,23943.7,23972.7,23949.7
24 | 22,"{'ask': 23955.5, 'lastTraded': None, 'bid': 23953.9}","{'ask': 23968.0, 'lastTraded': None, 'bid': 23966.4}",858,"{'ask': 23949.5, 'lastTraded': None, 'bid': 23947.9}","{'ask': 23951.0, 'lastTraded': None, 'bid': 23949.4}",2019:01:12-01:50:00,23950.2,23948.7,23967.2,23954.7
25 | 23,"{'ask': 23959.0, 'lastTraded': None, 'bid': 23957.4}","{'ask': 23967.0, 'lastTraded': None, 'bid': 23965.4}",673,"{'ask': 23954.0, 'lastTraded': None, 'bid': 23952.4}","{'ask': 23956.0, 'lastTraded': None, 'bid': 23954.4}",2019:01:12-01:55:00,23955.2,23953.2,23966.2,23958.2
26 | 24,"{'ask': 23924.0, 'lastTraded': None, 'bid': 23922.4}","{'ask': 23960.0, 'lastTraded': None, 'bid': 23958.4}",1801,"{'ask': 23919.5, 'lastTraded': None, 'bid': 23917.9}","{'ask': 23958.5, 'lastTraded': None, 'bid': 23956.9}",2019:01:12-02:00:00,23957.7,23918.7,23959.2,23923.2
27 | 25,"{'ask': 23928.0, 'lastTraded': None, 'bid': 23926.4}","{'ask': 23940.5, 'lastTraded': None, 'bid': 23938.9}",888,"{'ask': 23922.5, 'lastTraded': None, 'bid': 23920.9}","{'ask': 23924.5, 'lastTraded': None, 'bid': 23922.9}",2019:01:12-02:05:00,23923.7,23921.7,23939.7,23927.2
28 | 26,"{'ask': 23902.0, 'lastTraded': None, 'bid': 23900.4}","{'ask': 23933.0, 'lastTraded': None, 'bid': 23931.4}",1439,"{'ask': 23894.0, 'lastTraded': None, 'bid': 23892.4}","{'ask': 23927.5, 'lastTraded': None, 'bid': 23925.9}",2019:01:12-02:10:00,23926.7,23893.2,23932.2,23901.2
29 | 27,"{'ask': 23908.0, 'lastTraded': None, 'bid': 23906.4}","{'ask': 23912.0, 'lastTraded': None, 'bid': 23910.4}",1634,"{'ask': 23888.0, 'lastTraded': None, 'bid': 23886.4}","{'ask': 23901.5, 'lastTraded': None, 'bid': 23899.9}",2019:01:12-02:15:00,23900.7,23887.2,23911.2,23907.2
30 | 28,"{'ask': 23889.0, 'lastTraded': None, 'bid': 23887.4}","{'ask': 23909.0, 'lastTraded': None, 'bid': 23907.4}",3098,"{'ask': 23889.0, 'lastTraded': None, 'bid': 23887.4}","{'ask': 23909.0, 'lastTraded': None, 'bid': 23907.4}",2019:01:12-02:20:00,23908.2,23888.2,23908.2,23888.2
31 | 29,"{'ask': 23906.0, 'lastTraded': None, 'bid': 23904.4}","{'ask': 23909.0, 'lastTraded': None, 'bid': 23907.4}",1290,"{'ask': 23880.0, 'lastTraded': None, 'bid': 23878.4}","{'ask': 23889.5, 'lastTraded': None, 'bid': 23887.9}",2019:01:12-02:25:00,23888.7,23879.2,23908.2,23905.2
32 | 30,"{'ask': 23908.5, 'lastTraded': None, 'bid': 23906.9}","{'ask': 23917.0, 'lastTraded': None, 'bid': 23915.4}",735,"{'ask': 23900.0, 'lastTraded': None, 'bid': 23898.4}","{'ask': 23905.5, 'lastTraded': None, 'bid': 23903.9}",2019:01:12-02:30:00,23904.7,23899.2,23916.2,23907.7
33 | 31,"{'ask': 23911.0, 'lastTraded': None, 'bid': 23909.4}","{'ask': 23919.0, 'lastTraded': None, 'bid': 23917.4}",592,"{'ask': 23897.0, 'lastTraded': None, 'bid': 23895.4}","{'ask': 23908.0, 'lastTraded': None, 'bid': 23906.4}",2019:01:12-02:35:00,23907.2,23896.2,23918.2,23910.2
34 | 32,"{'ask': 23925.3, 'lastTraded': None, 'bid': 23923.7}","{'ask': 23928.3, 'lastTraded': None, 'bid': 23926.7}",741,"{'ask': 23910.5, 'lastTraded': None, 'bid': 23908.9}","{'ask': 23910.5, 'lastTraded': None, 'bid': 23908.9}",2019:01:12-02:40:00,23909.7,23909.7,23927.5,23924.5
35 | 33,"{'ask': 23917.3, 'lastTraded': None, 'bid': 23915.7}","{'ask': 23930.8, 'lastTraded': None, 'bid': 23929.2}",778,"{'ask': 23916.3, 'lastTraded': None, 'bid': 23914.7}","{'ask': 23924.8, 'lastTraded': None, 'bid': 23923.2}",2019:01:12-02:45:00,23924.0,23915.5,23930.0,23916.5
36 | 34,"{'ask': 23929.3, 'lastTraded': None, 'bid': 23927.7}","{'ask': 23931.3, 'lastTraded': None, 'bid': 23929.7}",471,"{'ask': 23913.3, 'lastTraded': None, 'bid': 23911.7}","{'ask': 23916.8, 'lastTraded': None, 'bid': 23915.2}",2019:01:12-02:50:00,23916.0,23912.5,23930.5,23928.5
37 | 35,"{'ask': 23925.8, 'lastTraded': None, 'bid': 23924.2}","{'ask': 23936.3, 'lastTraded': None, 'bid': 23934.7}",787,"{'ask': 23917.8, 'lastTraded': None, 'bid': 23916.2}","{'ask': 23928.8, 'lastTraded': None, 'bid': 23927.2}",2019:01:12-02:55:00,23928.0,23917.0,23935.5,23925.0
38 | 36,"{'ask': 23922.8, 'lastTraded': None, 'bid': 23921.2}","{'ask': 23936.8, 'lastTraded': None, 'bid': 23935.2}",1242,"{'ask': 23905.8, 'lastTraded': None, 'bid': 23904.2}","{'ask': 23925.3, 'lastTraded': None, 'bid': 23923.7}",2019:01:12-03:00:00,23924.5,23905.0,23936.0,23922.0
39 | 37,"{'ask': 23931.3, 'lastTraded': None, 'bid': 23929.7}","{'ask': 23934.3, 'lastTraded': None, 'bid': 23932.7}",565,"{'ask': 23920.3, 'lastTraded': None, 'bid': 23918.7}","{'ask': 23922.3, 'lastTraded': None, 'bid': 23920.7}",2019:01:12-03:05:00,23921.5,23919.5,23933.5,23930.5
40 | 38,"{'ask': 23941.3, 'lastTraded': None, 'bid': 23939.7}","{'ask': 23950.3, 'lastTraded': None, 'bid': 23948.7}",1047,"{'ask': 23928.3, 'lastTraded': None, 'bid': 23926.7}","{'ask': 23931.8, 'lastTraded': None, 'bid': 23930.2}",2019:01:12-03:10:00,23931.0,23927.5,23949.5,23940.5
41 | 39,"{'ask': 23936.8, 'lastTraded': None, 'bid': 23935.2}","{'ask': 23947.8, 'lastTraded': None, 'bid': 23946.2}",544,"{'ask': 23935.3, 'lastTraded': None, 'bid': 23933.7}","{'ask': 23940.8, 'lastTraded': None, 'bid': 23939.2}",2019:01:12-03:15:00,23940.0,23934.5,23947.0,23936.0
42 | 40,"{'ask': 23934.8, 'lastTraded': None, 'bid': 23933.2}","{'ask': 23941.8, 'lastTraded': None, 'bid': 23940.2}",555,"{'ask': 23930.3, 'lastTraded': None, 'bid': 23928.7}","{'ask': 23937.3, 'lastTraded': None, 'bid': 23935.7}",2019:01:12-03:20:00,23936.5,23929.5,23941.0,23934.0
43 | 41,"{'ask': 23943.3, 'lastTraded': None, 'bid': 23941.7}","{'ask': 23949.8, 'lastTraded': None, 'bid': 23948.2}",753,"{'ask': 23926.8, 'lastTraded': None, 'bid': 23925.2}","{'ask': 23935.3, 'lastTraded': None, 'bid': 23933.7}",2019:01:12-03:25:00,23934.5,23926.0,23949.0,23942.5
44 | 42,"{'ask': 23941.8, 'lastTraded': None, 'bid': 23940.2}","{'ask': 23948.3, 'lastTraded': None, 'bid': 23946.7}",792,"{'ask': 23928.3, 'lastTraded': None, 'bid': 23926.7}","{'ask': 23943.8, 'lastTraded': None, 'bid': 23942.2}",2019:01:12-03:30:00,23943.0,23927.5,23947.5,23941.0
45 | 43,"{'ask': 23947.8, 'lastTraded': None, 'bid': 23946.2}","{'ask': 23952.3, 'lastTraded': None, 'bid': 23950.7}",597,"{'ask': 23941.3, 'lastTraded': None, 'bid': 23939.7}","{'ask': 23942.3, 'lastTraded': None, 'bid': 23940.7}",2019:01:12-03:35:00,23941.5,23940.5,23951.5,23947.0
46 | 44,"{'ask': 23951.3, 'lastTraded': None, 'bid': 23949.7}","{'ask': 23957.8, 'lastTraded': None, 'bid': 23956.2}",723,"{'ask': 23935.3, 'lastTraded': None, 'bid': 23933.7}","{'ask': 23948.3, 'lastTraded': None, 'bid': 23946.7}",2019:01:12-03:40:00,23947.5,23934.5,23957.0,23950.5
47 | 45,"{'ask': 23943.8, 'lastTraded': None, 'bid': 23942.2}","{'ask': 23952.3, 'lastTraded': None, 'bid': 23950.7}",896,"{'ask': 23932.3, 'lastTraded': None, 'bid': 23930.7}","{'ask': 23951.8, 'lastTraded': None, 'bid': 23950.2}",2019:01:12-03:45:00,23951.0,23931.5,23951.5,23943.0
48 | 46,"{'ask': 23930.8, 'lastTraded': None, 'bid': 23929.2}","{'ask': 23952.3, 'lastTraded': None, 'bid': 23950.7}",1071,"{'ask': 23928.3, 'lastTraded': None, 'bid': 23926.7}","{'ask': 23944.3, 'lastTraded': None, 'bid': 23942.7}",2019:01:12-03:50:00,23943.5,23927.5,23951.5,23930.0
49 | 47,"{'ask': 23926.3, 'lastTraded': None, 'bid': 23924.7}","{'ask': 23936.3, 'lastTraded': None, 'bid': 23934.7}",1459,"{'ask': 23919.8, 'lastTraded': None, 'bid': 23918.2}","{'ask': 23930.3, 'lastTraded': None, 'bid': 23928.7}",2019:01:12-03:55:00,23929.5,23919.0,23935.5,23925.5
50 | 48,"{'ask': 23924.3, 'lastTraded': None, 'bid': 23922.7}","{'ask': 23935.8, 'lastTraded': None, 'bid': 23934.2}",849,"{'ask': 23919.3, 'lastTraded': None, 'bid': 23917.7}","{'ask': 23925.8, 'lastTraded': None, 'bid': 23924.2}",2019:01:12-04:00:00,23925.0,23918.5,23935.0,23923.5
51 | 49,"{'ask': 23945.8, 'lastTraded': None, 'bid': 23944.2}","{'ask': 23957.3, 'lastTraded': None, 'bid': 23955.7}",1010,"{'ask': 23923.8, 'lastTraded': None, 'bid': 23922.2}","{'ask': 23923.8, 'lastTraded': None, 'bid': 23922.2}",2019:01:12-04:05:00,23923.0,23923.0,23956.5,23945.0
52 | 50,"{'ask': 23945.3, 'lastTraded': None, 'bid': 23943.7}","{'ask': 23958.3, 'lastTraded': None, 'bid': 23956.7}",612,"{'ask': 23944.3, 'lastTraded': None, 'bid': 23942.7}","{'ask': 23946.3, 'lastTraded': None, 'bid': 23944.7}",2019:01:12-04:10:00,23945.5,23943.5,23957.5,23944.5
53 | 51,"{'ask': 23944.3, 'lastTraded': None, 'bid': 23942.7}","{'ask': 23950.3, 'lastTraded': None, 'bid': 23948.7}",713,"{'ask': 23936.3, 'lastTraded': None, 'bid': 23934.7}","{'ask': 23944.8, 'lastTraded': None, 'bid': 23943.2}",2019:01:12-04:15:00,23944.0,23935.5,23949.5,23943.5
54 | 52,"{'ask': 23939.3, 'lastTraded': None, 'bid': 23937.7}","{'ask': 23948.3, 'lastTraded': None, 'bid': 23946.7}",512,"{'ask': 23937.3, 'lastTraded': None, 'bid': 23935.7}","{'ask': 23943.3, 'lastTraded': None, 'bid': 23941.7}",2019:01:12-04:20:00,23942.5,23936.5,23947.5,23938.5
55 | 53,"{'ask': 23928.8, 'lastTraded': None, 'bid': 23927.2}","{'ask': 23940.3, 'lastTraded': None, 'bid': 23938.7}",759,"{'ask': 23926.3, 'lastTraded': None, 'bid': 23924.7}","{'ask': 23939.8, 'lastTraded': None, 'bid': 23938.2}",2019:01:12-04:25:00,23939.0,23925.5,23939.5,23928.0
56 | 54,"{'ask': 23950.3, 'lastTraded': None, 'bid': 23948.7}","{'ask': 23954.8, 'lastTraded': None, 'bid': 23953.2}",1176,"{'ask': 23927.8, 'lastTraded': None, 'bid': 23926.2}","{'ask': 23928.3, 'lastTraded': None, 'bid': 23926.7}",2019:01:12-04:30:00,23927.5,23927.0,23954.0,23949.5
57 | 55,"{'ask': 23971.3, 'lastTraded': None, 'bid': 23969.7}","{'ask': 23978.3, 'lastTraded': None, 'bid': 23976.7}",1723,"{'ask': 23947.8, 'lastTraded': None, 'bid': 23946.2}","{'ask': 23950.8, 'lastTraded': None, 'bid': 23949.2}",2019:01:12-04:35:00,23950.0,23947.0,23977.5,23970.5
58 | 56,"{'ask': 23972.3, 'lastTraded': None, 'bid': 23970.7}","{'ask': 23983.3, 'lastTraded': None, 'bid': 23981.7}",887,"{'ask': 23969.3, 'lastTraded': None, 'bid': 23967.7}","{'ask': 23970.3, 'lastTraded': None, 'bid': 23968.7}",2019:01:12-04:40:00,23969.5,23968.5,23982.5,23971.5
59 | 57,"{'ask': 23986.3, 'lastTraded': None, 'bid': 23984.7}","{'ask': 23988.3, 'lastTraded': None, 'bid': 23986.7}",799,"{'ask': 23973.3, 'lastTraded': None, 'bid': 23971.7}","{'ask': 23973.3, 'lastTraded': None, 'bid': 23971.7}",2019:01:12-04:45:00,23972.5,23972.5,23987.5,23985.5
60 | 58,"{'ask': 23972.3, 'lastTraded': None, 'bid': 23970.7}","{'ask': 23990.3, 'lastTraded': None, 'bid': 23988.7}",1094,"{'ask': 23969.3, 'lastTraded': None, 'bid': 23967.7}","{'ask': 23987.3, 'lastTraded': None, 'bid': 23985.7}",2019:01:12-04:50:00,23986.5,23968.5,23989.5,23971.5
61 | 59,"{'ask': 23992.3, 'lastTraded': None, 'bid': 23990.7}","{'ask': 23995.3, 'lastTraded': None, 'bid': 23993.7}",4179,"{'ask': 23967.3, 'lastTraded': None, 'bid': 23965.7}","{'ask': 23978.3, 'lastTraded': None, 'bid': 23976.7}",2019:01:12-04:55:00,23977.5,23966.5,23994.5,23991.5
62 | 60,"{'ask': 23992.9, 'lastTraded': None, 'bid': 23989.1}","{'ask': 24000.4, 'lastTraded': None, 'bid': 23996.6}",1822,"{'ask': 23982.4, 'lastTraded': None, 'bid': 23978.6}","{'ask': 23993.4, 'lastTraded': None, 'bid': 23989.6}",2019:01:12-05:00:00,23991.5,23980.5,23998.5,23991.0
63 | 61,"{'ask': 23981.9, 'lastTraded': None, 'bid': 23978.1}","{'ask': 23992.9, 'lastTraded': None, 'bid': 23989.1}",355,"{'ask': 23978.4, 'lastTraded': None, 'bid': 23974.6}","{'ask': 23992.4, 'lastTraded': None, 'bid': 23988.6}",2019:01:12-05:05:00,23990.5,23976.5,23991.0,23980.0
64 | 62,"{'ask': 23981.6, 'lastTraded': None, 'bid': 23971.8}","{'ask': 23984.5, 'lastTraded': None, 'bid': 23980.6}",573,"{'ask': 23973.4, 'lastTraded': None, 'bid': 23969.6}","{'ask': 23981.4, 'lastTraded': None, 'bid': 23977.6}",2019:01:12-05:10:00,23979.5,23971.5,23982.55,23976.7
65 | 63,"{'ask': 23982.6, 'lastTraded': None, 'bid': 23972.8}","{'ask': 23986.3, 'lastTraded': None, 'bid': 23976.5}",2,"{'ask': 23980.2, 'lastTraded': None, 'bid': 23970.4}","{'ask': 23983.2, 'lastTraded': None, 'bid': 23973.4}",2019:01:12-05:15:00,23978.3,23975.3,23981.4,23977.7
66 | 64,"{'ask': 23982.6, 'lastTraded': None, 'bid': 23972.8}","{'ask': 23983.6, 'lastTraded': None, 'bid': 23973.8}",0,"{'ask': 23980.9, 'lastTraded': None, 'bid': 23971.1}","{'ask': 23982.2, 'lastTraded': None, 'bid': 23972.4}",2019:01:12-05:20:00,23977.3,23976.0,23978.7,23977.7
67 | 65,"{'ask': 23980.2, 'lastTraded': None, 'bid': 23970.4}","{'ask': 23982.9, 'lastTraded': None, 'bid': 23973.1}",0,"{'ask': 23979.5, 'lastTraded': None, 'bid': 23969.7}","{'ask': 23982.9, 'lastTraded': None, 'bid': 23973.1}",2019:01:12-05:25:00,23978.0,23974.6,23978.0,23975.3
68 | 66,"{'ask': 23980.9, 'lastTraded': None, 'bid': 23977.1}","{'ask': 23985.9, 'lastTraded': None, 'bid': 23982.1}",75,"{'ask': 23975.9, 'lastTraded': None, 'bid': 23970.7}","{'ask': 23980.5, 'lastTraded': None, 'bid': 23970.7}",2019:01:12-05:30:00,23975.6,23973.3,23984.0,23979.0
69 | 67,"{'ask': 23983.9, 'lastTraded': None, 'bid': 23980.1}","{'ask': 23984.9, 'lastTraded': None, 'bid': 23981.1}",56,"{'ask': 23975.9, 'lastTraded': None, 'bid': 23972.1}","{'ask': 23979.9, 'lastTraded': None, 'bid': 23976.1}",2019:01:12-05:35:00,23978.0,23974.0,23983.0,23982.0
70 | 68,"{'ask': 23978.9, 'lastTraded': None, 'bid': 23975.1}","{'ask': 23984.9, 'lastTraded': None, 'bid': 23981.1}",85,"{'ask': 23977.9, 'lastTraded': None, 'bid': 23974.1}","{'ask': 23984.9, 'lastTraded': None, 'bid': 23981.1}",2019:01:12-05:40:00,23983.0,23976.0,23983.0,23977.0
71 | 69,"{'ask': 23982.9, 'lastTraded': None, 'bid': 23979.1}","{'ask': 23982.9, 'lastTraded': None, 'bid': 23979.1}",104,"{'ask': 23976.9, 'lastTraded': None, 'bid': 23973.1}","{'ask': 23979.9, 'lastTraded': None, 'bid': 23976.1}",2019:01:12-05:45:00,23978.0,23975.0,23981.0,23981.0
72 | 70,"{'ask': 23987.9, 'lastTraded': None, 'bid': 23984.1}","{'ask': 23987.9, 'lastTraded': None, 'bid': 23984.1}",55,"{'ask': 23977.9, 'lastTraded': None, 'bid': 23974.1}","{'ask': 23979.9, 'lastTraded': None, 'bid': 23976.1}",2019:01:12-05:50:00,23978.0,23976.0,23986.0,23986.0
73 | 71,"{'ask': 23986.5, 'lastTraded': None, 'bid': 23976.7}","{'ask': 23989.9, 'lastTraded': None, 'bid': 23986.1}",124,"{'ask': 23980.9, 'lastTraded': None, 'bid': 23976.7}","{'ask': 23988.9, 'lastTraded': None, 'bid': 23985.1}",2019:01:12-05:55:00,23987.0,23978.8,23988.0,23981.6
74 |
--------------------------------------------------------------------------------
/data/2019-02-02.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'ask': 25099.5, 'lastTraded': None, 'bid': 25097.9}","{'ask': 25108.5, 'lastTraded': None, 'bid': 25106.9}",3214,"{'ask': 25066.0, 'lastTraded': None, 'bid': 25064.4}","{'ask': 25095.0, 'lastTraded': None, 'bid': 25093.4}",2019:02:02-00:00:00,25094.2,25065.2,25107.7,25098.7
3 | 1,"{'ask': 25122.5, 'lastTraded': None, 'bid': 25120.9}","{'ask': 25128.0, 'lastTraded': None, 'bid': 25126.4}",1871,"{'ask': 25095.5, 'lastTraded': None, 'bid': 25093.9}","{'ask': 25100.0, 'lastTraded': None, 'bid': 25098.4}",2019:02:02-00:05:00,25099.2,25094.7,25127.2,25121.7
4 | 2,"{'ask': 25126.5, 'lastTraded': None, 'bid': 25124.9}","{'ask': 25128.5, 'lastTraded': None, 'bid': 25126.9}",1451,"{'ask': 25113.0, 'lastTraded': None, 'bid': 25111.4}","{'ask': 25123.0, 'lastTraded': None, 'bid': 25121.4}",2019:02:02-00:10:00,25122.2,25112.2,25127.7,25125.7
5 | 3,"{'ask': 25117.0, 'lastTraded': None, 'bid': 25115.4}","{'ask': 25144.5, 'lastTraded': None, 'bid': 25142.9}",1815,"{'ask': 25114.5, 'lastTraded': None, 'bid': 25112.9}","{'ask': 25125.5, 'lastTraded': None, 'bid': 25123.9}",2019:02:02-00:15:00,25124.7,25113.7,25143.7,25116.2
6 | 4,"{'ask': 25132.5, 'lastTraded': None, 'bid': 25130.9}","{'ask': 25142.0, 'lastTraded': None, 'bid': 25140.4}",1967,"{'ask': 25110.5, 'lastTraded': None, 'bid': 25108.9}","{'ask': 25116.5, 'lastTraded': None, 'bid': 25114.9}",2019:02:02-00:20:00,25115.7,25109.7,25141.2,25131.7
7 | 5,"{'ask': 25140.5, 'lastTraded': None, 'bid': 25138.9}","{'ask': 25158.5, 'lastTraded': None, 'bid': 25156.9}",1575,"{'ask': 25133.5, 'lastTraded': None, 'bid': 25131.9}","{'ask': 25133.5, 'lastTraded': None, 'bid': 25131.9}",2019:02:02-00:25:00,25132.7,25132.7,25157.7,25139.7
8 | 6,"{'ask': 25139.0, 'lastTraded': None, 'bid': 25137.4}","{'ask': 25148.5, 'lastTraded': None, 'bid': 25146.9}",1347,"{'ask': 25133.5, 'lastTraded': None, 'bid': 25131.9}","{'ask': 25140.0, 'lastTraded': None, 'bid': 25138.4}",2019:02:02-00:30:00,25139.2,25132.7,25147.7,25138.2
9 | 7,"{'ask': 25136.5, 'lastTraded': None, 'bid': 25134.9}","{'ask': 25150.5, 'lastTraded': None, 'bid': 25148.9}",1080,"{'ask': 25132.5, 'lastTraded': None, 'bid': 25130.9}","{'ask': 25139.5, 'lastTraded': None, 'bid': 25137.9}",2019:02:02-00:35:00,25138.7,25131.7,25149.7,25135.7
10 | 8,"{'ask': 25145.5, 'lastTraded': None, 'bid': 25143.9}","{'ask': 25149.5, 'lastTraded': None, 'bid': 25147.9}",909,"{'ask': 25135.5, 'lastTraded': None, 'bid': 25133.9}","{'ask': 25136.0, 'lastTraded': None, 'bid': 25134.4}",2019:02:02-00:40:00,25135.2,25134.7,25148.7,25144.7
11 | 9,"{'ask': 25152.5, 'lastTraded': None, 'bid': 25150.9}","{'ask': 25154.5, 'lastTraded': None, 'bid': 25152.9}",1205,"{'ask': 25129.5, 'lastTraded': None, 'bid': 25127.9}","{'ask': 25146.0, 'lastTraded': None, 'bid': 25144.4}",2019:02:02-00:45:00,25145.2,25128.7,25153.7,25151.7
12 | 10,"{'ask': 25170.5, 'lastTraded': None, 'bid': 25168.9}","{'ask': 25171.5, 'lastTraded': None, 'bid': 25169.9}",1357,"{'ask': 25149.5, 'lastTraded': None, 'bid': 25147.9}","{'ask': 25153.0, 'lastTraded': None, 'bid': 25151.4}",2019:02:02-00:50:00,25152.2,25148.7,25170.7,25169.7
13 | 11,"{'ask': 25177.5, 'lastTraded': None, 'bid': 25175.9}","{'ask': 25181.0, 'lastTraded': None, 'bid': 25179.4}",1506,"{'ask': 25166.0, 'lastTraded': None, 'bid': 25164.4}","{'ask': 25171.5, 'lastTraded': None, 'bid': 25169.9}",2019:02:02-00:55:00,25170.7,25165.2,25180.2,25176.7
14 | 12,"{'ask': 25151.5, 'lastTraded': None, 'bid': 25149.9}","{'ask': 25180.5, 'lastTraded': None, 'bid': 25178.9}",1534,"{'ask': 25149.5, 'lastTraded': None, 'bid': 25147.9}","{'ask': 25178.0, 'lastTraded': None, 'bid': 25176.4}",2019:02:02-01:00:00,25177.2,25148.7,25179.7,25150.7
15 | 13,"{'ask': 25143.5, 'lastTraded': None, 'bid': 25141.9}","{'ask': 25158.5, 'lastTraded': None, 'bid': 25156.9}",827,"{'ask': 25139.0, 'lastTraded': None, 'bid': 25137.4}","{'ask': 25152.0, 'lastTraded': None, 'bid': 25150.4}",2019:02:02-01:05:00,25151.2,25138.2,25157.7,25142.7
16 | 14,"{'ask': 25132.5, 'lastTraded': None, 'bid': 25130.9}","{'ask': 25147.5, 'lastTraded': None, 'bid': 25145.9}",1114,"{'ask': 25131.0, 'lastTraded': None, 'bid': 25129.4}","{'ask': 25143.0, 'lastTraded': None, 'bid': 25141.4}",2019:02:02-01:10:00,25142.2,25130.2,25146.7,25131.7
17 | 15,"{'ask': 25116.5, 'lastTraded': None, 'bid': 25114.9}","{'ask': 25135.5, 'lastTraded': None, 'bid': 25133.9}",844,"{'ask': 25114.5, 'lastTraded': None, 'bid': 25112.9}","{'ask': 25133.5, 'lastTraded': None, 'bid': 25131.9}",2019:02:02-01:15:00,25132.7,25113.7,25134.7,25115.7
18 | 16,"{'ask': 25083.5, 'lastTraded': None, 'bid': 25081.9}","{'ask': 25119.5, 'lastTraded': None, 'bid': 25117.9}",1997,"{'ask': 25083.5, 'lastTraded': None, 'bid': 25081.9}","{'ask': 25116.0, 'lastTraded': None, 'bid': 25114.4}",2019:02:02-01:20:00,25115.2,25082.7,25118.7,25082.7
19 | 17,"{'ask': 25093.0, 'lastTraded': None, 'bid': 25091.4}","{'ask': 25094.5, 'lastTraded': None, 'bid': 25092.9}",1623,"{'ask': 25072.0, 'lastTraded': None, 'bid': 25070.4}","{'ask': 25084.5, 'lastTraded': None, 'bid': 25082.9}",2019:02:02-01:25:00,25083.7,25071.2,25093.7,25092.2
20 | 18,"{'ask': 25102.0, 'lastTraded': None, 'bid': 25100.4}","{'ask': 25103.0, 'lastTraded': None, 'bid': 25101.4}",1333,"{'ask': 25078.5, 'lastTraded': None, 'bid': 25076.9}","{'ask': 25092.0, 'lastTraded': None, 'bid': 25090.4}",2019:02:02-01:30:00,25091.2,25077.7,25102.2,25101.2
21 | 19,"{'ask': 25089.5, 'lastTraded': None, 'bid': 25087.9}","{'ask': 25115.5, 'lastTraded': None, 'bid': 25113.9}",1418,"{'ask': 25089.0, 'lastTraded': None, 'bid': 25087.4}","{'ask': 25101.5, 'lastTraded': None, 'bid': 25099.9}",2019:02:02-01:35:00,25100.7,25088.2,25114.7,25088.7
22 | 20,"{'ask': 25114.0, 'lastTraded': None, 'bid': 25112.4}","{'ask': 25115.0, 'lastTraded': None, 'bid': 25113.4}",1138,"{'ask': 25083.0, 'lastTraded': None, 'bid': 25081.4}","{'ask': 25089.0, 'lastTraded': None, 'bid': 25087.4}",2019:02:02-01:40:00,25088.2,25082.2,25114.2,25113.2
23 | 21,"{'ask': 25117.0, 'lastTraded': None, 'bid': 25115.4}","{'ask': 25120.5, 'lastTraded': None, 'bid': 25118.9}",921,"{'ask': 25101.0, 'lastTraded': None, 'bid': 25099.4}","{'ask': 25113.5, 'lastTraded': None, 'bid': 25111.9}",2019:02:02-01:45:00,25112.7,25100.2,25119.7,25116.2
24 | 22,"{'ask': 25107.0, 'lastTraded': None, 'bid': 25105.4}","{'ask': 25123.5, 'lastTraded': None, 'bid': 25121.9}",853,"{'ask': 25106.5, 'lastTraded': None, 'bid': 25104.9}","{'ask': 25117.5, 'lastTraded': None, 'bid': 25115.9}",2019:02:02-01:50:00,25116.7,25105.7,25122.7,25106.2
25 | 23,"{'ask': 25110.0, 'lastTraded': None, 'bid': 25108.4}","{'ask': 25120.5, 'lastTraded': None, 'bid': 25118.9}",725,"{'ask': 25106.5, 'lastTraded': None, 'bid': 25104.9}","{'ask': 25106.5, 'lastTraded': None, 'bid': 25104.9}",2019:02:02-01:55:00,25105.7,25105.7,25119.7,25109.2
26 | 24,"{'ask': 25102.0, 'lastTraded': None, 'bid': 25100.4}","{'ask': 25117.0, 'lastTraded': None, 'bid': 25115.4}",690,"{'ask': 25099.5, 'lastTraded': None, 'bid': 25097.9}","{'ask': 25109.5, 'lastTraded': None, 'bid': 25107.9}",2019:02:02-02:00:00,25108.7,25098.7,25116.2,25101.2
27 | 25,"{'ask': 25111.5, 'lastTraded': None, 'bid': 25109.9}","{'ask': 25116.5, 'lastTraded': None, 'bid': 25114.9}",814,"{'ask': 25096.5, 'lastTraded': None, 'bid': 25094.9}","{'ask': 25102.5, 'lastTraded': None, 'bid': 25100.9}",2019:02:02-02:05:00,25101.7,25095.7,25115.7,25110.7
28 | 26,"{'ask': 25095.0, 'lastTraded': None, 'bid': 25093.4}","{'ask': 25113.5, 'lastTraded': None, 'bid': 25111.9}",583,"{'ask': 25095.0, 'lastTraded': None, 'bid': 25093.4}","{'ask': 25111.0, 'lastTraded': None, 'bid': 25109.4}",2019:02:02-02:10:00,25110.2,25094.2,25112.7,25094.2
29 | 27,"{'ask': 25082.5, 'lastTraded': None, 'bid': 25080.9}","{'ask': 25101.5, 'lastTraded': None, 'bid': 25099.9}",1084,"{'ask': 25071.5, 'lastTraded': None, 'bid': 25069.9}","{'ask': 25095.5, 'lastTraded': None, 'bid': 25093.9}",2019:02:02-02:15:00,25094.7,25070.7,25100.7,25081.7
30 | 28,"{'ask': 25075.5, 'lastTraded': None, 'bid': 25073.9}","{'ask': 25084.5, 'lastTraded': None, 'bid': 25082.9}",1006,"{'ask': 25064.5, 'lastTraded': None, 'bid': 25062.9}","{'ask': 25083.0, 'lastTraded': None, 'bid': 25081.4}",2019:02:02-02:20:00,25082.2,25063.7,25083.7,25074.7
31 | 29,"{'ask': 25089.0, 'lastTraded': None, 'bid': 25087.4}","{'ask': 25090.5, 'lastTraded': None, 'bid': 25088.9}",845,"{'ask': 25074.5, 'lastTraded': None, 'bid': 25072.9}","{'ask': 25075.0, 'lastTraded': None, 'bid': 25073.4}",2019:02:02-02:25:00,25074.2,25073.7,25089.7,25088.2
32 | 30,"{'ask': 25094.0, 'lastTraded': None, 'bid': 25092.4}","{'ask': 25102.5, 'lastTraded': None, 'bid': 25100.9}",759,"{'ask': 25083.5, 'lastTraded': None, 'bid': 25081.9}","{'ask': 25088.5, 'lastTraded': None, 'bid': 25086.9}",2019:02:02-02:30:00,25087.7,25082.7,25101.7,25093.2
33 | 31,"{'ask': 25097.0, 'lastTraded': None, 'bid': 25095.4}","{'ask': 25101.5, 'lastTraded': None, 'bid': 25099.9}",569,"{'ask': 25088.5, 'lastTraded': None, 'bid': 25086.9}","{'ask': 25093.5, 'lastTraded': None, 'bid': 25091.9}",2019:02:02-02:35:00,25092.7,25087.7,25100.7,25096.2
34 | 32,"{'ask': 25071.5, 'lastTraded': None, 'bid': 25069.9}","{'ask': 25098.5, 'lastTraded': None, 'bid': 25096.9}",492,"{'ask': 25071.5, 'lastTraded': None, 'bid': 25069.9}","{'ask': 25096.0, 'lastTraded': None, 'bid': 25094.4}",2019:02:02-02:40:00,25095.2,25070.7,25097.7,25070.7
35 | 33,"{'ask': 25074.5, 'lastTraded': None, 'bid': 25072.9}","{'ask': 25075.5, 'lastTraded': None, 'bid': 25073.9}",1168,"{'ask': 25051.5, 'lastTraded': None, 'bid': 25049.9}","{'ask': 25072.5, 'lastTraded': None, 'bid': 25070.9}",2019:02:02-02:45:00,25071.7,25050.7,25074.7,25073.7
36 | 34,"{'ask': 25067.0, 'lastTraded': None, 'bid': 25065.4}","{'ask': 25079.0, 'lastTraded': None, 'bid': 25077.4}",542,"{'ask': 25065.0, 'lastTraded': None, 'bid': 25063.4}","{'ask': 25074.0, 'lastTraded': None, 'bid': 25072.4}",2019:02:02-02:50:00,25073.2,25064.2,25078.2,25066.2
37 | 35,"{'ask': 25074.0, 'lastTraded': None, 'bid': 25072.4}","{'ask': 25075.5, 'lastTraded': None, 'bid': 25073.9}",379,"{'ask': 25066.0, 'lastTraded': None, 'bid': 25064.4}","{'ask': 25066.5, 'lastTraded': None, 'bid': 25064.9}",2019:02:02-02:55:00,25065.7,25065.2,25074.7,25073.2
38 | 36,"{'ask': 25031.5, 'lastTraded': None, 'bid': 25029.9}","{'ask': 25076.0, 'lastTraded': None, 'bid': 25074.4}",1506,"{'ask': 25031.5, 'lastTraded': None, 'bid': 25029.9}","{'ask': 25074.5, 'lastTraded': None, 'bid': 25072.9}",2019:02:02-03:00:00,25073.7,25030.7,25075.2,25030.7
39 | 37,"{'ask': 25045.0, 'lastTraded': None, 'bid': 25043.4}","{'ask': 25050.5, 'lastTraded': None, 'bid': 25048.9}",1243,"{'ask': 25029.5, 'lastTraded': None, 'bid': 25027.9}","{'ask': 25030.5, 'lastTraded': None, 'bid': 25028.9}",2019:02:02-03:05:00,25029.7,25028.7,25049.7,25044.2
40 | 38,"{'ask': 25039.0, 'lastTraded': None, 'bid': 25037.4}","{'ask': 25051.5, 'lastTraded': None, 'bid': 25049.9}",1205,"{'ask': 25031.5, 'lastTraded': None, 'bid': 25029.9}","{'ask': 25045.5, 'lastTraded': None, 'bid': 25043.9}",2019:02:02-03:10:00,25044.7,25030.7,25050.7,25038.2
41 | 39,"{'ask': 25017.0, 'lastTraded': None, 'bid': 25015.4}","{'ask': 25043.5, 'lastTraded': None, 'bid': 25041.9}",1810,"{'ask': 25016.0, 'lastTraded': None, 'bid': 25014.4}","{'ask': 25039.5, 'lastTraded': None, 'bid': 25037.9}",2019:02:02-03:15:00,25038.7,25015.2,25042.7,25016.2
42 | 40,"{'ask': 25011.5, 'lastTraded': None, 'bid': 25009.9}","{'ask': 25033.5, 'lastTraded': None, 'bid': 25031.9}",1303,"{'ask': 25011.5, 'lastTraded': None, 'bid': 25009.9}","{'ask': 25017.5, 'lastTraded': None, 'bid': 25015.9}",2019:02:02-03:20:00,25016.7,25010.7,25032.7,25010.7
43 | 41,"{'ask': 25021.0, 'lastTraded': None, 'bid': 25019.4}","{'ask': 25022.5, 'lastTraded': None, 'bid': 25020.9}",937,"{'ask': 25007.0, 'lastTraded': None, 'bid': 25005.4}","{'ask': 25011.0, 'lastTraded': None, 'bid': 25009.4}",2019:02:02-03:25:00,25010.2,25006.2,25021.7,25020.2
44 | 42,"{'ask': 25041.0, 'lastTraded': None, 'bid': 25039.4}","{'ask': 25045.5, 'lastTraded': None, 'bid': 25043.9}",1294,"{'ask': 25016.0, 'lastTraded': None, 'bid': 25014.4}","{'ask': 25020.5, 'lastTraded': None, 'bid': 25018.9}",2019:02:02-03:30:00,25019.7,25015.2,25044.7,25040.2
45 | 43,"{'ask': 25033.5, 'lastTraded': None, 'bid': 25031.9}","{'ask': 25046.5, 'lastTraded': None, 'bid': 25044.9}",875,"{'ask': 25023.5, 'lastTraded': None, 'bid': 25021.9}","{'ask': 25038.5, 'lastTraded': None, 'bid': 25036.9}",2019:02:02-03:35:00,25037.7,25022.7,25045.7,25032.7
46 | 44,"{'ask': 25036.0, 'lastTraded': None, 'bid': 25034.4}","{'ask': 25041.5, 'lastTraded': None, 'bid': 25039.9}",614,"{'ask': 25029.0, 'lastTraded': None, 'bid': 25027.4}","{'ask': 25032.5, 'lastTraded': None, 'bid': 25030.9}",2019:02:02-03:40:00,25031.7,25028.2,25040.7,25035.2
47 | 45,"{'ask': 25020.5, 'lastTraded': None, 'bid': 25018.9}","{'ask': 25042.5, 'lastTraded': None, 'bid': 25040.9}",1126,"{'ask': 25016.0, 'lastTraded': None, 'bid': 25014.4}","{'ask': 25036.5, 'lastTraded': None, 'bid': 25034.9}",2019:02:02-03:45:00,25035.7,25015.2,25041.7,25019.7
48 | 46,"{'ask': 24996.5, 'lastTraded': None, 'bid': 24994.9}","{'ask': 25027.5, 'lastTraded': None, 'bid': 25025.9}",1707,"{'ask': 24991.5, 'lastTraded': None, 'bid': 24989.9}","{'ask': 25020.0, 'lastTraded': None, 'bid': 25018.4}",2019:02:02-03:50:00,25019.2,24990.7,25026.7,24995.7
49 | 47,"{'ask': 25004.0, 'lastTraded': None, 'bid': 25002.4}","{'ask': 25007.5, 'lastTraded': None, 'bid': 25005.9}",1087,"{'ask': 24988.5, 'lastTraded': None, 'bid': 24986.9}","{'ask': 24996.0, 'lastTraded': None, 'bid': 24994.4}",2019:02:02-03:55:00,24995.2,24987.7,25006.7,25003.2
50 | 48,"{'ask': 24999.5, 'lastTraded': None, 'bid': 24997.9}","{'ask': 25010.5, 'lastTraded': None, 'bid': 25008.9}",1657,"{'ask': 24984.0, 'lastTraded': None, 'bid': 24982.4}","{'ask': 25003.5, 'lastTraded': None, 'bid': 25001.9}",2019:02:02-04:00:00,25002.7,24983.2,25009.7,24998.7
51 | 49,"{'ask': 24991.5, 'lastTraded': None, 'bid': 24989.9}","{'ask': 25010.5, 'lastTraded': None, 'bid': 25008.9}",932,"{'ask': 24989.0, 'lastTraded': None, 'bid': 24987.4}","{'ask': 24999.0, 'lastTraded': None, 'bid': 24997.4}",2019:02:02-04:05:00,24998.2,24988.2,25009.7,24990.7
52 | 50,"{'ask': 25000.5, 'lastTraded': None, 'bid': 24998.9}","{'ask': 25006.5, 'lastTraded': None, 'bid': 25004.9}",880,"{'ask': 24983.5, 'lastTraded': None, 'bid': 24981.9}","{'ask': 24989.5, 'lastTraded': None, 'bid': 24987.9}",2019:02:02-04:10:00,24988.7,24982.7,25005.7,24999.7
53 | 51,"{'ask': 25019.5, 'lastTraded': None, 'bid': 25017.9}","{'ask': 25030.5, 'lastTraded': None, 'bid': 25028.9}",2226,"{'ask': 24997.5, 'lastTraded': None, 'bid': 24995.9}","{'ask': 25001.5, 'lastTraded': None, 'bid': 24999.9}",2019:02:02-04:15:00,25000.7,24996.7,25029.7,25018.7
54 | 52,"{'ask': 25027.0, 'lastTraded': None, 'bid': 25025.4}","{'ask': 25031.5, 'lastTraded': None, 'bid': 25029.9}",878,"{'ask': 25012.5, 'lastTraded': None, 'bid': 25010.9}","{'ask': 25019.0, 'lastTraded': None, 'bid': 25017.4}",2019:02:02-04:20:00,25018.2,25011.7,25030.7,25026.2
55 | 53,"{'ask': 25031.0, 'lastTraded': None, 'bid': 25029.4}","{'ask': 25032.5, 'lastTraded': None, 'bid': 25030.9}",780,"{'ask': 25009.5, 'lastTraded': None, 'bid': 25007.9}","{'ask': 25027.5, 'lastTraded': None, 'bid': 25025.9}",2019:02:02-04:25:00,25026.7,25008.7,25031.7,25030.2
56 | 54,"{'ask': 25045.5, 'lastTraded': None, 'bid': 25043.9}","{'ask': 25054.0, 'lastTraded': None, 'bid': 25052.4}",1248,"{'ask': 25030.5, 'lastTraded': None, 'bid': 25028.9}","{'ask': 25030.5, 'lastTraded': None, 'bid': 25028.9}",2019:02:02-04:30:00,25029.7,25029.7,25053.2,25044.7
57 | 55,"{'ask': 25052.0, 'lastTraded': None, 'bid': 25050.4}","{'ask': 25059.0, 'lastTraded': None, 'bid': 25057.4}",676,"{'ask': 25042.5, 'lastTraded': None, 'bid': 25040.9}","{'ask': 25046.5, 'lastTraded': None, 'bid': 25044.9}",2019:02:02-04:35:00,25045.7,25041.7,25058.2,25051.2
58 | 56,"{'ask': 25045.5, 'lastTraded': None, 'bid': 25043.9}","{'ask': 25052.0, 'lastTraded': None, 'bid': 25050.4}",787,"{'ask': 25037.0, 'lastTraded': None, 'bid': 25035.4}","{'ask': 25051.5, 'lastTraded': None, 'bid': 25049.9}",2019:02:02-04:40:00,25050.7,25036.2,25051.2,25044.7
59 | 57,"{'ask': 25031.0, 'lastTraded': None, 'bid': 25029.4}","{'ask': 25052.5, 'lastTraded': None, 'bid': 25050.9}",1217,"{'ask': 25029.5, 'lastTraded': None, 'bid': 25027.9}","{'ask': 25046.0, 'lastTraded': None, 'bid': 25044.4}",2019:02:02-04:45:00,25045.2,25028.7,25051.7,25030.2
60 | 58,"{'ask': 25032.5, 'lastTraded': None, 'bid': 25030.9}","{'ask': 25036.5, 'lastTraded': None, 'bid': 25034.9}",1194,"{'ask': 25020.5, 'lastTraded': None, 'bid': 25018.9}","{'ask': 25030.5, 'lastTraded': None, 'bid': 25028.9}",2019:02:02-04:50:00,25029.7,25019.7,25035.7,25031.7
61 | 59,"{'ask': 25059.0, 'lastTraded': None, 'bid': 25057.4}","{'ask': 25074.5, 'lastTraded': None, 'bid': 25072.9}",4066,"{'ask': 25022.0, 'lastTraded': None, 'bid': 25020.4}","{'ask': 25026.5, 'lastTraded': None, 'bid': 25024.9}",2019:02:02-04:55:00,25025.7,25021.2,25073.7,25058.2
62 | 60,"{'ask': 25066.1, 'lastTraded': None, 'bid': 25062.3}","{'ask': 25071.6, 'lastTraded': None, 'bid': 25067.8}",1889,"{'ask': 25053.1, 'lastTraded': None, 'bid': 25049.3}","{'ask': 25058.5, 'lastTraded': None, 'bid': 25056.9}",2019:02:02-05:00:00,25057.7,25051.2,25069.7,25064.2
63 | 61,"{'ask': 25057.6, 'lastTraded': None, 'bid': 25053.8}","{'ask': 25067.6, 'lastTraded': None, 'bid': 25063.8}",440,"{'ask': 25056.6, 'lastTraded': None, 'bid': 25052.8}","{'ask': 25066.6, 'lastTraded': None, 'bid': 25062.8}",2019:02:02-05:05:00,25064.7,25054.7,25065.7,25055.7
64 | 62,"{'ask': 25052.3, 'lastTraded': None, 'bid': 25042.5}","{'ask': 25060.6, 'lastTraded': None, 'bid': 25056.8}",1184,"{'ask': 25042.6, 'lastTraded': None, 'bid': 25038.8}","{'ask': 25058.1, 'lastTraded': None, 'bid': 25054.3}",2019:02:02-05:10:00,25056.2,25040.7,25058.7,25047.4
65 | 63,"{'ask': 25062.4, 'lastTraded': None, 'bid': 25052.6}","{'ask': 25062.9, 'lastTraded': None, 'bid': 25053.1}",0,"{'ask': 25050.6, 'lastTraded': None, 'bid': 25040.8}","{'ask': 25052.4, 'lastTraded': None, 'bid': 25042.6}",2019:02:02-05:15:00,25047.5,25045.7,25058.0,25057.5
66 | 64,"{'ask': 25062.4, 'lastTraded': None, 'bid': 25052.6}","{'ask': 25063.2, 'lastTraded': None, 'bid': 25053.4}",0,"{'ask': 25061.2, 'lastTraded': None, 'bid': 25051.4}","{'ask': 25062.3, 'lastTraded': None, 'bid': 25052.5}",2019:02:02-05:20:00,25057.4,25056.3,25058.3,25057.5
67 | 65,"{'ask': 25064.5, 'lastTraded': None, 'bid': 25054.7}","{'ask': 25064.6, 'lastTraded': None, 'bid': 25054.8}",0,"{'ask': 25061.4, 'lastTraded': None, 'bid': 25051.6}","{'ask': 25062.6, 'lastTraded': None, 'bid': 25052.8}",2019:02:02-05:25:00,25057.7,25056.5,25059.7,25059.6
68 | 66,"{'ask': 25055.1, 'lastTraded': None, 'bid': 25051.3}","{'ask': 25057.1, 'lastTraded': None, 'bid': 25053.3}",161,"{'ask': 25050.1, 'lastTraded': None, 'bid': 25046.3}","{'ask': 25055.1, 'lastTraded': None, 'bid': 25051.3}",2019:02:02-05:30:00,25053.2,25048.2,25055.2,25053.2
69 | 67,"{'ask': 25054.1, 'lastTraded': None, 'bid': 25050.3}","{'ask': 25057.1, 'lastTraded': None, 'bid': 25053.3}",48,"{'ask': 25052.1, 'lastTraded': None, 'bid': 25048.3}","{'ask': 25056.1, 'lastTraded': None, 'bid': 25052.3}",2019:02:02-05:35:00,25054.2,25050.2,25055.2,25052.2
70 | 68,"{'ask': 25054.1, 'lastTraded': None, 'bid': 25050.3}","{'ask': 25056.1, 'lastTraded': None, 'bid': 25052.3}",101,"{'ask': 25049.1, 'lastTraded': None, 'bid': 25045.3}","{'ask': 25053.1, 'lastTraded': None, 'bid': 25049.3}",2019:02:02-05:40:00,25051.2,25047.2,25054.2,25052.2
71 | 69,"{'ask': 25059.1, 'lastTraded': None, 'bid': 25055.3}","{'ask': 25059.1, 'lastTraded': None, 'bid': 25055.3}",128,"{'ask': 25051.1, 'lastTraded': None, 'bid': 25047.3}","{'ask': 25055.1, 'lastTraded': None, 'bid': 25051.3}",2019:02:02-05:45:00,25053.2,25049.2,25057.2,25057.2
72 | 70,"{'ask': 25062.1, 'lastTraded': None, 'bid': 25058.3}","{'ask': 25067.1, 'lastTraded': None, 'bid': 25063.3}",101,"{'ask': 25057.1, 'lastTraded': None, 'bid': 25053.3}","{'ask': 25057.1, 'lastTraded': None, 'bid': 25053.3}",2019:02:02-05:50:00,25055.2,25055.2,25065.2,25060.2
73 | 71,"{'ask': 25063.9, 'lastTraded': None, 'bid': 25054.1}","{'ask': 25064.1, 'lastTraded': None, 'bid': 25058.3}",95,"{'ask': 25050.1, 'lastTraded': None, 'bid': 25046.3}","{'ask': 25061.1, 'lastTraded': None, 'bid': 25057.3}",2019:02:02-05:55:00,25059.2,25048.2,25061.2,25059.0
74 |
--------------------------------------------------------------------------------
/data/2019-02-16.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'lastTraded': None, 'ask': 25790.3, 'bid': 25788.7}","{'lastTraded': None, 'ask': 25791.8, 'bid': 25790.2}",2634,"{'lastTraded': None, 'ask': 25749.8, 'bid': 25748.2}","{'lastTraded': None, 'ask': 25752.8, 'bid': 25751.2}",2019:02:16-00:00:00,25752.0,25749.0,25791.0,25789.5
3 | 1,"{'lastTraded': None, 'ask': 25769.8, 'bid': 25768.2}","{'lastTraded': None, 'ask': 25792.8, 'bid': 25791.2}",2089,"{'lastTraded': None, 'ask': 25753.8, 'bid': 25752.2}","{'lastTraded': None, 'ask': 25790.8, 'bid': 25789.2}",2019:02:16-00:05:00,25790.0,25753.0,25792.0,25769.0
4 | 2,"{'lastTraded': None, 'ask': 25755.3, 'bid': 25753.7}","{'lastTraded': None, 'ask': 25770.8, 'bid': 25769.2}",2602,"{'lastTraded': None, 'ask': 25740.3, 'bid': 25738.7}","{'lastTraded': None, 'ask': 25768.8, 'bid': 25767.2}",2019:02:16-00:10:00,25768.0,25739.5,25770.0,25754.5
5 | 3,"{'lastTraded': None, 'ask': 25747.8, 'bid': 25746.2}","{'lastTraded': None, 'ask': 25760.8, 'bid': 25759.2}",1993,"{'lastTraded': None, 'ask': 25734.8, 'bid': 25733.2}","{'lastTraded': None, 'ask': 25754.8, 'bid': 25753.2}",2019:02:16-00:15:00,25754.0,25734.0,25760.0,25747.0
6 | 4,"{'lastTraded': None, 'ask': 25760.3, 'bid': 25758.7}","{'lastTraded': None, 'ask': 25761.8, 'bid': 25760.2}",2270,"{'lastTraded': None, 'ask': 25730.8, 'bid': 25729.2}","{'lastTraded': None, 'ask': 25748.8, 'bid': 25747.2}",2019:02:16-00:20:00,25748.0,25730.0,25761.0,25759.5
7 | 5,"{'lastTraded': None, 'ask': 25785.8, 'bid': 25784.2}","{'lastTraded': None, 'ask': 25787.8, 'bid': 25786.2}",2004,"{'lastTraded': None, 'ask': 25759.8, 'bid': 25758.2}","{'lastTraded': None, 'ask': 25759.8, 'bid': 25758.2}",2019:02:16-00:25:00,25759.0,25759.0,25787.0,25785.0
8 | 6,"{'lastTraded': None, 'ask': 25772.8, 'bid': 25771.2}","{'lastTraded': None, 'ask': 25785.8, 'bid': 25784.2}",1518,"{'lastTraded': None, 'ask': 25768.8, 'bid': 25767.2}","{'lastTraded': None, 'ask': 25785.3, 'bid': 25783.7}",2019:02:16-00:30:00,25784.5,25768.0,25785.0,25772.0
9 | 7,"{'lastTraded': None, 'ask': 25768.3, 'bid': 25766.7}","{'lastTraded': None, 'ask': 25773.8, 'bid': 25772.2}",1562,"{'lastTraded': None, 'ask': 25749.8, 'bid': 25748.2}","{'lastTraded': None, 'ask': 25771.8, 'bid': 25770.2}",2019:02:16-00:35:00,25771.0,25749.0,25773.0,25767.5
10 | 8,"{'lastTraded': None, 'ask': 25768.8, 'bid': 25767.2}","{'lastTraded': None, 'ask': 25780.8, 'bid': 25779.2}",1414,"{'lastTraded': None, 'ask': 25764.8, 'bid': 25763.2}","{'lastTraded': None, 'ask': 25768.8, 'bid': 25767.2}",2019:02:16-00:40:00,25768.0,25764.0,25780.0,25768.0
11 | 9,"{'lastTraded': None, 'ask': 25776.3, 'bid': 25774.7}","{'lastTraded': None, 'ask': 25780.3, 'bid': 25778.7}",1438,"{'lastTraded': None, 'ask': 25756.3, 'bid': 25754.7}","{'lastTraded': None, 'ask': 25769.8, 'bid': 25768.2}",2019:02:16-00:45:00,25769.0,25755.5,25779.5,25775.5
12 | 10,"{'lastTraded': None, 'ask': 25796.8, 'bid': 25795.2}","{'lastTraded': None, 'ask': 25802.8, 'bid': 25801.2}",1584,"{'lastTraded': None, 'ask': 25771.8, 'bid': 25770.2}","{'lastTraded': None, 'ask': 25775.8, 'bid': 25774.2}",2019:02:16-00:50:00,25775.0,25771.0,25802.0,25796.0
13 | 11,"{'lastTraded': None, 'ask': 25802.8, 'bid': 25801.2}","{'lastTraded': None, 'ask': 25811.3, 'bid': 25809.7}",1433,"{'lastTraded': None, 'ask': 25794.3, 'bid': 25792.7}","{'lastTraded': None, 'ask': 25797.8, 'bid': 25796.2}",2019:02:16-00:55:00,25797.0,25793.5,25810.5,25802.0
14 | 12,"{'lastTraded': None, 'ask': 25780.8, 'bid': 25779.2}","{'lastTraded': None, 'ask': 25807.8, 'bid': 25806.2}",1561,"{'lastTraded': None, 'ask': 25779.8, 'bid': 25778.2}","{'lastTraded': None, 'ask': 25803.8, 'bid': 25802.2}",2019:02:16-01:00:00,25803.0,25779.0,25807.0,25780.0
15 | 13,"{'lastTraded': None, 'ask': 25789.3, 'bid': 25787.7}","{'lastTraded': None, 'ask': 25791.3, 'bid': 25789.7}",1221,"{'lastTraded': None, 'ask': 25770.8, 'bid': 25769.2}","{'lastTraded': None, 'ask': 25780.3, 'bid': 25778.7}",2019:02:16-01:05:00,25779.5,25770.0,25790.5,25788.5
16 | 14,"{'lastTraded': None, 'ask': 25808.8, 'bid': 25807.2}","{'lastTraded': None, 'ask': 25808.8, 'bid': 25807.2}",1171,"{'lastTraded': None, 'ask': 25786.8, 'bid': 25785.2}","{'lastTraded': None, 'ask': 25788.8, 'bid': 25787.2}",2019:02:16-01:10:00,25788.0,25786.0,25808.0,25808.0
17 | 15,"{'lastTraded': None, 'ask': 25799.8, 'bid': 25798.2}","{'lastTraded': None, 'ask': 25815.3, 'bid': 25813.7}",1606,"{'lastTraded': None, 'ask': 25795.8, 'bid': 25794.2}","{'lastTraded': None, 'ask': 25809.8, 'bid': 25808.2}",2019:02:16-01:15:00,25809.0,25795.0,25814.5,25799.0
18 | 16,"{'lastTraded': None, 'ask': 25792.8, 'bid': 25791.2}","{'lastTraded': None, 'ask': 25803.8, 'bid': 25802.2}",877,"{'lastTraded': None, 'ask': 25790.8, 'bid': 25789.2}","{'lastTraded': None, 'ask': 25800.3, 'bid': 25798.7}",2019:02:16-01:20:00,25799.5,25790.0,25803.0,25792.0
19 | 17,"{'lastTraded': None, 'ask': 25793.8, 'bid': 25792.2}","{'lastTraded': None, 'ask': 25806.8, 'bid': 25805.2}",1304,"{'lastTraded': None, 'ask': 25791.8, 'bid': 25790.2}","{'lastTraded': None, 'ask': 25792.3, 'bid': 25790.7}",2019:02:16-01:25:00,25791.5,25791.0,25806.0,25793.0
20 | 18,"{'lastTraded': None, 'ask': 25784.8, 'bid': 25783.2}","{'lastTraded': None, 'ask': 25798.8, 'bid': 25797.2}",1184,"{'lastTraded': None, 'ask': 25776.8, 'bid': 25775.2}","{'lastTraded': None, 'ask': 25792.8, 'bid': 25791.2}",2019:02:16-01:30:00,25792.0,25776.0,25798.0,25784.0
21 | 19,"{'lastTraded': None, 'ask': 25793.8, 'bid': 25792.2}","{'lastTraded': None, 'ask': 25793.8, 'bid': 25792.2}",667,"{'lastTraded': None, 'ask': 25781.3, 'bid': 25779.7}","{'lastTraded': None, 'ask': 25785.3, 'bid': 25783.7}",2019:02:16-01:35:00,25784.5,25780.5,25793.0,25793.0
22 | 20,"{'lastTraded': None, 'ask': 25796.8, 'bid': 25795.2}","{'lastTraded': None, 'ask': 25800.8, 'bid': 25799.2}",652,"{'lastTraded': None, 'ask': 25791.8, 'bid': 25790.2}","{'lastTraded': None, 'ask': 25794.8, 'bid': 25793.2}",2019:02:16-01:40:00,25794.0,25791.0,25800.0,25796.0
23 | 21,"{'lastTraded': None, 'ask': 25790.8, 'bid': 25789.2}","{'lastTraded': None, 'ask': 25803.8, 'bid': 25802.2}",779,"{'lastTraded': None, 'ask': 25783.3, 'bid': 25781.7}","{'lastTraded': None, 'ask': 25797.3, 'bid': 25795.7}",2019:02:16-01:45:00,25796.5,25782.5,25803.0,25790.0
24 | 22,"{'lastTraded': None, 'ask': 25785.3, 'bid': 25783.7}","{'lastTraded': None, 'ask': 25791.3, 'bid': 25789.7}",670,"{'lastTraded': None, 'ask': 25780.8, 'bid': 25779.2}","{'lastTraded': None, 'ask': 25790.3, 'bid': 25788.7}",2019:02:16-01:50:00,25789.5,25780.0,25790.5,25784.5
25 | 23,"{'lastTraded': None, 'ask': 25784.8, 'bid': 25783.2}","{'lastTraded': None, 'ask': 25791.3, 'bid': 25789.7}",504,"{'lastTraded': None, 'ask': 25781.8, 'bid': 25780.2}","{'lastTraded': None, 'ask': 25784.8, 'bid': 25783.2}",2019:02:16-01:55:00,25784.0,25781.0,25790.5,25784.0
26 | 24,"{'lastTraded': None, 'ask': 25784.3, 'bid': 25782.7}","{'lastTraded': None, 'ask': 25796.3, 'bid': 25794.7}",764,"{'lastTraded': None, 'ask': 25782.3, 'bid': 25780.7}","{'lastTraded': None, 'ask': 25785.3, 'bid': 25783.7}",2019:02:16-02:00:00,25784.5,25781.5,25795.5,25783.5
27 | 25,"{'lastTraded': None, 'ask': 25771.8, 'bid': 25770.2}","{'lastTraded': None, 'ask': 25786.8, 'bid': 25785.2}",1494,"{'lastTraded': None, 'ask': 25764.8, 'bid': 25763.2}","{'lastTraded': None, 'ask': 25783.8, 'bid': 25782.2}",2019:02:16-02:05:00,25783.0,25764.0,25786.0,25771.0
28 | 26,"{'lastTraded': None, 'ask': 25766.3, 'bid': 25764.7}","{'lastTraded': None, 'ask': 25772.8, 'bid': 25771.2}",755,"{'lastTraded': None, 'ask': 25763.8, 'bid': 25762.2}","{'lastTraded': None, 'ask': 25771.3, 'bid': 25769.7}",2019:02:16-02:10:00,25770.5,25763.0,25772.0,25765.5
29 | 27,"{'lastTraded': None, 'ask': 25768.8, 'bid': 25767.2}","{'lastTraded': None, 'ask': 25774.8, 'bid': 25773.2}",727,"{'lastTraded': None, 'ask': 25765.8, 'bid': 25764.2}","{'lastTraded': None, 'ask': 25766.8, 'bid': 25765.2}",2019:02:16-02:15:00,25766.0,25765.0,25774.0,25768.0
30 | 28,"{'lastTraded': None, 'ask': 25769.8, 'bid': 25768.2}","{'lastTraded': None, 'ask': 25771.8, 'bid': 25770.2}",553,"{'lastTraded': None, 'ask': 25762.8, 'bid': 25761.2}","{'lastTraded': None, 'ask': 25769.3, 'bid': 25767.7}",2019:02:16-02:20:00,25768.5,25762.0,25771.0,25769.0
31 | 29,"{'lastTraded': None, 'ask': 25751.8, 'bid': 25750.2}","{'lastTraded': None, 'ask': 25774.3, 'bid': 25772.7}",935,"{'lastTraded': None, 'ask': 25750.8, 'bid': 25749.2}","{'lastTraded': None, 'ask': 25770.3, 'bid': 25768.7}",2019:02:16-02:25:00,25769.5,25750.0,25773.5,25751.0
32 | 30,"{'lastTraded': None, 'ask': 25760.8, 'bid': 25759.2}","{'lastTraded': None, 'ask': 25761.8, 'bid': 25760.2}",590,"{'lastTraded': None, 'ask': 25750.3, 'bid': 25748.7}","{'lastTraded': None, 'ask': 25752.8, 'bid': 25751.2}",2019:02:16-02:30:00,25752.0,25749.5,25761.0,25760.0
33 | 31,"{'lastTraded': None, 'ask': 25767.8, 'bid': 25766.2}","{'lastTraded': None, 'ask': 25768.3, 'bid': 25766.7}",539,"{'lastTraded': None, 'ask': 25760.8, 'bid': 25759.2}","{'lastTraded': None, 'ask': 25761.8, 'bid': 25760.2}",2019:02:16-02:35:00,25761.0,25760.0,25767.5,25767.0
34 | 32,"{'lastTraded': None, 'ask': 25765.5, 'bid': 25763.9}","{'lastTraded': None, 'ask': 25771.5, 'bid': 25769.9}",543,"{'lastTraded': None, 'ask': 25761.5, 'bid': 25759.9}","{'lastTraded': None, 'ask': 25766.5, 'bid': 25764.9}",2019:02:16-02:40:00,25765.7,25760.7,25770.7,25764.7
35 | 33,"{'lastTraded': None, 'ask': 25771.5, 'bid': 25769.9}","{'lastTraded': None, 'ask': 25774.0, 'bid': 25772.4}",514,"{'lastTraded': None, 'ask': 25763.5, 'bid': 25761.9}","{'lastTraded': None, 'ask': 25764.5, 'bid': 25762.9}",2019:02:16-02:45:00,25763.7,25762.7,25773.2,25770.7
36 | 34,"{'lastTraded': None, 'ask': 25794.5, 'bid': 25792.9}","{'lastTraded': None, 'ask': 25796.0, 'bid': 25794.4}",896,"{'lastTraded': None, 'ask': 25771.5, 'bid': 25769.9}","{'lastTraded': None, 'ask': 25772.0, 'bid': 25770.4}",2019:02:16-02:50:00,25771.2,25770.7,25795.2,25793.7
37 | 35,"{'lastTraded': None, 'ask': 25778.5, 'bid': 25776.9}","{'lastTraded': None, 'ask': 25794.5, 'bid': 25792.9}",645,"{'lastTraded': None, 'ask': 25777.5, 'bid': 25775.9}","{'lastTraded': None, 'ask': 25793.5, 'bid': 25791.9}",2019:02:16-02:55:00,25792.7,25776.7,25793.7,25777.7
38 | 36,"{'lastTraded': None, 'ask': 25794.5, 'bid': 25792.9}","{'lastTraded': None, 'ask': 25796.5, 'bid': 25794.9}",1176,"{'lastTraded': None, 'ask': 25777.5, 'bid': 25775.9}","{'lastTraded': None, 'ask': 25778.0, 'bid': 25776.4}",2019:02:16-03:00:00,25777.2,25776.7,25795.7,25793.7
39 | 37,"{'lastTraded': None, 'ask': 25796.5, 'bid': 25794.9}","{'lastTraded': None, 'ask': 25801.5, 'bid': 25799.9}",670,"{'lastTraded': None, 'ask': 25792.5, 'bid': 25790.9}","{'lastTraded': None, 'ask': 25795.0, 'bid': 25793.4}",2019:02:16-03:05:00,25794.2,25791.7,25800.7,25795.7
40 | 38,"{'lastTraded': None, 'ask': 25794.5, 'bid': 25792.9}","{'lastTraded': None, 'ask': 25800.5, 'bid': 25798.9}",870,"{'lastTraded': None, 'ask': 25789.5, 'bid': 25787.9}","{'lastTraded': None, 'ask': 25798.5, 'bid': 25796.9}",2019:02:16-03:10:00,25797.7,25788.7,25799.7,25793.7
41 | 39,"{'lastTraded': None, 'ask': 25802.0, 'bid': 25800.4}","{'lastTraded': None, 'ask': 25809.0, 'bid': 25807.4}",809,"{'lastTraded': None, 'ask': 25792.5, 'bid': 25790.9}","{'lastTraded': None, 'ask': 25795.0, 'bid': 25793.4}",2019:02:16-03:15:00,25794.2,25791.7,25808.2,25801.2
42 | 40,"{'lastTraded': None, 'ask': 25802.5, 'bid': 25800.9}","{'lastTraded': None, 'ask': 25806.0, 'bid': 25804.4}",690,"{'lastTraded': None, 'ask': 25795.5, 'bid': 25793.9}","{'lastTraded': None, 'ask': 25801.5, 'bid': 25799.9}",2019:02:16-03:20:00,25800.7,25794.7,25805.2,25801.7
43 | 41,"{'lastTraded': None, 'ask': 25794.5, 'bid': 25792.9}","{'lastTraded': None, 'ask': 25801.5, 'bid': 25799.9}",877,"{'lastTraded': None, 'ask': 25787.5, 'bid': 25785.9}","{'lastTraded': None, 'ask': 25801.5, 'bid': 25799.9}",2019:02:16-03:25:00,25800.7,25786.7,25800.7,25793.7
44 | 42,"{'lastTraded': None, 'ask': 25799.5, 'bid': 25797.9}","{'lastTraded': None, 'ask': 25801.5, 'bid': 25799.9}",659,"{'lastTraded': None, 'ask': 25793.5, 'bid': 25791.9}","{'lastTraded': None, 'ask': 25794.0, 'bid': 25792.4}",2019:02:16-03:30:00,25793.2,25792.7,25800.7,25798.7
45 | 43,"{'lastTraded': None, 'ask': 25805.5, 'bid': 25803.9}","{'lastTraded': None, 'ask': 25808.5, 'bid': 25806.9}",1044,"{'lastTraded': None, 'ask': 25796.5, 'bid': 25794.9}","{'lastTraded': None, 'ask': 25798.5, 'bid': 25796.9}",2019:02:16-03:35:00,25797.7,25795.7,25807.7,25804.7
46 | 44,"{'lastTraded': None, 'ask': 25806.5, 'bid': 25804.9}","{'lastTraded': None, 'ask': 25809.0, 'bid': 25807.4}",477,"{'lastTraded': None, 'ask': 25801.5, 'bid': 25799.9}","{'lastTraded': None, 'ask': 25805.0, 'bid': 25803.4}",2019:02:16-03:40:00,25804.2,25800.7,25808.2,25805.7
47 | 45,"{'lastTraded': None, 'ask': 25807.5, 'bid': 25805.9}","{'lastTraded': None, 'ask': 25810.5, 'bid': 25808.9}",386,"{'lastTraded': None, 'ask': 25803.5, 'bid': 25801.9}","{'lastTraded': None, 'ask': 25805.5, 'bid': 25803.9}",2019:02:16-03:45:00,25804.7,25802.7,25809.7,25806.7
48 | 46,"{'lastTraded': None, 'ask': 25814.5, 'bid': 25812.9}","{'lastTraded': None, 'ask': 25817.5, 'bid': 25815.9}",1082,"{'lastTraded': None, 'ask': 25808.5, 'bid': 25806.9}","{'lastTraded': None, 'ask': 25808.5, 'bid': 25806.9}",2019:02:16-03:50:00,25807.7,25807.7,25816.7,25813.7
49 | 47,"{'lastTraded': None, 'ask': 25825.5, 'bid': 25823.9}","{'lastTraded': None, 'ask': 25833.5, 'bid': 25831.9}",2067,"{'lastTraded': None, 'ask': 25808.0, 'bid': 25806.4}","{'lastTraded': None, 'ask': 25814.0, 'bid': 25812.4}",2019:02:16-03:55:00,25813.2,25807.2,25832.7,25824.7
50 | 48,"{'lastTraded': None, 'ask': 25823.5, 'bid': 25821.9}","{'lastTraded': None, 'ask': 25825.0, 'bid': 25823.4}",1200,"{'lastTraded': None, 'ask': 25811.5, 'bid': 25809.9}","{'lastTraded': None, 'ask': 25825.0, 'bid': 25823.4}",2019:02:16-04:00:00,25824.2,25810.7,25824.2,25822.7
51 | 49,"{'lastTraded': None, 'ask': 25814.5, 'bid': 25812.9}","{'lastTraded': None, 'ask': 25825.5, 'bid': 25823.9}",467,"{'lastTraded': None, 'ask': 25812.5, 'bid': 25810.9}","{'lastTraded': None, 'ask': 25823.0, 'bid': 25821.4}",2019:02:16-04:05:00,25822.2,25811.7,25824.7,25813.7
52 | 50,"{'lastTraded': None, 'ask': 25804.5, 'bid': 25802.9}","{'lastTraded': None, 'ask': 25814.5, 'bid': 25812.9}",779,"{'lastTraded': None, 'ask': 25803.5, 'bid': 25801.9}","{'lastTraded': None, 'ask': 25814.0, 'bid': 25812.4}",2019:02:16-04:10:00,25813.2,25802.7,25813.7,25803.7
53 | 51,"{'lastTraded': None, 'ask': 25793.5, 'bid': 25791.9}","{'lastTraded': None, 'ask': 25807.0, 'bid': 25805.4}",1272,"{'lastTraded': None, 'ask': 25789.5, 'bid': 25787.9}","{'lastTraded': None, 'ask': 25805.0, 'bid': 25803.4}",2019:02:16-04:15:00,25804.2,25788.7,25806.2,25792.7
54 | 52,"{'lastTraded': None, 'ask': 25797.5, 'bid': 25795.9}","{'lastTraded': None, 'ask': 25801.5, 'bid': 25799.9}",707,"{'lastTraded': None, 'ask': 25788.5, 'bid': 25786.9}","{'lastTraded': None, 'ask': 25792.5, 'bid': 25790.9}",2019:02:16-04:20:00,25791.7,25787.7,25800.7,25796.7
55 | 53,"{'lastTraded': None, 'ask': 25800.5, 'bid': 25798.9}","{'lastTraded': None, 'ask': 25803.5, 'bid': 25801.9}",715,"{'lastTraded': None, 'ask': 25794.5, 'bid': 25792.9}","{'lastTraded': None, 'ask': 25798.0, 'bid': 25796.4}",2019:02:16-04:25:00,25797.2,25793.7,25802.7,25799.7
56 | 54,"{'lastTraded': None, 'ask': 25813.5, 'bid': 25811.9}","{'lastTraded': None, 'ask': 25817.5, 'bid': 25815.9}",1073,"{'lastTraded': None, 'ask': 25794.5, 'bid': 25792.9}","{'lastTraded': None, 'ask': 25800.0, 'bid': 25798.4}",2019:02:16-04:30:00,25799.2,25793.7,25816.7,25812.7
57 | 55,"{'lastTraded': None, 'ask': 25826.5, 'bid': 25824.9}","{'lastTraded': None, 'ask': 25828.0, 'bid': 25826.4}",1077,"{'lastTraded': None, 'ask': 25811.5, 'bid': 25809.9}","{'lastTraded': None, 'ask': 25813.0, 'bid': 25811.4}",2019:02:16-04:35:00,25812.2,25810.7,25827.2,25825.7
58 | 56,"{'lastTraded': None, 'ask': 25852.5, 'bid': 25850.9}","{'lastTraded': None, 'ask': 25854.5, 'bid': 25852.9}",2956,"{'lastTraded': None, 'ask': 25824.0, 'bid': 25822.4}","{'lastTraded': None, 'ask': 25824.0, 'bid': 25822.4}",2019:02:16-04:40:00,25823.2,25823.2,25853.7,25851.7
59 | 57,"{'lastTraded': None, 'ask': 25866.5, 'bid': 25864.9}","{'lastTraded': None, 'ask': 25872.5, 'bid': 25870.9}",3317,"{'lastTraded': None, 'ask': 25852.5, 'bid': 25850.9}","{'lastTraded': None, 'ask': 25853.0, 'bid': 25851.4}",2019:02:16-04:45:00,25852.2,25851.7,25871.7,25865.7
60 | 58,"{'lastTraded': None, 'ask': 25851.0, 'bid': 25849.4}","{'lastTraded': None, 'ask': 25867.0, 'bid': 25865.4}",2217,"{'lastTraded': None, 'ask': 25840.5, 'bid': 25838.9}","{'lastTraded': None, 'ask': 25867.0, 'bid': 25865.4}",2019:02:16-04:50:00,25866.2,25839.7,25866.2,25850.2
61 | 59,"{'lastTraded': None, 'ask': 25879.5, 'bid': 25877.9}","{'lastTraded': None, 'ask': 25882.5, 'bid': 25880.9}",5156,"{'lastTraded': None, 'ask': 25850.5, 'bid': 25848.9}","{'lastTraded': None, 'ask': 25850.5, 'bid': 25848.9}",2019:02:16-04:55:00,25849.7,25849.7,25881.7,25878.7
62 | 60,"{'lastTraded': None, 'ask': 25881.6, 'bid': 25877.8}","{'lastTraded': None, 'ask': 25900.6, 'bid': 25896.8}",2982,"{'lastTraded': None, 'ask': 25875.1, 'bid': 25871.3}","{'lastTraded': None, 'ask': 25880.6, 'bid': 25876.8}",2019:02:16-05:00:00,25878.7,25873.2,25898.7,25879.7
63 | 61,"{'lastTraded': None, 'ask': 25878.1, 'bid': 25874.3}","{'lastTraded': None, 'ask': 25887.6, 'bid': 25883.8}",831,"{'lastTraded': None, 'ask': 25878.1, 'bid': 25874.3}","{'lastTraded': None, 'ask': 25881.1, 'bid': 25877.3}",2019:02:16-05:05:00,25879.2,25876.2,25885.7,25876.2
64 | 62,"{'lastTraded': None, 'ask': 25893.5, 'bid': 25883.7}","{'lastTraded': None, 'ask': 25895.8, 'bid': 25891.3}",752,"{'lastTraded': None, 'ask': 25877.6, 'bid': 25873.8}","{'lastTraded': None, 'ask': 25878.6, 'bid': 25874.8}",2019:02:16-05:10:00,25876.7,25875.7,25893.55,25888.6
65 | 63,"{'lastTraded': None, 'ask': 25910.6, 'bid': 25900.8}","{'lastTraded': None, 'ask': 25917.5, 'bid': 25907.7}",2,"{'lastTraded': None, 'ask': 25893.9, 'bid': 25884.1}","{'lastTraded': None, 'ask': 25893.9, 'bid': 25884.1}",2019:02:16-05:15:00,25889.0,25889.0,25912.6,25905.7
66 | 64,"{'lastTraded': None, 'ask': 25906.2, 'bid': 25896.4}","{'lastTraded': None, 'ask': 25910.0, 'bid': 25900.2}",0,"{'lastTraded': None, 'ask': 25903.9, 'bid': 25894.1}","{'lastTraded': None, 'ask': 25910.0, 'bid': 25900.2}",2019:02:16-05:20:00,25905.1,25899.0,25905.1,25901.3
67 | 65,"{'lastTraded': None, 'ask': 25904.4, 'bid': 25894.6}","{'lastTraded': None, 'ask': 25907.4, 'bid': 25897.6}",0,"{'lastTraded': None, 'ask': 25903.7, 'bid': 25893.9}","{'lastTraded': None, 'ask': 25906.5, 'bid': 25896.7}",2019:02:16-05:25:00,25901.6,25898.8,25902.5,25899.5
68 | 66,"{'lastTraded': None, 'ask': 25896.1, 'bid': 25892.3}","{'lastTraded': None, 'ask': 25904.1, 'bid': 25898.3}",320,"{'lastTraded': None, 'ask': 25889.1, 'bid': 25885.3}","{'lastTraded': None, 'ask': 25904.1, 'bid': 25894.3}",2019:02:16-05:30:00,25899.2,25887.2,25901.2,25894.2
69 | 67,"{'lastTraded': None, 'ask': 25896.1, 'bid': 25892.3}","{'lastTraded': None, 'ask': 25899.1, 'bid': 25895.3}",77,"{'lastTraded': None, 'ask': 25896.1, 'bid': 25892.3}","{'lastTraded': None, 'ask': 25897.1, 'bid': 25893.3}",2019:02:16-05:35:00,25895.2,25894.2,25897.2,25894.2
70 | 68,"{'lastTraded': None, 'ask': 25899.1, 'bid': 25895.3}","{'lastTraded': None, 'ask': 25899.1, 'bid': 25895.3}",211,"{'lastTraded': None, 'ask': 25893.1, 'bid': 25889.3}","{'lastTraded': None, 'ask': 25897.1, 'bid': 25893.3}",2019:02:16-05:40:00,25895.2,25891.2,25897.2,25897.2
71 | 69,"{'lastTraded': None, 'ask': 25900.1, 'bid': 25896.3}","{'lastTraded': None, 'ask': 25900.1, 'bid': 25896.3}",111,"{'lastTraded': None, 'ask': 25896.1, 'bid': 25892.3}","{'lastTraded': None, 'ask': 25900.1, 'bid': 25896.3}",2019:02:16-05:45:00,25898.2,25894.2,25898.2,25898.2
72 | 70,"{'lastTraded': None, 'ask': 25904.1, 'bid': 25900.3}","{'lastTraded': None, 'ask': 25907.1, 'bid': 25903.3}",257,"{'lastTraded': None, 'ask': 25897.1, 'bid': 25893.3}","{'lastTraded': None, 'ask': 25897.1, 'bid': 25893.3}",2019:02:16-05:50:00,25895.2,25895.2,25905.2,25902.2
73 | 71,"{'lastTraded': None, 'ask': 25903.1, 'bid': 25893.3}","{'lastTraded': None, 'ask': 25911.1, 'bid': 25907.3}",256,"{'lastTraded': None, 'ask': 25894.1, 'bid': 25890.3}","{'lastTraded': None, 'ask': 25905.1, 'bid': 25901.3}",2019:02:16-05:55:00,25903.2,25892.2,25909.2,25898.2
74 |
--------------------------------------------------------------------------------
/data/2019-02-23.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'bid': 25994.7, 'lastTraded': None, 'ask': 25996.3}","{'bid': 26001.7, 'lastTraded': None, 'ask': 26003.3}",1280,"{'bid': 25988.7, 'lastTraded': None, 'ask': 25990.3}","{'bid': 25998.7, 'lastTraded': None, 'ask': 26000.3}",2019:02:23-00:00:00,25999.5,25989.5,26002.5,25995.5
3 | 1,"{'bid': 26007.7, 'lastTraded': None, 'ask': 26009.3}","{'bid': 26011.7, 'lastTraded': None, 'ask': 26013.3}",2325,"{'bid': 25987.2, 'lastTraded': None, 'ask': 25988.8}","{'bid': 25994.2, 'lastTraded': None, 'ask': 25995.8}",2019:02:23-00:05:00,25995.0,25988.0,26012.5,26008.5
4 | 2,"{'bid': 26018.7, 'lastTraded': None, 'ask': 26020.3}","{'bid': 26019.2, 'lastTraded': None, 'ask': 26020.8}",1512,"{'bid': 26003.2, 'lastTraded': None, 'ask': 26004.8}","{'bid': 26008.2, 'lastTraded': None, 'ask': 26009.8}",2019:02:23-00:10:00,26009.0,26004.0,26020.0,26019.5
5 | 3,"{'bid': 26039.2, 'lastTraded': None, 'ask': 26040.8}","{'bid': 26042.7, 'lastTraded': None, 'ask': 26044.3}",2149,"{'bid': 26012.7, 'lastTraded': None, 'ask': 26014.3}","{'bid': 26019.2, 'lastTraded': None, 'ask': 26020.8}",2019:02:23-00:15:00,26020.0,26013.5,26043.5,26040.0
6 | 4,"{'bid': 26036.7, 'lastTraded': None, 'ask': 26038.3}","{'bid': 26044.2, 'lastTraded': None, 'ask': 26045.8}",2826,"{'bid': 26028.7, 'lastTraded': None, 'ask': 26030.3}","{'bid': 26039.7, 'lastTraded': None, 'ask': 26041.3}",2019:02:23-00:20:00,26040.5,26029.5,26045.0,26037.5
7 | 5,"{'bid': 26038.7, 'lastTraded': None, 'ask': 26040.3}","{'bid': 26044.2, 'lastTraded': None, 'ask': 26045.8}",1344,"{'bid': 26035.2, 'lastTraded': None, 'ask': 26036.8}","{'bid': 26036.2, 'lastTraded': None, 'ask': 26037.8}",2019:02:23-00:25:00,26037.0,26036.0,26045.0,26039.5
8 | 6,"{'bid': 26032.7, 'lastTraded': None, 'ask': 26034.3}","{'bid': 26044.7, 'lastTraded': None, 'ask': 26046.3}",2013,"{'bid': 26030.7, 'lastTraded': None, 'ask': 26032.3}","{'bid': 26038.2, 'lastTraded': None, 'ask': 26039.8}",2019:02:23-00:30:00,26039.0,26031.5,26045.5,26033.5
9 | 7,"{'bid': 26042.7, 'lastTraded': None, 'ask': 26044.3}","{'bid': 26044.7, 'lastTraded': None, 'ask': 26046.3}",1288,"{'bid': 26029.7, 'lastTraded': None, 'ask': 26031.3}","{'bid': 26033.2, 'lastTraded': None, 'ask': 26034.8}",2019:02:23-00:35:00,26034.0,26030.5,26045.5,26043.5
10 | 8,"{'bid': 26024.7, 'lastTraded': None, 'ask': 26026.3}","{'bid': 26047.7, 'lastTraded': None, 'ask': 26049.3}",1895,"{'bid': 26023.7, 'lastTraded': None, 'ask': 26025.3}","{'bid': 26043.2, 'lastTraded': None, 'ask': 26044.8}",2019:02:23-00:40:00,26044.0,26024.5,26048.5,26025.5
11 | 9,"{'bid': 26027.7, 'lastTraded': None, 'ask': 26029.3}","{'bid': 26034.7, 'lastTraded': None, 'ask': 26036.3}",877,"{'bid': 26022.7, 'lastTraded': None, 'ask': 26024.3}","{'bid': 26026.7, 'lastTraded': None, 'ask': 26028.3}",2019:02:23-00:45:00,26027.5,26023.5,26035.5,26028.5
12 | 10,"{'bid': 26015.7, 'lastTraded': None, 'ask': 26017.3}","{'bid': 26029.7, 'lastTraded': None, 'ask': 26031.3}",1773,"{'bid': 26011.7, 'lastTraded': None, 'ask': 26013.3}","{'bid': 26028.2, 'lastTraded': None, 'ask': 26029.8}",2019:02:23-00:50:00,26029.0,26012.5,26030.5,26016.5
13 | 11,"{'bid': 26032.7, 'lastTraded': None, 'ask': 26034.3}","{'bid': 26036.7, 'lastTraded': None, 'ask': 26038.3}",1290,"{'bid': 26016.7, 'lastTraded': None, 'ask': 26018.3}","{'bid': 26016.7, 'lastTraded': None, 'ask': 26018.3}",2019:02:23-00:55:00,26017.5,26017.5,26037.5,26033.5
14 | 12,"{'bid': 26046.7, 'lastTraded': None, 'ask': 26048.3}","{'bid': 26051.7, 'lastTraded': None, 'ask': 26053.3}",1899,"{'bid': 26024.7, 'lastTraded': None, 'ask': 26026.3}","{'bid': 26030.7, 'lastTraded': None, 'ask': 26032.3}",2019:02:23-01:00:00,26031.5,26025.5,26052.5,26047.5
15 | 13,"{'bid': 26043.2, 'lastTraded': None, 'ask': 26044.8}","{'bid': 26047.7, 'lastTraded': None, 'ask': 26049.3}",788,"{'bid': 26039.7, 'lastTraded': None, 'ask': 26041.3}","{'bid': 26047.7, 'lastTraded': None, 'ask': 26049.3}",2019:02:23-01:05:00,26048.5,26040.5,26048.5,26044.0
16 | 14,"{'bid': 26035.7, 'lastTraded': None, 'ask': 26037.3}","{'bid': 26044.7, 'lastTraded': None, 'ask': 26046.3}",737,"{'bid': 26035.7, 'lastTraded': None, 'ask': 26037.3}","{'bid': 26043.7, 'lastTraded': None, 'ask': 26045.3}",2019:02:23-01:10:00,26044.5,26036.5,26045.5,26036.5
17 | 15,"{'bid': 26023.7, 'lastTraded': None, 'ask': 26025.3}","{'bid': 26037.7, 'lastTraded': None, 'ask': 26039.3}",890,"{'bid': 26021.2, 'lastTraded': None, 'ask': 26022.8}","{'bid': 26036.2, 'lastTraded': None, 'ask': 26037.8}",2019:02:23-01:15:00,26037.0,26022.0,26038.5,26024.5
18 | 16,"{'bid': 26027.7, 'lastTraded': None, 'ask': 26029.3}","{'bid': 26027.7, 'lastTraded': None, 'ask': 26029.3}",811,"{'bid': 26018.7, 'lastTraded': None, 'ask': 26020.3}","{'bid': 26023.2, 'lastTraded': None, 'ask': 26024.8}",2019:02:23-01:20:00,26024.0,26019.5,26028.5,26028.5
19 | 17,"{'bid': 26022.7, 'lastTraded': None, 'ask': 26024.3}","{'bid': 26031.7, 'lastTraded': None, 'ask': 26033.3}",552,"{'bid': 26020.2, 'lastTraded': None, 'ask': 26021.8}","{'bid': 26027.2, 'lastTraded': None, 'ask': 26028.8}",2019:02:23-01:25:00,26028.0,26021.0,26032.5,26023.5
20 | 18,"{'bid': 26014.7, 'lastTraded': None, 'ask': 26016.3}","{'bid': 26024.7, 'lastTraded': None, 'ask': 26026.3}",874,"{'bid': 26011.7, 'lastTraded': None, 'ask': 26013.3}","{'bid': 26023.2, 'lastTraded': None, 'ask': 26024.8}",2019:02:23-01:30:00,26024.0,26012.5,26025.5,26015.5
21 | 19,"{'bid': 26018.7, 'lastTraded': None, 'ask': 26020.3}","{'bid': 26020.7, 'lastTraded': None, 'ask': 26022.3}",1000,"{'bid': 26005.7, 'lastTraded': None, 'ask': 26007.3}","{'bid': 26015.2, 'lastTraded': None, 'ask': 26016.8}",2019:02:23-01:35:00,26016.0,26006.5,26021.5,26019.5
22 | 20,"{'bid': 26018.7, 'lastTraded': None, 'ask': 26020.3}","{'bid': 26020.7, 'lastTraded': None, 'ask': 26022.3}",637,"{'bid': 26012.7, 'lastTraded': None, 'ask': 26014.3}","{'bid': 26017.7, 'lastTraded': None, 'ask': 26019.3}",2019:02:23-01:40:00,26018.5,26013.5,26021.5,26019.5
23 | 21,"{'bid': 26021.2, 'lastTraded': None, 'ask': 26022.8}","{'bid': 26022.7, 'lastTraded': None, 'ask': 26024.3}",930,"{'bid': 26014.7, 'lastTraded': None, 'ask': 26016.3}","{'bid': 26019.2, 'lastTraded': None, 'ask': 26020.8}",2019:02:23-01:45:00,26020.0,26015.5,26023.5,26022.0
24 | 22,"{'bid': 26005.7, 'lastTraded': None, 'ask': 26007.3}","{'bid': 26021.7, 'lastTraded': None, 'ask': 26023.3}",1511,"{'bid': 25995.7, 'lastTraded': None, 'ask': 25997.3}","{'bid': 26021.7, 'lastTraded': None, 'ask': 26023.3}",2019:02:23-01:50:00,26022.5,25996.5,26022.5,26006.5
25 | 23,"{'bid': 26013.7, 'lastTraded': None, 'ask': 26015.3}","{'bid': 26017.7, 'lastTraded': None, 'ask': 26019.3}",646,"{'bid': 26006.7, 'lastTraded': None, 'ask': 26008.3}","{'bid': 26006.7, 'lastTraded': None, 'ask': 26008.3}",2019:02:23-01:55:00,26007.5,26007.5,26018.5,26014.5
26 | 24,"{'bid': 26003.7, 'lastTraded': None, 'ask': 26005.3}","{'bid': 26016.7, 'lastTraded': None, 'ask': 26018.3}",816,"{'bid': 25999.7, 'lastTraded': None, 'ask': 26001.3}","{'bid': 26014.7, 'lastTraded': None, 'ask': 26016.3}",2019:02:23-02:00:00,26015.5,26000.5,26017.5,26004.5
27 | 25,"{'bid': 25999.7, 'lastTraded': None, 'ask': 26001.3}","{'bid': 26007.7, 'lastTraded': None, 'ask': 26009.3}",836,"{'bid': 25999.7, 'lastTraded': None, 'ask': 26001.3}","{'bid': 26004.7, 'lastTraded': None, 'ask': 26006.3}",2019:02:23-02:05:00,26005.5,26000.5,26008.5,26000.5
28 | 26,"{'bid': 25990.7, 'lastTraded': None, 'ask': 25992.3}","{'bid': 26000.7, 'lastTraded': None, 'ask': 26002.3}",1249,"{'bid': 25986.7, 'lastTraded': None, 'ask': 25988.3}","{'bid': 26000.2, 'lastTraded': None, 'ask': 26001.8}",2019:02:23-02:10:00,26001.0,25987.5,26001.5,25991.5
29 | 27,"{'bid': 25992.7, 'lastTraded': None, 'ask': 25994.3}","{'bid': 25998.7, 'lastTraded': None, 'ask': 26000.3}",2987,"{'bid': 25976.7, 'lastTraded': None, 'ask': 25978.3}","{'bid': 25989.7, 'lastTraded': None, 'ask': 25991.3}",2019:02:23-02:15:00,25990.5,25977.5,25999.5,25993.5
30 | 28,"{'bid': 25997.2, 'lastTraded': None, 'ask': 25998.8}","{'bid': 25997.7, 'lastTraded': None, 'ask': 25999.3}",567,"{'bid': 25987.7, 'lastTraded': None, 'ask': 25989.3}","{'bid': 25993.2, 'lastTraded': None, 'ask': 25994.8}",2019:02:23-02:20:00,25994.0,25988.5,25998.5,25998.0
31 | 29,"{'bid': 25999.2, 'lastTraded': None, 'ask': 26000.8}","{'bid': 26000.7, 'lastTraded': None, 'ask': 26002.3}",509,"{'bid': 25994.7, 'lastTraded': None, 'ask': 25996.3}","{'bid': 25997.7, 'lastTraded': None, 'ask': 25999.3}",2019:02:23-02:25:00,25998.5,25995.5,26001.5,26000.0
32 | 30,"{'bid': 26012.2, 'lastTraded': None, 'ask': 26013.8}","{'bid': 26012.2, 'lastTraded': None, 'ask': 26013.8}",957,"{'bid': 25997.7, 'lastTraded': None, 'ask': 25999.3}","{'bid': 25998.7, 'lastTraded': None, 'ask': 26000.3}",2019:02:23-02:30:00,25999.5,25998.5,26013.0,26013.0
33 | 31,"{'bid': 26005.7, 'lastTraded': None, 'ask': 26007.3}","{'bid': 26012.7, 'lastTraded': None, 'ask': 26014.3}",809,"{'bid': 26004.2, 'lastTraded': None, 'ask': 26005.8}","{'bid': 26011.7, 'lastTraded': None, 'ask': 26013.3}",2019:02:23-02:35:00,26012.5,26005.0,26013.5,26006.5
34 | 32,"{'bid': 25993.3, 'lastTraded': None, 'ask': 25994.9}","{'bid': 26007.3, 'lastTraded': None, 'ask': 26008.9}",698,"{'bid': 25990.3, 'lastTraded': None, 'ask': 25991.9}","{'bid': 26006.3, 'lastTraded': None, 'ask': 26007.9}",2019:02:23-02:40:00,26007.1,25991.1,26008.1,25994.1
35 | 33,"{'bid': 26000.3, 'lastTraded': None, 'ask': 26001.9}","{'bid': 26000.8, 'lastTraded': None, 'ask': 26002.4}",512,"{'bid': 25989.3, 'lastTraded': None, 'ask': 25990.9}","{'bid': 25992.3, 'lastTraded': None, 'ask': 25993.9}",2019:02:23-02:45:00,25993.1,25990.1,26001.6,26001.1
36 | 34,"{'bid': 25997.3, 'lastTraded': None, 'ask': 25998.9}","{'bid': 26001.3, 'lastTraded': None, 'ask': 26002.9}",581,"{'bid': 25990.8, 'lastTraded': None, 'ask': 25992.4}","{'bid': 26000.8, 'lastTraded': None, 'ask': 26002.4}",2019:02:23-02:50:00,26001.6,25991.6,26002.1,25998.1
37 | 35,"{'bid': 26003.8, 'lastTraded': None, 'ask': 26005.4}","{'bid': 26005.3, 'lastTraded': None, 'ask': 26006.9}",616,"{'bid': 25995.3, 'lastTraded': None, 'ask': 25996.9}","{'bid': 25998.3, 'lastTraded': None, 'ask': 25999.9}",2019:02:23-02:55:00,25999.1,25996.1,26006.1,26004.6
38 | 36,"{'bid': 26001.3, 'lastTraded': None, 'ask': 26002.9}","{'bid': 26005.3, 'lastTraded': None, 'ask': 26006.9}",558,"{'bid': 25994.3, 'lastTraded': None, 'ask': 25995.9}","{'bid': 26004.3, 'lastTraded': None, 'ask': 26005.9}",2019:02:23-03:00:00,26005.1,25995.1,26006.1,26002.1
39 | 37,"{'bid': 26014.3, 'lastTraded': None, 'ask': 26015.9}","{'bid': 26015.3, 'lastTraded': None, 'ask': 26016.9}",655,"{'bid': 25996.3, 'lastTraded': None, 'ask': 25997.9}","{'bid': 26000.8, 'lastTraded': None, 'ask': 26002.4}",2019:02:23-03:05:00,26001.6,25997.1,26016.1,26015.1
40 | 38,"{'bid': 26020.3, 'lastTraded': None, 'ask': 26021.9}","{'bid': 26025.3, 'lastTraded': None, 'ask': 26026.9}",930,"{'bid': 26013.3, 'lastTraded': None, 'ask': 26014.9}","{'bid': 26013.3, 'lastTraded': None, 'ask': 26014.9}",2019:02:23-03:10:00,26014.1,26014.1,26026.1,26021.1
41 | 39,"{'bid': 26001.3, 'lastTraded': None, 'ask': 26002.9}","{'bid': 26021.3, 'lastTraded': None, 'ask': 26022.9}",499,"{'bid': 26000.3, 'lastTraded': None, 'ask': 26001.9}","{'bid': 26020.8, 'lastTraded': None, 'ask': 26022.4}",2019:02:23-03:15:00,26021.6,26001.1,26022.1,26002.1
42 | 40,"{'bid': 25994.3, 'lastTraded': None, 'ask': 25995.9}","{'bid': 26001.3, 'lastTraded': None, 'ask': 26002.9}",644,"{'bid': 25989.3, 'lastTraded': None, 'ask': 25990.9}","{'bid': 26000.8, 'lastTraded': None, 'ask': 26002.4}",2019:02:23-03:20:00,26001.6,25990.1,26002.1,25995.1
43 | 41,"{'bid': 25990.3, 'lastTraded': None, 'ask': 25991.9}","{'bid': 25994.8, 'lastTraded': None, 'ask': 25996.4}",620,"{'bid': 25987.3, 'lastTraded': None, 'ask': 25988.9}","{'bid': 25994.8, 'lastTraded': None, 'ask': 25996.4}",2019:02:23-03:25:00,25995.6,25988.1,25995.6,25991.1
44 | 42,"{'bid': 25983.8, 'lastTraded': None, 'ask': 25985.4}","{'bid': 25997.3, 'lastTraded': None, 'ask': 25998.9}",820,"{'bid': 25981.3, 'lastTraded': None, 'ask': 25982.9}","{'bid': 25990.8, 'lastTraded': None, 'ask': 25992.4}",2019:02:23-03:30:00,25991.6,25982.1,25998.1,25984.6
45 | 43,"{'bid': 25940.8, 'lastTraded': None, 'ask': 25942.4}","{'bid': 25984.3, 'lastTraded': None, 'ask': 25985.9}",4973,"{'bid': 25920.3, 'lastTraded': None, 'ask': 25921.9}","{'bid': 25983.3, 'lastTraded': None, 'ask': 25984.9}",2019:02:23-03:35:00,25984.1,25921.1,25985.1,25941.6
46 | 44,"{'bid': 25926.3, 'lastTraded': None, 'ask': 25927.9}","{'bid': 25942.3, 'lastTraded': None, 'ask': 25943.9}",4645,"{'bid': 25910.3, 'lastTraded': None, 'ask': 25911.9}","{'bid': 25940.3, 'lastTraded': None, 'ask': 25941.9}",2019:02:23-03:40:00,25941.1,25911.1,25943.1,25927.1
47 | 45,"{'bid': 25931.3, 'lastTraded': None, 'ask': 25932.9}","{'bid': 25938.8, 'lastTraded': None, 'ask': 25940.4}",2060,"{'bid': 25912.8, 'lastTraded': None, 'ask': 25914.4}","{'bid': 25925.8, 'lastTraded': None, 'ask': 25927.4}",2019:02:23-03:45:00,25926.6,25913.6,25939.6,25932.1
48 | 46,"{'bid': 25934.3, 'lastTraded': None, 'ask': 25935.9}","{'bid': 25949.3, 'lastTraded': None, 'ask': 25950.9}",2377,"{'bid': 25924.8, 'lastTraded': None, 'ask': 25926.4}","{'bid': 25931.8, 'lastTraded': None, 'ask': 25933.4}",2019:02:23-03:50:00,25932.6,25925.6,25950.1,25935.1
49 | 47,"{'bid': 25931.3, 'lastTraded': None, 'ask': 25932.9}","{'bid': 25940.3, 'lastTraded': None, 'ask': 25941.9}",1407,"{'bid': 25924.3, 'lastTraded': None, 'ask': 25925.9}","{'bid': 25933.3, 'lastTraded': None, 'ask': 25934.9}",2019:02:23-03:55:00,25934.1,25925.1,25941.1,25932.1
50 | 48,"{'bid': 25953.3, 'lastTraded': None, 'ask': 25954.9}","{'bid': 25955.3, 'lastTraded': None, 'ask': 25956.9}",1479,"{'bid': 25921.3, 'lastTraded': None, 'ask': 25922.9}","{'bid': 25930.8, 'lastTraded': None, 'ask': 25932.4}",2019:02:23-04:00:00,25931.6,25922.1,25956.1,25954.1
51 | 49,"{'bid': 25951.3, 'lastTraded': None, 'ask': 25952.9}","{'bid': 25956.3, 'lastTraded': None, 'ask': 25957.9}",972,"{'bid': 25938.8, 'lastTraded': None, 'ask': 25940.4}","{'bid': 25954.3, 'lastTraded': None, 'ask': 25955.9}",2019:02:23-04:05:00,25955.1,25939.6,25957.1,25952.1
52 | 50,"{'bid': 25963.8, 'lastTraded': None, 'ask': 25965.4}","{'bid': 25966.8, 'lastTraded': None, 'ask': 25968.4}",1641,"{'bid': 25951.3, 'lastTraded': None, 'ask': 25952.9}","{'bid': 25952.3, 'lastTraded': None, 'ask': 25953.9}",2019:02:23-04:10:00,25953.1,25952.1,25967.6,25964.6
53 | 51,"{'bid': 25968.3, 'lastTraded': None, 'ask': 25969.9}","{'bid': 25971.3, 'lastTraded': None, 'ask': 25972.9}",942,"{'bid': 25955.3, 'lastTraded': None, 'ask': 25956.9}","{'bid': 25963.3, 'lastTraded': None, 'ask': 25964.9}",2019:02:23-04:15:00,25964.1,25956.1,25972.1,25969.1
54 | 52,"{'bid': 25966.3, 'lastTraded': None, 'ask': 25967.9}","{'bid': 25976.3, 'lastTraded': None, 'ask': 25977.9}",1151,"{'bid': 25963.3, 'lastTraded': None, 'ask': 25964.9}","{'bid': 25967.3, 'lastTraded': None, 'ask': 25968.9}",2019:02:23-04:20:00,25968.1,25964.1,25977.1,25967.1
55 | 53,"{'bid': 25995.3, 'lastTraded': None, 'ask': 25996.9}","{'bid': 26003.3, 'lastTraded': None, 'ask': 26004.9}",1759,"{'bid': 25967.3, 'lastTraded': None, 'ask': 25968.9}","{'bid': 25968.3, 'lastTraded': None, 'ask': 25969.9}",2019:02:23-04:25:00,25969.1,25968.1,26004.1,25996.1
56 | 54,"{'bid': 25987.3, 'lastTraded': None, 'ask': 25988.9}","{'bid': 25997.3, 'lastTraded': None, 'ask': 25998.9}",1861,"{'bid': 25980.3, 'lastTraded': None, 'ask': 25981.9}","{'bid': 25995.8, 'lastTraded': None, 'ask': 25997.4}",2019:02:23-04:30:00,25996.6,25981.1,25998.1,25988.1
57 | 55,"{'bid': 25975.3, 'lastTraded': None, 'ask': 25976.9}","{'bid': 25990.3, 'lastTraded': None, 'ask': 25991.9}",1541,"{'bid': 25969.3, 'lastTraded': None, 'ask': 25970.9}","{'bid': 25987.8, 'lastTraded': None, 'ask': 25989.4}",2019:02:23-04:35:00,25988.6,25970.1,25991.1,25976.1
58 | 56,"{'bid': 25999.8, 'lastTraded': None, 'ask': 26001.4}","{'bid': 26002.3, 'lastTraded': None, 'ask': 26003.9}",1412,"{'bid': 25974.8, 'lastTraded': None, 'ask': 25976.4}","{'bid': 25974.8, 'lastTraded': None, 'ask': 25976.4}",2019:02:23-04:40:00,25975.6,25975.6,26003.1,26000.6
59 | 57,"{'bid': 25989.3, 'lastTraded': None, 'ask': 25990.9}","{'bid': 26011.3, 'lastTraded': None, 'ask': 26012.9}",2233,"{'bid': 25987.8, 'lastTraded': None, 'ask': 25989.4}","{'bid': 26000.3, 'lastTraded': None, 'ask': 26001.9}",2019:02:23-04:45:00,26001.1,25988.6,26012.1,25990.1
60 | 58,"{'bid': 25997.8, 'lastTraded': None, 'ask': 25999.4}","{'bid': 26004.8, 'lastTraded': None, 'ask': 26006.4}",2163,"{'bid': 25978.3, 'lastTraded': None, 'ask': 25979.9}","{'bid': 25990.3, 'lastTraded': None, 'ask': 25991.9}",2019:02:23-04:50:00,25991.1,25979.1,26005.6,25998.6
61 | 59,"{'bid': 26024.3, 'lastTraded': None, 'ask': 26025.9}","{'bid': 26032.3, 'lastTraded': None, 'ask': 26033.9}",5743,"{'bid': 25998.3, 'lastTraded': None, 'ask': 25999.9}","{'bid': 25998.3, 'lastTraded': None, 'ask': 25999.9}",2019:02:23-04:55:00,25999.1,25999.1,26033.1,26025.1
62 | 60,"{'bid': 26010.1, 'lastTraded': None, 'ask': 26013.9}","{'bid': 26023.8, 'lastTraded': None, 'ask': 26025.4}",1932,"{'bid': 26002.6, 'lastTraded': None, 'ask': 26006.4}","{'bid': 26023.8, 'lastTraded': None, 'ask': 26025.4}",2019:02:23-05:00:00,26024.6,26004.5,26024.6,26012.0
63 | 61,"{'bid': 25998.1, 'lastTraded': None, 'ask': 26001.9}","{'bid': 26011.1, 'lastTraded': None, 'ask': 26014.9}",606,"{'bid': 25996.6, 'lastTraded': None, 'ask': 26000.4}","{'bid': 26009.6, 'lastTraded': None, 'ask': 26013.4}",2019:02:23-05:05:00,26011.5,25998.5,26013.0,26000.0
64 | 62,"{'bid': 26002.7, 'lastTraded': None, 'ask': 26012.5}","{'bid': 26006.6, 'lastTraded': None, 'ask': 26013.3}",999,"{'bid': 25986.1, 'lastTraded': None, 'ask': 25989.9}","{'bid': 25998.6, 'lastTraded': None, 'ask': 26002.4}",2019:02:23-05:10:00,26000.5,25988.0,26009.95,26007.6
65 | 63,"{'bid': 26000.7, 'lastTraded': None, 'ask': 26010.5}","{'bid': 26003.7, 'lastTraded': None, 'ask': 26013.5}",5,"{'bid': 25999.5, 'lastTraded': None, 'ask': 26009.3}","{'bid': 26003.0, 'lastTraded': None, 'ask': 26012.8}",2019:02:23-05:15:00,26007.9,26004.4,26008.6,26005.6
66 | 64,"{'bid': 26003.2, 'lastTraded': None, 'ask': 26013.0}","{'bid': 26003.7, 'lastTraded': None, 'ask': 26013.5}",0,"{'bid': 26000.6, 'lastTraded': None, 'ask': 26010.4}","{'bid': 26002.0, 'lastTraded': None, 'ask': 26011.8}",2019:02:23-05:20:00,26006.9,26005.5,26008.6,26008.1
67 | 65,"{'bid': 26001.8, 'lastTraded': None, 'ask': 26011.6}","{'bid': 26003.2, 'lastTraded': None, 'ask': 26013.0}",0,"{'bid': 26001.8, 'lastTraded': None, 'ask': 26011.6}","{'bid': 26002.9, 'lastTraded': None, 'ask': 26012.7}",2019:02:23-05:25:00,26007.8,26006.7,26008.1,26006.7
68 | 66,"{'bid': 26015.6, 'lastTraded': None, 'ask': 26019.4}","{'bid': 26017.6, 'lastTraded': None, 'ask': 26021.4}",430,"{'bid': 26004.6, 'lastTraded': None, 'ask': 26008.4}","{'bid': 26005.6, 'lastTraded': None, 'ask': 26009.4}",2019:02:23-05:30:00,26007.5,26006.5,26019.5,26017.5
69 | 67,"{'bid': 26017.6, 'lastTraded': None, 'ask': 26021.4}","{'bid': 26017.6, 'lastTraded': None, 'ask': 26021.4}",117,"{'bid': 26013.6, 'lastTraded': None, 'ask': 26017.4}","{'bid': 26014.6, 'lastTraded': None, 'ask': 26018.4}",2019:02:23-05:35:00,26016.5,26015.5,26019.5,26019.5
70 | 68,"{'bid': 26019.6, 'lastTraded': None, 'ask': 26023.4}","{'bid': 26019.6, 'lastTraded': None, 'ask': 26023.4}",77,"{'bid': 26014.6, 'lastTraded': None, 'ask': 26018.4}","{'bid': 26016.6, 'lastTraded': None, 'ask': 26020.4}",2019:02:23-05:40:00,26018.5,26016.5,26021.5,26021.5
71 | 69,"{'bid': 26022.6, 'lastTraded': None, 'ask': 26026.4}","{'bid': 26022.6, 'lastTraded': None, 'ask': 26026.4}",235,"{'bid': 26017.6, 'lastTraded': None, 'ask': 26021.4}","{'bid': 26017.6, 'lastTraded': None, 'ask': 26021.4}",2019:02:23-05:45:00,26019.5,26019.5,26024.5,26024.5
72 | 70,"{'bid': 26027.6, 'lastTraded': None, 'ask': 26031.4}","{'bid': 26027.6, 'lastTraded': None, 'ask': 26031.4}",135,"{'bid': 26020.6, 'lastTraded': None, 'ask': 26024.4}","{'bid': 26020.6, 'lastTraded': None, 'ask': 26024.4}",2019:02:23-05:50:00,26022.5,26022.5,26029.5,26029.5
73 | 71,"{'bid': 26038.1, 'lastTraded': None, 'ask': 26047.9}","{'bid': 26042.6, 'lastTraded': None, 'ask': 26047.9}",363,"{'bid': 26027.6, 'lastTraded': None, 'ask': 26031.4}","{'bid': 26028.6, 'lastTraded': None, 'ask': 26032.4}",2019:02:23-05:55:00,26030.5,26029.5,26045.25,26043.0
74 |
--------------------------------------------------------------------------------
/data/2019-03-09.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'bid': 25349.7, 'ask': 25351.3, 'lastTraded': None}","{'bid': 25357.7, 'ask': 25359.3, 'lastTraded': None}",1553,"{'bid': 25333.2, 'ask': 25334.8, 'lastTraded': None}","{'bid': 25344.2, 'ask': 25345.8, 'lastTraded': None}",2019:03:09-00:00:00,25345.0,25334.0,25358.5,25350.5
3 | 1,"{'bid': 25334.2, 'ask': 25335.8, 'lastTraded': None}","{'bid': 25362.7, 'ask': 25364.3, 'lastTraded': None}",1555,"{'bid': 25322.7, 'ask': 25324.3, 'lastTraded': None}","{'bid': 25349.2, 'ask': 25350.8, 'lastTraded': None}",2019:03:09-00:05:00,25350.0,25323.5,25363.5,25335.0
4 | 2,"{'bid': 25357.7, 'ask': 25359.3, 'lastTraded': None}","{'bid': 25369.2, 'ask': 25370.8, 'lastTraded': None}",2287,"{'bid': 25320.7, 'ask': 25322.3, 'lastTraded': None}","{'bid': 25335.7, 'ask': 25337.3, 'lastTraded': None}",2019:03:09-00:10:00,25336.5,25321.5,25370.0,25358.5
5 | 3,"{'bid': 25349.7, 'ask': 25351.3, 'lastTraded': None}","{'bid': 25373.7, 'ask': 25375.3, 'lastTraded': None}",2793,"{'bid': 25347.2, 'ask': 25348.8, 'lastTraded': None}","{'bid': 25357.2, 'ask': 25358.8, 'lastTraded': None}",2019:03:09-00:15:00,25358.0,25348.0,25374.5,25350.5
6 | 4,"{'bid': 25360.2, 'ask': 25361.8, 'lastTraded': None}","{'bid': 25362.7, 'ask': 25364.3, 'lastTraded': None}",972,"{'bid': 25338.2, 'ask': 25339.8, 'lastTraded': None}","{'bid': 25351.7, 'ask': 25353.3, 'lastTraded': None}",2019:03:09-00:20:00,25352.5,25339.0,25363.5,25361.0
7 | 5,"{'bid': 25378.7, 'ask': 25380.3, 'lastTraded': None}","{'bid': 25394.2, 'ask': 25395.8, 'lastTraded': None}",1492,"{'bid': 25360.7, 'ask': 25362.3, 'lastTraded': None}","{'bid': 25360.7, 'ask': 25362.3, 'lastTraded': None}",2019:03:09-00:25:00,25361.5,25361.5,25395.0,25379.5
8 | 6,"{'bid': 25354.7, 'ask': 25356.3, 'lastTraded': None}","{'bid': 25393.7, 'ask': 25395.3, 'lastTraded': None}",1363,"{'bid': 25354.2, 'ask': 25355.8, 'lastTraded': None}","{'bid': 25378.2, 'ask': 25379.8, 'lastTraded': None}",2019:03:09-00:30:00,25379.0,25355.0,25394.5,25355.5
9 | 7,"{'bid': 25350.7, 'ask': 25352.3, 'lastTraded': None}","{'bid': 25361.2, 'ask': 25362.8, 'lastTraded': None}",1526,"{'bid': 25346.2, 'ask': 25347.8, 'lastTraded': None}","{'bid': 25354.2, 'ask': 25355.8, 'lastTraded': None}",2019:03:09-00:35:00,25355.0,25347.0,25362.0,25351.5
10 | 8,"{'bid': 25352.7, 'ask': 25354.3, 'lastTraded': None}","{'bid': 25360.7, 'ask': 25362.3, 'lastTraded': None}",601,"{'bid': 25346.2, 'ask': 25347.8, 'lastTraded': None}","{'bid': 25350.2, 'ask': 25351.8, 'lastTraded': None}",2019:03:09-00:40:00,25351.0,25347.0,25361.5,25353.5
11 | 9,"{'bid': 25362.7, 'ask': 25364.3, 'lastTraded': None}","{'bid': 25380.7, 'ask': 25382.3, 'lastTraded': None}",609,"{'bid': 25350.7, 'ask': 25352.3, 'lastTraded': None}","{'bid': 25352.2, 'ask': 25353.8, 'lastTraded': None}",2019:03:09-00:45:00,25353.0,25351.5,25381.5,25363.5
12 | 10,"{'bid': 25363.7, 'ask': 25365.3, 'lastTraded': None}","{'bid': 25374.7, 'ask': 25376.3, 'lastTraded': None}",819,"{'bid': 25341.7, 'ask': 25343.3, 'lastTraded': None}","{'bid': 25362.2, 'ask': 25363.8, 'lastTraded': None}",2019:03:09-00:50:00,25363.0,25342.5,25375.5,25364.5
13 | 11,"{'bid': 25342.2, 'ask': 25343.8, 'lastTraded': None}","{'bid': 25365.7, 'ask': 25367.3, 'lastTraded': None}",1137,"{'bid': 25342.2, 'ask': 25343.8, 'lastTraded': None}","{'bid': 25364.2, 'ask': 25365.8, 'lastTraded': None}",2019:03:09-00:55:00,25365.0,25343.0,25366.5,25343.0
14 | 12,"{'bid': 25335.2, 'ask': 25336.8, 'lastTraded': None}","{'bid': 25348.7, 'ask': 25350.3, 'lastTraded': None}",862,"{'bid': 25332.2, 'ask': 25333.8, 'lastTraded': None}","{'bid': 25342.7, 'ask': 25344.3, 'lastTraded': None}",2019:03:09-01:00:00,25343.5,25333.0,25349.5,25336.0
15 | 13,"{'bid': 25325.7, 'ask': 25327.3, 'lastTraded': None}","{'bid': 25335.2, 'ask': 25336.8, 'lastTraded': None}",825,"{'bid': 25324.2, 'ask': 25325.8, 'lastTraded': None}","{'bid': 25334.7, 'ask': 25336.3, 'lastTraded': None}",2019:03:09-01:05:00,25335.5,25325.0,25336.0,25326.5
16 | 14,"{'bid': 25344.7, 'ask': 25346.3, 'lastTraded': None}","{'bid': 25346.2, 'ask': 25347.8, 'lastTraded': None}",641,"{'bid': 25322.2, 'ask': 25323.8, 'lastTraded': None}","{'bid': 25326.2, 'ask': 25327.8, 'lastTraded': None}",2019:03:09-01:10:00,25327.0,25323.0,25347.0,25345.5
17 | 15,"{'bid': 25328.7, 'ask': 25330.3, 'lastTraded': None}","{'bid': 25348.7, 'ask': 25350.3, 'lastTraded': None}",402,"{'bid': 25328.2, 'ask': 25329.8, 'lastTraded': None}","{'bid': 25344.2, 'ask': 25345.8, 'lastTraded': None}",2019:03:09-01:15:00,25345.0,25329.0,25349.5,25329.5
18 | 16,"{'bid': 25311.2, 'ask': 25312.8, 'lastTraded': None}","{'bid': 25343.7, 'ask': 25345.3, 'lastTraded': None}",999,"{'bid': 25306.2, 'ask': 25307.8, 'lastTraded': None}","{'bid': 25329.2, 'ask': 25330.8, 'lastTraded': None}",2019:03:09-01:20:00,25330.0,25307.0,25344.5,25312.0
19 | 17,"{'bid': 25338.7, 'ask': 25340.3, 'lastTraded': None}","{'bid': 25344.7, 'ask': 25346.3, 'lastTraded': None}",1004,"{'bid': 25309.7, 'ask': 25311.3, 'lastTraded': None}","{'bid': 25310.7, 'ask': 25312.3, 'lastTraded': None}",2019:03:09-01:25:00,25311.5,25310.5,25345.5,25339.5
20 | 18,"{'bid': 25330.2, 'ask': 25331.8, 'lastTraded': None}","{'bid': 25347.2, 'ask': 25348.8, 'lastTraded': None}",525,"{'bid': 25328.2, 'ask': 25329.8, 'lastTraded': None}","{'bid': 25338.2, 'ask': 25339.8, 'lastTraded': None}",2019:03:09-01:30:00,25339.0,25329.0,25348.0,25331.0
21 | 19,"{'bid': 25315.2, 'ask': 25316.8, 'lastTraded': None}","{'bid': 25337.2, 'ask': 25338.8, 'lastTraded': None}",901,"{'bid': 25315.2, 'ask': 25316.8, 'lastTraded': None}","{'bid': 25330.7, 'ask': 25332.3, 'lastTraded': None}",2019:03:09-01:35:00,25331.5,25316.0,25338.0,25316.0
22 | 20,"{'bid': 25314.2, 'ask': 25315.8, 'lastTraded': None}","{'bid': 25327.7, 'ask': 25329.3, 'lastTraded': None}",370,"{'bid': 25309.7, 'ask': 25311.3, 'lastTraded': None}","{'bid': 25315.7, 'ask': 25317.3, 'lastTraded': None}",2019:03:09-01:40:00,25316.5,25310.5,25328.5,25315.0
23 | 21,"{'bid': 25299.7, 'ask': 25301.3, 'lastTraded': None}","{'bid': 25321.2, 'ask': 25322.8, 'lastTraded': None}",612,"{'bid': 25296.7, 'ask': 25298.3, 'lastTraded': None}","{'bid': 25313.7, 'ask': 25315.3, 'lastTraded': None}",2019:03:09-01:45:00,25314.5,25297.5,25322.0,25300.5
24 | 22,"{'bid': 25291.2, 'ask': 25292.8, 'lastTraded': None}","{'bid': 25303.2, 'ask': 25304.8, 'lastTraded': None}",857,"{'bid': 25284.2, 'ask': 25285.8, 'lastTraded': None}","{'bid': 25300.2, 'ask': 25301.8, 'lastTraded': None}",2019:03:09-01:50:00,25301.0,25285.0,25304.0,25292.0
25 | 23,"{'bid': 25283.7, 'ask': 25285.3, 'lastTraded': None}","{'bid': 25293.2, 'ask': 25294.8, 'lastTraded': None}",1913,"{'bid': 25279.7, 'ask': 25281.3, 'lastTraded': None}","{'bid': 25290.7, 'ask': 25292.3, 'lastTraded': None}",2019:03:09-01:55:00,25291.5,25280.5,25294.0,25284.5
26 | 24,"{'bid': 25293.2, 'ask': 25294.8, 'lastTraded': None}","{'bid': 25293.2, 'ask': 25294.8, 'lastTraded': None}",609,"{'bid': 25280.7, 'ask': 25282.3, 'lastTraded': None}","{'bid': 25283.2, 'ask': 25284.8, 'lastTraded': None}",2019:03:09-02:00:00,25284.0,25281.5,25294.0,25294.0
27 | 25,"{'bid': 25287.7, 'ask': 25289.3, 'lastTraded': None}","{'bid': 25301.7, 'ask': 25303.3, 'lastTraded': None}",600,"{'bid': 25283.2, 'ask': 25284.8, 'lastTraded': None}","{'bid': 25293.7, 'ask': 25295.3, 'lastTraded': None}",2019:03:09-02:05:00,25294.5,25284.0,25302.5,25288.5
28 | 26,"{'bid': 25308.2, 'ask': 25309.8, 'lastTraded': None}","{'bid': 25312.2, 'ask': 25313.8, 'lastTraded': None}",1671,"{'bid': 25287.7, 'ask': 25289.3, 'lastTraded': None}","{'bid': 25288.2, 'ask': 25289.8, 'lastTraded': None}",2019:03:09-02:10:00,25289.0,25288.5,25313.0,25309.0
29 | 27,"{'bid': 25301.2, 'ask': 25302.8, 'lastTraded': None}","{'bid': 25307.7, 'ask': 25309.3, 'lastTraded': None}",509,"{'bid': 25289.2, 'ask': 25290.8, 'lastTraded': None}","{'bid': 25307.7, 'ask': 25309.3, 'lastTraded': None}",2019:03:09-02:15:00,25308.5,25290.0,25308.5,25302.0
30 | 28,"{'bid': 25296.7, 'ask': 25298.3, 'lastTraded': None}","{'bid': 25301.7, 'ask': 25303.3, 'lastTraded': None}",617,"{'bid': 25286.2, 'ask': 25287.8, 'lastTraded': None}","{'bid': 25299.7, 'ask': 25301.3, 'lastTraded': None}",2019:03:09-02:20:00,25300.5,25287.0,25302.5,25297.5
31 | 29,"{'bid': 25306.2, 'ask': 25307.8, 'lastTraded': None}","{'bid': 25307.7, 'ask': 25309.3, 'lastTraded': None}",805,"{'bid': 25291.7, 'ask': 25293.3, 'lastTraded': None}","{'bid': 25297.2, 'ask': 25298.8, 'lastTraded': None}",2019:03:09-02:25:00,25298.0,25292.5,25308.5,25307.0
32 | 30,"{'bid': 25300.7, 'ask': 25302.3, 'lastTraded': None}","{'bid': 25311.7, 'ask': 25313.3, 'lastTraded': None}",474,"{'bid': 25293.7, 'ask': 25295.3, 'lastTraded': None}","{'bid': 25306.7, 'ask': 25308.3, 'lastTraded': None}",2019:03:09-02:30:00,25307.5,25294.5,25312.5,25301.5
33 | 31,"{'bid': 25322.7, 'ask': 25324.3, 'lastTraded': None}","{'bid': 25324.2, 'ask': 25325.8, 'lastTraded': None}",1038,"{'bid': 25296.7, 'ask': 25298.3, 'lastTraded': None}","{'bid': 25300.2, 'ask': 25301.8, 'lastTraded': None}",2019:03:09-02:35:00,25301.0,25297.5,25325.0,25323.5
34 | 32,"{'bid': 25320.3, 'ask': 25321.9, 'lastTraded': None}","{'bid': 25334.8, 'ask': 25336.4, 'lastTraded': None}",788,"{'bid': 25319.8, 'ask': 25321.4, 'lastTraded': None}","{'bid': 25321.3, 'ask': 25322.9, 'lastTraded': None}",2019:03:09-02:40:00,25322.1,25320.6,25335.6,25321.1
35 | 33,"{'bid': 25335.3, 'ask': 25336.9, 'lastTraded': None}","{'bid': 25336.3, 'ask': 25337.9, 'lastTraded': None}",1137,"{'bid': 25318.8, 'ask': 25320.4, 'lastTraded': None}","{'bid': 25319.3, 'ask': 25320.9, 'lastTraded': None}",2019:03:09-02:45:00,25320.1,25319.6,25337.1,25336.1
36 | 34,"{'bid': 25329.3, 'ask': 25330.9, 'lastTraded': None}","{'bid': 25338.8, 'ask': 25340.4, 'lastTraded': None}",416,"{'bid': 25325.8, 'ask': 25327.4, 'lastTraded': None}","{'bid': 25335.8, 'ask': 25337.4, 'lastTraded': None}",2019:03:09-02:50:00,25336.6,25326.6,25339.6,25330.1
37 | 35,"{'bid': 25329.8, 'ask': 25331.4, 'lastTraded': None}","{'bid': 25333.3, 'ask': 25334.9, 'lastTraded': None}",1501,"{'bid': 25322.8, 'ask': 25324.4, 'lastTraded': None}","{'bid': 25329.8, 'ask': 25331.4, 'lastTraded': None}",2019:03:09-02:55:00,25330.6,25323.6,25334.1,25330.6
38 | 36,"{'bid': 25307.3, 'ask': 25308.9, 'lastTraded': None}","{'bid': 25333.8, 'ask': 25335.4, 'lastTraded': None}",553,"{'bid': 25303.8, 'ask': 25305.4, 'lastTraded': None}","{'bid': 25330.8, 'ask': 25332.4, 'lastTraded': None}",2019:03:09-03:00:00,25331.6,25304.6,25334.6,25308.1
39 | 37,"{'bid': 25318.3, 'ask': 25319.9, 'lastTraded': None}","{'bid': 25318.3, 'ask': 25319.9, 'lastTraded': None}",324,"{'bid': 25303.8, 'ask': 25305.4, 'lastTraded': None}","{'bid': 25306.8, 'ask': 25308.4, 'lastTraded': None}",2019:03:09-03:05:00,25307.6,25304.6,25319.1,25319.1
40 | 38,"{'bid': 25318.3, 'ask': 25319.9, 'lastTraded': None}","{'bid': 25332.3, 'ask': 25333.9, 'lastTraded': None}",437,"{'bid': 25316.3, 'ask': 25317.9, 'lastTraded': None}","{'bid': 25318.8, 'ask': 25320.4, 'lastTraded': None}",2019:03:09-03:10:00,25319.6,25317.1,25333.1,25319.1
41 | 39,"{'bid': 25332.3, 'ask': 25333.9, 'lastTraded': None}","{'bid': 25340.8, 'ask': 25342.4, 'lastTraded': None}",950,"{'bid': 25318.8, 'ask': 25320.4, 'lastTraded': None}","{'bid': 25318.8, 'ask': 25320.4, 'lastTraded': None}",2019:03:09-03:15:00,25319.6,25319.6,25341.6,25333.1
42 | 40,"{'bid': 25343.3, 'ask': 25344.9, 'lastTraded': None}","{'bid': 25344.8, 'ask': 25346.4, 'lastTraded': None}",453,"{'bid': 25327.8, 'ask': 25329.4, 'lastTraded': None}","{'bid': 25331.8, 'ask': 25333.4, 'lastTraded': None}",2019:03:09-03:20:00,25332.6,25328.6,25345.6,25344.1
43 | 41,"{'bid': 25342.8, 'ask': 25344.4, 'lastTraded': None}","{'bid': 25351.8, 'ask': 25353.4, 'lastTraded': None}",472,"{'bid': 25338.3, 'ask': 25339.9, 'lastTraded': None}","{'bid': 25343.8, 'ask': 25345.4, 'lastTraded': None}",2019:03:09-03:25:00,25344.6,25339.1,25352.6,25343.6
44 | 42,"{'bid': 25346.3, 'ask': 25347.9, 'lastTraded': None}","{'bid': 25358.3, 'ask': 25359.9, 'lastTraded': None}",652,"{'bid': 25342.3, 'ask': 25343.9, 'lastTraded': None}","{'bid': 25343.3, 'ask': 25344.9, 'lastTraded': None}",2019:03:09-03:30:00,25344.1,25343.1,25359.1,25347.1
45 | 43,"{'bid': 25346.3, 'ask': 25347.9, 'lastTraded': None}","{'bid': 25355.3, 'ask': 25356.9, 'lastTraded': None}",421,"{'bid': 25343.3, 'ask': 25344.9, 'lastTraded': None}","{'bid': 25346.8, 'ask': 25348.4, 'lastTraded': None}",2019:03:09-03:35:00,25347.6,25344.1,25356.1,25347.1
46 | 44,"{'bid': 25366.3, 'ask': 25367.9, 'lastTraded': None}","{'bid': 25370.8, 'ask': 25372.4, 'lastTraded': None}",715,"{'bid': 25344.8, 'ask': 25346.4, 'lastTraded': None}","{'bid': 25346.8, 'ask': 25348.4, 'lastTraded': None}",2019:03:09-03:40:00,25347.6,25345.6,25371.6,25367.1
47 | 45,"{'bid': 25372.3, 'ask': 25373.9, 'lastTraded': None}","{'bid': 25377.8, 'ask': 25379.4, 'lastTraded': None}",1587,"{'bid': 25359.8, 'ask': 25361.4, 'lastTraded': None}","{'bid': 25366.8, 'ask': 25368.4, 'lastTraded': None}",2019:03:09-03:45:00,25367.6,25360.6,25378.6,25373.1
48 | 46,"{'bid': 25401.8, 'ask': 25403.4, 'lastTraded': None}","{'bid': 25411.8, 'ask': 25413.4, 'lastTraded': None}",1347,"{'bid': 25372.8, 'ask': 25374.4, 'lastTraded': None}","{'bid': 25372.8, 'ask': 25374.4, 'lastTraded': None}",2019:03:09-03:50:00,25373.6,25373.6,25412.6,25402.6
49 | 47,"{'bid': 25373.3, 'ask': 25374.9, 'lastTraded': None}","{'bid': 25405.8, 'ask': 25407.4, 'lastTraded': None}",1046,"{'bid': 25370.3, 'ask': 25371.9, 'lastTraded': None}","{'bid': 25402.3, 'ask': 25403.9, 'lastTraded': None}",2019:03:09-03:55:00,25403.1,25371.1,25406.6,25374.1
50 | 48,"{'bid': 25377.3, 'ask': 25378.9, 'lastTraded': None}","{'bid': 25387.8, 'ask': 25389.4, 'lastTraded': None}",772,"{'bid': 25365.8, 'ask': 25367.4, 'lastTraded': None}","{'bid': 25372.8, 'ask': 25374.4, 'lastTraded': None}",2019:03:09-04:00:00,25373.6,25366.6,25388.6,25378.1
51 | 49,"{'bid': 25387.8, 'ask': 25389.4, 'lastTraded': None}","{'bid': 25403.8, 'ask': 25405.4, 'lastTraded': None}",1149,"{'bid': 25369.8, 'ask': 25371.4, 'lastTraded': None}","{'bid': 25377.8, 'ask': 25379.4, 'lastTraded': None}",2019:03:09-04:05:00,25378.6,25370.6,25404.6,25388.6
52 | 50,"{'bid': 25372.8, 'ask': 25374.4, 'lastTraded': None}","{'bid': 25388.8, 'ask': 25390.4, 'lastTraded': None}",1213,"{'bid': 25356.3, 'ask': 25357.9, 'lastTraded': None}","{'bid': 25388.3, 'ask': 25389.9, 'lastTraded': None}",2019:03:09-04:10:00,25389.1,25357.1,25389.6,25373.6
53 | 51,"{'bid': 25355.3, 'ask': 25356.9, 'lastTraded': None}","{'bid': 25375.8, 'ask': 25377.4, 'lastTraded': None}",1465,"{'bid': 25347.3, 'ask': 25348.9, 'lastTraded': None}","{'bid': 25373.3, 'ask': 25374.9, 'lastTraded': None}",2019:03:09-04:15:00,25374.1,25348.1,25376.6,25356.1
54 | 52,"{'bid': 25347.3, 'ask': 25348.9, 'lastTraded': None}","{'bid': 25362.8, 'ask': 25364.4, 'lastTraded': None}",923,"{'bid': 25346.8, 'ask': 25348.4, 'lastTraded': None}","{'bid': 25355.8, 'ask': 25357.4, 'lastTraded': None}",2019:03:09-04:20:00,25356.6,25347.6,25363.6,25348.1
55 | 53,"{'bid': 25348.3, 'ask': 25349.9, 'lastTraded': None}","{'bid': 25362.8, 'ask': 25364.4, 'lastTraded': None}",873,"{'bid': 25343.3, 'ask': 25344.9, 'lastTraded': None}","{'bid': 25347.8, 'ask': 25349.4, 'lastTraded': None}",2019:03:09-04:25:00,25348.6,25344.1,25363.6,25349.1
56 | 54,"{'bid': 25386.3, 'ask': 25387.9, 'lastTraded': None}","{'bid': 25394.3, 'ask': 25395.9, 'lastTraded': None}",4098,"{'bid': 25340.8, 'ask': 25342.4, 'lastTraded': None}","{'bid': 25347.8, 'ask': 25349.4, 'lastTraded': None}",2019:03:09-04:30:00,25348.6,25341.6,25395.1,25387.1
57 | 55,"{'bid': 25365.3, 'ask': 25366.9, 'lastTraded': None}","{'bid': 25386.8, 'ask': 25388.4, 'lastTraded': None}",1393,"{'bid': 25356.3, 'ask': 25357.9, 'lastTraded': None}","{'bid': 25386.8, 'ask': 25388.4, 'lastTraded': None}",2019:03:09-04:35:00,25387.6,25357.1,25387.6,25366.1
58 | 56,"{'bid': 25404.3, 'ask': 25405.9, 'lastTraded': None}","{'bid': 25405.3, 'ask': 25406.9, 'lastTraded': None}",2026,"{'bid': 25364.3, 'ask': 25365.9, 'lastTraded': None}","{'bid': 25364.8, 'ask': 25366.4, 'lastTraded': None}",2019:03:09-04:40:00,25365.6,25365.1,25406.1,25405.1
59 | 57,"{'bid': 25410.3, 'ask': 25411.9, 'lastTraded': None}","{'bid': 25427.8, 'ask': 25429.4, 'lastTraded': None}",1965,"{'bid': 25400.3, 'ask': 25401.9, 'lastTraded': None}","{'bid': 25404.8, 'ask': 25406.4, 'lastTraded': None}",2019:03:09-04:45:00,25405.6,25401.1,25428.6,25411.1
60 | 58,"{'bid': 25439.8, 'ask': 25441.4, 'lastTraded': None}","{'bid': 25447.8, 'ask': 25449.4, 'lastTraded': None}",1871,"{'bid': 25411.3, 'ask': 25412.9, 'lastTraded': None}","{'bid': 25411.3, 'ask': 25412.9, 'lastTraded': None}",2019:03:09-04:50:00,25412.1,25412.1,25448.6,25440.6
61 | 59,"{'bid': 25449.8, 'ask': 25451.4, 'lastTraded': None}","{'bid': 25467.3, 'ask': 25468.9, 'lastTraded': None}",3111,"{'bid': 25431.3, 'ask': 25432.9, 'lastTraded': None}","{'bid': 25431.3, 'ask': 25432.9, 'lastTraded': None}",2019:03:09-04:55:00,25432.1,25432.1,25468.1,25450.6
62 | 60,"{'bid': 25481.7, 'ask': 25485.5, 'lastTraded': None}","{'bid': 25481.7, 'ask': 25485.5, 'lastTraded': None}",2647,"{'bid': 25446.7, 'ask': 25450.5, 'lastTraded': None}","{'bid': 25448.7, 'ask': 25452.5, 'lastTraded': None}",2019:03:09-05:00:00,25450.6,25448.6,25483.6,25483.6
63 | 61,"{'bid': 25498.7, 'ask': 25502.5, 'lastTraded': None}","{'bid': 25499.2, 'ask': 25503.0, 'lastTraded': None}",1524,"{'bid': 25474.7, 'ask': 25478.5, 'lastTraded': None}","{'bid': 25481.2, 'ask': 25485.0, 'lastTraded': None}",2019:03:09-05:05:00,25483.1,25476.6,25501.1,25500.6
64 | 62,"{'bid': 25494.6, 'ask': 25504.4, 'lastTraded': None}","{'bid': 25505.2, 'ask': 25509.0, 'lastTraded': None}",1014,"{'bid': 25483.7, 'ask': 25487.5, 'lastTraded': None}","{'bid': 25497.2, 'ask': 25501.0, 'lastTraded': None}",2019:03:09-05:10:00,25499.1,25485.6,25507.1,25499.5
65 | 63,"{'bid': 25475.4, 'ask': 25485.2, 'lastTraded': None}","{'bid': 25494.3, 'ask': 25504.1, 'lastTraded': None}",0,"{'bid': 25473.0, 'ask': 25482.8, 'lastTraded': None}","{'bid': 25494.3, 'ask': 25504.1, 'lastTraded': None}",2019:03:09-05:15:00,25499.2,25477.9,25499.2,25480.3
66 | 64,"{'bid': 25476.8, 'ask': 25486.6, 'lastTraded': None}","{'bid': 25477.1, 'ask': 25486.9, 'lastTraded': None}",0,"{'bid': 25476.1, 'ask': 25485.9, 'lastTraded': None}","{'bid': 25476.4, 'ask': 25486.2, 'lastTraded': None}",2019:03:09-05:20:00,25481.3,25481.0,25482.0,25481.7
67 | 65,"{'bid': 25478.8, 'ask': 25488.6, 'lastTraded': None}","{'bid': 25478.8, 'ask': 25488.6, 'lastTraded': None}",0,"{'bid': 25476.4, 'ask': 25486.2, 'lastTraded': None}","{'bid': 25476.4, 'ask': 25486.2, 'lastTraded': None}",2019:03:09-05:25:00,25481.3,25481.3,25483.7,25483.7
68 | 66,"{'bid': 25503.2, 'ask': 25507.0, 'lastTraded': None}","{'bid': 25509.2, 'ask': 25513.0, 'lastTraded': None}",153,"{'bid': 25499.2, 'ask': 25503.0, 'lastTraded': None}","{'bid': 25500.2, 'ask': 25504.0, 'lastTraded': None}",2019:03:09-05:30:00,25502.1,25501.1,25511.1,25505.1
69 | 67,"{'bid': 25507.2, 'ask': 25511.0, 'lastTraded': None}","{'bid': 25507.2, 'ask': 25511.0, 'lastTraded': None}",40,"{'bid': 25502.2, 'ask': 25506.0, 'lastTraded': None}","{'bid': 25502.2, 'ask': 25506.0, 'lastTraded': None}",2019:03:09-05:35:00,25504.1,25504.1,25509.1,25509.1
70 | 68,"{'bid': 25511.2, 'ask': 25515.0, 'lastTraded': None}","{'bid': 25516.2, 'ask': 25520.0, 'lastTraded': None}",156,"{'bid': 25506.2, 'ask': 25510.0, 'lastTraded': None}","{'bid': 25508.2, 'ask': 25512.0, 'lastTraded': None}",2019:03:09-05:40:00,25510.1,25508.1,25518.1,25513.1
71 | 69,"{'bid': 25513.2, 'ask': 25517.0, 'lastTraded': None}","{'bid': 25515.2, 'ask': 25519.0, 'lastTraded': None}",147,"{'bid': 25511.2, 'ask': 25515.0, 'lastTraded': None}","{'bid': 25512.2, 'ask': 25516.0, 'lastTraded': None}",2019:03:09-05:45:00,25514.1,25513.1,25517.1,25515.1
72 | 70,"{'bid': 25515.2, 'ask': 25519.0, 'lastTraded': None}","{'bid': 25520.2, 'ask': 25524.0, 'lastTraded': None}",165,"{'bid': 25513.2, 'ask': 25517.0, 'lastTraded': None}","{'bid': 25514.2, 'ask': 25518.0, 'lastTraded': None}",2019:03:09-05:50:00,25516.1,25515.1,25522.1,25517.1
73 | 71,"{'bid': 25515.9, 'ask': 25525.7, 'lastTraded': None}","{'bid': 25523.2, 'ask': 25527.0, 'lastTraded': None}",143,"{'bid': 25514.2, 'ask': 25518.0, 'lastTraded': None}","{'bid': 25514.2, 'ask': 25518.0, 'lastTraded': None}",2019:03:09-05:55:00,25516.1,25516.1,25525.1,25520.8
74 |
--------------------------------------------------------------------------------
/data/2019-03-16.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'ask': 25882.2, 'bid': 25880.6, 'lastTraded': None}","{'ask': 25883.2, 'bid': 25881.6, 'lastTraded': None}",2144,"{'ask': 25858.2, 'bid': 25856.6, 'lastTraded': None}","{'ask': 25868.7, 'bid': 25867.1, 'lastTraded': None}",2019:03:16-00:00:00,25867.9,25857.4,25882.4,25881.4
3 | 1,"{'ask': 25908.2, 'bid': 25906.6, 'lastTraded': None}","{'ask': 25910.2, 'bid': 25908.6, 'lastTraded': None}",2270,"{'ask': 25881.2, 'bid': 25879.6, 'lastTraded': None}","{'ask': 25883.2, 'bid': 25881.6, 'lastTraded': None}",2019:03:16-00:05:00,25882.4,25880.4,25909.4,25907.4
4 | 2,"{'ask': 25912.2, 'bid': 25910.6, 'lastTraded': None}","{'ask': 25921.7, 'bid': 25920.1, 'lastTraded': None}",2410,"{'ask': 25906.2, 'bid': 25904.6, 'lastTraded': None}","{'ask': 25909.2, 'bid': 25907.6, 'lastTraded': None}",2019:03:16-00:10:00,25908.4,25905.4,25920.9,25911.4
5 | 3,"{'ask': 25900.2, 'bid': 25898.6, 'lastTraded': None}","{'ask': 25921.2, 'bid': 25919.6, 'lastTraded': None}",2127,"{'ask': 25899.2, 'bid': 25897.6, 'lastTraded': None}","{'ask': 25911.7, 'bid': 25910.1, 'lastTraded': None}",2019:03:16-00:15:00,25910.9,25898.4,25920.4,25899.4
6 | 4,"{'ask': 25910.2, 'bid': 25908.6, 'lastTraded': None}","{'ask': 25912.2, 'bid': 25910.6, 'lastTraded': None}",2115,"{'ask': 25890.2, 'bid': 25888.6, 'lastTraded': None}","{'ask': 25901.2, 'bid': 25899.6, 'lastTraded': None}",2019:03:16-00:20:00,25900.4,25889.4,25911.4,25909.4
7 | 5,"{'ask': 25884.2, 'bid': 25882.6, 'lastTraded': None}","{'ask': 25911.2, 'bid': 25909.6, 'lastTraded': None}",2523,"{'ask': 25877.2, 'bid': 25875.6, 'lastTraded': None}","{'ask': 25910.7, 'bid': 25909.1, 'lastTraded': None}",2019:03:16-00:25:00,25909.9,25876.4,25910.4,25883.4
8 | 6,"{'ask': 25890.2, 'bid': 25888.6, 'lastTraded': None}","{'ask': 25899.2, 'bid': 25897.6, 'lastTraded': None}",1622,"{'ask': 25883.2, 'bid': 25881.6, 'lastTraded': None}","{'ask': 25883.7, 'bid': 25882.1, 'lastTraded': None}",2019:03:16-00:30:00,25882.9,25882.4,25898.4,25889.4
9 | 7,"{'ask': 25901.2, 'bid': 25899.6, 'lastTraded': None}","{'ask': 25903.2, 'bid': 25901.6, 'lastTraded': None}",1264,"{'ask': 25887.2, 'bid': 25885.6, 'lastTraded': None}","{'ask': 25887.2, 'bid': 25885.6, 'lastTraded': None}",2019:03:16-00:35:00,25886.4,25886.4,25902.4,25900.4
10 | 8,"{'ask': 25905.7, 'bid': 25904.1, 'lastTraded': None}","{'ask': 25909.7, 'bid': 25908.1, 'lastTraded': None}",899,"{'ask': 25893.2, 'bid': 25891.6, 'lastTraded': None}","{'ask': 25901.7, 'bid': 25900.1, 'lastTraded': None}",2019:03:16-00:40:00,25900.9,25892.4,25908.9,25904.9
11 | 9,"{'ask': 25913.7, 'bid': 25912.1, 'lastTraded': None}","{'ask': 25915.2, 'bid': 25913.6, 'lastTraded': None}",801,"{'ask': 25901.2, 'bid': 25899.6, 'lastTraded': None}","{'ask': 25905.2, 'bid': 25903.6, 'lastTraded': None}",2019:03:16-00:45:00,25904.4,25900.4,25914.4,25912.9
12 | 10,"{'ask': 25916.2, 'bid': 25914.6, 'lastTraded': None}","{'ask': 25929.2, 'bid': 25927.6, 'lastTraded': None}",2309,"{'ask': 25905.2, 'bid': 25903.6, 'lastTraded': None}","{'ask': 25914.2, 'bid': 25912.6, 'lastTraded': None}",2019:03:16-00:50:00,25913.4,25904.4,25928.4,25915.4
13 | 11,"{'ask': 25907.2, 'bid': 25905.6, 'lastTraded': None}","{'ask': 25918.2, 'bid': 25916.6, 'lastTraded': None}",1582,"{'ask': 25894.2, 'bid': 25892.6, 'lastTraded': None}","{'ask': 25916.7, 'bid': 25915.1, 'lastTraded': None}",2019:03:16-00:55:00,25915.9,25893.4,25917.4,25906.4
14 | 12,"{'ask': 25911.2, 'bid': 25909.6, 'lastTraded': None}","{'ask': 25915.2, 'bid': 25913.6, 'lastTraded': None}",1067,"{'ask': 25906.2, 'bid': 25904.6, 'lastTraded': None}","{'ask': 25907.7, 'bid': 25906.1, 'lastTraded': None}",2019:03:16-01:00:00,25906.9,25905.4,25914.4,25910.4
15 | 13,"{'ask': 25910.2, 'bid': 25908.6, 'lastTraded': None}","{'ask': 25915.2, 'bid': 25913.6, 'lastTraded': None}",967,"{'ask': 25900.7, 'bid': 25899.1, 'lastTraded': None}","{'ask': 25910.2, 'bid': 25908.6, 'lastTraded': None}",2019:03:16-01:05:00,25909.4,25899.9,25914.4,25909.4
16 | 14,"{'ask': 25910.7, 'bid': 25909.1, 'lastTraded': None}","{'ask': 25915.7, 'bid': 25914.1, 'lastTraded': None}",980,"{'ask': 25907.2, 'bid': 25905.6, 'lastTraded': None}","{'ask': 25911.2, 'bid': 25909.6, 'lastTraded': None}",2019:03:16-01:10:00,25910.4,25906.4,25914.9,25909.9
17 | 15,"{'ask': 25902.2, 'bid': 25900.6, 'lastTraded': None}","{'ask': 25921.7, 'bid': 25920.1, 'lastTraded': None}",2462,"{'ask': 25902.2, 'bid': 25900.6, 'lastTraded': None}","{'ask': 25910.2, 'bid': 25908.6, 'lastTraded': None}",2019:03:16-01:15:00,25909.4,25901.4,25920.9,25901.4
18 | 16,"{'ask': 25891.2, 'bid': 25889.6, 'lastTraded': None}","{'ask': 25901.2, 'bid': 25899.6, 'lastTraded': None}",1847,"{'ask': 25888.2, 'bid': 25886.6, 'lastTraded': None}","{'ask': 25901.2, 'bid': 25899.6, 'lastTraded': None}",2019:03:16-01:20:00,25900.4,25887.4,25900.4,25890.4
19 | 17,"{'ask': 25887.2, 'bid': 25885.6, 'lastTraded': None}","{'ask': 25894.2, 'bid': 25892.6, 'lastTraded': None}",630,"{'ask': 25882.7, 'bid': 25881.1, 'lastTraded': None}","{'ask': 25892.2, 'bid': 25890.6, 'lastTraded': None}",2019:03:16-01:25:00,25891.4,25881.9,25893.4,25886.4
20 | 18,"{'ask': 25897.7, 'bid': 25896.1, 'lastTraded': None}","{'ask': 25899.2, 'bid': 25897.6, 'lastTraded': None}",625,"{'ask': 25884.7, 'bid': 25883.1, 'lastTraded': None}","{'ask': 25887.7, 'bid': 25886.1, 'lastTraded': None}",2019:03:16-01:30:00,25886.9,25883.9,25898.4,25896.9
21 | 19,"{'ask': 25895.2, 'bid': 25893.6, 'lastTraded': None}","{'ask': 25899.7, 'bid': 25898.1, 'lastTraded': None}",409,"{'ask': 25893.2, 'bid': 25891.6, 'lastTraded': None}","{'ask': 25897.2, 'bid': 25895.6, 'lastTraded': None}",2019:03:16-01:35:00,25896.4,25892.4,25898.9,25894.4
22 | 20,"{'ask': 25899.2, 'bid': 25897.6, 'lastTraded': None}","{'ask': 25902.2, 'bid': 25900.6, 'lastTraded': None}",1762,"{'ask': 25887.2, 'bid': 25885.6, 'lastTraded': None}","{'ask': 25896.2, 'bid': 25894.6, 'lastTraded': None}",2019:03:16-01:40:00,25895.4,25886.4,25901.4,25898.4
23 | 21,"{'ask': 25900.2, 'bid': 25898.6, 'lastTraded': None}","{'ask': 25911.2, 'bid': 25909.6, 'lastTraded': None}",831,"{'ask': 25897.2, 'bid': 25895.6, 'lastTraded': None}","{'ask': 25899.7, 'bid': 25898.1, 'lastTraded': None}",2019:03:16-01:45:00,25898.9,25896.4,25910.4,25899.4
24 | 22,"{'ask': 25890.2, 'bid': 25888.6, 'lastTraded': None}","{'ask': 25903.2, 'bid': 25901.6, 'lastTraded': None}",837,"{'ask': 25887.2, 'bid': 25885.6, 'lastTraded': None}","{'ask': 25899.2, 'bid': 25897.6, 'lastTraded': None}",2019:03:16-01:50:00,25898.4,25886.4,25902.4,25889.4
25 | 23,"{'ask': 25888.2, 'bid': 25886.6, 'lastTraded': None}","{'ask': 25894.7, 'bid': 25893.1, 'lastTraded': None}",1163,"{'ask': 25879.7, 'bid': 25878.1, 'lastTraded': None}","{'ask': 25890.7, 'bid': 25889.1, 'lastTraded': None}",2019:03:16-01:55:00,25889.9,25878.9,25893.9,25887.4
26 | 24,"{'ask': 25879.7, 'bid': 25878.1, 'lastTraded': None}","{'ask': 25892.2, 'bid': 25890.6, 'lastTraded': None}",1199,"{'ask': 25876.2, 'bid': 25874.6, 'lastTraded': None}","{'ask': 25887.7, 'bid': 25886.1, 'lastTraded': None}",2019:03:16-02:00:00,25886.9,25875.4,25891.4,25878.9
27 | 25,"{'ask': 25873.7, 'bid': 25872.1, 'lastTraded': None}","{'ask': 25882.2, 'bid': 25880.6, 'lastTraded': None}",951,"{'ask': 25870.7, 'bid': 25869.1, 'lastTraded': None}","{'ask': 25879.2, 'bid': 25877.6, 'lastTraded': None}",2019:03:16-02:05:00,25878.4,25869.9,25881.4,25872.9
28 | 26,"{'ask': 25860.7, 'bid': 25859.1, 'lastTraded': None}","{'ask': 25875.2, 'bid': 25873.6, 'lastTraded': None}",1082,"{'ask': 25859.2, 'bid': 25857.6, 'lastTraded': None}","{'ask': 25873.2, 'bid': 25871.6, 'lastTraded': None}",2019:03:16-02:10:00,25872.4,25858.4,25874.4,25859.9
29 | 27,"{'ask': 25856.2, 'bid': 25854.6, 'lastTraded': None}","{'ask': 25869.2, 'bid': 25867.6, 'lastTraded': None}",1010,"{'ask': 25856.2, 'bid': 25854.6, 'lastTraded': None}","{'ask': 25860.2, 'bid': 25858.6, 'lastTraded': None}",2019:03:16-02:15:00,25859.4,25855.4,25868.4,25855.4
30 | 28,"{'ask': 25843.2, 'bid': 25841.6, 'lastTraded': None}","{'ask': 25859.2, 'bid': 25857.6, 'lastTraded': None}",1535,"{'ask': 25841.2, 'bid': 25839.6, 'lastTraded': None}","{'ask': 25857.7, 'bid': 25856.1, 'lastTraded': None}",2019:03:16-02:20:00,25856.9,25840.4,25858.4,25842.4
31 | 29,"{'ask': 25847.7, 'bid': 25846.1, 'lastTraded': None}","{'ask': 25852.2, 'bid': 25850.6, 'lastTraded': None}",1141,"{'ask': 25842.7, 'bid': 25841.1, 'lastTraded': None}","{'ask': 25842.7, 'bid': 25841.1, 'lastTraded': None}",2019:03:16-02:25:00,25841.9,25841.9,25851.4,25846.9
32 | 30,"{'ask': 25862.2, 'bid': 25860.6, 'lastTraded': None}","{'ask': 25863.2, 'bid': 25861.6, 'lastTraded': None}",1351,"{'ask': 25846.2, 'bid': 25844.6, 'lastTraded': None}","{'ask': 25847.2, 'bid': 25845.6, 'lastTraded': None}",2019:03:16-02:30:00,25846.4,25845.4,25862.4,25861.4
33 | 31,"{'ask': 25866.2, 'bid': 25864.6, 'lastTraded': None}","{'ask': 25867.2, 'bid': 25865.6, 'lastTraded': None}",1471,"{'ask': 25850.2, 'bid': 25848.6, 'lastTraded': None}","{'ask': 25861.2, 'bid': 25859.6, 'lastTraded': None}",2019:03:16-02:35:00,25860.4,25849.4,25866.4,25865.4
34 | 32,"{'ask': 25867.2, 'bid': 25865.6, 'lastTraded': None}","{'ask': 25877.2, 'bid': 25875.6, 'lastTraded': None}",876,"{'ask': 25860.2, 'bid': 25858.6, 'lastTraded': None}","{'ask': 25866.7, 'bid': 25865.1, 'lastTraded': None}",2019:03:16-02:40:00,25865.9,25859.4,25876.4,25866.4
35 | 33,"{'ask': 25868.2, 'bid': 25866.6, 'lastTraded': None}","{'ask': 25873.2, 'bid': 25871.6, 'lastTraded': None}",681,"{'ask': 25864.2, 'bid': 25862.6, 'lastTraded': None}","{'ask': 25866.2, 'bid': 25864.6, 'lastTraded': None}",2019:03:16-02:45:00,25865.4,25863.4,25872.4,25867.4
36 | 34,"{'ask': 25866.7, 'bid': 25865.1, 'lastTraded': None}","{'ask': 25868.2, 'bid': 25866.6, 'lastTraded': None}",657,"{'ask': 25858.2, 'bid': 25856.6, 'lastTraded': None}","{'ask': 25867.2, 'bid': 25865.6, 'lastTraded': None}",2019:03:16-02:50:00,25866.4,25857.4,25867.4,25865.9
37 | 35,"{'ask': 25868.7, 'bid': 25867.1, 'lastTraded': None}","{'ask': 25871.2, 'bid': 25869.6, 'lastTraded': None}",579,"{'ask': 25864.2, 'bid': 25862.6, 'lastTraded': None}","{'ask': 25867.2, 'bid': 25865.6, 'lastTraded': None}",2019:03:16-02:55:00,25866.4,25863.4,25870.4,25867.9
38 | 36,"{'ask': 25859.2, 'bid': 25857.6, 'lastTraded': None}","{'ask': 25869.2, 'bid': 25867.6, 'lastTraded': None}",918,"{'ask': 25857.2, 'bid': 25855.6, 'lastTraded': None}","{'ask': 25868.2, 'bid': 25866.6, 'lastTraded': None}",2019:03:16-03:00:00,25867.4,25856.4,25868.4,25858.4
39 | 37,"{'ask': 25850.2, 'bid': 25848.6, 'lastTraded': None}","{'ask': 25864.2, 'bid': 25862.6, 'lastTraded': None}",873,"{'ask': 25848.2, 'bid': 25846.6, 'lastTraded': None}","{'ask': 25861.2, 'bid': 25859.6, 'lastTraded': None}",2019:03:16-03:05:00,25860.4,25847.4,25863.4,25849.4
40 | 38,"{'ask': 25840.2, 'bid': 25838.6, 'lastTraded': None}","{'ask': 25849.2, 'bid': 25847.6, 'lastTraded': None}",1641,"{'ask': 25834.2, 'bid': 25832.6, 'lastTraded': None}","{'ask': 25849.2, 'bid': 25847.6, 'lastTraded': None}",2019:03:16-03:10:00,25848.4,25833.4,25848.4,25839.4
41 | 39,"{'ask': 25841.2, 'bid': 25839.6, 'lastTraded': None}","{'ask': 25842.2, 'bid': 25840.6, 'lastTraded': None}",1255,"{'ask': 25829.2, 'bid': 25827.6, 'lastTraded': None}","{'ask': 25839.2, 'bid': 25837.6, 'lastTraded': None}",2019:03:16-03:15:00,25838.4,25828.4,25841.4,25840.4
42 | 40,"{'ask': 25862.2, 'bid': 25860.6, 'lastTraded': None}","{'ask': 25862.2, 'bid': 25860.6, 'lastTraded': None}",1467,"{'ask': 25837.2, 'bid': 25835.6, 'lastTraded': None}","{'ask': 25840.2, 'bid': 25838.6, 'lastTraded': None}",2019:03:16-03:20:00,25839.4,25836.4,25861.4,25861.4
43 | 41,"{'ask': 25854.2, 'bid': 25852.6, 'lastTraded': None}","{'ask': 25863.2, 'bid': 25861.6, 'lastTraded': None}",1011,"{'ask': 25853.7, 'bid': 25852.1, 'lastTraded': None}","{'ask': 25862.7, 'bid': 25861.1, 'lastTraded': None}",2019:03:16-03:25:00,25861.9,25852.9,25862.4,25853.4
44 | 42,"{'ask': 25850.2, 'bid': 25848.6, 'lastTraded': None}","{'ask': 25858.2, 'bid': 25856.6, 'lastTraded': None}",1580,"{'ask': 25840.2, 'bid': 25838.6, 'lastTraded': None}","{'ask': 25854.7, 'bid': 25853.1, 'lastTraded': None}",2019:03:16-03:30:00,25853.9,25839.4,25857.4,25849.4
45 | 43,"{'ask': 25842.7, 'bid': 25841.1, 'lastTraded': None}","{'ask': 25856.2, 'bid': 25854.6, 'lastTraded': None}",1464,"{'ask': 25840.7, 'bid': 25839.1, 'lastTraded': None}","{'ask': 25849.7, 'bid': 25848.1, 'lastTraded': None}",2019:03:16-03:35:00,25848.9,25839.9,25855.4,25841.9
46 | 44,"{'ask': 25860.7, 'bid': 25859.1, 'lastTraded': None}","{'ask': 25868.2, 'bid': 25866.6, 'lastTraded': None}",1451,"{'ask': 25842.2, 'bid': 25840.6, 'lastTraded': None}","{'ask': 25842.2, 'bid': 25840.6, 'lastTraded': None}",2019:03:16-03:40:00,25841.4,25841.4,25867.4,25859.9
47 | 45,"{'ask': 25857.2, 'bid': 25855.6, 'lastTraded': None}","{'ask': 25864.2, 'bid': 25862.6, 'lastTraded': None}",1482,"{'ask': 25846.2, 'bid': 25844.6, 'lastTraded': None}","{'ask': 25861.2, 'bid': 25859.6, 'lastTraded': None}",2019:03:16-03:45:00,25860.4,25845.4,25863.4,25856.4
48 | 46,"{'ask': 25820.2, 'bid': 25818.6, 'lastTraded': None}","{'ask': 25856.7, 'bid': 25855.1, 'lastTraded': None}",2675,"{'ask': 25818.2, 'bid': 25816.6, 'lastTraded': None}","{'ask': 25856.2, 'bid': 25854.6, 'lastTraded': None}",2019:03:16-03:50:00,25855.4,25817.4,25855.9,25819.4
49 | 47,"{'ask': 25850.2, 'bid': 25848.6, 'lastTraded': None}","{'ask': 25851.2, 'bid': 25849.6, 'lastTraded': None}",7943,"{'ask': 25817.7, 'bid': 25816.1, 'lastTraded': None}","{'ask': 25828.2, 'bid': 25826.6, 'lastTraded': None}",2019:03:16-03:55:00,25827.4,25816.9,25850.4,25849.4
50 | 48,"{'ask': 25851.3, 'bid': 25847.5, 'lastTraded': None}","{'ask': 25854.3, 'bid': 25850.5, 'lastTraded': None}",2331,"{'ask': 25832.3, 'bid': 25828.5, 'lastTraded': None}","{'ask': 25851.3, 'bid': 25847.5, 'lastTraded': None}",2019:03:16-04:00:00,25849.4,25830.4,25852.4,25849.4
51 | 49,"{'ask': 25849.3, 'bid': 25845.5, 'lastTraded': None}","{'ask': 25850.8, 'bid': 25847.0, 'lastTraded': None}",871,"{'ask': 25842.3, 'bid': 25838.5, 'lastTraded': None}","{'ask': 25850.8, 'bid': 25847.0, 'lastTraded': None}",2019:03:16-04:05:00,25848.9,25840.4,25848.9,25847.4
52 | 50,"{'ask': 25870.6, 'bid': 25860.8, 'lastTraded': None}","{'ask': 25880.3, 'bid': 25876.5, 'lastTraded': None}",1041,"{'ask': 25846.8, 'bid': 25843.0, 'lastTraded': None}","{'ask': 25849.8, 'bid': 25846.0, 'lastTraded': None}",2019:03:16-04:10:00,25847.9,25844.9,25878.4,25865.7
53 | 51,"{'ask': 25762.8, 'bid': 25753.0, 'lastTraded': None}","{'ask': 25871.1, 'bid': 25861.3, 'lastTraded': None}",5,"{'ask': 25759.3, 'bid': 25749.5, 'lastTraded': None}","{'ask': 25871.1, 'bid': 25861.3, 'lastTraded': None}",2019:03:16-04:15:00,25866.2,25754.4,25866.2,25757.9
54 | 52,"{'ask': 25770.3, 'bid': 25760.5, 'lastTraded': None}","{'ask': 25770.3, 'bid': 25760.5, 'lastTraded': None}",0,"{'ask': 25762.7, 'bid': 25752.9, 'lastTraded': None}","{'ask': 25762.7, 'bid': 25752.9, 'lastTraded': None}",2019:03:16-04:20:00,25757.8,25757.8,25765.4,25765.4
55 | 53,"{'ask': 25762.7, 'bid': 25752.9, 'lastTraded': None}","{'ask': 25770.3, 'bid': 25760.5, 'lastTraded': None}",0,"{'ask': 25762.7, 'bid': 25752.9, 'lastTraded': None}","{'ask': 25770.2, 'bid': 25760.4, 'lastTraded': None}",2019:03:16-04:25:00,25765.3,25757.8,25765.4,25757.8
56 | 54,"{'ask': 25861.8, 'bid': 25858.0, 'lastTraded': None}","{'ask': 25869.8, 'bid': 25866.0, 'lastTraded': None}",316,"{'ask': 25861.8, 'bid': 25858.0, 'lastTraded': None}","{'ask': 25864.8, 'bid': 25861.0, 'lastTraded': None}",2019:03:16-04:30:00,25862.9,25859.9,25867.9,25859.9
57 | 55,"{'ask': 25858.8, 'bid': 25855.0, 'lastTraded': None}","{'ask': 25866.3, 'bid': 25862.5, 'lastTraded': None}",122,"{'ask': 25858.3, 'bid': 25854.5, 'lastTraded': None}","{'ask': 25862.3, 'bid': 25858.5, 'lastTraded': None}",2019:03:16-04:35:00,25860.4,25856.4,25864.4,25856.9
58 | 56,"{'ask': 25863.8, 'bid': 25860.0, 'lastTraded': None}","{'ask': 25863.8, 'bid': 25860.0, 'lastTraded': None}",191,"{'ask': 25856.8, 'bid': 25853.0, 'lastTraded': None}","{'ask': 25859.3, 'bid': 25855.5, 'lastTraded': None}",2019:03:16-04:40:00,25857.4,25854.9,25861.9,25861.9
59 | 57,"{'ask': 25867.3, 'bid': 25863.5, 'lastTraded': None}","{'ask': 25869.8, 'bid': 25866.0, 'lastTraded': None}",87,"{'ask': 25863.3, 'bid': 25859.5, 'lastTraded': None}","{'ask': 25863.3, 'bid': 25859.5, 'lastTraded': None}",2019:03:16-04:45:00,25861.4,25861.4,25867.9,25865.4
60 | 58,"{'ask': 25868.3, 'bid': 25864.5, 'lastTraded': None}","{'ask': 25871.3, 'bid': 25867.5, 'lastTraded': None}",63,"{'ask': 25865.3, 'bid': 25861.5, 'lastTraded': None}","{'ask': 25867.8, 'bid': 25864.0, 'lastTraded': None}",2019:03:16-04:50:00,25865.9,25863.4,25869.4,25866.4
61 | 59,"{'ask': 25868.9, 'bid': 25859.1, 'lastTraded': None}","{'ask': 25868.9, 'bid': 25865.0, 'lastTraded': None}",115,"{'ask': 25859.8, 'bid': 25856.0, 'lastTraded': None}","{'ask': 25868.8, 'bid': 25865.0, 'lastTraded': None}",2019:03:16-04:55:00,25866.9,25857.9,25866.95,25864.0
62 |
--------------------------------------------------------------------------------
/data/2019-03-23.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'ask': 25576.9, 'lastTraded': None, 'bid': 25575.3}","{'ask': 25587.9, 'lastTraded': None, 'bid': 25586.3}",4321,"{'ask': 25532.9, 'lastTraded': None, 'bid': 25531.3}","{'ask': 25539.9, 'lastTraded': None, 'bid': 25538.3}",2019:03:23-00:00:00,25539.1,25532.1,25587.1,25576.1
3 | 1,"{'ask': 25576.9, 'lastTraded': None, 'bid': 25575.3}","{'ask': 25593.9, 'lastTraded': None, 'bid': 25592.3}",2569,"{'ask': 25563.9, 'lastTraded': None, 'bid': 25562.3}","{'ask': 25575.9, 'lastTraded': None, 'bid': 25574.3}",2019:03:23-00:05:00,25575.1,25563.1,25593.1,25576.1
4 | 2,"{'ask': 25549.4, 'lastTraded': None, 'bid': 25547.8}","{'ask': 25579.9, 'lastTraded': None, 'bid': 25578.3}",2216,"{'ask': 25547.9, 'lastTraded': None, 'bid': 25546.3}","{'ask': 25577.9, 'lastTraded': None, 'bid': 25576.3}",2019:03:23-00:10:00,25577.1,25547.1,25579.1,25548.6
5 | 3,"{'ask': 25553.9, 'lastTraded': None, 'bid': 25552.3}","{'ask': 25584.9, 'lastTraded': None, 'bid': 25583.3}",2625,"{'ask': 25544.9, 'lastTraded': None, 'bid': 25543.3}","{'ask': 25549.9, 'lastTraded': None, 'bid': 25548.3}",2019:03:23-00:15:00,25549.1,25544.1,25584.1,25553.1
6 | 4,"{'ask': 25572.9, 'lastTraded': None, 'bid': 25571.3}","{'ask': 25588.9, 'lastTraded': None, 'bid': 25587.3}",2544,"{'ask': 25549.4, 'lastTraded': None, 'bid': 25547.8}","{'ask': 25554.9, 'lastTraded': None, 'bid': 25553.3}",2019:03:23-00:20:00,25554.1,25548.6,25588.1,25572.1
7 | 5,"{'ask': 25554.9, 'lastTraded': None, 'bid': 25553.3}","{'ask': 25575.9, 'lastTraded': None, 'bid': 25574.3}",2198,"{'ask': 25540.4, 'lastTraded': None, 'bid': 25538.8}","{'ask': 25571.9, 'lastTraded': None, 'bid': 25570.3}",2019:03:23-00:25:00,25571.1,25539.6,25575.1,25554.1
8 | 6,"{'ask': 25583.9, 'lastTraded': None, 'bid': 25582.3}","{'ask': 25587.9, 'lastTraded': None, 'bid': 25586.3}",2606,"{'ask': 25540.9, 'lastTraded': None, 'bid': 25539.3}","{'ask': 25553.9, 'lastTraded': None, 'bid': 25552.3}",2019:03:23-00:30:00,25553.1,25540.1,25587.1,25583.1
9 | 7,"{'ask': 25564.4, 'lastTraded': None, 'bid': 25562.8}","{'ask': 25584.4, 'lastTraded': None, 'bid': 25582.8}",1753,"{'ask': 25558.9, 'lastTraded': None, 'bid': 25557.3}","{'ask': 25583.4, 'lastTraded': None, 'bid': 25581.8}",2019:03:23-00:35:00,25582.6,25558.1,25583.6,25563.6
10 | 8,"{'ask': 25514.4, 'lastTraded': None, 'bid': 25512.8}","{'ask': 25564.9, 'lastTraded': None, 'bid': 25563.3}",3660,"{'ask': 25507.9, 'lastTraded': None, 'bid': 25506.3}","{'ask': 25564.9, 'lastTraded': None, 'bid': 25563.3}",2019:03:23-00:40:00,25564.1,25507.1,25564.1,25513.6
11 | 9,"{'ask': 25533.4, 'lastTraded': None, 'bid': 25531.8}","{'ask': 25543.9, 'lastTraded': None, 'bid': 25542.3}",2532,"{'ask': 25512.9, 'lastTraded': None, 'bid': 25511.3}","{'ask': 25514.9, 'lastTraded': None, 'bid': 25513.3}",2019:03:23-00:45:00,25514.1,25512.1,25543.1,25532.6
12 | 10,"{'ask': 25587.9, 'lastTraded': None, 'bid': 25586.3}","{'ask': 25589.4, 'lastTraded': None, 'bid': 25587.8}",3072,"{'ask': 25525.9, 'lastTraded': None, 'bid': 25524.3}","{'ask': 25532.9, 'lastTraded': None, 'bid': 25531.3}",2019:03:23-00:50:00,25532.1,25525.1,25588.6,25587.1
13 | 11,"{'ask': 25582.4, 'lastTraded': None, 'bid': 25580.8}","{'ask': 25587.4, 'lastTraded': None, 'bid': 25585.8}",2678,"{'ask': 25551.9, 'lastTraded': None, 'bid': 25550.3}","{'ask': 25587.4, 'lastTraded': None, 'bid': 25585.8}",2019:03:23-00:55:00,25586.6,25551.1,25586.6,25581.6
14 | 12,"{'ask': 25598.9, 'lastTraded': None, 'bid': 25597.3}","{'ask': 25618.9, 'lastTraded': None, 'bid': 25617.3}",2987,"{'ask': 25571.9, 'lastTraded': None, 'bid': 25570.3}","{'ask': 25581.9, 'lastTraded': None, 'bid': 25580.3}",2019:03:23-01:00:00,25581.1,25571.1,25618.1,25598.1
15 | 13,"{'ask': 25621.9, 'lastTraded': None, 'bid': 25620.3}","{'ask': 25623.9, 'lastTraded': None, 'bid': 25622.3}",1628,"{'ask': 25596.4, 'lastTraded': None, 'bid': 25594.8}","{'ask': 25599.9, 'lastTraded': None, 'bid': 25598.3}",2019:03:23-01:05:00,25599.1,25595.6,25623.1,25621.1
16 | 14,"{'ask': 25596.4, 'lastTraded': None, 'bid': 25594.8}","{'ask': 25621.9, 'lastTraded': None, 'bid': 25620.3}",1740,"{'ask': 25585.9, 'lastTraded': None, 'bid': 25584.3}","{'ask': 25620.9, 'lastTraded': None, 'bid': 25619.3}",2019:03:23-01:10:00,25620.1,25585.1,25621.1,25595.6
17 | 15,"{'ask': 25598.4, 'lastTraded': None, 'bid': 25596.8}","{'ask': 25611.9, 'lastTraded': None, 'bid': 25610.3}",1792,"{'ask': 25586.9, 'lastTraded': None, 'bid': 25585.3}","{'ask': 25596.9, 'lastTraded': None, 'bid': 25595.3}",2019:03:23-01:15:00,25596.1,25586.1,25611.1,25597.6
18 | 16,"{'ask': 25591.4, 'lastTraded': None, 'bid': 25589.8}","{'ask': 25608.4, 'lastTraded': None, 'bid': 25606.8}",2180,"{'ask': 25579.9, 'lastTraded': None, 'bid': 25578.3}","{'ask': 25597.9, 'lastTraded': None, 'bid': 25596.3}",2019:03:23-01:20:00,25597.1,25579.1,25607.6,25590.6
19 | 17,"{'ask': 25583.9, 'lastTraded': None, 'bid': 25582.3}","{'ask': 25594.9, 'lastTraded': None, 'bid': 25593.3}",1631,"{'ask': 25570.9, 'lastTraded': None, 'bid': 25569.3}","{'ask': 25590.9, 'lastTraded': None, 'bid': 25589.3}",2019:03:23-01:25:00,25590.1,25570.1,25594.1,25583.1
20 | 18,"{'ask': 25589.9, 'lastTraded': None, 'bid': 25588.3}","{'ask': 25616.9, 'lastTraded': None, 'bid': 25615.3}",1765,"{'ask': 25574.9, 'lastTraded': None, 'bid': 25573.3}","{'ask': 25584.4, 'lastTraded': None, 'bid': 25582.8}",2019:03:23-01:30:00,25583.6,25574.1,25616.1,25589.1
21 | 19,"{'ask': 25580.9, 'lastTraded': None, 'bid': 25579.3}","{'ask': 25600.4, 'lastTraded': None, 'bid': 25598.8}",1405,"{'ask': 25573.9, 'lastTraded': None, 'bid': 25572.3}","{'ask': 25590.4, 'lastTraded': None, 'bid': 25588.8}",2019:03:23-01:35:00,25589.6,25573.1,25599.6,25580.1
22 | 20,"{'ask': 25599.9, 'lastTraded': None, 'bid': 25598.3}","{'ask': 25602.4, 'lastTraded': None, 'bid': 25600.8}",1246,"{'ask': 25576.9, 'lastTraded': None, 'bid': 25575.3}","{'ask': 25581.9, 'lastTraded': None, 'bid': 25580.3}",2019:03:23-01:40:00,25581.1,25576.1,25601.6,25599.1
23 | 21,"{'ask': 25582.9, 'lastTraded': None, 'bid': 25581.3}","{'ask': 25604.9, 'lastTraded': None, 'bid': 25603.3}",1391,"{'ask': 25576.9, 'lastTraded': None, 'bid': 25575.3}","{'ask': 25600.4, 'lastTraded': None, 'bid': 25598.8}",2019:03:23-01:45:00,25599.6,25576.1,25604.1,25582.1
24 | 22,"{'ask': 25580.4, 'lastTraded': None, 'bid': 25578.8}","{'ask': 25590.4, 'lastTraded': None, 'bid': 25588.8}",1570,"{'ask': 25566.9, 'lastTraded': None, 'bid': 25565.3}","{'ask': 25582.4, 'lastTraded': None, 'bid': 25580.8}",2019:03:23-01:50:00,25581.6,25566.1,25589.6,25579.6
25 | 23,"{'ask': 25554.9, 'lastTraded': None, 'bid': 25553.3}","{'ask': 25582.9, 'lastTraded': None, 'bid': 25581.3}",1879,"{'ask': 25540.9, 'lastTraded': None, 'bid': 25539.3}","{'ask': 25579.9, 'lastTraded': None, 'bid': 25578.3}",2019:03:23-01:55:00,25579.1,25540.1,25582.1,25554.1
26 | 24,"{'ask': 25601.1, 'lastTraded': None, 'bid': 25599.5}","{'ask': 25602.6, 'lastTraded': None, 'bid': 25601.0}",2383,"{'ask': 25548.4, 'lastTraded': None, 'bid': 25546.8}","{'ask': 25553.9, 'lastTraded': None, 'bid': 25552.3}",2019:03:23-02:00:00,25553.1,25547.6,25601.8,25600.3
27 | 25,"{'ask': 25600.6, 'lastTraded': None, 'bid': 25599.0}","{'ask': 25610.1, 'lastTraded': None, 'bid': 25608.5}",1476,"{'ask': 25590.6, 'lastTraded': None, 'bid': 25589.0}","{'ask': 25600.6, 'lastTraded': None, 'bid': 25599.0}",2019:03:23-02:05:00,25599.8,25589.8,25609.3,25599.8
28 | 26,"{'ask': 25629.1, 'lastTraded': None, 'bid': 25627.5}","{'ask': 25631.1, 'lastTraded': None, 'bid': 25629.5}",1928,"{'ask': 25598.6, 'lastTraded': None, 'bid': 25597.0}","{'ask': 25600.1, 'lastTraded': None, 'bid': 25598.5}",2019:03:23-02:10:00,25599.3,25597.8,25630.3,25628.3
29 | 27,"{'ask': 25646.1, 'lastTraded': None, 'bid': 25644.5}","{'ask': 25675.1, 'lastTraded': None, 'bid': 25673.5}",3711,"{'ask': 25629.6, 'lastTraded': None, 'bid': 25628.0}","{'ask': 25630.1, 'lastTraded': None, 'bid': 25628.5}",2019:03:23-02:15:00,25629.3,25628.8,25674.3,25645.3
30 | 28,"{'ask': 25659.6, 'lastTraded': None, 'bid': 25658.0}","{'ask': 25668.1, 'lastTraded': None, 'bid': 25666.5}",2053,"{'ask': 25645.1, 'lastTraded': None, 'bid': 25643.5}","{'ask': 25646.6, 'lastTraded': None, 'bid': 25645.0}",2019:03:23-02:20:00,25645.8,25644.3,25667.3,25658.8
31 | 29,"{'ask': 25657.1, 'lastTraded': None, 'bid': 25655.5}","{'ask': 25671.1, 'lastTraded': None, 'bid': 25669.5}",2449,"{'ask': 25645.1, 'lastTraded': None, 'bid': 25643.5}","{'ask': 25659.1, 'lastTraded': None, 'bid': 25657.5}",2019:03:23-02:25:00,25658.3,25644.3,25670.3,25656.3
32 | 30,"{'ask': 25617.1, 'lastTraded': None, 'bid': 25615.5}","{'ask': 25666.1, 'lastTraded': None, 'bid': 25664.5}",2157,"{'ask': 25615.1, 'lastTraded': None, 'bid': 25613.5}","{'ask': 25656.6, 'lastTraded': None, 'bid': 25655.0}",2019:03:23-02:30:00,25655.8,25614.3,25665.3,25616.3
33 | 31,"{'ask': 25643.1, 'lastTraded': None, 'bid': 25641.5}","{'ask': 25648.1, 'lastTraded': None, 'bid': 25646.5}",1491,"{'ask': 25611.1, 'lastTraded': None, 'bid': 25609.5}","{'ask': 25617.6, 'lastTraded': None, 'bid': 25616.0}",2019:03:23-02:35:00,25616.8,25610.3,25647.3,25642.3
34 | 32,"{'ask': 25659.1, 'lastTraded': None, 'bid': 25657.5}","{'ask': 25675.1, 'lastTraded': None, 'bid': 25673.5}",1822,"{'ask': 25641.1, 'lastTraded': None, 'bid': 25639.5}","{'ask': 25642.1, 'lastTraded': None, 'bid': 25640.5}",2019:03:23-02:40:00,25641.3,25640.3,25674.3,25658.3
35 | 33,"{'ask': 25685.6, 'lastTraded': None, 'bid': 25684.0}","{'ask': 25694.1, 'lastTraded': None, 'bid': 25692.5}",2134,"{'ask': 25657.1, 'lastTraded': None, 'bid': 25655.5}","{'ask': 25658.6, 'lastTraded': None, 'bid': 25657.0}",2019:03:23-02:45:00,25657.8,25656.3,25693.3,25684.8
36 | 34,"{'ask': 25692.1, 'lastTraded': None, 'bid': 25690.5}","{'ask': 25716.1, 'lastTraded': None, 'bid': 25714.5}",2489,"{'ask': 25681.1, 'lastTraded': None, 'bid': 25679.5}","{'ask': 25686.1, 'lastTraded': None, 'bid': 25684.5}",2019:03:23-02:50:00,25685.3,25680.3,25715.3,25691.3
37 | 35,"{'ask': 25695.6, 'lastTraded': None, 'bid': 25694.0}","{'ask': 25710.1, 'lastTraded': None, 'bid': 25708.5}",1532,"{'ask': 25692.1, 'lastTraded': None, 'bid': 25690.5}","{'ask': 25692.6, 'lastTraded': None, 'bid': 25691.0}",2019:03:23-02:55:00,25691.8,25691.3,25709.3,25694.8
38 | 36,"{'ask': 25680.1, 'lastTraded': None, 'bid': 25678.5}","{'ask': 25723.1, 'lastTraded': None, 'bid': 25721.5}",2464,"{'ask': 25679.1, 'lastTraded': None, 'bid': 25677.5}","{'ask': 25696.1, 'lastTraded': None, 'bid': 25694.5}",2019:03:23-03:00:00,25695.3,25678.3,25722.3,25679.3
39 | 37,"{'ask': 25683.1, 'lastTraded': None, 'bid': 25681.5}","{'ask': 25701.1, 'lastTraded': None, 'bid': 25699.5}",1951,"{'ask': 25679.6, 'lastTraded': None, 'bid': 25678.0}","{'ask': 25681.1, 'lastTraded': None, 'bid': 25679.5}",2019:03:23-03:05:00,25680.3,25678.8,25700.3,25682.3
40 | 38,"{'ask': 25651.6, 'lastTraded': None, 'bid': 25650.0}","{'ask': 25691.6, 'lastTraded': None, 'bid': 25690.0}",2353,"{'ask': 25646.1, 'lastTraded': None, 'bid': 25644.5}","{'ask': 25684.1, 'lastTraded': None, 'bid': 25682.5}",2019:03:23-03:10:00,25683.3,25645.3,25690.8,25650.8
41 | 39,"{'ask': 25645.1, 'lastTraded': None, 'bid': 25643.5}","{'ask': 25672.1, 'lastTraded': None, 'bid': 25670.5}",1908,"{'ask': 25631.1, 'lastTraded': None, 'bid': 25629.5}","{'ask': 25651.1, 'lastTraded': None, 'bid': 25649.5}",2019:03:23-03:15:00,25650.3,25630.3,25671.3,25644.3
42 | 40,"{'ask': 25665.1, 'lastTraded': None, 'bid': 25663.5}","{'ask': 25669.1, 'lastTraded': None, 'bid': 25667.5}",1439,"{'ask': 25641.1, 'lastTraded': None, 'bid': 25639.5}","{'ask': 25644.6, 'lastTraded': None, 'bid': 25643.0}",2019:03:23-03:20:00,25643.8,25640.3,25668.3,25664.3
43 | 41,"{'ask': 25616.1, 'lastTraded': None, 'bid': 25614.5}","{'ask': 25668.1, 'lastTraded': None, 'bid': 25666.5}",1713,"{'ask': 25614.1, 'lastTraded': None, 'bid': 25612.5}","{'ask': 25665.6, 'lastTraded': None, 'bid': 25664.0}",2019:03:23-03:25:00,25664.8,25613.3,25667.3,25615.3
44 | 42,"{'ask': 25567.1, 'lastTraded': None, 'bid': 25565.5}","{'ask': 25620.1, 'lastTraded': None, 'bid': 25618.5}",3207,"{'ask': 25563.1, 'lastTraded': None, 'bid': 25561.5}","{'ask': 25616.6, 'lastTraded': None, 'bid': 25615.0}",2019:03:23-03:30:00,25615.8,25562.3,25619.3,25566.3
45 | 43,"{'ask': 25565.1, 'lastTraded': None, 'bid': 25563.5}","{'ask': 25587.1, 'lastTraded': None, 'bid': 25585.5}",3638,"{'ask': 25554.1, 'lastTraded': None, 'bid': 25552.5}","{'ask': 25566.1, 'lastTraded': None, 'bid': 25564.5}",2019:03:23-03:35:00,25565.3,25553.3,25586.3,25564.3
46 | 44,"{'ask': 25540.1, 'lastTraded': None, 'bid': 25538.5}","{'ask': 25570.6, 'lastTraded': None, 'bid': 25569.0}",3144,"{'ask': 25537.6, 'lastTraded': None, 'bid': 25536.0}","{'ask': 25564.1, 'lastTraded': None, 'bid': 25562.5}",2019:03:23-03:40:00,25563.3,25536.8,25569.8,25539.3
47 | 45,"{'ask': 25574.1, 'lastTraded': None, 'bid': 25572.5}","{'ask': 25581.1, 'lastTraded': None, 'bid': 25579.5}",2930,"{'ask': 25539.1, 'lastTraded': None, 'bid': 25537.5}","{'ask': 25540.6, 'lastTraded': None, 'bid': 25539.0}",2019:03:23-03:45:00,25539.8,25538.3,25580.3,25573.3
48 | 46,"{'ask': 25545.1, 'lastTraded': None, 'bid': 25543.5}","{'ask': 25574.1, 'lastTraded': None, 'bid': 25572.5}",2769,"{'ask': 25537.1, 'lastTraded': None, 'bid': 25535.5}","{'ask': 25573.6, 'lastTraded': None, 'bid': 25572.0}",2019:03:23-03:50:00,25572.8,25536.3,25573.3,25544.3
49 | 47,"{'ask': 25510.1, 'lastTraded': None, 'bid': 25508.5}","{'ask': 25551.1, 'lastTraded': None, 'bid': 25549.5}",8120,"{'ask': 25505.1, 'lastTraded': None, 'bid': 25503.5}","{'ask': 25546.1, 'lastTraded': None, 'bid': 25544.5}",2019:03:23-03:55:00,25545.3,25504.3,25550.3,25509.3
50 | 48,"{'ask': 25560.2, 'lastTraded': None, 'bid': 25556.4}","{'ask': 25569.7, 'lastTraded': None, 'bid': 25565.9}",3723,"{'ask': 25511.1, 'lastTraded': None, 'bid': 25508.4}","{'ask': 25511.1, 'lastTraded': None, 'bid': 25509.5}",2019:03:23-04:00:00,25510.3,25509.75,25567.8,25558.3
51 | 49,"{'ask': 25566.2, 'lastTraded': None, 'bid': 25562.4}","{'ask': 25577.2, 'lastTraded': None, 'bid': 25573.4}",1036,"{'ask': 25559.7, 'lastTraded': None, 'bid': 25555.9}","{'ask': 25561.2, 'lastTraded': None, 'bid': 25557.4}",2019:03:23-04:05:00,25559.3,25557.8,25575.3,25564.3
52 | 50,"{'ask': 25547.6, 'lastTraded': None, 'bid': 25537.8}","{'ask': 25568.2, 'lastTraded': None, 'bid': 25564.4}",962,"{'ask': 25540.7, 'lastTraded': None, 'bid': 25536.9}","{'ask': 25565.7, 'lastTraded': None, 'bid': 25561.9}",2019:03:23-04:10:00,25563.8,25538.8,25566.3,25542.7
53 | 51,"{'ask': 25556.1, 'lastTraded': None, 'bid': 25546.3}","{'ask': 25561.4, 'lastTraded': None, 'bid': 25551.6}",0,"{'ask': 25547.5, 'lastTraded': None, 'bid': 25537.7}","{'ask': 25547.5, 'lastTraded': None, 'bid': 25537.7}",2019:03:23-04:15:00,25542.6,25542.6,25556.5,25551.2
54 | 52,"{'ask': 25554.6, 'lastTraded': None, 'bid': 25544.8}","{'ask': 25557.8, 'lastTraded': None, 'bid': 25548.0}",0,"{'ask': 25554.6, 'lastTraded': None, 'bid': 25544.8}","{'ask': 25557.0, 'lastTraded': None, 'bid': 25547.2}",2019:03:23-04:20:00,25552.1,25549.7,25552.9,25549.7
55 | 53,"{'ask': 25554.5, 'lastTraded': None, 'bid': 25544.7}","{'ask': 25554.6, 'lastTraded': None, 'bid': 25544.8}",0,"{'ask': 25547.0, 'lastTraded': None, 'bid': 25537.2}","{'ask': 25554.4, 'lastTraded': None, 'bid': 25544.6}",2019:03:23-04:25:00,25549.5,25542.1,25549.7,25549.6
56 | 54,"{'ask': 25537.7, 'lastTraded': None, 'bid': 25533.9}","{'ask': 25554.6, 'lastTraded': None, 'bid': 25544.8}",269,"{'ask': 25524.7, 'lastTraded': None, 'bid': 25520.9}","{'ask': 25554.6, 'lastTraded': None, 'bid': 25544.8}",2019:03:23-04:30:00,25549.7,25522.8,25549.7,25535.8
57 | 55,"{'ask': 25531.7, 'lastTraded': None, 'bid': 25527.9}","{'ask': 25541.7, 'lastTraded': None, 'bid': 25537.9}",180,"{'ask': 25530.7, 'lastTraded': None, 'bid': 25526.9}","{'ask': 25537.2, 'lastTraded': None, 'bid': 25533.4}",2019:03:23-04:35:00,25535.3,25528.8,25539.8,25529.8
58 | 56,"{'ask': 25527.2, 'lastTraded': None, 'bid': 25523.4}","{'ask': 25531.2, 'lastTraded': None, 'bid': 25527.4}",180,"{'ask': 25525.2, 'lastTraded': None, 'bid': 25521.4}","{'ask': 25530.7, 'lastTraded': None, 'bid': 25526.9}",2019:03:23-04:40:00,25528.8,25523.3,25529.3,25525.3
59 | 57,"{'ask': 25528.7, 'lastTraded': None, 'bid': 25524.9}","{'ask': 25536.7, 'lastTraded': None, 'bid': 25532.9}",180,"{'ask': 25523.2, 'lastTraded': None, 'bid': 25519.4}","{'ask': 25526.7, 'lastTraded': None, 'bid': 25522.9}",2019:03:23-04:45:00,25524.8,25521.3,25534.8,25526.8
60 | 58,"{'ask': 25521.7, 'lastTraded': None, 'bid': 25517.9}","{'ask': 25532.2, 'lastTraded': None, 'bid': 25528.4}",232,"{'ask': 25518.7, 'lastTraded': None, 'bid': 25514.9}","{'ask': 25528.2, 'lastTraded': None, 'bid': 25524.4}",2019:03:23-04:50:00,25526.3,25516.8,25530.3,25519.8
61 | 59,"{'ask': 25519.6, 'lastTraded': None, 'bid': 25509.8}","{'ask': 25528.2, 'lastTraded': None, 'bid': 25524.4}",366,"{'ask': 25512.7, 'lastTraded': None, 'bid': 25503.5}","{'ask': 25521.2, 'lastTraded': None, 'bid': 25517.4}",2019:03:23-04:55:00,25519.3,25508.1,25526.3,25514.7
62 |
--------------------------------------------------------------------------------
/data/2019-03-30.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'ask': 25867.2, 'bid': 25865.6, 'lastTraded': None}","{'ask': 25878.7, 'bid': 25877.1, 'lastTraded': None}",886,"{'ask': 25864.7, 'bid': 25863.1, 'lastTraded': None}","{'ask': 25873.2, 'bid': 25871.6, 'lastTraded': None}",2019:03:30-00:00:00,25872.4,25863.9,25877.9,25866.4
3 | 1,"{'ask': 25867.7, 'bid': 25866.1, 'lastTraded': None}","{'ask': 25868.7, 'bid': 25867.1, 'lastTraded': None}",811,"{'ask': 25857.2, 'bid': 25855.6, 'lastTraded': None}","{'ask': 25866.7, 'bid': 25865.1, 'lastTraded': None}",2019:03:30-00:05:00,25865.9,25856.4,25867.9,25866.9
4 | 2,"{'ask': 25857.7, 'bid': 25856.1, 'lastTraded': None}","{'ask': 25869.2, 'bid': 25867.6, 'lastTraded': None}",711,"{'ask': 25855.7, 'bid': 25854.1, 'lastTraded': None}","{'ask': 25868.2, 'bid': 25866.6, 'lastTraded': None}",2019:03:30-00:10:00,25867.4,25854.9,25868.4,25856.9
5 | 3,"{'ask': 25852.7, 'bid': 25851.1, 'lastTraded': None}","{'ask': 25861.7, 'bid': 25860.1, 'lastTraded': None}",1046,"{'ask': 25847.7, 'bid': 25846.1, 'lastTraded': None}","{'ask': 25857.2, 'bid': 25855.6, 'lastTraded': None}",2019:03:30-00:15:00,25856.4,25846.9,25860.9,25851.9
6 | 4,"{'ask': 25859.2, 'bid': 25857.6, 'lastTraded': None}","{'ask': 25862.7, 'bid': 25861.1, 'lastTraded': None}",1275,"{'ask': 25834.7, 'bid': 25833.1, 'lastTraded': None}","{'ask': 25851.7, 'bid': 25850.1, 'lastTraded': None}",2019:03:30-00:20:00,25850.9,25833.9,25861.9,25858.4
7 | 5,"{'ask': 25865.2, 'bid': 25863.6, 'lastTraded': None}","{'ask': 25868.2, 'bid': 25866.6, 'lastTraded': None}",558,"{'ask': 25855.7, 'bid': 25854.1, 'lastTraded': None}","{'ask': 25858.7, 'bid': 25857.1, 'lastTraded': None}",2019:03:30-00:25:00,25857.9,25854.9,25867.4,25864.4
8 | 6,"{'ask': 25848.7, 'bid': 25847.1, 'lastTraded': None}","{'ask': 25864.7, 'bid': 25863.1, 'lastTraded': None}",762,"{'ask': 25848.2, 'bid': 25846.6, 'lastTraded': None}","{'ask': 25864.7, 'bid': 25863.1, 'lastTraded': None}",2019:03:30-00:30:00,25863.9,25847.4,25863.9,25847.9
9 | 7,"{'ask': 25856.7, 'bid': 25855.1, 'lastTraded': None}","{'ask': 25857.7, 'bid': 25856.1, 'lastTraded': None}",562,"{'ask': 25842.2, 'bid': 25840.6, 'lastTraded': None}","{'ask': 25849.7, 'bid': 25848.1, 'lastTraded': None}",2019:03:30-00:35:00,25848.9,25841.4,25856.9,25855.9
10 | 8,"{'ask': 25874.7, 'bid': 25873.1, 'lastTraded': None}","{'ask': 25875.7, 'bid': 25874.1, 'lastTraded': None}",808,"{'ask': 25853.7, 'bid': 25852.1, 'lastTraded': None}","{'ask': 25856.2, 'bid': 25854.6, 'lastTraded': None}",2019:03:30-00:40:00,25855.4,25852.9,25874.9,25873.9
11 | 9,"{'ask': 25865.2, 'bid': 25863.6, 'lastTraded': None}","{'ask': 25875.2, 'bid': 25873.6, 'lastTraded': None}",897,"{'ask': 25854.2, 'bid': 25852.6, 'lastTraded': None}","{'ask': 25874.2, 'bid': 25872.6, 'lastTraded': None}",2019:03:30-00:45:00,25873.4,25853.4,25874.4,25864.4
12 | 10,"{'ask': 25867.8, 'bid': 25866.2, 'lastTraded': None}","{'ask': 25871.3, 'bid': 25869.7, 'lastTraded': None}",660,"{'ask': 25860.2, 'bid': 25858.6, 'lastTraded': None}","{'ask': 25865.7, 'bid': 25864.1, 'lastTraded': None}",2019:03:30-00:50:00,25864.9,25859.4,25870.5,25867.0
13 | 11,"{'ask': 25865.3, 'bid': 25863.7, 'lastTraded': None}","{'ask': 25872.3, 'bid': 25870.7, 'lastTraded': None}",589,"{'ask': 25859.3, 'bid': 25857.7, 'lastTraded': None}","{'ask': 25868.3, 'bid': 25866.7, 'lastTraded': None}",2019:03:30-00:55:00,25867.5,25858.5,25871.5,25864.5
14 | 12,"{'ask': 25880.3, 'bid': 25878.7, 'lastTraded': None}","{'ask': 25881.3, 'bid': 25879.7, 'lastTraded': None}",1121,"{'ask': 25860.3, 'bid': 25858.7, 'lastTraded': None}","{'ask': 25865.8, 'bid': 25864.2, 'lastTraded': None}",2019:03:30-01:00:00,25865.0,25859.5,25880.5,25879.5
15 | 13,"{'ask': 25876.8, 'bid': 25875.2, 'lastTraded': None}","{'ask': 25882.3, 'bid': 25880.7, 'lastTraded': None}",790,"{'ask': 25873.3, 'bid': 25871.7, 'lastTraded': None}","{'ask': 25879.3, 'bid': 25877.7, 'lastTraded': None}",2019:03:30-01:05:00,25878.5,25872.5,25881.5,25876.0
16 | 14,"{'ask': 25883.8, 'bid': 25882.2, 'lastTraded': None}","{'ask': 25886.3, 'bid': 25884.7, 'lastTraded': None}",746,"{'ask': 25874.3, 'bid': 25872.7, 'lastTraded': None}","{'ask': 25877.3, 'bid': 25875.7, 'lastTraded': None}",2019:03:30-01:10:00,25876.5,25873.5,25885.5,25883.0
17 | 15,"{'ask': 25870.8, 'bid': 25869.2, 'lastTraded': None}","{'ask': 25887.3, 'bid': 25885.7, 'lastTraded': None}",782,"{'ask': 25869.3, 'bid': 25867.7, 'lastTraded': None}","{'ask': 25883.3, 'bid': 25881.7, 'lastTraded': None}",2019:03:30-01:15:00,25882.5,25868.5,25886.5,25870.0
18 | 16,"{'ask': 25874.3, 'bid': 25872.7, 'lastTraded': None}","{'ask': 25879.3, 'bid': 25877.7, 'lastTraded': None}",810,"{'ask': 25867.3, 'bid': 25865.7, 'lastTraded': None}","{'ask': 25871.3, 'bid': 25869.7, 'lastTraded': None}",2019:03:30-01:20:00,25870.5,25866.5,25878.5,25873.5
19 | 17,"{'ask': 25878.3, 'bid': 25876.7, 'lastTraded': None}","{'ask': 25883.3, 'bid': 25881.7, 'lastTraded': None}",609,"{'ask': 25872.8, 'bid': 25871.2, 'lastTraded': None}","{'ask': 25874.8, 'bid': 25873.2, 'lastTraded': None}",2019:03:30-01:25:00,25874.0,25872.0,25882.5,25877.5
20 | 18,"{'ask': 25874.3, 'bid': 25872.7, 'lastTraded': None}","{'ask': 25881.3, 'bid': 25879.7, 'lastTraded': None}",529,"{'ask': 25873.3, 'bid': 25871.7, 'lastTraded': None}","{'ask': 25877.8, 'bid': 25876.2, 'lastTraded': None}",2019:03:30-01:30:00,25877.0,25872.5,25880.5,25873.5
21 | 19,"{'ask': 25869.8, 'bid': 25868.2, 'lastTraded': None}","{'ask': 25876.3, 'bid': 25874.7, 'lastTraded': None}",517,"{'ask': 25869.3, 'bid': 25867.7, 'lastTraded': None}","{'ask': 25873.3, 'bid': 25871.7, 'lastTraded': None}",2019:03:30-01:35:00,25872.5,25868.5,25875.5,25869.0
22 | 20,"{'ask': 25865.3, 'bid': 25863.7, 'lastTraded': None}","{'ask': 25876.8, 'bid': 25875.2, 'lastTraded': None}",2190,"{'ask': 25853.3, 'bid': 25851.7, 'lastTraded': None}","{'ask': 25870.3, 'bid': 25868.7, 'lastTraded': None}",2019:03:30-01:40:00,25869.5,25852.5,25876.0,25864.5
23 | 21,"{'ask': 25879.8, 'bid': 25878.2, 'lastTraded': None}","{'ask': 25881.8, 'bid': 25880.2, 'lastTraded': None}",1824,"{'ask': 25856.8, 'bid': 25855.2, 'lastTraded': None}","{'ask': 25865.8, 'bid': 25864.2, 'lastTraded': None}",2019:03:30-01:45:00,25865.0,25856.0,25881.0,25879.0
24 | 22,"{'ask': 25913.3, 'bid': 25911.7, 'lastTraded': None}","{'ask': 25914.8, 'bid': 25913.2, 'lastTraded': None}",2673,"{'ask': 25876.8, 'bid': 25875.2, 'lastTraded': None}","{'ask': 25880.3, 'bid': 25878.7, 'lastTraded': None}",2019:03:30-01:50:00,25879.5,25876.0,25914.0,25912.5
25 | 23,"{'ask': 25909.8, 'bid': 25908.2, 'lastTraded': None}","{'ask': 25916.8, 'bid': 25915.2, 'lastTraded': None}",1262,"{'ask': 25903.3, 'bid': 25901.7, 'lastTraded': None}","{'ask': 25913.8, 'bid': 25912.2, 'lastTraded': None}",2019:03:30-01:55:00,25913.0,25902.5,25916.0,25909.0
26 | 24,"{'ask': 25913.8, 'bid': 25912.2, 'lastTraded': None}","{'ask': 25927.8, 'bid': 25926.2, 'lastTraded': None}",2114,"{'ask': 25909.8, 'bid': 25908.2, 'lastTraded': None}","{'ask': 25910.8, 'bid': 25909.2, 'lastTraded': None}",2019:03:30-02:00:00,25910.0,25909.0,25927.0,25913.0
27 | 25,"{'ask': 25902.8, 'bid': 25901.2, 'lastTraded': None}","{'ask': 25915.8, 'bid': 25914.2, 'lastTraded': None}",1324,"{'ask': 25897.8, 'bid': 25896.2, 'lastTraded': None}","{'ask': 25914.3, 'bid': 25912.7, 'lastTraded': None}",2019:03:30-02:05:00,25913.5,25897.0,25915.0,25902.0
28 | 26,"{'ask': 25887.3, 'bid': 25885.7, 'lastTraded': None}","{'ask': 25906.8, 'bid': 25905.2, 'lastTraded': None}",1304,"{'ask': 25886.8, 'bid': 25885.2, 'lastTraded': None}","{'ask': 25902.3, 'bid': 25900.7, 'lastTraded': None}",2019:03:30-02:10:00,25901.5,25886.0,25906.0,25886.5
29 | 27,"{'ask': 25889.8, 'bid': 25888.2, 'lastTraded': None}","{'ask': 25900.8, 'bid': 25899.2, 'lastTraded': None}",1346,"{'ask': 25880.8, 'bid': 25879.2, 'lastTraded': None}","{'ask': 25887.8, 'bid': 25886.2, 'lastTraded': None}",2019:03:30-02:15:00,25887.0,25880.0,25900.0,25889.0
30 | 28,"{'ask': 25874.8, 'bid': 25873.2, 'lastTraded': None}","{'ask': 25890.8, 'bid': 25889.2, 'lastTraded': None}",1506,"{'ask': 25874.8, 'bid': 25873.2, 'lastTraded': None}","{'ask': 25890.3, 'bid': 25888.7, 'lastTraded': None}",2019:03:30-02:20:00,25889.5,25874.0,25890.0,25874.0
31 | 29,"{'ask': 25878.3, 'bid': 25876.7, 'lastTraded': None}","{'ask': 25884.8, 'bid': 25883.2, 'lastTraded': None}",2342,"{'ask': 25861.8, 'bid': 25860.2, 'lastTraded': None}","{'ask': 25875.8, 'bid': 25874.2, 'lastTraded': None}",2019:03:30-02:25:00,25875.0,25861.0,25884.0,25877.5
32 | 30,"{'ask': 25891.8, 'bid': 25890.2, 'lastTraded': None}","{'ask': 25893.8, 'bid': 25892.2, 'lastTraded': None}",1726,"{'ask': 25866.8, 'bid': 25865.2, 'lastTraded': None}","{'ask': 25878.8, 'bid': 25877.2, 'lastTraded': None}",2019:03:30-02:30:00,25878.0,25866.0,25893.0,25891.0
33 | 31,"{'ask': 25893.3, 'bid': 25891.7, 'lastTraded': None}","{'ask': 25895.8, 'bid': 25894.2, 'lastTraded': None}",1153,"{'ask': 25878.8, 'bid': 25877.2, 'lastTraded': None}","{'ask': 25892.3, 'bid': 25890.7, 'lastTraded': None}",2019:03:30-02:35:00,25891.5,25878.0,25895.0,25892.5
34 | 32,"{'ask': 25893.8, 'bid': 25892.2, 'lastTraded': None}","{'ask': 25898.8, 'bid': 25897.2, 'lastTraded': None}",1535,"{'ask': 25885.3, 'bid': 25883.7, 'lastTraded': None}","{'ask': 25892.8, 'bid': 25891.2, 'lastTraded': None}",2019:03:30-02:40:00,25892.0,25884.5,25898.0,25893.0
35 | 33,"{'ask': 25887.8, 'bid': 25886.2, 'lastTraded': None}","{'ask': 25912.3, 'bid': 25910.7, 'lastTraded': None}",2020,"{'ask': 25881.8, 'bid': 25880.2, 'lastTraded': None}","{'ask': 25894.3, 'bid': 25892.7, 'lastTraded': None}",2019:03:30-02:45:00,25893.5,25881.0,25911.5,25887.0
36 | 34,"{'ask': 25887.8, 'bid': 25886.2, 'lastTraded': None}","{'ask': 25909.8, 'bid': 25908.2, 'lastTraded': None}",3344,"{'ask': 25873.8, 'bid': 25872.2, 'lastTraded': None}","{'ask': 25886.8, 'bid': 25885.2, 'lastTraded': None}",2019:03:30-02:50:00,25886.0,25873.0,25909.0,25887.0
37 | 35,"{'ask': 25927.3, 'bid': 25925.7, 'lastTraded': None}","{'ask': 25948.8, 'bid': 25947.2, 'lastTraded': None}",8722,"{'ask': 25891.8, 'bid': 25890.2, 'lastTraded': None}","{'ask': 25891.8, 'bid': 25890.2, 'lastTraded': None}",2019:03:30-02:55:00,25891.0,25891.0,25948.0,25926.5
38 | 36,"{'ask': 25933.9, 'bid': 25930.1, 'lastTraded': None}","{'ask': 25937.9, 'bid': 25934.1, 'lastTraded': None}",3552,"{'ask': 25908.9, 'bid': 25905.1, 'lastTraded': None}","{'ask': 25928.8, 'bid': 25927.2, 'lastTraded': None}",2019:03:30-03:00:00,25928.0,25907.0,25936.0,25932.0
39 | 37,"{'ask': 25933.9, 'bid': 25930.1, 'lastTraded': None}","{'ask': 25939.9, 'bid': 25936.1, 'lastTraded': None}",693,"{'ask': 25930.9, 'bid': 25927.1, 'lastTraded': None}","{'ask': 25934.4, 'bid': 25930.6, 'lastTraded': None}",2019:03:30-03:05:00,25932.5,25929.0,25938.0,25932.0
40 | 38,"{'ask': 25940.5, 'bid': 25930.7, 'lastTraded': None}","{'ask': 25940.5, 'bid': 25936.1, 'lastTraded': None}",502,"{'ask': 25932.4, 'bid': 25928.6, 'lastTraded': None}","{'ask': 25933.4, 'bid': 25929.6, 'lastTraded': None}",2019:03:30-03:10:00,25931.5,25930.5,25938.3,25935.6
41 | 39,"{'ask': 25941.9, 'bid': 25932.1, 'lastTraded': None}","{'ask': 25943.6, 'bid': 25933.8, 'lastTraded': None}",0,"{'ask': 25936.0, 'bid': 25926.2, 'lastTraded': None}","{'ask': 25940.6, 'bid': 25930.8, 'lastTraded': None}",2019:03:30-03:15:00,25935.7,25931.1,25938.7,25937.0
42 | 40,"{'ask': 25941.8, 'bid': 25932.0, 'lastTraded': None}","{'ask': 25941.9, 'bid': 25932.1, 'lastTraded': None}",0,"{'ask': 25941.6, 'bid': 25931.8, 'lastTraded': None}","{'ask': 25941.8, 'bid': 25932.0, 'lastTraded': None}",2019:03:30-03:20:00,25936.9,25936.7,25937.0,25936.9
43 | 41,"{'ask': 25949.2, 'bid': 25939.4, 'lastTraded': None}","{'ask': 25949.4, 'bid': 25939.6, 'lastTraded': None}",0,"{'ask': 25941.9, 'bid': 25932.1, 'lastTraded': None}","{'ask': 25941.9, 'bid': 25932.1, 'lastTraded': None}",2019:03:30-03:25:00,25937.0,25937.0,25944.5,25944.3
44 | 42,"{'ask': 25946.9, 'bid': 25943.1, 'lastTraded': None}","{'ask': 25948.9, 'bid': 25945.1, 'lastTraded': None}",217,"{'ask': 25940.4, 'bid': 25936.6, 'lastTraded': None}","{'ask': 25940.4, 'bid': 25936.6, 'lastTraded': None}",2019:03:30-03:30:00,25938.5,25938.5,25947.0,25945.0
45 | 43,"{'ask': 25947.9, 'bid': 25944.1, 'lastTraded': None}","{'ask': 25948.9, 'bid': 25945.1, 'lastTraded': None}",62,"{'ask': 25945.9, 'bid': 25942.1, 'lastTraded': None}","{'ask': 25946.4, 'bid': 25942.6, 'lastTraded': None}",2019:03:30-03:35:00,25944.5,25944.0,25947.0,25946.0
46 | 44,"{'ask': 25951.9, 'bid': 25948.1, 'lastTraded': None}","{'ask': 25951.9, 'bid': 25948.1, 'lastTraded': None}",121,"{'ask': 25946.4, 'bid': 25942.6, 'lastTraded': None}","{'ask': 25947.4, 'bid': 25943.6, 'lastTraded': None}",2019:03:30-03:40:00,25945.5,25944.5,25950.0,25950.0
47 | 45,"{'ask': 25954.4, 'bid': 25950.6, 'lastTraded': None}","{'ask': 25954.4, 'bid': 25950.6, 'lastTraded': None}",43,"{'ask': 25950.9, 'bid': 25947.1, 'lastTraded': None}","{'ask': 25950.9, 'bid': 25947.1, 'lastTraded': None}",2019:03:30-03:45:00,25949.0,25949.0,25952.5,25952.5
48 | 46,"{'ask': 25951.4, 'bid': 25947.6, 'lastTraded': None}","{'ask': 25956.4, 'bid': 25952.6, 'lastTraded': None}",140,"{'ask': 25951.4, 'bid': 25947.6, 'lastTraded': None}","{'ask': 25954.9, 'bid': 25951.1, 'lastTraded': None}",2019:03:30-03:50:00,25953.0,25949.5,25954.5,25949.5
49 | 47,"{'ask': 25952.5, 'bid': 25942.7, 'lastTraded': None}","{'ask': 25955.9, 'bid': 25952.1, 'lastTraded': None}",257,"{'ask': 25940.9, 'bid': 25937.1, 'lastTraded': None}","{'ask': 25951.9, 'bid': 25948.1, 'lastTraded': None}",2019:03:30-03:55:00,25950.0,25939.0,25954.0,25947.6
50 |
--------------------------------------------------------------------------------
/data/2019-04-06.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'lastTraded': None, 'ask': 26411.0, 'bid': 26409.4}","{'lastTraded': None, 'ask': 26413.0, 'bid': 26411.4}",899,"{'lastTraded': None, 'ask': 26401.0, 'bid': 26399.4}","{'lastTraded': None, 'ask': 26404.5, 'bid': 26402.9}",2019:04:06-00:00:00,26403.7,26400.2,26412.2,26410.2
3 | 1,"{'lastTraded': None, 'ask': 26426.5, 'bid': 26424.9}","{'lastTraded': None, 'ask': 26428.0, 'bid': 26426.4}",1369,"{'lastTraded': None, 'ask': 26410.0, 'bid': 26408.4}","{'lastTraded': None, 'ask': 26412.0, 'bid': 26410.4}",2019:04:06-00:05:00,26411.2,26409.2,26427.2,26425.7
4 | 2,"{'lastTraded': None, 'ask': 26420.0, 'bid': 26418.4}","{'lastTraded': None, 'ask': 26428.0, 'bid': 26426.4}",574,"{'lastTraded': None, 'ask': 26419.0, 'bid': 26417.4}","{'lastTraded': None, 'ask': 26427.0, 'bid': 26425.4}",2019:04:06-00:10:00,26426.2,26418.2,26427.2,26419.2
5 | 3,"{'lastTraded': None, 'ask': 26421.0, 'bid': 26419.4}","{'lastTraded': None, 'ask': 26426.0, 'bid': 26424.4}",604,"{'lastTraded': None, 'ask': 26416.0, 'bid': 26414.4}","{'lastTraded': None, 'ask': 26420.5, 'bid': 26418.9}",2019:04:06-00:15:00,26419.7,26415.2,26425.2,26420.2
6 | 4,"{'lastTraded': None, 'ask': 26420.0, 'bid': 26418.4}","{'lastTraded': None, 'ask': 26425.0, 'bid': 26423.4}",713,"{'lastTraded': None, 'ask': 26414.0, 'bid': 26412.4}","{'lastTraded': None, 'ask': 26422.0, 'bid': 26420.4}",2019:04:06-00:20:00,26421.2,26413.2,26424.2,26419.2
7 | 5,"{'lastTraded': None, 'ask': 26416.5, 'bid': 26414.9}","{'lastTraded': None, 'ask': 26421.5, 'bid': 26419.9}",329,"{'lastTraded': None, 'ask': 26415.0, 'bid': 26413.4}","{'lastTraded': None, 'ask': 26419.5, 'bid': 26417.9}",2019:04:06-00:25:00,26418.7,26414.2,26420.7,26415.7
8 | 6,"{'lastTraded': None, 'ask': 26412.5, 'bid': 26410.9}","{'lastTraded': None, 'ask': 26421.0, 'bid': 26419.4}",459,"{'lastTraded': None, 'ask': 26410.0, 'bid': 26408.4}","{'lastTraded': None, 'ask': 26417.0, 'bid': 26415.4}",2019:04:06-00:30:00,26416.2,26409.2,26420.2,26411.7
9 | 7,"{'lastTraded': None, 'ask': 26382.0, 'bid': 26380.4}","{'lastTraded': None, 'ask': 26412.0, 'bid': 26410.4}",1825,"{'lastTraded': None, 'ask': 26379.0, 'bid': 26377.4}","{'lastTraded': None, 'ask': 26412.0, 'bid': 26410.4}",2019:04:06-00:35:00,26411.2,26378.2,26411.2,26381.2
10 | 8,"{'lastTraded': None, 'ask': 26381.0, 'bid': 26379.4}","{'lastTraded': None, 'ask': 26383.0, 'bid': 26381.4}",1751,"{'lastTraded': None, 'ask': 26365.0, 'bid': 26363.4}","{'lastTraded': None, 'ask': 26382.5, 'bid': 26380.9}",2019:04:06-00:40:00,26381.7,26364.2,26382.2,26380.2
11 | 9,"{'lastTraded': None, 'ask': 26397.0, 'bid': 26395.4}","{'lastTraded': None, 'ask': 26397.0, 'bid': 26395.4}",1056,"{'lastTraded': None, 'ask': 26379.5, 'bid': 26377.9}","{'lastTraded': None, 'ask': 26380.5, 'bid': 26378.9}",2019:04:06-00:45:00,26379.7,26378.7,26396.2,26396.2
12 | 10,"{'lastTraded': None, 'ask': 26390.5, 'bid': 26388.9}","{'lastTraded': None, 'ask': 26399.0, 'bid': 26397.4}",746,"{'lastTraded': None, 'ask': 26388.0, 'bid': 26386.4}","{'lastTraded': None, 'ask': 26398.0, 'bid': 26396.4}",2019:04:06-00:50:00,26397.2,26387.2,26398.2,26389.7
13 | 11,"{'lastTraded': None, 'ask': 26404.0, 'bid': 26402.4}","{'lastTraded': None, 'ask': 26405.0, 'bid': 26403.4}",645,"{'lastTraded': None, 'ask': 26389.0, 'bid': 26387.4}","{'lastTraded': None, 'ask': 26391.0, 'bid': 26389.4}",2019:04:06-00:55:00,26390.2,26388.2,26404.2,26403.2
14 | 12,"{'lastTraded': None, 'ask': 26401.0, 'bid': 26399.4}","{'lastTraded': None, 'ask': 26412.5, 'bid': 26410.9}",883,"{'lastTraded': None, 'ask': 26400.5, 'bid': 26398.9}","{'lastTraded': None, 'ask': 26404.5, 'bid': 26402.9}",2019:04:06-01:00:00,26403.7,26399.7,26411.7,26400.2
15 | 13,"{'lastTraded': None, 'ask': 26407.5, 'bid': 26405.9}","{'lastTraded': None, 'ask': 26409.0, 'bid': 26407.4}",762,"{'lastTraded': None, 'ask': 26394.0, 'bid': 26392.4}","{'lastTraded': None, 'ask': 26400.5, 'bid': 26398.9}",2019:04:06-01:05:00,26399.7,26393.2,26408.2,26406.7
16 | 14,"{'lastTraded': None, 'ask': 26408.5, 'bid': 26406.9}","{'lastTraded': None, 'ask': 26411.0, 'bid': 26409.4}",503,"{'lastTraded': None, 'ask': 26401.0, 'bid': 26399.4}","{'lastTraded': None, 'ask': 26408.0, 'bid': 26406.4}",2019:04:06-01:10:00,26407.2,26400.2,26410.2,26407.7
17 | 15,"{'lastTraded': None, 'ask': 26407.0, 'bid': 26405.4}","{'lastTraded': None, 'ask': 26413.0, 'bid': 26411.4}",492,"{'lastTraded': None, 'ask': 26403.0, 'bid': 26401.4}","{'lastTraded': None, 'ask': 26409.0, 'bid': 26407.4}",2019:04:06-01:15:00,26408.2,26402.2,26412.2,26406.2
18 | 16,"{'lastTraded': None, 'ask': 26407.0, 'bid': 26405.4}","{'lastTraded': None, 'ask': 26411.5, 'bid': 26409.9}",433,"{'lastTraded': None, 'ask': 26402.0, 'bid': 26400.4}","{'lastTraded': None, 'ask': 26407.5, 'bid': 26405.9}",2019:04:06-01:20:00,26406.7,26401.2,26410.7,26406.2
19 | 17,"{'lastTraded': None, 'ask': 26404.0, 'bid': 26402.4}","{'lastTraded': None, 'ask': 26410.5, 'bid': 26408.9}",555,"{'lastTraded': None, 'ask': 26403.0, 'bid': 26401.4}","{'lastTraded': None, 'ask': 26405.5, 'bid': 26403.9}",2019:04:06-01:25:00,26404.7,26402.2,26409.7,26403.2
20 | 18,"{'lastTraded': None, 'ask': 26401.0, 'bid': 26399.4}","{'lastTraded': None, 'ask': 26405.5, 'bid': 26403.9}",544,"{'lastTraded': None, 'ask': 26395.0, 'bid': 26393.4}","{'lastTraded': None, 'ask': 26403.5, 'bid': 26401.9}",2019:04:06-01:30:00,26402.7,26394.2,26404.7,26400.2
21 | 19,"{'lastTraded': None, 'ask': 26401.0, 'bid': 26399.4}","{'lastTraded': None, 'ask': 26406.0, 'bid': 26404.4}",686,"{'lastTraded': None, 'ask': 26397.0, 'bid': 26395.4}","{'lastTraded': None, 'ask': 26401.5, 'bid': 26399.9}",2019:04:06-01:35:00,26400.7,26396.2,26405.2,26400.2
22 | 20,"{'lastTraded': None, 'ask': 26404.5, 'bid': 26402.9}","{'lastTraded': None, 'ask': 26408.0, 'bid': 26406.4}",477,"{'lastTraded': None, 'ask': 26398.0, 'bid': 26396.4}","{'lastTraded': None, 'ask': 26400.5, 'bid': 26398.9}",2019:04:06-01:40:00,26399.7,26397.2,26407.2,26403.7
23 | 21,"{'lastTraded': None, 'ask': 26412.5, 'bid': 26410.9}","{'lastTraded': None, 'ask': 26413.0, 'bid': 26411.4}",747,"{'lastTraded': None, 'ask': 26395.0, 'bid': 26393.4}","{'lastTraded': None, 'ask': 26405.0, 'bid': 26403.4}",2019:04:06-01:45:00,26404.2,26394.2,26412.2,26411.7
24 | 22,"{'lastTraded': None, 'ask': 26409.5, 'bid': 26407.9}","{'lastTraded': None, 'ask': 26413.0, 'bid': 26411.4}",519,"{'lastTraded': None, 'ask': 26408.0, 'bid': 26406.4}","{'lastTraded': None, 'ask': 26413.0, 'bid': 26411.4}",2019:04:06-01:50:00,26412.2,26407.2,26412.2,26408.7
25 | 23,"{'lastTraded': None, 'ask': 26418.8, 'bid': 26417.2}","{'lastTraded': None, 'ask': 26419.8, 'bid': 26418.2}",867,"{'lastTraded': None, 'ask': 26404.0, 'bid': 26402.4}","{'lastTraded': None, 'ask': 26409.0, 'bid': 26407.4}",2019:04:06-01:55:00,26408.2,26403.2,26419.0,26418.0
26 | 24,"{'lastTraded': None, 'ask': 26420.8, 'bid': 26419.2}","{'lastTraded': None, 'ask': 26424.8, 'bid': 26423.2}",896,"{'lastTraded': None, 'ask': 26414.3, 'bid': 26412.7}","{'lastTraded': None, 'ask': 26418.3, 'bid': 26416.7}",2019:04:06-02:00:00,26417.5,26413.5,26424.0,26420.0
27 | 25,"{'lastTraded': None, 'ask': 26425.3, 'bid': 26423.7}","{'lastTraded': None, 'ask': 26426.8, 'bid': 26425.2}",699,"{'lastTraded': None, 'ask': 26416.8, 'bid': 26415.2}","{'lastTraded': None, 'ask': 26421.3, 'bid': 26419.7}",2019:04:06-02:05:00,26420.5,26416.0,26426.0,26424.5
28 | 26,"{'lastTraded': None, 'ask': 26419.3, 'bid': 26417.7}","{'lastTraded': None, 'ask': 26426.3, 'bid': 26424.7}",432,"{'lastTraded': None, 'ask': 26418.8, 'bid': 26417.2}","{'lastTraded': None, 'ask': 26425.8, 'bid': 26424.2}",2019:04:06-02:10:00,26425.0,26418.0,26425.5,26418.5
29 | 27,"{'lastTraded': None, 'ask': 26413.8, 'bid': 26412.2}","{'lastTraded': None, 'ask': 26425.8, 'bid': 26424.2}",987,"{'lastTraded': None, 'ask': 26409.8, 'bid': 26408.2}","{'lastTraded': None, 'ask': 26418.8, 'bid': 26417.2}",2019:04:06-02:15:00,26418.0,26409.0,26425.0,26413.0
30 | 28,"{'lastTraded': None, 'ask': 26405.8, 'bid': 26404.2}","{'lastTraded': None, 'ask': 26414.3, 'bid': 26412.7}",1067,"{'lastTraded': None, 'ask': 26399.8, 'bid': 26398.2}","{'lastTraded': None, 'ask': 26414.3, 'bid': 26412.7}",2019:04:06-02:20:00,26413.5,26399.0,26413.5,26405.0
31 | 29,"{'lastTraded': None, 'ask': 26406.3, 'bid': 26404.7}","{'lastTraded': None, 'ask': 26410.8, 'bid': 26409.2}",584,"{'lastTraded': None, 'ask': 26401.8, 'bid': 26400.2}","{'lastTraded': None, 'ask': 26406.3, 'bid': 26404.7}",2019:04:06-02:25:00,26405.5,26401.0,26410.0,26405.5
32 | 30,"{'lastTraded': None, 'ask': 26404.3, 'bid': 26402.7}","{'lastTraded': None, 'ask': 26410.8, 'bid': 26409.2}",685,"{'lastTraded': None, 'ask': 26400.8, 'bid': 26399.2}","{'lastTraded': None, 'ask': 26405.8, 'bid': 26404.2}",2019:04:06-02:30:00,26405.0,26400.0,26410.0,26403.5
33 | 31,"{'lastTraded': None, 'ask': 26408.8, 'bid': 26407.2}","{'lastTraded': None, 'ask': 26409.8, 'bid': 26408.2}",661,"{'lastTraded': None, 'ask': 26399.8, 'bid': 26398.2}","{'lastTraded': None, 'ask': 26404.8, 'bid': 26403.2}",2019:04:06-02:35:00,26404.0,26399.0,26409.0,26408.0
34 | 32,"{'lastTraded': None, 'ask': 26404.8, 'bid': 26403.2}","{'lastTraded': None, 'ask': 26409.8, 'bid': 26408.2}",672,"{'lastTraded': None, 'ask': 26400.8, 'bid': 26399.2}","{'lastTraded': None, 'ask': 26409.3, 'bid': 26407.7}",2019:04:06-02:40:00,26408.5,26400.0,26409.0,26404.0
35 | 33,"{'lastTraded': None, 'ask': 26406.3, 'bid': 26404.7}","{'lastTraded': None, 'ask': 26407.8, 'bid': 26406.2}",714,"{'lastTraded': None, 'ask': 26398.8, 'bid': 26397.2}","{'lastTraded': None, 'ask': 26404.3, 'bid': 26402.7}",2019:04:06-02:45:00,26403.5,26398.0,26407.0,26405.5
36 | 34,"{'lastTraded': None, 'ask': 26406.8, 'bid': 26405.2}","{'lastTraded': None, 'ask': 26407.8, 'bid': 26406.2}",395,"{'lastTraded': None, 'ask': 26397.8, 'bid': 26396.2}","{'lastTraded': None, 'ask': 26405.8, 'bid': 26404.2}",2019:04:06-02:50:00,26405.0,26397.0,26407.0,26406.0
37 | 35,"{'lastTraded': None, 'ask': 26409.8, 'bid': 26408.2}","{'lastTraded': None, 'ask': 26412.8, 'bid': 26411.2}",576,"{'lastTraded': None, 'ask': 26405.8, 'bid': 26404.2}","{'lastTraded': None, 'ask': 26406.3, 'bid': 26404.7}",2019:04:06-02:55:00,26405.5,26405.0,26412.0,26409.0
38 | 36,"{'lastTraded': None, 'ask': 26410.8, 'bid': 26409.2}","{'lastTraded': None, 'ask': 26414.8, 'bid': 26413.2}",560,"{'lastTraded': None, 'ask': 26406.8, 'bid': 26405.2}","{'lastTraded': None, 'ask': 26409.3, 'bid': 26407.7}",2019:04:06-03:00:00,26408.5,26406.0,26414.0,26410.0
39 | 37,"{'lastTraded': None, 'ask': 26404.3, 'bid': 26402.7}","{'lastTraded': None, 'ask': 26412.8, 'bid': 26411.2}",851,"{'lastTraded': None, 'ask': 26399.8, 'bid': 26398.2}","{'lastTraded': None, 'ask': 26411.8, 'bid': 26410.2}",2019:04:06-03:05:00,26411.0,26399.0,26412.0,26403.5
40 | 38,"{'lastTraded': None, 'ask': 26402.8, 'bid': 26401.2}","{'lastTraded': None, 'ask': 26405.3, 'bid': 26403.7}",1169,"{'lastTraded': None, 'ask': 26393.8, 'bid': 26392.2}","{'lastTraded': None, 'ask': 26404.8, 'bid': 26403.2}",2019:04:06-03:10:00,26404.0,26393.0,26404.5,26402.0
41 | 39,"{'lastTraded': None, 'ask': 26408.8, 'bid': 26407.2}","{'lastTraded': None, 'ask': 26408.8, 'bid': 26407.2}",783,"{'lastTraded': None, 'ask': 26396.8, 'bid': 26395.2}","{'lastTraded': None, 'ask': 26402.3, 'bid': 26400.7}",2019:04:06-03:15:00,26401.5,26396.0,26408.0,26408.0
42 | 40,"{'lastTraded': None, 'ask': 26427.8, 'bid': 26426.2}","{'lastTraded': None, 'ask': 26431.8, 'bid': 26430.2}",1495,"{'lastTraded': None, 'ask': 26408.8, 'bid': 26407.2}","{'lastTraded': None, 'ask': 26409.8, 'bid': 26408.2}",2019:04:06-03:20:00,26409.0,26408.0,26431.0,26427.0
43 | 41,"{'lastTraded': None, 'ask': 26431.3, 'bid': 26429.7}","{'lastTraded': None, 'ask': 26436.8, 'bid': 26435.2}",1016,"{'lastTraded': None, 'ask': 26425.8, 'bid': 26424.2}","{'lastTraded': None, 'ask': 26428.3, 'bid': 26426.7}",2019:04:06-03:25:00,26427.5,26425.0,26436.0,26430.5
44 | 42,"{'lastTraded': None, 'ask': 26441.8, 'bid': 26440.2}","{'lastTraded': None, 'ask': 26442.3, 'bid': 26440.7}",1380,"{'lastTraded': None, 'ask': 26425.8, 'bid': 26424.2}","{'lastTraded': None, 'ask': 26430.8, 'bid': 26429.2}",2019:04:06-03:30:00,26430.0,26425.0,26441.5,26441.0
45 | 43,"{'lastTraded': None, 'ask': 26436.3, 'bid': 26434.7}","{'lastTraded': None, 'ask': 26443.3, 'bid': 26441.7}",736,"{'lastTraded': None, 'ask': 26429.8, 'bid': 26428.2}","{'lastTraded': None, 'ask': 26442.3, 'bid': 26440.7}",2019:04:06-03:35:00,26441.5,26429.0,26442.5,26435.5
46 | 44,"{'lastTraded': None, 'ask': 26426.8, 'bid': 26425.2}","{'lastTraded': None, 'ask': 26438.8, 'bid': 26437.2}",803,"{'lastTraded': None, 'ask': 26425.8, 'bid': 26424.2}","{'lastTraded': None, 'ask': 26436.8, 'bid': 26435.2}",2019:04:06-03:40:00,26436.0,26425.0,26438.0,26426.0
47 | 45,"{'lastTraded': None, 'ask': 26415.3, 'bid': 26413.7}","{'lastTraded': None, 'ask': 26427.3, 'bid': 26425.7}",1384,"{'lastTraded': None, 'ask': 26413.8, 'bid': 26412.2}","{'lastTraded': None, 'ask': 26427.3, 'bid': 26425.7}",2019:04:06-03:45:00,26426.5,26413.0,26426.5,26414.5
48 | 46,"{'lastTraded': None, 'ask': 26402.8, 'bid': 26401.2}","{'lastTraded': None, 'ask': 26416.8, 'bid': 26415.2}",1751,"{'lastTraded': None, 'ask': 26395.8, 'bid': 26394.2}","{'lastTraded': None, 'ask': 26415.8, 'bid': 26414.2}",2019:04:06-03:50:00,26415.0,26395.0,26416.0,26402.0
49 | 47,"{'lastTraded': None, 'ask': 26421.8, 'bid': 26420.2}","{'lastTraded': None, 'ask': 26430.8, 'bid': 26429.2}",3020,"{'lastTraded': None, 'ask': 26403.8, 'bid': 26402.2}","{'lastTraded': None, 'ask': 26404.8, 'bid': 26403.2}",2019:04:06-03:55:00,26404.0,26403.0,26430.0,26421.0
50 | 48,"{'lastTraded': None, 'ask': 26406.9, 'bid': 26403.1}","{'lastTraded': None, 'ask': 26429.9, 'bid': 26426.1}",2791,"{'lastTraded': None, 'ask': 26401.4, 'bid': 26397.6}","{'lastTraded': None, 'ask': 26422.9, 'bid': 26419.1}",2019:04:06-04:00:00,26421.0,26399.5,26428.0,26405.0
51 | 49,"{'lastTraded': None, 'ask': 26404.9, 'bid': 26401.1}","{'lastTraded': None, 'ask': 26412.9, 'bid': 26409.1}",611,"{'lastTraded': None, 'ask': 26404.9, 'bid': 26401.1}","{'lastTraded': None, 'ask': 26406.4, 'bid': 26402.6}",2019:04:06-04:05:00,26404.5,26403.0,26411.0,26403.0
52 | 50,"{'lastTraded': None, 'ask': 26394.6, 'bid': 26384.8}","{'lastTraded': None, 'ask': 26404.9, 'bid': 26401.1}",819,"{'lastTraded': None, 'ask': 26378.9, 'bid': 26375.1}","{'lastTraded': None, 'ask': 26404.4, 'bid': 26400.6}",2019:04:06-04:10:00,26402.5,26377.0,26403.0,26389.7
53 | 51,"{'lastTraded': None, 'ask': 26427.9, 'bid': 26418.1}","{'lastTraded': None, 'ask': 26428.8, 'bid': 26419.0}",3,"{'lastTraded': None, 'ask': 26390.0, 'bid': 26380.2}","{'lastTraded': None, 'ask': 26394.4, 'bid': 26384.6}",2019:04:06-04:15:00,26389.5,26385.1,26423.9,26423.0
54 | 52,"{'lastTraded': None, 'ask': 26424.8, 'bid': 26415.0}","{'lastTraded': None, 'ask': 26427.8, 'bid': 26418.0}",0,"{'lastTraded': None, 'ask': 26424.3, 'bid': 26414.5}","{'lastTraded': None, 'ask': 26427.7, 'bid': 26417.9}",2019:04:06-04:20:00,26422.8,26419.4,26422.9,26419.9
55 | 53,"{'lastTraded': None, 'ask': 26423.4, 'bid': 26413.6}","{'lastTraded': None, 'ask': 26424.8, 'bid': 26415.0}",0,"{'lastTraded': None, 'ask': 26423.1, 'bid': 26413.3}","{'lastTraded': None, 'ask': 26424.5, 'bid': 26414.7}",2019:04:06-04:25:00,26419.6,26418.2,26419.9,26418.5
56 | 54,"{'lastTraded': None, 'ask': 26388.4, 'bid': 26384.6}","{'lastTraded': None, 'ask': 26390.4, 'bid': 26386.6}",194,"{'lastTraded': None, 'ask': 26384.4, 'bid': 26380.6}","{'lastTraded': None, 'ask': 26384.4, 'bid': 26380.6}",2019:04:06-04:30:00,26382.5,26382.5,26388.5,26386.5
57 | 55,"{'lastTraded': None, 'ask': 26385.4, 'bid': 26381.6}","{'lastTraded': None, 'ask': 26389.4, 'bid': 26385.6}",76,"{'lastTraded': None, 'ask': 26384.4, 'bid': 26380.6}","{'lastTraded': None, 'ask': 26387.4, 'bid': 26383.6}",2019:04:06-04:35:00,26385.5,26382.5,26387.5,26383.5
58 | 56,"{'lastTraded': None, 'ask': 26389.4, 'bid': 26385.6}","{'lastTraded': None, 'ask': 26390.4, 'bid': 26386.6}",71,"{'lastTraded': None, 'ask': 26385.4, 'bid': 26381.6}","{'lastTraded': None, 'ask': 26386.4, 'bid': 26382.6}",2019:04:06-04:40:00,26384.5,26383.5,26388.5,26387.5
59 | 57,"{'lastTraded': None, 'ask': 26388.4, 'bid': 26384.6}","{'lastTraded': None, 'ask': 26389.4, 'bid': 26385.6}",49,"{'lastTraded': None, 'ask': 26385.4, 'bid': 26381.6}","{'lastTraded': None, 'ask': 26386.4, 'bid': 26382.6}",2019:04:06-04:45:00,26384.5,26383.5,26387.5,26386.5
60 | 58,"{'lastTraded': None, 'ask': 26389.4, 'bid': 26385.6}","{'lastTraded': None, 'ask': 26392.4, 'bid': 26388.6}",114,"{'lastTraded': None, 'ask': 26386.4, 'bid': 26382.6}","{'lastTraded': None, 'ask': 26386.4, 'bid': 26382.6}",2019:04:06-04:50:00,26384.5,26384.5,26390.5,26387.5
61 | 59,"{'lastTraded': None, 'ask': 26375.8, 'bid': 26366.0}","{'lastTraded': None, 'ask': 26389.4, 'bid': 26385.6}",218,"{'lastTraded': None, 'ask': 26368.4, 'bid': 26363.3}","{'lastTraded': None, 'ask': 26387.4, 'bid': 26383.6}",2019:04:06-04:55:00,26385.5,26365.85,26387.5,26370.9
62 |
--------------------------------------------------------------------------------
/data/2019-04-13.csv:
--------------------------------------------------------------------------------
1 | ,closePrice,highPrice,lastTradedVolume,lowPrice,openPrice,snapshotTime,averageOpen,averageLow,averageHigh,averageClose
2 | 0,"{'lastTraded': None, 'bid': 26342.2, 'ask': 26343.8}","{'lastTraded': None, 'bid': 26351.7, 'ask': 26353.3}",994,"{'lastTraded': None, 'bid': 26334.7, 'ask': 26336.3}","{'lastTraded': None, 'bid': 26350.7, 'ask': 26352.3}",2019:04:13-00:00:00,26351.5,26335.5,26352.5,26343.0
3 | 1,"{'lastTraded': None, 'bid': 26357.2, 'ask': 26358.8}","{'lastTraded': None, 'bid': 26357.7, 'ask': 26359.3}",1071,"{'lastTraded': None, 'bid': 26341.7, 'ask': 26343.3}","{'lastTraded': None, 'bid': 26342.7, 'ask': 26344.3}",2019:04:13-00:05:00,26343.5,26342.5,26358.5,26358.0
4 | 2,"{'lastTraded': None, 'bid': 26358.7, 'ask': 26360.3}","{'lastTraded': None, 'bid': 26360.7, 'ask': 26362.3}",639,"{'lastTraded': None, 'bid': 26353.7, 'ask': 26355.3}","{'lastTraded': None, 'bid': 26356.7, 'ask': 26358.3}",2019:04:13-00:10:00,26357.5,26354.5,26361.5,26359.5
5 | 3,"{'lastTraded': None, 'bid': 26370.2, 'ask': 26371.8}","{'lastTraded': None, 'bid': 26374.7, 'ask': 26376.3}",1455,"{'lastTraded': None, 'bid': 26359.7, 'ask': 26361.3}","{'lastTraded': None, 'bid': 26359.7, 'ask': 26361.3}",2019:04:13-00:15:00,26360.5,26360.5,26375.5,26371.0
6 | 4,"{'lastTraded': None, 'bid': 26374.7, 'ask': 26376.3}","{'lastTraded': None, 'bid': 26376.7, 'ask': 26378.3}",793,"{'lastTraded': None, 'bid': 26367.2, 'ask': 26368.8}","{'lastTraded': None, 'bid': 26370.7, 'ask': 26372.3}",2019:04:13-00:20:00,26371.5,26368.0,26377.5,26375.5
7 | 5,"{'lastTraded': None, 'bid': 26374.2, 'ask': 26375.8}","{'lastTraded': None, 'bid': 26379.7, 'ask': 26381.3}",623,"{'lastTraded': None, 'bid': 26372.7, 'ask': 26374.3}","{'lastTraded': None, 'bid': 26373.7, 'ask': 26375.3}",2019:04:13-00:25:00,26374.5,26373.5,26380.5,26375.0
8 | 6,"{'lastTraded': None, 'bid': 26375.7, 'ask': 26377.3}","{'lastTraded': None, 'bid': 26375.7, 'ask': 26377.3}",607,"{'lastTraded': None, 'bid': 26370.7, 'ask': 26372.3}","{'lastTraded': None, 'bid': 26373.7, 'ask': 26375.3}",2019:04:13-00:30:00,26374.5,26371.5,26376.5,26376.5
9 | 7,"{'lastTraded': None, 'bid': 26375.7, 'ask': 26377.3}","{'lastTraded': None, 'bid': 26377.7, 'ask': 26379.3}",791,"{'lastTraded': None, 'bid': 26366.7, 'ask': 26368.3}","{'lastTraded': None, 'bid': 26375.2, 'ask': 26376.8}",2019:04:13-00:35:00,26376.0,26367.5,26378.5,26376.5
10 | 8,"{'lastTraded': None, 'bid': 26384.7, 'ask': 26386.3}","{'lastTraded': None, 'bid': 26386.7, 'ask': 26388.3}",778,"{'lastTraded': None, 'bid': 26374.7, 'ask': 26376.3}","{'lastTraded': None, 'bid': 26376.2, 'ask': 26377.8}",2019:04:13-00:40:00,26377.0,26375.5,26387.5,26385.5
11 | 9,"{'lastTraded': None, 'bid': 26379.2, 'ask': 26380.8}","{'lastTraded': None, 'bid': 26385.7, 'ask': 26387.3}",933,"{'lastTraded': None, 'bid': 26371.7, 'ask': 26373.3}","{'lastTraded': None, 'bid': 26385.2, 'ask': 26386.8}",2019:04:13-00:45:00,26386.0,26372.5,26386.5,26380.0
12 | 10,"{'lastTraded': None, 'bid': 26379.7, 'ask': 26381.3}","{'lastTraded': None, 'bid': 26383.2, 'ask': 26384.8}",516,"{'lastTraded': None, 'bid': 26374.2, 'ask': 26375.8}","{'lastTraded': None, 'bid': 26378.7, 'ask': 26380.3}",2019:04:13-00:50:00,26379.5,26375.0,26384.0,26380.5
13 | 11,"{'lastTraded': None, 'bid': 26391.2, 'ask': 26392.8}","{'lastTraded': None, 'bid': 26391.7, 'ask': 26393.3}",767,"{'lastTraded': None, 'bid': 26378.7, 'ask': 26380.3}","{'lastTraded': None, 'bid': 26378.7, 'ask': 26380.3}",2019:04:13-00:55:00,26379.5,26379.5,26392.5,26392.0
14 | 12,"{'lastTraded': None, 'bid': 26394.7, 'ask': 26396.3}","{'lastTraded': None, 'bid': 26396.7, 'ask': 26398.3}",915,"{'lastTraded': None, 'bid': 26390.7, 'ask': 26392.3}","{'lastTraded': None, 'bid': 26391.7, 'ask': 26393.3}",2019:04:13-01:00:00,26392.5,26391.5,26397.5,26395.5
15 | 13,"{'lastTraded': None, 'bid': 26389.7, 'ask': 26391.3}","{'lastTraded': None, 'bid': 26395.7, 'ask': 26397.3}",1008,"{'lastTraded': None, 'bid': 26388.7, 'ask': 26390.3}","{'lastTraded': None, 'bid': 26393.7, 'ask': 26395.3}",2019:04:13-01:05:00,26394.5,26389.5,26396.5,26390.5
16 | 14,"{'lastTraded': None, 'bid': 26391.7, 'ask': 26393.3}","{'lastTraded': None, 'bid': 26395.7, 'ask': 26397.3}",628,"{'lastTraded': None, 'bid': 26388.7, 'ask': 26390.3}","{'lastTraded': None, 'bid': 26388.7, 'ask': 26390.3}",2019:04:13-01:10:00,26389.5,26389.5,26396.5,26392.5
17 | 15,"{'lastTraded': None, 'bid': 26402.7, 'ask': 26404.3}","{'lastTraded': None, 'bid': 26404.2, 'ask': 26405.8}",622,"{'lastTraded': None, 'bid': 26390.2, 'ask': 26391.8}","{'lastTraded': None, 'bid': 26390.7, 'ask': 26392.3}",2019:04:13-01:15:00,26391.5,26391.0,26405.0,26403.5
18 | 16,"{'lastTraded': None, 'bid': 26396.7, 'ask': 26398.3}","{'lastTraded': None, 'bid': 26403.2, 'ask': 26404.8}",779,"{'lastTraded': None, 'bid': 26395.2, 'ask': 26396.8}","{'lastTraded': None, 'bid': 26402.2, 'ask': 26403.8}",2019:04:13-01:20:00,26403.0,26396.0,26404.0,26397.5
19 | 17,"{'lastTraded': None, 'bid': 26394.7, 'ask': 26396.3}","{'lastTraded': None, 'bid': 26400.7, 'ask': 26402.3}",467,"{'lastTraded': None, 'bid': 26394.2, 'ask': 26395.8}","{'lastTraded': None, 'bid': 26397.2, 'ask': 26398.8}",2019:04:13-01:25:00,26398.0,26395.0,26401.5,26395.5
20 | 18,"{'lastTraded': None, 'bid': 26388.7, 'ask': 26390.3}","{'lastTraded': None, 'bid': 26397.7, 'ask': 26399.3}",860,"{'lastTraded': None, 'bid': 26387.7, 'ask': 26389.3}","{'lastTraded': None, 'bid': 26395.2, 'ask': 26396.8}",2019:04:13-01:30:00,26396.0,26388.5,26398.5,26389.5
21 | 19,"{'lastTraded': None, 'bid': 26398.7, 'ask': 26400.3}","{'lastTraded': None, 'bid': 26400.7, 'ask': 26402.3}",750,"{'lastTraded': None, 'bid': 26389.7, 'ask': 26391.3}","{'lastTraded': None, 'bid': 26389.7, 'ask': 26391.3}",2019:04:13-01:35:00,26390.5,26390.5,26401.5,26399.5
22 | 20,"{'lastTraded': None, 'bid': 26398.2, 'ask': 26399.8}","{'lastTraded': None, 'bid': 26399.7, 'ask': 26401.3}",649,"{'lastTraded': None, 'bid': 26390.7, 'ask': 26392.3}","{'lastTraded': None, 'bid': 26399.2, 'ask': 26400.8}",2019:04:13-01:40:00,26400.0,26391.5,26400.5,26399.0
23 | 21,"{'lastTraded': None, 'bid': 26396.2, 'ask': 26397.8}","{'lastTraded': None, 'bid': 26399.7, 'ask': 26401.3}",1405,"{'lastTraded': None, 'bid': 26392.7, 'ask': 26394.3}","{'lastTraded': None, 'bid': 26397.7, 'ask': 26399.3}",2019:04:13-01:45:00,26398.5,26393.5,26400.5,26397.0
24 | 22,"{'lastTraded': None, 'bid': 26392.7, 'ask': 26394.3}","{'lastTraded': None, 'bid': 26397.2, 'ask': 26398.8}",953,"{'lastTraded': None, 'bid': 26391.7, 'ask': 26393.3}","{'lastTraded': None, 'bid': 26396.7, 'ask': 26398.3}",2019:04:13-01:50:00,26397.5,26392.5,26398.0,26393.5
25 | 23,"{'lastTraded': None, 'bid': 26394.7, 'ask': 26396.3}","{'lastTraded': None, 'bid': 26397.7, 'ask': 26399.3}",735,"{'lastTraded': None, 'bid': 26392.7, 'ask': 26394.3}","{'lastTraded': None, 'bid': 26393.7, 'ask': 26395.3}",2019:04:13-01:55:00,26394.5,26393.5,26398.5,26395.5
26 | 24,"{'lastTraded': None, 'bid': 26404.7, 'ask': 26406.3}","{'lastTraded': None, 'bid': 26410.7, 'ask': 26412.3}",1634,"{'lastTraded': None, 'bid': 26388.7, 'ask': 26390.3}","{'lastTraded': None, 'bid': 26393.7, 'ask': 26395.3}",2019:04:13-02:00:00,26394.5,26389.5,26411.5,26405.5
27 | 25,"{'lastTraded': None, 'bid': 26403.7, 'ask': 26405.3}","{'lastTraded': None, 'bid': 26409.7, 'ask': 26411.3}",873,"{'lastTraded': None, 'bid': 26401.7, 'ask': 26403.3}","{'lastTraded': None, 'bid': 26405.7, 'ask': 26407.3}",2019:04:13-02:05:00,26406.5,26402.5,26410.5,26404.5
28 | 26,"{'lastTraded': None, 'bid': 26401.7, 'ask': 26403.3}","{'lastTraded': None, 'bid': 26403.7, 'ask': 26405.3}",631,"{'lastTraded': None, 'bid': 26395.7, 'ask': 26397.3}","{'lastTraded': None, 'bid': 26402.7, 'ask': 26404.3}",2019:04:13-02:10:00,26403.5,26396.5,26404.5,26402.5
29 | 27,"{'lastTraded': None, 'bid': 26394.7, 'ask': 26396.3}","{'lastTraded': None, 'bid': 26402.7, 'ask': 26404.3}",989,"{'lastTraded': None, 'bid': 26392.7, 'ask': 26394.3}","{'lastTraded': None, 'bid': 26402.7, 'ask': 26404.3}",2019:04:13-02:15:00,26403.5,26393.5,26403.5,26395.5
30 | 28,"{'lastTraded': None, 'bid': 26392.2, 'ask': 26393.8}","{'lastTraded': None, 'bid': 26395.7, 'ask': 26397.3}",594,"{'lastTraded': None, 'bid': 26390.7, 'ask': 26392.3}","{'lastTraded': None, 'bid': 26393.7, 'ask': 26395.3}",2019:04:13-02:20:00,26394.5,26391.5,26396.5,26393.0
31 | 29,"{'lastTraded': None, 'bid': 26387.7, 'ask': 26389.3}","{'lastTraded': None, 'bid': 26391.7, 'ask': 26393.3}",911,"{'lastTraded': None, 'bid': 26380.2, 'ask': 26381.8}","{'lastTraded': None, 'bid': 26391.7, 'ask': 26393.3}",2019:04:13-02:25:00,26392.5,26381.0,26392.5,26388.5
32 | 30,"{'lastTraded': None, 'bid': 26383.7, 'ask': 26385.3}","{'lastTraded': None, 'bid': 26390.7, 'ask': 26392.3}",578,"{'lastTraded': None, 'bid': 26381.7, 'ask': 26383.3}","{'lastTraded': None, 'bid': 26386.7, 'ask': 26388.3}",2019:04:13-02:30:00,26387.5,26382.5,26391.5,26384.5
33 | 31,"{'lastTraded': None, 'bid': 26385.7, 'ask': 26387.3}","{'lastTraded': None, 'bid': 26387.7, 'ask': 26389.3}",561,"{'lastTraded': None, 'bid': 26380.7, 'ask': 26382.3}","{'lastTraded': None, 'bid': 26384.2, 'ask': 26385.8}",2019:04:13-02:35:00,26385.0,26381.5,26388.5,26386.5
34 | 32,"{'lastTraded': None, 'bid': 26378.7, 'ask': 26380.3}","{'lastTraded': None, 'bid': 26387.7, 'ask': 26389.3}",584,"{'lastTraded': None, 'bid': 26378.7, 'ask': 26380.3}","{'lastTraded': None, 'bid': 26385.2, 'ask': 26386.8}",2019:04:13-02:40:00,26386.0,26379.5,26388.5,26379.5
35 | 33,"{'lastTraded': None, 'bid': 26371.7, 'ask': 26373.3}","{'lastTraded': None, 'bid': 26382.2, 'ask': 26383.8}",1275,"{'lastTraded': None, 'bid': 26365.7, 'ask': 26367.3}","{'lastTraded': None, 'bid': 26377.7, 'ask': 26379.3}",2019:04:13-02:45:00,26378.5,26366.5,26383.0,26372.5
36 | 34,"{'lastTraded': None, 'bid': 26372.6, 'ask': 26374.2}","{'lastTraded': None, 'bid': 26373.7, 'ask': 26375.3}",1456,"{'lastTraded': None, 'bid': 26365.1, 'ask': 26366.7}","{'lastTraded': None, 'bid': 26371.2, 'ask': 26372.8}",2019:04:13-02:50:00,26372.0,26365.9,26374.5,26373.4
37 | 35,"{'lastTraded': None, 'bid': 26371.6, 'ask': 26373.2}","{'lastTraded': None, 'bid': 26377.6, 'ask': 26379.2}",890,"{'lastTraded': None, 'bid': 26369.6, 'ask': 26371.2}","{'lastTraded': None, 'bid': 26373.6, 'ask': 26375.2}",2019:04:13-02:55:00,26374.4,26370.4,26378.4,26372.4
38 | 36,"{'lastTraded': None, 'bid': 26380.6, 'ask': 26382.2}","{'lastTraded': None, 'bid': 26381.6, 'ask': 26383.2}",830,"{'lastTraded': None, 'bid': 26370.6, 'ask': 26372.2}","{'lastTraded': None, 'bid': 26372.6, 'ask': 26374.2}",2019:04:13-03:00:00,26373.4,26371.4,26382.4,26381.4
39 | 37,"{'lastTraded': None, 'bid': 26378.6, 'ask': 26380.2}","{'lastTraded': None, 'bid': 26380.6, 'ask': 26382.2}",854,"{'lastTraded': None, 'bid': 26371.6, 'ask': 26373.2}","{'lastTraded': None, 'bid': 26380.1, 'ask': 26381.7}",2019:04:13-03:05:00,26380.9,26372.4,26381.4,26379.4
40 | 38,"{'lastTraded': None, 'bid': 26384.6, 'ask': 26386.2}","{'lastTraded': None, 'bid': 26385.6, 'ask': 26387.2}",718,"{'lastTraded': None, 'bid': 26377.6, 'ask': 26379.2}","{'lastTraded': None, 'bid': 26378.1, 'ask': 26379.7}",2019:04:13-03:10:00,26378.9,26378.4,26386.4,26385.4
41 | 39,"{'lastTraded': None, 'bid': 26382.1, 'ask': 26383.7}","{'lastTraded': None, 'bid': 26388.6, 'ask': 26390.2}",776,"{'lastTraded': None, 'bid': 26380.6, 'ask': 26382.2}","{'lastTraded': None, 'bid': 26383.6, 'ask': 26385.2}",2019:04:13-03:15:00,26384.4,26381.4,26389.4,26382.9
42 | 40,"{'lastTraded': None, 'bid': 26375.6, 'ask': 26377.2}","{'lastTraded': None, 'bid': 26382.6, 'ask': 26384.2}",1109,"{'lastTraded': None, 'bid': 26367.6, 'ask': 26369.2}","{'lastTraded': None, 'bid': 26382.6, 'ask': 26384.2}",2019:04:13-03:20:00,26383.4,26368.4,26383.4,26376.4
43 | 41,"{'lastTraded': None, 'bid': 26385.6, 'ask': 26387.2}","{'lastTraded': None, 'bid': 26386.6, 'ask': 26388.2}",917,"{'lastTraded': None, 'bid': 26370.6, 'ask': 26372.2}","{'lastTraded': None, 'bid': 26376.1, 'ask': 26377.7}",2019:04:13-03:25:00,26376.9,26371.4,26387.4,26386.4
44 | 42,"{'lastTraded': None, 'bid': 26393.6, 'ask': 26395.2}","{'lastTraded': None, 'bid': 26394.6, 'ask': 26396.2}",1110,"{'lastTraded': None, 'bid': 26381.6, 'ask': 26383.2}","{'lastTraded': None, 'bid': 26386.6, 'ask': 26388.2}",2019:04:13-03:30:00,26387.4,26382.4,26395.4,26394.4
45 | 43,"{'lastTraded': None, 'bid': 26391.1, 'ask': 26392.7}","{'lastTraded': None, 'bid': 26395.1, 'ask': 26396.7}",1428,"{'lastTraded': None, 'bid': 26380.6, 'ask': 26382.2}","{'lastTraded': None, 'bid': 26393.1, 'ask': 26394.7}",2019:04:13-03:35:00,26393.9,26381.4,26395.9,26391.9
46 | 44,"{'lastTraded': None, 'bid': 26385.1, 'ask': 26386.7}","{'lastTraded': None, 'bid': 26391.6, 'ask': 26393.2}",1211,"{'lastTraded': None, 'bid': 26382.6, 'ask': 26384.2}","{'lastTraded': None, 'bid': 26390.6, 'ask': 26392.2}",2019:04:13-03:40:00,26391.4,26383.4,26392.4,26385.9
47 | 45,"{'lastTraded': None, 'bid': 26389.1, 'ask': 26390.7}","{'lastTraded': None, 'bid': 26390.6, 'ask': 26392.2}",1211,"{'lastTraded': None, 'bid': 26378.6, 'ask': 26380.2}","{'lastTraded': None, 'bid': 26384.6, 'ask': 26386.2}",2019:04:13-03:45:00,26385.4,26379.4,26391.4,26389.9
48 | 46,"{'lastTraded': None, 'bid': 26384.6, 'ask': 26386.2}","{'lastTraded': None, 'bid': 26390.6, 'ask': 26392.2}",1715,"{'lastTraded': None, 'bid': 26378.6, 'ask': 26380.2}","{'lastTraded': None, 'bid': 26389.6, 'ask': 26391.2}",2019:04:13-03:50:00,26390.4,26379.4,26391.4,26385.4
49 | 47,"{'lastTraded': None, 'bid': 26408.6, 'ask': 26410.2}","{'lastTraded': None, 'bid': 26410.6, 'ask': 26412.2}",4625,"{'lastTraded': None, 'bid': 26383.6, 'ask': 26385.2}","{'lastTraded': None, 'bid': 26383.6, 'ask': 26385.2}",2019:04:13-03:55:00,26384.4,26384.4,26411.4,26409.4
50 | 48,"{'lastTraded': None, 'bid': 26403.5, 'ask': 26407.3}","{'lastTraded': None, 'bid': 26407.6, 'ask': 26410.3}",2368,"{'lastTraded': None, 'bid': 26392.5, 'ask': 26396.3}","{'lastTraded': None, 'bid': 26407.6, 'ask': 26409.2}",2019:04:13-04:00:00,26408.4,26394.4,26408.95,26405.4
51 | 49,"{'lastTraded': None, 'bid': 26399.5, 'ask': 26403.3}","{'lastTraded': None, 'bid': 26406.5, 'ask': 26410.3}",982,"{'lastTraded': None, 'bid': 26397.5, 'ask': 26401.3}","{'lastTraded': None, 'bid': 26404.5, 'ask': 26408.3}",2019:04:13-04:05:00,26406.4,26399.4,26408.4,26401.4
52 | 50,"{'lastTraded': None, 'bid': 26400.6, 'ask': 26410.4}","{'lastTraded': None, 'bid': 26406.0, 'ask': 26410.6}",719,"{'lastTraded': None, 'bid': 26391.5, 'ask': 26395.3}","{'lastTraded': None, 'bid': 26399.0, 'ask': 26402.8}",2019:04:13-04:10:00,26400.9,26393.4,26408.3,26405.5
53 | 51,"{'lastTraded': None, 'bid': 26469.4, 'ask': 26479.2}","{'lastTraded': None, 'bid': 26471.0, 'ask': 26480.8}",7,"{'lastTraded': None, 'bid': 26396.9, 'ask': 26406.7}","{'lastTraded': None, 'bid': 26400.8, 'ask': 26410.6}",2019:04:13-04:15:00,26405.7,26401.8,26475.9,26474.3
54 | 52,"{'lastTraded': None, 'bid': 26470.0, 'ask': 26479.8}","{'lastTraded': None, 'bid': 26471.4, 'ask': 26481.2}",0,"{'lastTraded': None, 'bid': 26468.7, 'ask': 26478.5}","{'lastTraded': None, 'bid': 26469.0, 'ask': 26478.8}",2019:04:13-04:20:00,26473.9,26473.6,26476.3,26474.9
55 | 53,"{'lastTraded': None, 'bid': 26471.4, 'ask': 26481.2}","{'lastTraded': None, 'bid': 26471.4, 'ask': 26481.2}",0,"{'lastTraded': None, 'bid': 26470.0, 'ask': 26479.8}","{'lastTraded': None, 'bid': 26470.7, 'ask': 26480.5}",2019:04:13-04:25:00,26475.6,26474.9,26476.3,26476.3
56 | 54,"{'lastTraded': None, 'bid': 26403.0, 'ask': 26406.8}","{'lastTraded': None, 'bid': 26411.0, 'ask': 26414.8}",170,"{'lastTraded': None, 'bid': 26398.0, 'ask': 26401.8}","{'lastTraded': None, 'bid': 26406.0, 'ask': 26409.8}",2019:04:13-04:30:00,26407.9,26399.9,26412.9,26404.9
57 | 55,"{'lastTraded': None, 'bid': 26397.0, 'ask': 26400.8}","{'lastTraded': None, 'bid': 26401.0, 'ask': 26404.8}",74,"{'lastTraded': None, 'bid': 26396.0, 'ask': 26399.8}","{'lastTraded': None, 'bid': 26401.0, 'ask': 26404.8}",2019:04:13-04:35:00,26402.9,26397.9,26402.9,26398.9
58 | 56,"{'lastTraded': None, 'bid': 26401.0, 'ask': 26404.8}","{'lastTraded': None, 'bid': 26401.0, 'ask': 26404.8}",104,"{'lastTraded': None, 'bid': 26394.0, 'ask': 26397.8}","{'lastTraded': None, 'bid': 26398.0, 'ask': 26401.8}",2019:04:13-04:40:00,26399.9,26395.9,26402.9,26402.9
59 | 57,"{'lastTraded': None, 'bid': 26398.0, 'ask': 26401.8}","{'lastTraded': None, 'bid': 26403.0, 'ask': 26406.8}",76,"{'lastTraded': None, 'bid': 26394.0, 'ask': 26397.8}","{'lastTraded': None, 'bid': 26396.0, 'ask': 26399.8}",2019:04:13-04:45:00,26397.9,26395.9,26404.9,26399.9
60 | 58,"{'lastTraded': None, 'bid': 26406.0, 'ask': 26409.8}","{'lastTraded': None, 'bid': 26406.0, 'ask': 26409.8}",87,"{'lastTraded': None, 'bid': 26394.0, 'ask': 26397.8}","{'lastTraded': None, 'bid': 26396.0, 'ask': 26399.8}",2019:04:13-04:50:00,26397.9,26395.9,26407.9,26407.9
61 | 59,"{'lastTraded': None, 'bid': 26407.9, 'ask': 26417.7}","{'lastTraded': None, 'bid': 26414.0, 'ask': 26418.2}",134,"{'lastTraded': None, 'bid': 26404.0, 'ask': 26407.8}","{'lastTraded': None, 'bid': 26408.0, 'ask': 26411.8}",2019:04:13-04:55:00,26409.9,26405.9,26416.1,26412.8
62 |
--------------------------------------------------------------------------------
/dataprovider/test_ig_service.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | # -*- coding: utf-8 -*-
3 |
4 | """
5 | Run unit tests using
6 | nosetests -s -v
7 | """
8 |
9 | import pandas as pd
10 |
11 | from ig_service import IGService
12 | from dataprovider.ig_service_config import * # defines username, password, api_key, acc_type, acc_number
13 |
14 |
15 | def test_ig_service():
16 | ig_service = IGService(username, password, api_key, acc_type)
17 | ig_service.create_session()
18 |
19 | print("fetch_accounts")
20 | response = ig_service.fetch_accounts()
21 | print(response)
22 | assert(response['balance'][0]['available']>0)
23 |
24 | print("fetch_account_activity_by_period")
25 | response = ig_service.fetch_account_activity_by_period(10000)
26 | print(response)
27 | assert(isinstance(response, pd.DataFrame))
28 |
29 | print("fetch_account_activity_by_period")
30 | response = ig_service.fetch_account_activity_by_period(10000)
31 | print(response)
32 | assert(isinstance(response, pd.DataFrame))
33 |
34 | print("fetch_transaction_history_by_type_and_period")
35 | response = ig_service.fetch_transaction_history_by_type_and_period(10000, "ALL")
36 | print(response)
37 | assert(isinstance(response, pd.DataFrame))
38 |
39 | print("fetch_open_positions")
40 | response = ig_service.fetch_open_positions()
41 | print(response)
42 | assert(isinstance(response, pd.DataFrame))
43 |
44 | print("fetch_working_orders")
45 | response = ig_service.fetch_working_orders()
46 | print(response)
47 | assert(isinstance(response, pd.DataFrame))
48 |
49 | print("fetch_top_level_navigation_nodes")
50 | response = ig_service.fetch_top_level_navigation_nodes()
51 | print(response) # dict with nodes and markets
52 | assert(isinstance(response, dict))
53 | market_id = response['nodes']['id'].iloc[0]
54 |
55 | print("fetch_client_sentiment_by_instrument")
56 | response = ig_service.fetch_client_sentiment_by_instrument(market_id)
57 | print(response)
58 | assert(isinstance(response, dict))
59 |
60 | print("fetch_related_client_sentiment_by_instrument")
61 | response = ig_service.fetch_related_client_sentiment_by_instrument(market_id)
62 | print(response)
63 | assert(isinstance(response, pd.DataFrame))
64 |
65 | print("fetch_sub_nodes_by_node")
66 | node = market_id #?
67 | response = ig_service.fetch_sub_nodes_by_node(node)
68 | print(response)
69 |
70 | print("fetch_all_watchlists")
71 | response = ig_service.fetch_all_watchlists()
72 | print(response)
73 | watchlist_id = response['id'].iloc[2]
74 | print(watchlist_id)
75 | #epic =
76 |
77 | print("fetch_watchlist_markets")
78 | response = ig_service.fetch_watchlist_markets(watchlist_id)
79 | print(response)
80 | epic = response['epic'].iloc[0]
81 |
82 | print("fetch_market_by_epic")
83 | response = ig_service.fetch_market_by_epic(epic)
84 | print(response)
85 |
86 |
87 | print("search_markets")
88 | search_term = 'UNDEF'
89 | response = ig_service.search_markets(epic)
90 | print(response)
91 |
92 | if __name__ == "__main__":
93 | test_ig_service()
94 |
--------------------------------------------------------------------------------
/mlcore/custom_gym.py:
--------------------------------------------------------------------------------
1 | __author__ = 'po'
2 | from collections import deque
3 | import numpy as np
4 | import math
5 |
6 | class CustomEnv():
7 | def __init__(self, dataframe):
8 | self.dataframe = dataframe
9 |
10 | # initial balance
11 | self.balance = 1000
12 | self.actionSpace = 4 # buy, hold, sell, close
13 | self.observationSpace = len(dataframe.columns)+1 # ohlcv + net position aka longshortflag
14 | self.indexPointer = 0
15 | self.positions = []
16 | self.fxRate = 1.36
17 | self.lotSize = 0.1
18 | self.stopLoss = 50
19 | self.takeProfit = 100
20 | self.longShortFlag = 0 # neutral 0 long 1 short -1
21 | self.logging=False
22 |
23 |
24 | def step(self, action):
25 |
26 | self._take_action(action)
27 |
28 | # reward engineering is reward balance?
29 | reward = self._get_reward()
30 | ob = self._getState()
31 |
32 | # done when account blowup or reached eod
33 | episode_over = self.balance <= 0 or self.indexPointer == len(self.dataframe.index)-1
34 |
35 | return ob, reward, episode_over, {}
36 |
37 |
38 | def reset(self):
39 | self.indexPointer = 0
40 | self.balance=1000
41 | return self._getState()
42 |
43 | def render(self, mode='human', close=False):
44 | pass
45 |
46 | def _getState(self):
47 | return np.append(self.dataframe.iloc[self.indexPointer, :].values, self.longShortFlag)
48 |
49 | def _checkInitialPositions(self, currentState):
50 | numPositionToClear = 0
51 | for position in self.positions[:]:
52 |
53 | # cut loss
54 | # long position and position - currentLow >= stoploss
55 | if self.longShortFlag == 1 and (position - currentState[2] >= self.stopLoss):
56 | if(self.logging):print("Long position, Entry: {}, Stoploss: {}, CurrentLow: {}".format(position, self.stopLoss, currentState[2]))
57 | self.balance -= self.stopLoss * self.fxRate * self.lotSize
58 | self.positions.remove(position)
59 | #numPositionToClear +=1
60 | continue
61 | # short position and position + highesthigh >= stoploss
62 | elif self.longShortFlag == -1 and (currentState[1] - position >= self.stopLoss):
63 | if(self.logging):print("Short position, Entry: {}, Stoploss: {}, CurrentHigh: {}".format(position, self.stopLoss, currentState[1]))
64 | self.balance -= self.stopLoss * self.fxRate * self.lotSize
65 | self.positions.remove(position)
66 | #numPositionToClear +=1
67 | continue
68 |
69 |
70 | # take profit
71 | # long position and highesthigh - position >= takeprofit
72 | if self.longShortFlag == 1 and (currentState[1] - position >= self.takeProfit):
73 | if(self.logging):print("Long position, Entry: {}, TakeProfit: {}, CurrentHigh: {}".format(position, self.takeProfit, currentState[1]))
74 | self.balance += self.takeProfit * self.fxRate * self.lotSize
75 | self.positions.remove(position)
76 | #numPositionToClear +=1
77 | continue
78 | # short position and position - lowestlow >= takeprofit
79 | elif self.longShortFlag == -1 and (position - currentState[2] >= self.takeProfit):
80 | if(self.logging):print("Short position, Entry: {}, TakeProfit: {}, CurrentLow: {}".format(position, self.takeProfit, currentState[2]))
81 | self.balance += self.takeProfit * self.fxRate * self.lotSize
82 | self.positions.remove(position)
83 | #numPositionToClear +=1
84 | continue
85 |
86 | #for _ in range(numPositionToClear):
87 | # self.positions.popleft()
88 |
89 |
90 | def _take_action(self, action):
91 |
92 | # close old position that hits limit
93 | currentState = self._getState()
94 | self._checkInitialPositions(currentState)
95 |
96 | self.indexPointer += 1
97 | # get new state
98 | newState = self._getState()
99 | # buy
100 | if action == 0:
101 | # double down into current position provided its in same or neutral direction
102 | if self.longShortFlag==1 or self.longShortFlag==0:
103 | # add long position for new state open
104 | self.positions.append(newState[0])
105 | self.longShortFlag = 1
106 |
107 | # hold
108 | elif (action == 1):
109 | # nothing
110 | pass
111 |
112 | # sell
113 | elif (action == 2):
114 | # double down into current position provided its in same or neutral direction
115 | if self.longShortFlag==-1 or self.longShortFlag==0:
116 | self.positions.append(newState[0])
117 | self.longShortFlag = -1
118 |
119 | elif (action == 3):
120 | for position in self.positions:
121 | # close position
122 | if self.longShortFlag==1:
123 | self.balance += (newState[0] - position) * self.fxRate * self.lotSize # 11 - 12
124 | elif self.longShortFlag ==-1:
125 | self.balance += (position - newState[0]) * self.fxRate * self.lotSize # 12 - 11
126 |
127 | # clear all position leaving length to 0
128 | self.positions.clear()
129 | # reset flag
130 | self.longShortFlag = 0
131 |
132 |
133 |
134 |
135 |
136 |
137 | def _get_reward(self):
138 | # abs(position - averageClose)
139 | # just the realised balance we should not consider fluctuations
140 | return self.balance-1000
--------------------------------------------------------------------------------
/mlcore/ml_model.py:
--------------------------------------------------------------------------------
1 | __author__ = 'po'
2 | import matplotlib.pyplot as plt
3 | import tensorflow as tf
4 | from keras import Sequential
5 | from keras.layers import Dense, Dropout, LSTM
6 | from keras.optimizers import Adam
7 | from sklearn import preprocessing
8 |
9 |
10 | class AlphaGenerator:
11 | def mnistTest(self):
12 | # test out model with mnist
13 | mnist = tf.keras.datasets.mnist
14 | (x_train, y_train), (x_test, y_test) = mnist.load_data()
15 |
16 | x_train = x_train / 255.0
17 | x_test = x_test / 255.0
18 |
19 | # 60k mnist images
20 | print(x_train.shape)
21 | # get 28*28
22 | print(x_train[0].shape)
23 |
24 |
25 | model = Sequential()
26 | # using dropouts to reduce bias
27 | # slice starting from second item till the end
28 | model.add(LSTM(128, input_shape=(x_train.shape[1:]), activation='relu', return_sequences=True))
29 | model.add(Dropout(0.2))
30 |
31 | # 128 unit defining the output dimensions
32 | model.add(LSTM(128, activation='relu'))
33 | model.add(Dropout(0.2))
34 |
35 | # fully connected layers from previous seq
36 | model.add(Dense(32, activation='relu'))
37 | model.add(Dropout(0.2))
38 |
39 | model.add(Dense(10, activation='softmax'))
40 | opt = Adam(lr=1e-3, decay=1e-5)
41 | # compile our model
42 | model.compile(loss='sparse_categorical_crossentropy', optimizer=opt, metrics=['accuracy'])
43 |
44 | # test our model epochs is the number of times it runs through the entire data set
45 | model.fit(x_train, y_train, epochs=5, validation_data=(x_test, y_test))
46 | #model.save('model_backup\\mnist_model_v1.h5')
47 |
48 | plt.imshow(x_test[0], cmap = plt.cm.binary)
49 | plt.show()
50 | # we use the Keras lib to handle the 1hot vector alternative we can use np.argmax
51 | prediction = model.predict_classes(x_test)
52 | print(prediction[0])
53 |
54 | '''
55 | we will need to normalise our data base on percent change
56 | we don't want huge fluctuation from volume to impact prediction everything will be relative to their own columns.
57 | '''
58 | def preprocessing(self, dataframe):
59 | tempDataframe = dataframe.drop("futureLow", axis=1)
60 |
61 | # go through all of the columns
62 | for col in tempDataframe.columns:
63 |
64 |
65 | if col != "averageLow": # normalize all ... except for the futureLow itself!
66 | tempDataframe[col] = tempDataframe[col].pct_change()
67 |
68 | # scale between 0 and 1.
69 | tempDataframe[col] = preprocessing.scale(tempDataframe[col].values)
70 |
71 |
72 |
73 | # wait for better prediction algo for linear current tech cmi
74 | def steadyROI(self):
75 | pass
76 |
77 |
78 |
79 |
--------------------------------------------------------------------------------
/mlcore/rl_agent.py:
--------------------------------------------------------------------------------
1 | import torch
2 | import torch.nn as nn
3 | import torch.nn.functional as F
4 | import numpy as np
5 | import matplotlib.pyplot as plt
6 | import os
7 | from tensorboardX import SummaryWriter
8 | import time
9 |
10 | # Hyper Parameters
11 | BATCH_SIZE = 32
12 | LR = 0.01 # learning rate
13 | EPSILON = 0.95 # greedy policy
14 | GAMMA = 0.9 # reward discount
15 | TARGET_REPLACE_ITER = 100 # target update frequency
16 | MEMORY_CAPACITY = 10000
17 | '''
18 | N_ACTIONS = env.action_space.n
19 | N_STATES = env.observation_space.shape[0]
20 | ENV_A_SHAPE = 0 if isinstance(env.action_space.sample(),
21 | int) else env.action_space.sample().shape # to confirm the shape
22 | '''
23 | N_ACTIONS = 4 # retrieve from custom environment buy, hold, sell, close
24 | N_STATES = 6 # ohlcv + position direction
25 | ENV_A_SHAPE = 0
26 | PATH = "net.pkl"
27 |
28 |
29 |
30 | class Net(nn.Module):
31 | def __init__(self):
32 | super(Net, self).__init__()
33 |
34 |
35 | self.feature = nn.Sequential(
36 | nn.Linear(N_STATES, 100),
37 | nn.ReLU()
38 | )
39 |
40 | self.advantage = nn.Sequential(
41 | nn.Linear(100, 100),
42 | nn.ReLU(),
43 | nn.Linear(100, N_ACTIONS)
44 | )
45 |
46 | self.value = nn.Sequential(
47 | nn.Linear(100, 500),
48 | nn.ReLU(),
49 | nn.Linear(500, 1)
50 | )
51 |
52 |
53 | def forward(self, x):
54 | x = self.feature(x)
55 | advantage = self.advantage(x)
56 | value = self.value(x)
57 |
58 | # split out value and advantage to form q target
59 | # because we want to know which frames are valuable to act on instead of the entire as a consequence
60 | return value + advantage - advantage.mean()
61 |
62 |
63 | class torchDQN(object):
64 |
65 |
66 |
67 | def __init__(self, tensorboard=False):
68 | self.tensorboard=tensorboard
69 | if(self.tensorboard):
70 | self.writer = SummaryWriter('logs/ddqn-{}'.format(int(time.time())))
71 |
72 | # normal dqn sequential
73 | '''
74 | self.eval_net = torch.nn.Sequential(
75 | torch.nn.Linear(N_STATES, 50), # 50 is number of dense layer out
76 | torch.nn.ReLU(),
77 | torch.nn.Linear(50, N_ACTIONS)
78 | )
79 |
80 | self.target_net = torch.nn.Sequential(
81 | torch.nn.Linear(N_STATES, 50), # 50 is number of dense layer out
82 | torch.nn.ReLU(),
83 | torch.nn.Linear(50, N_ACTIONS)
84 | )
85 | '''
86 |
87 | # upgrade to dueling dqn almost the same just split our the target net
88 | self.eval_net, self.target_net = Net(), Net()
89 |
90 | self.optimizer = torch.optim.Adam(self.eval_net.parameters(), lr=LR)
91 |
92 | if (os.path.exists(PATH)):
93 | checkpoint = torch.load(PATH)
94 | self.eval_net.load_state_dict(checkpoint['eval'])
95 | self.target_net.load_state_dict(checkpoint['target'])
96 | self.optimizer.load_state_dict(checkpoint['opt'])
97 | #self.eval_net.train() # ensure that model is still in training mode
98 | self.eval_net.eval()
99 |
100 | self.learn_step_counter = 0 # for target updating
101 | self.memory_counter = 0 # for storing memory
102 | self.memory = np.zeros((MEMORY_CAPACITY, N_STATES * 2 + 2)) # initialize memory *2 cause old and new state + 2 cause action and reward
103 |
104 | self.loss_func = nn.MSELoss()
105 |
106 | def choose_action(self, x):
107 | x = torch.unsqueeze(torch.FloatTensor(x), 0)
108 | # input only one sample
109 | if np.random.uniform() < EPSILON: # greedy
110 | actions_value = self.eval_net.forward(x)
111 | action = torch.max(actions_value, 1)[1].data.numpy()
112 | action = action[0] if ENV_A_SHAPE == 0 else action.reshape(ENV_A_SHAPE) # return the argmax index
113 |
114 | else: # random
115 | action = np.random.randint(0, N_ACTIONS)
116 | action = action if ENV_A_SHAPE == 0 else action.reshape(ENV_A_SHAPE)
117 | return action
118 |
119 | def store_transition(self, s, a, r, s_):
120 | transition = np.hstack((s, [a, r], s_))
121 | # replace the old memory with new memory
122 | index = self.memory_counter % MEMORY_CAPACITY
123 | self.memory[index, :] = transition
124 | self.memory_counter += 1
125 |
126 | def learn(self, globalStep):
127 | # target parameter update
128 | if self.learn_step_counter % TARGET_REPLACE_ITER == 0:
129 | self.target_net.load_state_dict(self.eval_net.state_dict())
130 | self.learn_step_counter += 1
131 |
132 | # sample batch transitions
133 | sample_index = np.random.choice(MEMORY_CAPACITY, BATCH_SIZE)
134 | b_memory = self.memory[sample_index, :]
135 | b_s = torch.FloatTensor(b_memory[:, :N_STATES]) # old state till 4th column
136 | b_a = torch.LongTensor(b_memory[:, N_STATES:N_STATES + 1].astype(int)) # then 4th till 4th +1
137 | b_r = torch.FloatTensor(b_memory[:, N_STATES + 1:N_STATES + 2]) # then 4th +1 till 4th +2
138 | b_s_ = torch.FloatTensor(b_memory[:, -N_STATES:]) # -5 the remaining from behind is new state
139 |
140 | # q_eval w.r.t the action in experience
141 | q_eval = self.eval_net(b_s).gather(1, b_a) # shape (batch, 1)
142 | q_next = self.target_net(b_s_).detach() # detach from graph, don't backpropagate
143 | q_target = b_r + GAMMA * q_next.max(1)[0].view(BATCH_SIZE, 1) # shape (batch, 1)
144 | loss = self.loss_func(q_eval, q_target)
145 |
146 | self.optimizer.zero_grad()
147 | loss.backward()
148 | self.optimizer.step()
149 | if(self.tensorboard):
150 | self.writer.add_scalar('loss', loss.item(), global_step=globalStep)
151 |
152 | def save(self):
153 | torch.save({"eval": self.eval_net.state_dict(),
154 | "target": self.target_net.state_dict(),
155 | "opt" : self.optimizer.state_dict()
156 | }, PATH) # save entire net
157 |
158 |
--------------------------------------------------------------------------------
/risk_adjusted_metrics.py:
--------------------------------------------------------------------------------
1 | __author__ = 'po'
2 | '''
3 | Performance metrics to measure performance of strategy with respect to the risk adjusted returns
4 | some strategy might give higher returns but if the draw downs/volatility is a lot higher for that 1 or 2 percent
5 | it might not be worth
6 | Courtesy of TuningFinance: http://www.turingfinance.com/computational-investing-with-python-week-one/
7 | '''
8 |
9 | import math
10 | import numpy as np
11 | import numpy.random as nrand
12 |
13 | def prices(returns, base):
14 | # Converts returns into prices
15 | s = [base]
16 | for i in range(len(returns)):
17 | s.append(base * (1 + returns[i]))
18 | return np.array(s)
19 |
20 |
21 | def dd(returns, tau):
22 | # returns the draw-down fiven time period tau
23 | values = prices(returns, 100)
24 | pos = len(values) - 1
25 | pre = pos - tau
26 | drawdown = float('+inf')
27 | # find max drawdown given tau
28 | while pre >= 0:
29 | dd_i = (values[pos] / values[pre]) - 1
30 | if dd_i < drawdown:
31 | drawdown = dd_i
32 |
33 | pos, pre = pos - 1, pre - 1
34 | # drawdown should be pos
35 | return abs(drawdown)
36 |
37 |
38 | def max_dd(returns):
39 | # returns the max draw-down for any tau in (0, T), where T is the length of the return series
40 | max_drawdown = float('-inf')
41 | for i in range(0, len(returns)):
42 | drawdown_i = dd(returns, i)
43 | if drawdown_i > max_drawdown:
44 | max_drawdown = drawdown_i
45 | # max draw-down should be positive
46 | return abs(max_drawdown)
47 |
48 |
49 | # A higher Calmar Ratio suggests more returns at lower risk.
50 | def calmar_ratio(er, returns, rf):
51 | return (er-rf) / max_dd(returns)
52 |
--------------------------------------------------------------------------------