Browse Source

add supporting files

larry 10 năm trước cách đây
mục cha
commit
08cef3828a

+ 9 - 8
cep/ib_mds.py

@@ -67,7 +67,7 @@ class IbKafkaProducer():
         rc = self.con.connect()
         if rc:
             self.ib_conn_status = 'OK'
-        logging.info('******* Starting IbKafkaProducer)
+        logging.info('******* Starting IbKafkaProducer')
         logging.info('IbKafkaProducer: connection status to IB is %d' % rc)
         logging.info('IbKafkaProducer: connecting to kafka host: %s...' % kafka_host)
         logging.info('IbKafkaProducer: message mode is async')
@@ -132,18 +132,19 @@ class IbKafkaProducer():
             self.con = ibConnection(host, port, appid)
             self.con.registerAll(self.on_ib_message)
             rc = None
-            while not rc:
+            while not rc and not self.quit:
                 logging.error('IbKafkaProducer: attempt reconnection!')
                 rc = self.con.connect()
                 logging.info('IbKafkaProducer: connection status to IB is %d (0-broken 1-good)' % rc)
                 sleep(2)
             
-            # resubscribe tickers again!
-            self.load_tickers()                
-            a = AlertHelper(self.config)
-            a.post_msg('ib_mds recovered from broken ib conn, re-subscribe tickers...')            
-            logging.debug('on_ib_conn_broken: completed restoration. releasing lock...')
-            self.ib_conn_status = 'OK'
+            if not self.quit:
+                # resubscribe tickers again!
+                self.load_tickers()                
+                a = AlertHelper(self.config)
+                a.post_msg('ib_mds recovered from broken ib conn, re-subscribe tickers...')            
+                logging.debug('on_ib_conn_broken: completed restoration. releasing lock...')
+                self.ib_conn_status = 'OK'
             
         finally:
             self.tlock.release()          

+ 95 - 0
config/app.cfg

@@ -0,0 +1,95 @@
+[global]
+server.socket_host: "0.0.0.0"
+server.socket_port: 8082
+
+[redis]
+redis.server: "localhost"
+redis.port: 6379
+redis.db: 3
+redis.sleep: 0.5
+redis.datastore.key.option_implv: 'opt_implv'
+redis.datastore.key.option_chains: 'opt_chains'
+redis.datastore.key.option_set: 'opt_set'
+redis.datastore.key.option_implv_ts_set: 'opt_implv_ts_set'
+redis.datastore.key.option_implv_ts: 'opt_implv_ts' 
+
+# a redis key that stores all the contract ids of contracts in a portfolio  
+redis.datastore.key.port_conid_set: 'port_conid_set' 
+redis.datastore.key.port_prefix: 'PT'
+# note that the port summary key has no prefix assigned to it
+# to retrive its value just use rs.get instead of self.rs_<xxx>
+redis.datastore.key.port_summary: 'port_summary'
+ 
+[/]
+tools.sessions.on : True
+tools.staticdir.root : '/home/larry-13.04/workspace/finopt/src/'
+#tools.staticdir.root : '/home/larry-13.04/production/finopt/'
+
+[/static]
+tools.staticdir.on : True
+#tools.staticdir.dir : './public'
+tools.staticdir.tmpl : './html'
+
+
+[options_data]
+options_data.logconfig: "{'filename': '/home/larry-13.04/workspace/finopt/log/opt.log', 'filemode': 'w','level': logging.INFO}"
+
+[portfolio]
+portfolio.logconfig: "{'filename': '/home/larry-13.04/workspace/finopt/log/port.log', 'filemode': 'w','level': logging.INFO}"
+
+[opt_serve]
+opt_serve.logconfig: "{'filename': '/home/larry-13.04/workspace/finopt/log/opt.log', 'filemode': 'w','level': logging.INFO}"
+
+[cep]
+kafka.host: 'vsu-01'
+kafka.port: 9092
+kafka.ib.topic.tick_price: 'ib_tick_price'
+kafka.ib.topic.tick_size: 'ib_tick_size'
+ib.subscription.fileloc: '/home/larry-13.04/workspace/finopt/data/subscription.txt'
+
+
+[market]
+hkex.openhours: '{"morning":[915,1200], "afternoon":[1300,1615]}'
+ib.gateway: '127.0.0.1'
+ib.port: 7496
+#gw port
+#ib.port:4001
+ib.appid.portfolio: 9922
+
+ib.appid: 9911
+option.underlying = "('HSI', 'FUT', 'HKFE', 'HKD', '', 0, '')"
+option.underlying.month_price = "[['20150929', 22817.0, '^HSI'], ['20151029', 22715.0, '^HSI']]"
+option.underlying.yahoo_ws = "{'use_yahoo': True, 'func': 'ystockquote.get_price'}"
+option.underlying.tick_size = 200
+option.greeks.recal = "{'use_last_if_no_bidask': True, 'rate':0.005, 'div':0.005, 'vol':0.2}"
+option.chain_range = 0.08
+option.bid_ask_spread_tolerance = 0.90
+
+[alert_bot]
+msg_bot.jid: "robo@route69.hopto.org"
+msg_bot.pass: 123
+msg_bot.recipients: "['blueman@route69.hopto.org']"
+msg_bot.redis_mq: 'chatq'
+msg_bot.redis_prefix: 'alert_bot'  
+#
+# 'filename': '../log/alert_bot.log', 'filemode': 'w', 
+msg_bot.logconfig: "{'level': logging.INFO}"
+
+
+[ib_mds]
+ib_mds.logconfig: "{'filename': '/home/larry-13.04/workspace/finopt/log/ib_mds.log', 'filemode': 'w','level': logging.INFO}"
+#ib_mds.ib_port: 7496
+ib_mds.ib_port: 4001
+ib_mds.appid.id: 9800
+ib_mds.gateway: '192.168.1.118'
+ib_mds.is_persist: 1
+ib_mds.persist_dir: '/home/larry-13.04/workspace/finopt/data/mds_files'
+ib_mds.spill_over_limit: 10000
+
+[ib_heartbeat]
+ib_heartbeat.logconfig: "{'filename': '/home/larry-13.04/workspace/finopt/log/ib_mds.log', 'filemode': 'w','level': logging.INFO}"
+ib_heartbeat.ib_port: 4001
+ib_heartbeat.appid.id: 9911
+ib_heartbeat.gateway: '192.168.1.118'
+ib_heartbeat.try_interval: 3
+ib_heartbeat.suppress_msg_interval: 60

+ 295 - 0
html/gchart.py

@@ -0,0 +1,295 @@
+import math
+
+def jsfile(dp, fout, title):
+    
+    htmltext = """
+    <html>
+  <head>
+    <!--Load the AJAX API-->
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript">
+
+      // Load the Visualization API and the piechart package.
+      google.load('visualization', '1.0', {'packages':['corechart']});
+
+      // Set a callback to run when the Google Visualization API is loaded.
+      google.setOnLoadCallback(drawChart);
+
+      // Callback that creates and populates a data table,
+      // instantiates the pie chart, passes in the data and
+      // draws it.
+      function drawChart() {
+var data = google.visualization.arrayToDataTable(
+%s
+);
+
+        var options = {
+          title: '%s',
+          legend: { position: 'top', maxLines: 2 },
+ 
+    colors: ['#5C3292', '#1A8763', '#871B47', '#999999', '#5CFF92'],
+    interpolateNulls: false,          
+        };
+
+        var chart = new google.visualization.Histogram(document.getElementById('chart_div'));
+        chart.draw(data, options);
+        
+        
+        
+      }
+    </script>
+  </head>
+
+  <body>
+    <!--Div that will hold the pie chart-->
+    <div id="chart_div"></div>
+  </body>
+</html>
+    
+    
+    """
+
+    htmltext = htmltext % (dp, title)
+    f = open(fout, 'w')
+    f.write(htmltext)
+    f.close()
+    #print htmltext
+
+def jsfile2(dp, fout, title):
+    
+    htmltext = """
+    <html>
+  <head>
+    <!--Load the AJAX API-->
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript">
+
+      // Load the Visualization API and the piechart package.
+      google.load('visualization', '1.0', {'packages':['corechart']});
+
+      // Set a callback to run when the Google Visualization API is loaded.
+      google.setOnLoadCallback(drawChart);
+
+      // Callback that creates and populates a data table,
+      // instantiates the pie chart, passes in the data and
+      // draws it.
+      function drawChart() {
+var data = google.visualization.arrayToDataTable(
+%s
+);
+
+        var options = {
+          title: '%s',
+          legend: { position: 'top', maxLines: 2 },
+ 
+    colors: ['#5C3292', '#1A8763', '#871B47', '#999999', '#5CFF92'],
+    interpolateNulls: false,          
+        };
+
+        var chart = new google.visualization.Histogram(document.getElementById('chart_div'));
+        chart.draw(data, options);
+        
+        
+        
+      }
+    </script>
+  </head>
+
+  <body>
+    <!--Div that will hold the pie chart-->
+      <div id="chart_div"></div>
+  </body>
+</html>
+    
+    
+    """
+
+    htmltext = htmltext % (dp, title)
+    f = open(fout, 'w')
+    f.write(htmltext)
+    f.close()
+    #print htmltext
+
+
+def jsfile3(fout, jschunk, htmldiv):
+    
+    htmltext = """
+    <html>
+  <head>
+    <!--Load the AJAX API-->
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript">
+
+      // Load the Visualization API and the piechart package.
+      google.load('visualization', '1.0', {'packages':['corechart']});
+
+      // Set a callback to run when the Google Visualization API is loaded.
+      google.setOnLoadCallback(drawChart);
+
+      // Callback that creates and populates a data table,
+      // instantiates the pie chart, passes in the data and
+      // draws it.
+      function drawChart() {
+
+    %s    
+        
+             
+        
+      }
+    </script>
+  </head>
+
+  <body>
+    <!--Div that will hold the pie chart-->
+    %s
+  </body>
+</html>
+    
+    
+    """
+
+    htmltext = htmltext % (jschunk, htmldiv)
+    f = open(fout, 'w')
+    f.write(htmltext)
+    f.close()
+    #print htmltext
+
+
+def format_weekly_data_points3(infile, outfile, title):
+
+
+    jstext = """
+
+var data%s = google.visualization.arrayToDataTable(
+%s
+);
+
+        var options = {
+          title: '%s',
+          legend: { position: 'top', maxLines: 2 },
+ 
+    colors: ['#5C3292', '#1A8763', '#871B47', '#999999', '#5CFF92'],
+    interpolateNulls: false,          
+        };
+
+        var chart%s = new google.visualization.Histogram(document.getElementById('chart_div%s'));
+        chart%s.draw(data%s, options);
+        
+        
+
+    """
+    
+    f = open(infile)
+    points_series = {}
+    cnt = 0
+    for l in f.readlines():
+        l = l.strip("\n").split(',')
+        
+        # to limit the data points to a partcular year range, add the condition
+        # l[2][0:4] not in ['2014', '2015', '2013']:
+        
+        if math.fabs(float(l[1])) > 0.035 or l[2][0:4] not in ['2014', '2015', '2013']:
+            continue
+        else:
+            if l[2][5:7] not in points_series:
+                points_series[l[2][5:7]]= []
+                
+            if l[0] == '1':
+                points_series[l[2][5:7]].append( "[%s, null,null,null,null]," % l[1])
+            elif l[0] == '2':
+                points_series[l[2][5:7]].append( "[null, %s, null,null,null]," % l[1])
+            elif l[0] == '3':
+                points_series[l[2][5:7]].append( "[null,null,%s, null,null]," % l[1])
+            elif l[0] == '4':
+                points_series[l[2][5:7]].append( "[null,null,null,%s, null]," % l[1])
+            elif l[0] == '5':
+                points_series[l[2][5:7]].append( "[null,null,null,null,%s ]," % l[1])
+
+#         cnt = cnt + 1
+#         if cnt > 50:
+#             break
+
+            
+    s = '[["M", "T", "W", "R", "F"],'
+    jstexts = {}
+    jschunk = ''
+    htmldiv = ''
+
+    for month, magnitudes in points_series.iteritems():
+    
+
+        s = '[["M", "T", "W", "R", "F"],'
+        s = s + ''.join(e for e in magnitudes)
+        s = s[:len(s)-1] + ']'
+        jstexts[month] = jstext
+        jstexts[month] = jstexts[month] % (month, s, "HKCE Open/Previous day fluctuation by month:" + month, month, month, month, month)
+        print month, len(magnitudes) -1
+        jschunk = jschunk + jstexts[month]
+        
+    
+    for month in sorted(points_series.keys()):
+        htmldiv = htmldiv + '<div id="chart_div%s"></div>' % month
+
+    #print jschunk
+    print htmldiv
+    jsfile3(outfile, jschunk, htmldiv)
+    
+
+    
+
+def format_weekly_data_points2(infile, outfile, title):
+    # this routine formats data into a tabular format of 5 columns
+    # each column represents a series of a weekday with monday starts at 1
+    # and tuesday starts at 2 
+    # the value at each column is the % change in HSI on the open vs previous close
+    # the objective is to see whether there exists a pattern with mondays 
+    # experience more fluctations when market opens
+    f = open(infile)
+    points = []
+    for l in f.readlines():
+        l = l.strip("\n").split(',')
+        if math.fabs(float(l[1])) > 0.035 or l[2][5:7] <> '10':
+            continue
+        else:
+            if l[0] == '1':
+                points.append( "[%s, null,null,null,null]," % l[1])
+            elif l[0] == '2':
+                points.append( "[null, %s, null,null,null]," % l[1])
+            elif l[0] == '3':
+                points.append( "[null,null,%s, null,null]," % l[1])
+            elif l[0] == '4':
+                points.append( "[null,null,null,%s, null]," % l[1])
+            elif l[0] == '5':
+                points.append( "[null,null,null,null,%s ]," % l[1])
+
+            
+    s = '[["M", "T", "W", "R", "F"],'
+
+    s = s + ''.join(e for e in points)
+    s = s[:len(s)-1] + ']'
+    
+    print len(points) -1
+    jsfile(s, outfile, title)
+
+
+def format_data_points(infile, outfile, title):
+    f = open(infile)
+    points = []
+    for l in f.readlines():
+        l = l.strip("\n").split(',')
+        points.append( "['%s', %s]," % (l[0], l[1]))
+    s = '[["daily change", "Num Days"],'
+
+    s = s + ''.join(e for e in points)
+    s = s[:len(s)-1] + ']'
+    print s
+    print len(points) -1
+    jsfile(s, outfile, title)
+    
+if __name__ == '__main__':
+    #format_data_points("data/hsi-monday-change.csv", "data/hsi-monday-change.html", "monday open change magnitude")
+    #format_weekly_data_points2("data/hsi-weekday-change.csv", "data/hsi-weekday-change.html", "weekday open change magnitude")
+    #format_weekly_data_points2("data/hsi-weekday-change-over-5-years.csv", "data/hsi-weekday-change-over-5-years.html", "weekday open change magnitude")
+    #format_weekly_data_points3("data/hsi-weekday-change-over-5-years.csv", "data/hsi-weekday-change-over-5-years.html", "weekday open change magnitude")
+    format_weekly_data_points3("data/hkce-weekday-change-over-5-years.csv", "data/hkce-weekday-change-over-5-years.html", "weekday open change magnitude")
+    

+ 84 - 0
html/jstest.html

@@ -0,0 +1,84 @@
+<html>
+<head>
+<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/2.1.1/math.min.js"></script>
+<script type="text/javascript" src="../static/math.min.js"></script>
+</head>
+
+<body>
+<script>
+var arr = [
+["strike",'P-20150828', 'C-20150828', 'P-20150929', 'C-20150929', ],[22200,0.270734444617,null,0.242985993558,null,],
+[22400,0.261369747691,null,0.232819715697,null,],
+[22600,0.251353651656,null,0.229132454791,null,],
+[22800,0.240969008475,0.351931555061,0.222927272429,0.220815668249,],
+[23000,0.229758525876,0.294410248151,0.218427691847,0.21626161508,],
+[23200,0.218659410879,0.275603698734,0.214404276766,0.21213093704,],
+[23400,0.207342374962,0.259170160748,0.210688875964,0.207158189383,],
+[23600,0.196168395475,0.244469681637,0.206833626108,0.204443543823,],
+[23800,0.184644378967,0.231450694292,0.204179966414,0.201382080537,],
+[24000,0.174256124286,0.221704626722,0.201361637122,0.198566710377,],
+[24200,0.161696861066,0.212393470141,0.198921365043,0.196384712922,],
+[24400,0.149106579291,0.204694281965,0.195749304976,0.19451759503,],
+[24600,0.129313564031,0.200488199952,0.195305382378,0.193065925499,],
+[24800,0.168825553718,0.198375969376,0.194509793447,0.192016547868,],
+[25000,null,0.197782230105,0.193721247084,0.191536559383,],
+[25200,null,0.199567025945,null,0.191317851418,],
+[25400,null,0.204887179548,null,0.19164870535,],
+[25600,null,0.211290483457,null,0.192816068081,],
+[25800,null,0.217868766488,null,0.194131464843,],
+];
+
+
+
+function minMax(myStringArray){
+    var arrayLength = myStringArray.length;
+    
+    var s = '';
+    var min, max;
+    min = 99999;
+    max = -1;
+    var allNums = new Array();
+    var k = 0
+    for (var i = 1; i < arrayLength; i++) {
+        for (j = 1; j < myStringArray[i].length; j++){
+
+
+                
+                if (myStringArray[i][j] == null) continue;
+                if (myStringArray[i][j] > max)
+                    max = myStringArray[i][j];
+                if (myStringArray[i][j] < min)
+                    min = myStringArray[i][j];
+				            
+				allNums[k++] = myStringArray[i][j];
+				
+        }   
+     
+        //s = s + myStringArray[i][0];
+    }
+	alert(math.median(allNums));
+	//document.querySelector('#s').value = math.median(allNums).toString();
+
+    return { "min" : min , "max": max };
+}
+
+
+
+
+var result = minMax(arr);
+alert( "Min Max " + result.min.toString() + " " + 
+    result.max.toString() + ((result.min + result.max)/2).toString());
+
+
+
+
+
+
+</script>
+
+<output id='out'></output>
+<br>
+<output id='s'></output>
+</body>
+
+</html>

+ 83 - 0
html/jstest.html~

@@ -0,0 +1,83 @@
+<html>
+<head>
+<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/2.1.1/math.min.js"></script>
+</head>
+
+<body>
+<script>
+var arr = [
+["strike",'P-20150828', 'C-20150828', 'P-20150929', 'C-20150929', ],[22200,0.270734444617,null,0.242985993558,null,],
+[22400,0.261369747691,null,0.232819715697,null,],
+[22600,0.251353651656,null,0.229132454791,null,],
+[22800,0.240969008475,0.351931555061,0.222927272429,0.220815668249,],
+[23000,0.229758525876,0.294410248151,0.218427691847,0.21626161508,],
+[23200,0.218659410879,0.275603698734,0.214404276766,0.21213093704,],
+[23400,0.207342374962,0.259170160748,0.210688875964,0.207158189383,],
+[23600,0.196168395475,0.244469681637,0.206833626108,0.204443543823,],
+[23800,0.184644378967,0.231450694292,0.204179966414,0.201382080537,],
+[24000,0.174256124286,0.221704626722,0.201361637122,0.198566710377,],
+[24200,0.161696861066,0.212393470141,0.198921365043,0.196384712922,],
+[24400,0.149106579291,0.204694281965,0.195749304976,0.19451759503,],
+[24600,0.129313564031,0.200488199952,0.195305382378,0.193065925499,],
+[24800,0.168825553718,0.198375969376,0.194509793447,0.192016547868,],
+[25000,null,0.197782230105,0.193721247084,0.191536559383,],
+[25200,null,0.199567025945,null,0.191317851418,],
+[25400,null,0.204887179548,null,0.19164870535,],
+[25600,null,0.211290483457,null,0.192816068081,],
+[25800,null,0.217868766488,null,0.194131464843,],
+];
+
+
+
+function minMax(myStringArray){
+    var arrayLength = myStringArray.length;
+    
+    var s = '';
+    var min, max;
+    min = 99999;
+    max = -1;
+    var allNums = new Array();
+    var k = 0
+    for (var i = 1; i < arrayLength; i++) {
+        for (j = 1; j < myStringArray[i].length; j++){
+
+
+                
+                if (myStringArray[i][j] == null) continue;
+                if (myStringArray[i][j] > max)
+                    max = myStringArray[i][j];
+                if (myStringArray[i][j] < min)
+                    min = myStringArray[i][j];
+				            
+				allNums[k++] = myStringArray[i][j];
+				
+        }   
+     
+        //s = s + myStringArray[i][0];
+    }
+	alert(math.median(allNums));
+	//document.querySelector('#s').value = math.median(allNums).toString();
+
+    return { "min" : min , "max": max };
+}
+
+
+
+
+var result = minMax(arr);
+alert( "Min Max " + result.min.toString() + " " + 
+    result.max.toString() + ((result.min + result.max)/2).toString());
+
+
+
+
+
+
+</script>
+
+<output id='out'></output>
+<br>
+<output id='s'></output>
+</body>
+
+</html>

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 11 - 0
html/jtest2.html


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 11 - 0
html/jtest2.html~


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 26 - 0
html/math.min.js


+ 121 - 0
html/opt-bands.html

@@ -0,0 +1,121 @@
+
+
+
+<html>
+  <head>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1", {packages:["corechart"]});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+/*        var data = new google.visualization.DataTable();
+
+        data.addColumn('number', 'x');
+        data.addColumn('number', 'values');
+        data.addColumn({id:'i2', type:'number', role:'interval'});
+        data.addColumn({id:'i2', type:'number', role:'interval'});
+	data.addColumn('number', 'values');
+        data.addColumn({id:'i2', type:'number', role:'interval'});
+
+        data.addColumn({id:'i2', type:'number', role:'interval'});
+*/
+
+  
+     
+/*
+[{label:'strikes', type:'number'},
+{label:'P',  type:'number'},
+{label:'p1', id:'i2', type:'number', role:'interval'},
+{label:'p2', id:'i2', type:'number', role:'interval'},
+{label:'C', type:'number'},
+{label:'c1', id:'i2', type:'number', role:'interval'},
+{label:'C2', id:'i2', type:'number', role:'interval'}],
+*/
+        
+        var data = google.visualization.arrayToDataTable([
+[{label:"strikes",type:"number"},
+{label: 'P-20150929', type:'number'},                
+{label: 'Pb-20150929', id:'i2', type:'number', role:'interval'},                
+{label: 'Pa-20150929', id:'i2', type:'number', role:'interval'},                
+{label: 'C-20150929', type:'number', },                
+{label: 'Cb-20150929', id:'i2', type:'number', role:'interval'},               
+ {label: 'Ca-20150929', id:'i2',type:'number', role:'interval'},],
+[14000,null,null,null,null,null,null,],
+[14800,7.0,2.0,7.0,null,null,null,],
+[16000,null,null,null,null,null,null,],
+[17000,null,null,null,null,null,null,],
+[17400,24.0,23.0,25.0,null,null,null,],
+[18800,58.5,58.0,59.0,null,null,null,],
+[19800,129.0,128.0,130.0,null,null,null,],
+[20000,151.0,150.0,152.0,null,null,null,],
+[20200,177.5,176.0,179.0,null,null,null,],
+[20400,209.5,208.0,211.0,null,null,null,],
+[20600,247.0,246.0,248.0,1183.5,1163.0,1204.0,],
+[20800,291.5,290.0,293.0,null,null,null,],
+[21000,343.5,342.0,345.0,888.5,876.0,901.0,],
+[21200,405.0,403.0,407.0,753.0,741.0,765.0,],
+[21400,480.0,478.0,482.0,626.5,618.0,635.0,],
+[21600,568.0,562.0,574.0,512.0,507.0,517.0,],
+[21800,669.5,661.0,678.0,412.5,410.0,415.0,],
+[22000,783.5,773.0,794.0,325.5,324.0,327.0,],
+[22200,null,null,null,251.5,250.0,253.0,],
+[22400,null,null,null,192.0,191.0,193.0,],
+[22600,null,null,null,145.5,144.0,147.0,],
+[22800,null,null,null,109.0,108.0,110.0,],
+[23000,null,null,null,80.5,80.0,81.0,],
+[23200,null,null,null,61.0,60.0,62.0,],
+[23400,null,null,null,45.5,45.0,46.0,],
+[23600,null,null,null,35.5,34.0,37.0,],
+[24800,null,null,null,null,null,null,],
+
+
+        ]);
+  
+        // The intervals data as narrow lines (useful for showing raw source data)
+
+    var options = {
+        title:'Bar/area interval chart',
+        curveType:'function',
+        intervals: { 'color':'series-color' },
+        interval: {
+            'i0': { 'color': '#4374E0', 'style':'bars', 'barWidth':0, 'lineWidth':4, 'pointSize':10, 'fillOpacity':1 },
+            'i1': { 'color': '#E49307', 'style':'bars', 'barWidth':0, 'lineWidth':4, 'pointSize':10, 'fillOpacity':1 },
+            'i2': { 'style':'area', 'curveType':'function', 'fillOpacity':0.3 }},
+        legend: 'bottom',pointShape: 'diamond',
+          trendlines: {
+            0: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true,
+	      
+		},
+            1: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            2: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            3: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            }}
+    };
+
+  
+        var chart_lines = new google.visualization.ScatterChart(document.getElementById('chart_lines'));
+        chart_lines.draw(data, options);
+      }
+    </script>
+  </head>
+  <body>
+    <div id="chart_lines" style="width: 1000px; height: 700px;"></div>
+  </body>
+</html>

+ 121 - 0
html/opt-bands.html~

@@ -0,0 +1,121 @@
+
+
+
+<html>
+  <head>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1", {packages:["corechart"]});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+/*        var data = new google.visualization.DataTable();
+
+        data.addColumn('number', 'x');
+        data.addColumn('number', 'values');
+        data.addColumn({id:'i2', type:'number', role:'interval'});
+        data.addColumn({id:'i2', type:'number', role:'interval'});
+	data.addColumn('number', 'values');
+        data.addColumn({id:'i2', type:'number', role:'interval'});
+
+        data.addColumn({id:'i2', type:'number', role:'interval'});
+*/
+
+  
+     
+/*
+[{label:'strikes', type:'number'},
+{label:'P',  type:'number'},
+{label:'p1', id:'i2', type:'number', role:'interval'},
+{label:'p2', id:'i2', type:'number', role:'interval'},
+{label:'C', type:'number'},
+{label:'c1', id:'i2', type:'number', role:'interval'},
+{label:'C2', id:'i2', type:'number', role:'interval'}],
+*/
+        
+        var data2 = google.visualization.arrayToDataTable([
+[{label:"strikes",type:"number"},
+{label: 'P-20150929', type:'number'},                
+{label: 'Pb-20150929', id:'i2', type:'number', role:'interval'},                
+{label: 'Pa-20150929', id:'i2', type:'number', role:'interval'},                
+{label: 'C-20150929', type:'number', },                
+{label: 'Cb-20150929', id:'i2', type:'number', role:'interval'},               
+ {label: 'Ca-20150929', id:'i2',type:'number', role:'interval'},],
+[14000,null,null,null,null,null,null,],
+[14800,7.0,2.0,7.0,null,null,null,],
+[16000,null,null,null,null,null,null,],
+[17000,null,null,null,null,null,null,],
+[17400,24.0,23.0,25.0,null,null,null,],
+[18800,58.5,58.0,59.0,null,null,null,],
+[19800,129.0,128.0,130.0,null,null,null,],
+[20000,151.0,150.0,152.0,null,null,null,],
+[20200,177.5,176.0,179.0,null,null,null,],
+[20400,209.5,208.0,211.0,null,null,null,],
+[20600,247.0,246.0,248.0,1183.5,1163.0,1204.0,],
+[20800,291.5,290.0,293.0,null,null,null,],
+[21000,343.5,342.0,345.0,888.5,876.0,901.0,],
+[21200,405.0,403.0,407.0,753.0,741.0,765.0,],
+[21400,480.0,478.0,482.0,626.5,618.0,635.0,],
+[21600,568.0,562.0,574.0,512.0,507.0,517.0,],
+[21800,669.5,661.0,678.0,412.5,410.0,415.0,],
+[22000,783.5,773.0,794.0,325.5,324.0,327.0,],
+[22200,null,null,null,251.5,250.0,253.0,],
+[22400,null,null,null,192.0,191.0,193.0,],
+[22600,null,null,null,145.5,144.0,147.0,],
+[22800,null,null,null,109.0,108.0,110.0,],
+[23000,null,null,null,80.5,80.0,81.0,],
+[23200,null,null,null,61.0,60.0,62.0,],
+[23400,null,null,null,45.5,45.0,46.0,],
+[23600,null,null,null,35.5,34.0,37.0,],
+[24800,null,null,null,null,null,null,],
+
+
+        ]);
+  
+        // The intervals data as narrow lines (useful for showing raw source data)
+
+    var options = {
+        title:'Bar/area interval chart',
+        curveType:'function',
+        intervals: { 'color':'series-color' },
+        interval: {
+            'i0': { 'color': '#4374E0', 'style':'bars', 'barWidth':0, 'lineWidth':4, 'pointSize':10, 'fillOpacity':1 },
+            'i1': { 'color': '#E49307', 'style':'bars', 'barWidth':0, 'lineWidth':4, 'pointSize':10, 'fillOpacity':1 },
+            'i2': { 'style':'area', 'curveType':'function', 'fillOpacity':0.3 }},
+        legend: 'bottom',pointShape: 'diamond',
+          trendlines: {
+            0: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true,
+	      
+		},
+            1: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            2: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            3: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            }}
+    };
+
+  
+        var chart_lines = new google.visualization.ScatterChart(document.getElementById('chart_lines'));
+        chart_lines.draw(data, options);
+      }
+    </script>
+  </head>
+  <body>
+    <div id="chart_lines" style="width: 1000px; height: 700px;"></div>
+  </body>
+</html>

+ 262 - 0
html/opt-chains-ex-tmpl.html

@@ -0,0 +1,262 @@
+<html>
+  <head>
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+  <title> Trading Options Monitor </title>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/2.1.1/math.min.js"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1", {packages:["corechart"]});
+      google.load('visualization', '1', {'packages':['table']});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+	// data contains implied vols for a series of this and next month options
+	// the {{{stuff}}} is substituted by the backend python script with the actual data values 
+	var dataArray = [{{{data}}}];
+        var data = google.visualization.arrayToDataTable(dataArray);
+
+	// data2 contains premiums for a series of this and next month options 
+        var data2 = google.visualization.arrayToDataTable([
+{{{dataPremium}}}
+
+        ]);
+	
+
+        var options = {
+	title: "HSI PUT/CALL volatility",
+          hAxis: {minValue: 18000, maxValue: 22500},
+          vAxis: {minValue: 0.15, maxValue: 0.4},
+          chartArea: {width:'80%'},
+        curveType:'function',
+        intervals: { 'color':'series-color' },
+        interval: {
+            'i3': { 'color': '#4374E0', 'style':'bars', 'barWidth':0, 'lineWidth':1, 'pointSize':6, 'fillOpacity':0.3 },
+            'i4': { 'color': '#E49307', 'style':'bars', 'barWidth':0, 'lineWidth':1, 'pointSize':6, 'fillOpacity':0.3 },
+            'i2': { 'style':'area', 'curveType':'function', 'fillOpacity':0.3 }},
+
+	  pointShape: 'diamond',
+          trendlines: {
+            0: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true,
+	      
+		},
+            1: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            2: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            3: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            }
+          }
+        };
+
+
+	// helper routine to search for the min and max values in the data array
+	// the function skips row 1 which is a header row, 
+	// it skips the first column which is the strike price
+	function minMax(myStringArray){
+	    var arrayLength = myStringArray.length;
+	    var s = '';
+	    var min, max;
+	    min = 99999;
+	    max = -1;
+	    var allNums = new Array();
+	    var k = 0;
+	    for (var i = 1; i < arrayLength; i++) {
+		for (j = 1; j < myStringArray[i].length; j++){
+		        if (myStringArray[i][j] == null) continue;
+		        if (myStringArray[i][j] > max)
+		            max = myStringArray[i][j];
+		        if (myStringArray[i][j] < min)
+		            min = myStringArray[i][j];
+			allNums[k++] = myStringArray[i][j];	
+		}   
+		//s = s + myStringArray[i][0];
+		
+	    }
+	    return { "min" : min , "max": max, "median": math.median(allNums) };
+	}
+
+
+        var chartLinear = new google.visualization.ScatterChart(document.getElementById('chartLinear'));
+        chartLinear.draw(data, options);
+
+        options.trendlines[0].type = 'polynomial';
+        options.trendlines[1].type = 'polynomial';
+
+
+	// chart table display implied volatilities in a nicely formatted table	
+       var chartTbl = new google.visualization.Table(document.getElementById('chartTbl_div'));
+
+	// determine the min max and median of the implied vols
+	var data_range = minMax(dataArray);
+	var formatter = new google.visualization.BarFormat({base: data_range.median,
+                                                             min: data_range.min, 
+                                                             max: data_range.max, width: 120});
+	document.getElementById('vol_divider').value = (data_range.median / data_range.max) * 100;
+	document.getElementById('vol_divider_value').value = data_range.median;
+	var formatter2 = new google.visualization.NumberFormat({pattern:'0.####'});
+	for (i=1; i < 5; i++){
+		formatter2.format(data, i);
+		formatter.format(data, i); // Apply formatter to second column
+	}
+        var options2 = {
+          displayAnnotations: true,
+	  showRowNumber: true, width: '100%', height: '100%', allowHtml: true,
+        };
+	chartTbl.draw(data, options2);
+
+
+        var chartPremium = new google.visualization.ScatterChart(document.getElementById('chartPremium'));
+	options.title = 'PUT/CALL Premium';
+        chartPremium.draw(data2, options);
+	
+
+
+         document.getElementById('format-select').onchange = function() {
+
+           options['pointShape'] = this.value;
+
+           chartLinear.draw(data, options);
+
+         };
+
+        document.getElementById('vol_divider').onchange = function() {
+	   var x = this.value / 100 * (data_range.max - data_range.min) + data_range.min;
+	   document.getElementById('vol_divider_value').value = x;
+           //formatter = new google.visualization.BarFormat({base: x,min:0, max:0.5, width: 120});
+	   formatter = new google.visualization.BarFormat({base: x,
+                                                             min: data_range.min, 
+                                                             max: data_range.max, width: 120});
+   	   for (i=1; i < 5; i++){
+		formatter.format(data, i); // Apply formatter to second column
+	   }
+           chartTbl.draw(data, options2);
+         };
+
+
+        document.getElementById('haxis_range').onchange = function() {
+	   document.getElementById('haxis_from_value').value = this.value;
+	   options.hAxis.minValue = this.value;
+	   chartPremium.draw(data2, options);
+	   chartLinear.draw(data, options);
+
+         };
+      
+// The select handler. Call the chart's getSelection() method
+  function selectHandler() {
+    var selectedItem = chartLinear.getSelection()[0];
+    if (selectedItem) {
+      var value = data.getValue(selectedItem.row, selectedItem.column);
+      alert('The user selected ' + value);
+    }
+  }
+
+  // Listen for the 'select' event, and call my function selectHandler() when
+  // the user selects something on the chart.
+  google.visualization.events.addListener(chartLinear, 'select', selectHandler);
+
+      }
+
+
+    </script>
+    <script>
+    $(document).ready(function () {
+        $('input[id="b_refresh"]').click(function () {
+            
+            $.ajax({
+                type: 'Post',
+                url: '/ws_market_data?r_ckey=HSI-20150929-FUT-&fid=4',
+                success: function (data) {
+			document.getElementById('undly_last_px').value = data;
+                }
+            });
+            $.ajax({
+                type: 'Post',
+                url: '/getSHquote?qs=0000001,1399001,1399300',
+                success: function (data) {
+
+			var json_data = JSON.parse(data);
+
+			if (!String.prototype.format) {
+			  String.prototype.format = function() {
+			    var args = arguments;
+			    return this.replace(/{(\d+)}/g, function(match, number) { 
+			      return typeof args[number] != 'undefined'
+				? args[number]
+				: match
+			      ;
+			    });
+			  };
+			}
+
+
+			var s = "|  {0}: {1} [{2}%]  |  {3}: {4} [{5}%] |  {6}: {7} [{8}%]".format(
+							json_data['0000001']['name'],
+							json_data['0000001']['price'],
+							(json_data['0000001']['percent']*100).toFixed(2) ,
+							json_data['1399001']['name'],
+							json_data['1399001']['price'],
+							(json_data['1399001']['percent']*100).toFixed(2) ,
+							json_data['1399300']['name'],
+							json_data['1399300']['price'],
+							(json_data['1399300']['percent']*100).toFixed(2) );
+			
+			document.getElementById('ssidx_px').value = s;
+                }
+            });
+
+
+
+        })
+    })
+    </script>
+
+  </head>
+  <body>
+        <div id="d_undly_last_px">
+            <input type="button" id="b_refresh" value="Refresh Price" />
+	    <output id=undly_last_px></output>
+	    <output id=ssidx_px></output>
+        </div>
+    <div id="chartLinear" style="height: 350px; width: 850px"></div>
+    <div id="chartPremium" style="height: 350px; width: 850px"></div>
+<li>
+<label for=haxis_from>H-Axis Range Starts At:</label>
+<input type=range id=haxis_range min=10000 value=20000 max=25000 step=500>
+<output id=haxis_from_value></output>
+</li>
+<h2> Implied volatilities for this and next month HSI options</h2>
+    <div id='chartTbl_div' style='width: 900px; height: 500px;'></div>
+    <select id="format-select">
+      <option value="">none</option>
+      <option value="Diamond" selected>Diamond</option>
+      <option value="triangle">triangle</option>
+      <option value="square">square</option>
+      <option value="diamond">diamond</option>
+      <option value="star">star</option>
+      <option value="polygon">polygon</option>
+    </select>
+    <div id="number_format_chart">
+<li>
+<label for=vol_divider>Volatility Divider</label>
+<input type=range id=vol_divider min=0 value=50 max=100 step=5>
+<output id=vol_divider_value></output>
+</li>
+
+
+
+  </body>
+</html>

+ 262 - 0
html/opt-chains-ex-tmpl.html~

@@ -0,0 +1,262 @@
+<html>
+  <head>
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+  <title> Trading Options Monitor </title>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/2.1.1/math.min.js"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1", {packages:["corechart"]});
+      google.load('visualization', '1', {'packages':['table']});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+	// data contains implied vols for a series of this and next month options
+	// the {{{stuff}}} is substituted by the backend python script with the actual data values 
+	var dataArray = [{{{data}}}];
+        var data = google.visualization.arrayToDataTable(dataArray);
+
+	// data2 contains premiums for a series of this and next month options 
+        var data2 = google.visualization.arrayToDataTable([
+{{{dataPremium}}}
+
+        ]);
+	
+
+        var options = {
+	title: "HSI PUT/CALL volatility",
+          hAxis: {minValue: 18000, maxValue: 22500},
+          vAxis: {minValue: 0.15, maxValue: 0.4},
+          chartArea: {width:'80%'},
+        curveType:'function',
+        intervals: { 'color':'series-color' },
+        interval: {
+            'i0': { 'color': '#4374E0', 'style':'bars', 'barWidth':0, 'lineWidth':1, 'pointSize':6, 'fillOpacity':0.3 },
+            'i1': { 'color': '#E49307', 'style':'bars', 'barWidth':0, 'lineWidth':1, 'pointSize':6, 'fillOpacity':0.3 },
+            'i2': { 'style':'area', 'curveType':'function', 'fillOpacity':0.3 }},
+
+	  pointShape: 'diamond',
+          trendlines: {
+            0: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true,
+	      
+		},
+            1: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            2: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            3: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            }
+          }
+        };
+
+
+	// helper routine to search for the min and max values in the data array
+	// the function skips row 1 which is a header row, 
+	// it skips the first column which is the strike price
+	function minMax(myStringArray){
+	    var arrayLength = myStringArray.length;
+	    var s = '';
+	    var min, max;
+	    min = 99999;
+	    max = -1;
+	    var allNums = new Array();
+	    var k = 0;
+	    for (var i = 1; i < arrayLength; i++) {
+		for (j = 1; j < myStringArray[i].length; j++){
+		        if (myStringArray[i][j] == null) continue;
+		        if (myStringArray[i][j] > max)
+		            max = myStringArray[i][j];
+		        if (myStringArray[i][j] < min)
+		            min = myStringArray[i][j];
+			allNums[k++] = myStringArray[i][j];	
+		}   
+		//s = s + myStringArray[i][0];
+		
+	    }
+	    return { "min" : min , "max": max, "median": math.median(allNums) };
+	}
+
+
+        var chartLinear = new google.visualization.ScatterChart(document.getElementById('chartLinear'));
+        chartLinear.draw(data, options);
+
+        options.trendlines[0].type = 'polynomial';
+        options.trendlines[1].type = 'polynomial';
+
+
+	// chart table display implied volatilities in a nicely formatted table	
+       var chartTbl = new google.visualization.Table(document.getElementById('chartTbl_div'));
+
+	// determine the min max and median of the implied vols
+	var data_range = minMax(dataArray);
+	var formatter = new google.visualization.BarFormat({base: data_range.median,
+                                                             min: data_range.min, 
+                                                             max: data_range.max, width: 120});
+	document.getElementById('vol_divider').value = (data_range.median / data_range.max) * 100;
+	document.getElementById('vol_divider_value').value = data_range.median;
+	var formatter2 = new google.visualization.NumberFormat({pattern:'0.####'});
+	for (i=1; i < 5; i++){
+		formatter2.format(data, i);
+		formatter.format(data, i); // Apply formatter to second column
+	}
+        var options2 = {
+          displayAnnotations: true,
+	  showRowNumber: true, width: '100%', height: '100%', allowHtml: true,
+        };
+	chartTbl.draw(data, options2);
+
+
+        var chartPremium = new google.visualization.ScatterChart(document.getElementById('chartPremium'));
+	options.title = 'PUT/CALL Premium';
+        chartPremium.draw(data2, options);
+	
+
+
+         document.getElementById('format-select').onchange = function() {
+
+           options['pointShape'] = this.value;
+
+           chartLinear.draw(data, options);
+
+         };
+
+        document.getElementById('vol_divider').onchange = function() {
+	   var x = this.value / 100 * (data_range.max - data_range.min) + data_range.min;
+	   document.getElementById('vol_divider_value').value = x;
+           //formatter = new google.visualization.BarFormat({base: x,min:0, max:0.5, width: 120});
+	   formatter = new google.visualization.BarFormat({base: x,
+                                                             min: data_range.min, 
+                                                             max: data_range.max, width: 120});
+   	   for (i=1; i < 5; i++){
+		formatter.format(data, i); // Apply formatter to second column
+	   }
+           chartTbl.draw(data, options2);
+         };
+
+
+        document.getElementById('haxis_range').onchange = function() {
+	   document.getElementById('haxis_from_value').value = this.value;
+	   options.hAxis.minValue = this.value;
+	   chartPremium.draw(data2, options);
+	   chartLinear.draw(data, options);
+
+         };
+      
+// The select handler. Call the chart's getSelection() method
+  function selectHandler() {
+    var selectedItem = chartLinear.getSelection()[0];
+    if (selectedItem) {
+      var value = data.getValue(selectedItem.row, selectedItem.column);
+      alert('The user selected ' + value);
+    }
+  }
+
+  // Listen for the 'select' event, and call my function selectHandler() when
+  // the user selects something on the chart.
+  google.visualization.events.addListener(chartLinear, 'select', selectHandler);
+
+      }
+
+
+    </script>
+    <script>
+    $(document).ready(function () {
+        $('input[id="b_refresh"]').click(function () {
+            
+            $.ajax({
+                type: 'Post',
+                url: '/ws_market_data?r_ckey=HSI-20150929-FUT-&fid=4',
+                success: function (data) {
+			document.getElementById('undly_last_px').value = data;
+                }
+            });
+            $.ajax({
+                type: 'Post',
+                url: '/getSHquote?qs=0000001,1399001,1399300',
+                success: function (data) {
+
+			var json_data = JSON.parse(data);
+
+			if (!String.prototype.format) {
+			  String.prototype.format = function() {
+			    var args = arguments;
+			    return this.replace(/{(\d+)}/g, function(match, number) { 
+			      return typeof args[number] != 'undefined'
+				? args[number]
+				: match
+			      ;
+			    });
+			  };
+			}
+
+
+			var s = "|  {0}: {1} [{2}%]  |  {3}: {4} [{5}%] |  {6}: {7} [{8}%]".format(
+							json_data['0000001']['name'],
+							json_data['0000001']['price'],
+							(json_data['0000001']['percent']*100).toFixed(2) ,
+							json_data['1399001']['name'],
+							json_data['1399001']['price'],
+							(json_data['1399001']['percent']*100).toFixed(2) ,
+							json_data['1399300']['name'],
+							json_data['1399300']['price'],
+							(json_data['1399300']['percent']*100).toFixed(2) );
+			
+			document.getElementById('ssidx_px').value = s;
+                }
+            });
+
+
+
+        })
+    })
+    </script>
+
+  </head>
+  <body>
+        <div id="d_undly_last_px">
+            <input type="button" id="b_refresh" value="Refresh Price" />
+	    <output id=undly_last_px></output>
+	    <output id=ssidx_px></output>
+        </div>
+    <div id="chartLinear" style="height: 350px; width: 850px"></div>
+    <div id="chartPremium" style="height: 350px; width: 850px"></div>
+<li>
+<label for=haxis_from>H-Axis Range Starts At:</label>
+<input type=range id=haxis_range min=10000 value=20000 max=25000 step=500>
+<output id=haxis_from_value></output>
+</li>
+<h2> Implied volatilities for this and next month HSI options</h2>
+    <div id='chartTbl_div' style='width: 900px; height: 500px;'></div>
+    <select id="format-select">
+      <option value="">none</option>
+      <option value="Diamond" selected>Diamond</option>
+      <option value="triangle">triangle</option>
+      <option value="square">square</option>
+      <option value="diamond">diamond</option>
+      <option value="star">star</option>
+      <option value="polygon">polygon</option>
+    </select>
+    <div id="number_format_chart">
+<li>
+<label for=vol_divider>Volatility Divider</label>
+<input type=range id=vol_divider min=0 value=50 max=100 step=5>
+<output id=vol_divider_value></output>
+</li>
+
+
+
+  </body>
+</html>

+ 255 - 0
html/opt-chains-tmpl.html

@@ -0,0 +1,255 @@
+<html>
+  <head>
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+  <title> Trading Options Monitor </title>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/2.1.1/math.min.js"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1", {packages:["corechart"]});
+      google.load('visualization', '1', {'packages':['table']});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+	// data contains implied vols for a series of this and next month options
+	// the {{{stuff}}} is substituted by the backend python script with the actual data values 
+	var dataArray = [{{{data}}}];
+        var data = google.visualization.arrayToDataTable(dataArray);
+
+	// data2 contains premiums for a series of this and next month options 
+        var data2 = google.visualization.arrayToDataTable([
+{{{dataPremium}}}
+
+        ]);
+	
+
+        var options = {
+	title: "HSI PUT/CALL volatility",
+          hAxis: {minValue: 18000, maxValue: 22500},
+          vAxis: {minValue: 0.15, maxValue: 0.4},
+          chartArea: {width:'80%'},
+	  pointShape: 'diamond',
+          trendlines: {
+            0: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true,
+	      
+		},
+            1: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            2: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            3: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            }
+          }
+        };
+
+
+	// helper routine to search for the min and max values in the data array
+	// the function skips row 1 which is a header row, 
+	// it skips the first column which is the strike price
+	function minMax(myStringArray){
+	    var arrayLength = myStringArray.length;
+	    var s = '';
+	    var min, max;
+	    min = 99999;
+	    max = -1;
+	    var allNums = new Array();
+	    var k = 0;
+	    for (var i = 1; i < arrayLength; i++) {
+		for (j = 1; j < myStringArray[i].length; j++){
+		        if (myStringArray[i][j] == null) continue;
+		        if (myStringArray[i][j] > max)
+		            max = myStringArray[i][j];
+		        if (myStringArray[i][j] < min)
+		            min = myStringArray[i][j];
+			allNums[k++] = myStringArray[i][j];	
+		}   
+		//s = s + myStringArray[i][0];
+		
+	    }
+	    return { "min" : min , "max": max, "median": math.median(allNums) };
+	}
+
+
+        var chartLinear = new google.visualization.ScatterChart(document.getElementById('chartLinear'));
+        chartLinear.draw(data, options);
+
+        options.trendlines[0].type = 'polynomial';
+        options.trendlines[1].type = 'polynomial';
+
+
+	// chart table display implied volatilities in a nicely formatted table	
+       var chartTbl = new google.visualization.Table(document.getElementById('chartTbl_div'));
+
+	// determine the min max and median of the implied vols
+	var data_range = minMax(dataArray);
+	var formatter = new google.visualization.BarFormat({base: data_range.median,
+                                                             min: data_range.min, 
+                                                             max: data_range.max, width: 120});
+	document.getElementById('vol_divider').value = (data_range.median / data_range.max) * 100;
+	document.getElementById('vol_divider_value').value = data_range.median;
+	var formatter2 = new google.visualization.NumberFormat({pattern:'0.####'});
+	for (i=1; i < 5; i++){
+		formatter2.format(data, i);
+		formatter.format(data, i); // Apply formatter to second column
+	}
+        var options2 = {
+          displayAnnotations: true,
+	  showRowNumber: true, width: '100%', height: '100%', allowHtml: true,
+        };
+	chartTbl.draw(data, options2);
+
+
+        var chartPremium = new google.visualization.ScatterChart(document.getElementById('chartPremium'));
+	options.title = 'PUT/CALL Premium';
+        chartPremium.draw(data2, options);
+	
+
+
+         document.getElementById('format-select').onchange = function() {
+
+           options['pointShape'] = this.value;
+
+           chartLinear.draw(data, options);
+
+         };
+
+        document.getElementById('vol_divider').onchange = function() {
+	   var x = this.value / 100 * (data_range.max - data_range.min) + data_range.min;
+	   document.getElementById('vol_divider_value').value = x;
+           //formatter = new google.visualization.BarFormat({base: x,min:0, max:0.5, width: 120});
+	   formatter = new google.visualization.BarFormat({base: x,
+                                                             min: data_range.min, 
+                                                             max: data_range.max, width: 120});
+   	   for (i=1; i < 5; i++){
+		formatter.format(data, i); // Apply formatter to second column
+	   }
+           chartTbl.draw(data, options2);
+         };
+
+
+        document.getElementById('haxis_range').onchange = function() {
+	   document.getElementById('haxis_from_value').value = this.value;
+	   options.hAxis.minValue = this.value;
+	   chartPremium.draw(data2, options);
+	   chartLinear.draw(data, options);
+
+         };
+      
+// The select handler. Call the chart's getSelection() method
+  function selectHandler() {
+    var selectedItem = chartLinear.getSelection()[0];
+    if (selectedItem) {
+      var value = data.getValue(selectedItem.row, selectedItem.column);
+      alert('The user selected ' + value);
+    }
+  }
+
+  // Listen for the 'select' event, and call my function selectHandler() when
+  // the user selects something on the chart.
+  google.visualization.events.addListener(chartLinear, 'select', selectHandler);
+
+      }
+
+
+    </script>
+    <script>
+    $(document).ready(function () {
+        $('input[id="b_refresh"]').click(function () {
+            
+            $.ajax({
+                type: 'Post',
+                url: '/ws_market_data?r_ckey=HSI-20151029-FUT-&fid=4',
+                success: function (data) {
+			document.getElementById('undly_last_px').value = data;
+                }
+            });
+            $.ajax({
+                type: 'Post',
+                url: '/getSHquote?qs=0000001,1399001,1399300',
+                success: function (data) {
+
+			var json_data = JSON.parse(data);
+
+			if (!String.prototype.format) {
+			  String.prototype.format = function() {
+			    var args = arguments;
+			    return this.replace(/{(\d+)}/g, function(match, number) { 
+			      return typeof args[number] != 'undefined'
+				? args[number]
+				: match
+			      ;
+			    });
+			  };
+			}
+
+
+			var s = "|  {0}: {1} [{2}%]  |  {3}: {4} [{5}%] |  {6}: {7} [{8}%]".format(
+							json_data['0000001']['name'],
+							json_data['0000001']['price'],
+							(json_data['0000001']['percent']*100).toFixed(2) ,
+							json_data['1399001']['name'],
+							json_data['1399001']['price'],
+							(json_data['1399001']['percent']*100).toFixed(2) ,
+							json_data['1399300']['name'],
+							json_data['1399300']['price'],
+							(json_data['1399300']['percent']*100).toFixed(2) );
+			
+			document.getElementById('ssidx_px').value = s;
+                }
+            });
+
+
+
+        })
+    })
+    </script>
+
+  </head>
+  <body>
+        <div id="d_undly_last_px">
+            <input type="button" id="b_refresh" value="Refresh Price" />
+	    <output id=undly_last_px></output>
+	    <output id=ssidx_px></output>
+        </div>
+    <div id="chartLinear" style="height: 350px; width: 850px"></div>
+    <div id="chartPremium" style="height: 350px; width: 850px"></div>
+<li>
+<label for=haxis_from>H-Axis Range Starts At:</label>
+<input type=range id=haxis_range min=10000 value=20000 max=25000 step=500>
+<output id=haxis_from_value></output>
+</li>
+<h2> Implied volatilities for this and next month HSI options</h2>
+    <div id='chartTbl_div' style='width: 900px; height: 500px;'></div>
+    <select id="format-select">
+      <option value="">none</option>
+      <option value="Diamond" selected>Diamond</option>
+      <option value="triangle">triangle</option>
+      <option value="square">square</option>
+      <option value="diamond">diamond</option>
+      <option value="star">star</option>
+      <option value="polygon">polygon</option>
+    </select>
+    <div id="number_format_chart">
+<li>
+<label for=vol_divider>Volatility Divider</label>
+<input type=range id=vol_divider min=0 value=50 max=100 step=5>
+<output id=vol_divider_value></output>
+</li>
+
+
+
+  </body>
+</html>

+ 255 - 0
html/opt-chains-tmpl.html~

@@ -0,0 +1,255 @@
+<html>
+  <head>
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+  <title> Trading Options Monitor </title>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/mathjs/2.1.1/math.min.js"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1", {packages:["corechart"]});
+      google.load('visualization', '1', {'packages':['table']});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+	// data contains implied vols for a series of this and next month options
+	// the {{{stuff}}} is substituted by the backend python script with the actual data values 
+	var dataArray = [{{{data}}}];
+        var data = google.visualization.arrayToDataTable(dataArray);
+
+	// data2 contains premiums for a series of this and next month options 
+        var data2 = google.visualization.arrayToDataTable([
+{{{dataPremium}}}
+
+        ]);
+	
+
+        var options = {
+	title: "HSI PUT/CALL volatility",
+          hAxis: {minValue: 18000, maxValue: 22500},
+          vAxis: {minValue: 0.15, maxValue: 0.4},
+          chartArea: {width:'80%'},
+	  pointShape: 'diamond',
+          trendlines: {
+            0: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true,
+	      
+		},
+            1: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            2: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            },
+            3: {
+              type: 'polynomial',
+              showR2: true,
+              visibleInLegend: true
+
+            }
+          }
+        };
+
+
+	// helper routine to search for the min and max values in the data array
+	// the function skips row 1 which is a header row, 
+	// it skips the first column which is the strike price
+	function minMax(myStringArray){
+	    var arrayLength = myStringArray.length;
+	    var s = '';
+	    var min, max;
+	    min = 99999;
+	    max = -1;
+	    var allNums = new Array();
+	    var k = 0;
+	    for (var i = 1; i < arrayLength; i++) {
+		for (j = 1; j < myStringArray[i].length; j++){
+		        if (myStringArray[i][j] == null) continue;
+		        if (myStringArray[i][j] > max)
+		            max = myStringArray[i][j];
+		        if (myStringArray[i][j] < min)
+		            min = myStringArray[i][j];
+			allNums[k++] = myStringArray[i][j];	
+		}   
+		//s = s + myStringArray[i][0];
+		
+	    }
+	    return { "min" : min , "max": max, "median": math.median(allNums) };
+	}
+
+
+        var chartLinear = new google.visualization.ScatterChart(document.getElementById('chartLinear'));
+        chartLinear.draw(data, options);
+
+        options.trendlines[0].type = 'polynomial';
+        options.trendlines[1].type = 'polynomial';
+
+
+	// chart table display implied volatilities in a nicely formatted table	
+       var chartTbl = new google.visualization.Table(document.getElementById('chartTbl_div'));
+
+	// determine the min max and median of the implied vols
+	var data_range = minMax(dataArray);
+	var formatter = new google.visualization.BarFormat({base: data_range.median,
+                                                             min: data_range.min, 
+                                                             max: data_range.max, width: 120});
+	document.getElementById('vol_divider').value = (data_range.median / data_range.max) * 100;
+	document.getElementById('vol_divider_value').value = data_range.median;
+	var formatter2 = new google.visualization.NumberFormat({pattern:'0.####'});
+	for (i=1; i < 5; i++){
+		formatter2.format(data, i);
+		formatter.format(data, i); // Apply formatter to second column
+	}
+        var options2 = {
+          displayAnnotations: true,
+	  showRowNumber: true, width: '100%', height: '100%', allowHtml: true,
+        };
+	chartTbl.draw(data, options2);
+
+
+        var chartPremium = new google.visualization.ScatterChart(document.getElementById('chartPremium'));
+	options.title = 'PUT/CALL Premium';
+        chartPremium.draw(data2, options);
+	
+
+
+         document.getElementById('format-select').onchange = function() {
+
+           options['pointShape'] = this.value;
+
+           chartLinear.draw(data, options);
+
+         };
+
+        document.getElementById('vol_divider').onchange = function() {
+	   var x = this.value / 100 * (data_range.max - data_range.min) + data_range.min;
+	   document.getElementById('vol_divider_value').value = x;
+           //formatter = new google.visualization.BarFormat({base: x,min:0, max:0.5, width: 120});
+	   formatter = new google.visualization.BarFormat({base: x,
+                                                             min: data_range.min, 
+                                                             max: data_range.max, width: 120});
+   	   for (i=1; i < 5; i++){
+		formatter.format(data, i); // Apply formatter to second column
+	   }
+           chartTbl.draw(data, options2);
+         };
+
+
+        document.getElementById('haxis_range').onchange = function() {
+	   document.getElementById('haxis_from_value').value = this.value;
+	   options.hAxis.minValue = this.value;
+	   chartPremium.draw(data2, options);
+	   chartLinear.draw(data, options);
+
+         };
+      
+// The select handler. Call the chart's getSelection() method
+  function selectHandler() {
+    var selectedItem = chartLinear.getSelection()[0];
+    if (selectedItem) {
+      var value = data.getValue(selectedItem.row, selectedItem.column);
+      alert('The user selected ' + value);
+    }
+  }
+
+  // Listen for the 'select' event, and call my function selectHandler() when
+  // the user selects something on the chart.
+  google.visualization.events.addListener(chartLinear, 'select', selectHandler);
+
+      }
+
+
+    </script>
+    <script>
+    $(document).ready(function () {
+        $('input[id="b_refresh"]').click(function () {
+            
+            $.ajax({
+                type: 'Post',
+                url: '/ws_market_data?r_ckey=HSI-20150929-FUT-&fid=4',
+                success: function (data) {
+			document.getElementById('undly_last_px').value = data;
+                }
+            });
+            $.ajax({
+                type: 'Post',
+                url: '/getSHquote?qs=0000001,1399001,1399300',
+                success: function (data) {
+
+			var json_data = JSON.parse(data);
+
+			if (!String.prototype.format) {
+			  String.prototype.format = function() {
+			    var args = arguments;
+			    return this.replace(/{(\d+)}/g, function(match, number) { 
+			      return typeof args[number] != 'undefined'
+				? args[number]
+				: match
+			      ;
+			    });
+			  };
+			}
+
+
+			var s = "|  {0}: {1} [{2}%]  |  {3}: {4} [{5}%] |  {6}: {7} [{8}%]".format(
+							json_data['0000001']['name'],
+							json_data['0000001']['price'],
+							(json_data['0000001']['percent']*100).toFixed(2) ,
+							json_data['1399001']['name'],
+							json_data['1399001']['price'],
+							(json_data['1399001']['percent']*100).toFixed(2) ,
+							json_data['1399300']['name'],
+							json_data['1399300']['price'],
+							(json_data['1399300']['percent']*100).toFixed(2) );
+			
+			document.getElementById('ssidx_px').value = s;
+                }
+            });
+
+
+
+        })
+    })
+    </script>
+
+  </head>
+  <body>
+        <div id="d_undly_last_px">
+            <input type="button" id="b_refresh" value="Refresh Price" />
+	    <output id=undly_last_px></output>
+	    <output id=ssidx_px></output>
+        </div>
+    <div id="chartLinear" style="height: 350px; width: 850px"></div>
+    <div id="chartPremium" style="height: 350px; width: 850px"></div>
+<li>
+<label for=haxis_from>H-Axis Range Starts At:</label>
+<input type=range id=haxis_range min=10000 value=20000 max=25000 step=500>
+<output id=haxis_from_value></output>
+</li>
+<h2> Implied volatilities for this and next month HSI options</h2>
+    <div id='chartTbl_div' style='width: 900px; height: 500px;'></div>
+    <select id="format-select">
+      <option value="">none</option>
+      <option value="Diamond" selected>Diamond</option>
+      <option value="triangle">triangle</option>
+      <option value="square">square</option>
+      <option value="diamond">diamond</option>
+      <option value="star">star</option>
+      <option value="polygon">polygon</option>
+    </select>
+    <div id="number_format_chart">
+<li>
+<label for=vol_divider>Volatility Divider</label>
+<input type=range id=vol_divider min=0 value=50 max=100 step=5>
+<output id=vol_divider_value></output>
+</li>
+
+
+
+  </body>
+</html>

+ 1028 - 0
html/opt-implv-ts.html

@@ -0,0 +1,1028 @@
+<html>
+  <head>
+    <script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['annotationchart']}]}"></script>
+    <script type='text/javascript'>
+      google.load('visualization', '1', {'packages':['annotationchart']});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+        var data = new google.visualization.DataTable();
+        data.addColumn('date', 'Date');
+        data.addColumn('number', 'put 21800 vol');
+        data.addColumn('number', 'put 22600 vol');
+         data.addColumn('number', 'put 22600 sep vol');
+         data.addColumn('string', 'market updates');
+        data.addRows([
+[new Date(2015,7,20,14,30),0.347560609815,0.315470688169,0.260092480154,undefined,],
+[new Date(2015,7,20,14,31),0.347025550667,0.314804507479,0.261048277484,undefined,],
+[new Date(2015,7,20,14,32),0.348284443317,0.315602712864,0.262461715403,undefined,],
+[new Date(2015,7,20,14,33),0.352050342303,0.318940192486,0.261232741942,undefined,],
+[new Date(2015,7,20,14,34),0.348654624864,0.316268701252,0.262335638356,undefined,],
+[new Date(2015,7,20,14,35),0.348599460508,0.316261316636,0.262235365206,undefined,],
+[new Date(2015,7,20,14,36),0.34879082287,0.316749726087,0.262906374313,undefined,],
+[new Date(2015,7,20,14,37),0.351120296277,0.318333346686,0.262794836697,undefined,],
+[new Date(2015,7,20,14,38),0.348231309895,0.316397845262,0.261959436524,undefined,],
+[new Date(2015,7,20,14,39),0.345630535686,0.314781494599,0.26208301767,undefined,],
+[new Date(2015,7,20,14,40),0.342375391583,0.310991087895,0.261324169243,undefined,],
+[new Date(2015,7,20,14,41),0.343462932786,0.312791867122,0.26208301767,undefined,],
+[new Date(2015,7,20,14,42),0.343125342016,0.311695794112,0.262711190934,undefined,],
+[new Date(2015,7,20,14,43),0.344823138385,0.313149531013,0.262041388238,undefined,],
+[new Date(2015,7,20,14,44),0.340585973732,0.309846930132,0.260445787082,undefined,],
+[new Date(2015,7,20,14,45),0.343949966663,0.314089666489,0.263016485061,undefined,],
+[new Date(2015,7,20,14,46),0.347040267386,0.317467678137,0.263563094775,undefined,],
+[new Date(2015,7,20,14,47),0.341855248687,0.310342599815,0.260024380235,undefined,],
+[new Date(2015,7,20,14,48),0.340515826792,0.309763762087,0.260787691005,undefined,],
+[new Date(2015,7,20,14,49),0.340515826792,0.309763762087,0.260242323517,undefined,],
+[new Date(2015,7,20,14,50),0.339889261122,0.310244024993,0.260605919956,undefined,],
+[new Date(2015,7,20,14,51),0.338718089814,0.308171209522,0.260158626806,undefined,],
+[new Date(2015,7,20,14,52),0.33872563306,0.308383446568,0.259862096644,undefined,],
+[new Date(2015,7,20,14,53),0.342409988425,0.31363732232,0.261859264593,undefined,],
+[new Date(2015,7,20,14,54),0.3415596469,0.311345724161,0.260401767343,undefined,],
+[new Date(2015,7,20,14,55),0.339785204466,0.309235759443,0.259996702617,undefined,],
+[new Date(2015,7,20,14,56),0.340358844488,0.309700589206,0.260930433268,undefined,],
+[new Date(2015,7,20,14,57),0.3389158974,0.309224184028,0.260638443807,undefined,],
+[new Date(2015,7,20,14,58),0.337685916835,0.307805248638,0.259914635005,undefined,],
+[new Date(2015,7,20,14,59),0.337685916835,0.307331615681,0.259733642032,undefined,],
+[new Date(2015,7,20,15,00),0.335680083362,0.310127540926,0.261478621057,undefined,],
+[new Date(2015,7,20,15,01),0.340510280971,0.310812626838,0.261484576111,undefined,],
+[new Date(2015,7,20,15,02),0.338581384894,0.309670439273,0.260503588172,undefined,],
+[new Date(2015,7,20,15,03),0.337391823889,0.307588856311,0.260701531204,undefined,],
+[new Date(2015,7,20,15,04),0.339866276742,0.310384081994,0.26143857417,undefined,],
+[new Date(2015,7,20,15,05),0.337240240924,0.307959848558,0.260097668273,undefined,],
+[new Date(2015,7,20,15,06),0.339760977811,0.311216159976,0.26050839426,undefined,],
+[new Date(2015,7,20,15,07),0.343078940138,0.314725992411,0.262897666546,undefined,],
+[new Date(2015,7,20,15,08),0.339116642859,0.309314872522,0.260582640637,undefined,],
+[new Date(2015,7,20,15,09),0.338967501787,0.308501338365,0.259222916368,undefined,],
+[new Date(2015,7,20,15,10),0.33800189167,0.306874341445,0.259151095756,undefined,],
+[new Date(2015,7,20,15,11),0.339261430939,0.306982528063,0.259365461575,undefined,],
+[new Date(2015,7,20,15,12),0.337422016009,0.306669257438,0.258820651227,undefined,],
+[new Date(2015,7,20,15,13),0.340434218699,0.309905509044,0.260453018626,undefined,],
+[new Date(2015,7,20,15,14),0.338797856837,0.308530068693,0.260993369346,undefined,],
+[new Date(2015,7,20,15,15),0.340010230944,0.30710766585,0.259912188642,undefined,],
+[new Date(2015,7,20,15,16),0.337439335121,0.306619877153,0.259693834234,undefined,],
+[new Date(2015,7,20,15,17),0.339725661091,0.309457759311,0.26184902149,undefined,],
+[new Date(2015,7,20,15,18),0.336754122286,0.306178501611,0.260522933493,undefined,],
+[new Date(2015,7,20,15,19),0.339354503554,0.309232335124,0.262306099013,undefined,],
+[new Date(2015,7,20,15,20),0.338469228782,0.306838627586,0.261139152324,undefined,],
+[new Date(2015,7,20,15,21),0.338469228782,0.307313827855,0.260958147273,undefined,],
+[new Date(2015,7,20,15,22),0.334796896551,0.303024548935,0.259509513997,undefined,],
+[new Date(2015,7,20,15,23),0.332290583241,0.300629074641,0.257021815905,undefined,],
+[new Date(2015,7,20,15,24),0.33929832541,0.30819067187,0.260932470431,undefined,],
+[new Date(2015,7,20,15,25),0.335138854976,0.30331401659,0.260167830494,undefined,],
+[new Date(2015,7,20,15,26),0.338795210301,0.307642850476,0.260879124657,undefined,],
+[new Date(2015,7,20,15,27),0.337004696189,0.306764551538,0.260503588172,undefined,],
+[new Date(2015,7,20,15,28),0.338278321518,0.306764551538,0.26086766164,undefined,],
+[new Date(2015,7,20,15,29),0.336983991049,0.306416314768,0.257629983766,undefined,],
+[new Date(2015,7,20,15,30),0.337664664129,0.306210471566,0.258895767781,undefined,],
+[new Date(2015,7,20,15,31),0.335337936587,0.303930881815,0.257405966186,undefined,],
+[new Date(2015,7,20,15,32),0.334710840417,0.30297128588,0.257224416343,undefined,],
+[new Date(2015,7,20,15,33),0.336544175218,0.305424445261,0.257695086602,undefined,],
+[new Date(2015,7,20,15,34),0.335138854976,0.303847304577,0.257258945445,undefined,],
+[new Date(2015,7,20,15,35),0.334770145549,0.304396518892,0.256607762049,undefined,],
+[new Date(2015,7,20,15,36),0.335284622174,0.303143435804,0.254578511047,undefined,],
+[new Date(2015,7,20,15,37),0.334578734786,0.302842223949,0.25421937948,undefined,],
+[new Date(2015,7,20,15,38),0.331298328069,0.300956905409,0.253989503819,undefined,],
+[new Date(2015,7,20,15,39),0.332811962487,0.301453521447,0.254970572668,undefined,],
+[new Date(2015,7,20,15,40),0.331676974007,0.299120175796,0.252407589848,undefined,],
+[new Date(2015,7,20,15,41),0.33177764194,0.299293279426,0.252957889854,undefined,],
+[new Date(2015,7,20,15,42),0.329989066163,0.298743348863,0.253202726723,undefined,],
+[new Date(2015,7,20,15,43),0.331966553599,0.30123011386,0.253751318517,undefined,],
+[new Date(2015,7,20,15,44),0.331966553599,0.298400216675,0.252650623159,undefined,],
+[new Date(2015,7,20,15,45),0.329706652146,0.297131140887,0.252041913888,undefined,],
+[new Date(2015,7,20,15,46),0.329886352504,0.28094897646,0.251671876308,undefined,],
+[new Date(2015,7,20,15,47),0.329608938399,0.296239080448,0.251671876308,undefined,],
+[new Date(2015,7,20,15,48),0.32872227917,0.296163661915,0.251982439009,undefined,],
+[new Date(2015,7,20,15,49),0.326523614317,0.295753506276,0.25269398372,undefined,],
+[new Date(2015,7,20,15,50),0.32768942147,0.29558976824,0.25162938441,undefined,],
+[new Date(2015,7,20,15,51),0.326498277952,0.295669108579,0.251573461071,undefined,],
+[new Date(2015,7,20,15,52),0.327874116908,0.296694823702,0.252311354544,undefined,],
+[new Date(2015,7,20,15,53),0.328427980454,0.296834586426,0.251934154183,undefined,],
+[new Date(2015,7,20,15,54),0.328374662624,0.29750035672,0.25237536925,undefined,],
+[new Date(2015,7,20,15,55),0.328309329425,0.297770133149,0.252772616862,undefined,],
+[new Date(2015,7,20,15,56),0.330061068213,0.298682101472,0.252715551041,undefined,],
+[new Date(2015,7,20,15,57),0.327707089947,0.295183536187,0.252471806415,undefined,],
+[new Date(2015,7,20,15,58),0.328348429417,0.295722778151,0.251617361615,undefined,],
+[new Date(2015,7,20,15,59),0.327205189464,0.297718418273,0.251721936418,undefined,],
+[new Date(2015,7,20,16,00),0.328004752223,0.298084586981,0.254160917883,undefined,],
+[new Date(2015,7,20,16,01),0.323987655584,0.293125288988,0.250695983396,undefined,],
+[new Date(2015,7,20,16,02),0.328374662624,0.296477082039,0.250695983396,undefined,],
+[new Date(2015,7,20,16,03),0.328592267355,0.29771765458,0.251268655718,undefined,],
+[new Date(2015,7,20,16,04),0.327095385768,0.297025043282,0.253667921177,undefined,],
+[new Date(2015,7,20,16,05),0.32768942147,0.296988982355,0.25400265369,undefined,],
+[new Date(2015,7,20,16,06),0.331036617263,0.296988982355,0.25400265369,undefined,],
+[new Date(2015,7,20,16,07),0.331718419417,0.299537387247,0.253402017533,undefined,],
+[new Date(2015,7,20,16,08),0.331036617263,0.299025422094,0.253402017533,undefined,],
+[new Date(2015,7,20,16,09),0.329668177054,0.299025422094,0.252848384869,undefined,],
+[new Date(2015,7,20,16,10),0.328981510587,0.297486357461,0.253032951477,undefined,],
+[new Date(2015,7,20,16,11),0.328981510587,0.299004906248,0.253586517091,undefined,],
+[new Date(2015,7,20,16,12),0.328981510587,0.2987062119,0.253586517091,undefined,],
+[new Date(2015,7,20,16,13),0.331830908504,0.302464192919,0.253254159911,undefined,],
+[new Date(2015,7,20,16,14),0.333325483395,0.303181567358,0.256343183626,undefined,],
+[new Date(2015,7,20,16,15),0.333325483395,0.303181567358,0.256343183626,undefined,],
+[new Date(2015,7,21,09,15),0.391885483442,0.341621411923,0.257896282525,undefined,],
+[new Date(2015,7,21,09,16),0.376286332171,0.346368735572,0.257726472525,undefined,],
+[new Date(2015,7,21,09,17),0.364157092468,0.350651827073,0.259761158289,undefined,],
+[new Date(2015,7,21,09,18),0.378287800552,0.349018060422,0.262149404196,undefined,],
+[new Date(2015,7,21,09,19),0.406519055716,0.349221981712,0.259926724931,undefined,],
+[new Date(2015,7,21,09,20),0.386891628058,0.348356260363,0.260354921328,undefined,],
+[new Date(2015,7,21,09,21),0.376391071642,0.347462516299,0.261983599291,undefined,],
+[new Date(2015,7,21,09,22),0.380400975635,0.350076244481,0.262907123372,undefined,],
+[new Date(2015,7,21,09,23),0.38469759456,0.350891328784,0.260832942728,undefined,],
+[new Date(2015,7,21,09,24),0.381959726639,0.352037162249,0.265394875528,undefined,],
+[new Date(2015,7,21,09,25),0.38400705409,0.352551785308,0.265122928282,undefined,],
+[new Date(2015,7,21,09,26),0.385994715553,0.357159785836,0.264687387019,undefined,],
+[new Date(2015,7,21,09,27),0.386309936872,0.356464726711,0.264764151121,undefined,],
+[new Date(2015,7,21,09,28),0.384654360566,0.353481973901,0.267086775547,undefined,],
+[new Date(2015,7,21,09,29),0.383861677429,0.353207810549,0.265492136772,undefined,],
+[new Date(2015,7,21,09,30),0.384081627237,0.354660881399,0.26474360518,undefined,],
+[new Date(2015,7,21,09,31),0.38402798666,0.352227505648,0.263120779819,undefined,],
+[new Date(2015,7,21,09,32),0.380629490093,0.349331802195,0.267002361948,undefined,],
+[new Date(2015,7,21,09,33),0.382439113217,0.349456154773,0.26574826637,undefined,],
+[new Date(2015,7,21,09,34),0.382105838898,0.350717776278,0.26528480425,undefined,],
+[new Date(2015,7,21,09,35),0.381427390508,0.350274909497,0.265814809483,undefined,],
+[new Date(2015,7,21,09,36),0.382756606664,0.352175332612,0.264628939323,undefined,],
+[new Date(2015,7,21,09,37),0.380636817524,0.349275379123,0.26793196092,undefined,],
+[new Date(2015,7,21,09,38),0.382128187809,0.350317617766,0.263582480378,undefined,],
+[new Date(2015,7,21,09,39),0.382840194799,0.352233652161,0.26477177494,undefined,],
+[new Date(2015,7,21,09,40),0.382730597177,0.351146082064,0.266375690985,undefined,],
+[new Date(2015,7,21,09,41),0.379892122949,0.348649468128,0.264217867799,undefined,],
+[new Date(2015,7,21,09,42),0.373692611294,0.342929770402,0.265343518064,undefined,],
+[new Date(2015,7,21,09,43),0.372952611376,0.340996141902,0.26524335189,undefined,],
+[new Date(2015,7,21,09,44),0.373929545788,0.340429963548,0.265498680918,undefined,],
+[new Date(2015,7,21,09,45),0.377957156861,0.347026511722,0.265863597446,undefined,],
+[new Date(2015,7,21,09,46),0.375989134328,0.346666533466,0.264854266421,undefined,],
+[new Date(2015,7,21,09,47),0.377754576263,0.34734613799,0.266569548376,undefined,],
+[new Date(2015,7,21,09,48),0.375250142739,0.345030988482,0.266950766259,undefined,],
+[new Date(2015,7,21,09,49),0.375488530475,0.345321012533,0.266152138139,undefined,],
+[new Date(2015,7,21,09,50),0.37587064255,0.344170668485,0.260677959647,undefined,],
+[new Date(2015,7,21,09,51),0.375780837409,0.346724295171,0.261960693658,undefined,],
+[new Date(2015,7,21,09,52),0.372643945657,0.342513433864,0.26570116368,undefined,],
+[new Date(2015,7,21,09,53),0.371704686431,0.34132208023,0.26327416972,undefined,],
+[new Date(2015,7,21,09,54),0.369415572017,0.339440763106,0.262480270666,undefined,],
+[new Date(2015,7,21,09,55),0.371082285317,0.341179400989,0.264554624544,undefined,],
+[new Date(2015,7,21,09,56),0.373058633348,0.342627716629,0.261964643842,undefined,],
+[new Date(2015,7,21,09,57),0.371234681812,0.339845105318,0.262722800594,undefined,],
+[new Date(2015,7,21,09,58),0.371018169135,0.341331023943,0.258668299898,undefined,],
+[new Date(2015,7,21,09,59),0.372077982339,0.341832440235,0.263921883767,undefined,],
+[new Date(2015,7,21,10,00),0.372248180409,0.340889361659,0.263344609946,undefined,],
+[new Date(2015,7,21,10,01),0.372909783613,0.340795987386,0.26448885003,undefined,],
+[new Date(2015,7,21,10,02),0.371671113568,0.34150132884,0.262810940204,undefined,],
+[new Date(2015,7,21,10,03),0.371493533475,0.341084283521,0.261803054059,undefined,],
+[new Date(2015,7,21,10,04),0.371147371796,0.34132208023,0.263252658675,undefined,],
+[new Date(2015,7,21,10,05),0.370293919476,0.34141560959,0.263683815673,undefined,],
+[new Date(2015,7,21,10,06),0.371256719266,0.3419846939,0.262810051838,undefined,],
+[new Date(2015,7,21,10,07),0.371796237921,0.341020450423,0.263248039035,undefined,],
+[new Date(2015,7,21,10,08),0.369819577777,0.339727942206,0.263376629243,undefined,],
+[new Date(2015,7,21,10,09),0.372984863234,0.343045626732,0.263568789191,undefined,],
+[new Date(2015,7,21,10,10),0.371247186723,0.340889361659,0.263761486484,undefined,],
+[new Date(2015,7,21,10,11),0.3717707479,0.342123849374,0.265574825736,undefined,],
+[new Date(2015,7,21,10,12),0.372344825147,0.342815237696,0.265381118311,undefined,],
+[new Date(2015,7,21,10,13),0.373621360097,0.344200141197,0.264050563908,undefined,],
+[new Date(2015,7,21,10,14),0.371996264605,0.343939684373,0.26574826637,undefined,],
+[new Date(2015,7,21,10,15),0.371526911964,0.34244941067,0.265193242793,undefined,],
+[new Date(2015,7,21,10,16),0.371996264605,0.342863532201,0.265689761165,undefined,],
+[new Date(2015,7,21,10,17),0.373347736229,0.343432321224,0.266437885416,undefined,],
+[new Date(2015,7,21,10,18),0.373388126975,0.341290156628,0.264090759747,undefined,],
+[new Date(2015,7,21,10,19),0.37305576787,0.342486288913,0.265450831785,undefined,],
+[new Date(2015,7,21,10,20),0.37418470788,0.34220512908,0.26548519372,undefined,],
+[new Date(2015,7,21,10,21),0.370198847203,0.342381017017,0.266661222461,undefined,],
+[new Date(2015,7,21,10,22),0.370764426367,0.342513433864,0.270377717004,undefined,],
+[new Date(2015,7,21,10,23),0.372026376985,0.341942095056,0.266698067807,undefined,],
+[new Date(2015,7,21,10,24),0.372278651082,0.340759208569,0.267404599763,undefined,],
+[new Date(2015,7,21,10,25),0.370933889403,0.340677122523,0.265393999559,undefined,],
+[new Date(2015,7,21,10,26),0.370589550542,0.340750926503,0.265327924123,undefined,],
+[new Date(2015,7,21,10,27),0.371616826273,0.343201331932,0.264444481319,undefined,],
+[new Date(2015,7,21,10,28),0.371960167465,0.342319094175,0.265283117322,undefined,],
+[new Date(2015,7,21,10,29),0.370782898495,0.342178441667,0.266922498846,undefined,],
+[new Date(2015,7,21,10,30),0.370933889403,0.341745216347,0.266100539762,undefined,],
+[new Date(2015,7,21,10,31),0.372817808398,0.343178999796,0.266862740396,undefined,],
+[new Date(2015,7,21,10,32),0.373229027907,0.342723208655,0.266166141419,undefined,],
+[new Date(2015,7,21,10,33),0.373407984181,0.343018513029,0.265232510906,undefined,],
+[new Date(2015,7,21,10,34),0.372642162468,0.343087653728,0.265860764638,undefined,],
+[new Date(2015,7,21,10,35),0.373847660401,0.344549605043,0.266411504793,undefined,],
+[new Date(2015,7,21,10,36),0.374242979433,0.344958481539,0.267609375363,undefined,],
+[new Date(2015,7,21,10,37),0.374873920904,0.345757873302,0.268605396081,undefined,],
+[new Date(2015,7,21,10,38),0.376305706798,0.347001624793,0.268133654759,undefined,],
+[new Date(2015,7,21,10,39),0.375444161907,0.346143783982,0.267606342345,undefined,],
+[new Date(2015,7,21,10,40),0.375444161907,0.346143783982,0.267606342345,undefined,],
+[new Date(2015,7,21,10,41),0.375193844483,0.345290470697,0.268352986138,undefined,],
+[new Date(2015,7,21,10,42),0.375721791796,0.346469935254,0.269660034862,undefined,],
+[new Date(2015,7,21,10,43),0.375807131338,0.345553378661,0.269329129744,undefined,],
+[new Date(2015,7,21,10,44),0.379271132793,0.349304626428,0.268674616705,undefined,],
+[new Date(2015,7,21,10,45),0.379438571331,0.350084698402,0.269282084223,undefined,],
+[new Date(2015,7,21,10,46),0.379705152393,0.350596723036,0.270008459979,undefined,],
+[new Date(2015,7,21,10,47),0.379903966137,0.350620227197,0.269782516858,undefined,],
+[new Date(2015,7,21,10,48),0.378798938385,0.349399756647,0.270779201354,undefined,],
+[new Date(2015,7,21,10,49),0.378446276481,0.349779017183,0.269875372923,undefined,],
+[new Date(2015,7,21,10,50),0.377120155933,0.34789188761,0.269487796948,undefined,],
+[new Date(2015,7,21,10,51),0.376988203342,0.348720579137,0.269407019411,undefined,],
+[new Date(2015,7,21,10,52),0.378018085267,0.348223939446,0.268364699099,undefined,],
+[new Date(2015,7,21,10,53),0.375887112669,0.346018004582,0.269259399952,undefined,],
+[new Date(2015,7,21,10,54),0.375774600518,0.346122387151,0.269132727501,undefined,],
+[new Date(2015,7,21,10,55),0.375080320601,0.347150878065,0.269338944094,undefined,],
+[new Date(2015,7,21,10,56),0.374918656864,0.346301182131,0.270041428209,undefined,],
+[new Date(2015,7,21,10,57),0.375789824109,0.346878994329,0.268785243216,undefined,],
+[new Date(2015,7,21,10,58),0.375634918761,0.347555481672,0.269216670591,undefined,],
+[new Date(2015,7,21,10,59),0.376625370755,0.34772422242,0.26752212143,undefined,],
+[new Date(2015,7,21,11,00),0.376326912653,0.347908967759,0.270226470816,undefined,],
+[new Date(2015,7,21,11,01),0.376145670558,0.346951780792,0.267574280278,undefined,],
+[new Date(2015,7,21,11,02),0.376036612709,0.346274171692,0.270297704139,undefined,],
+[new Date(2015,7,21,11,03),0.375574839467,0.346138081254,0.266943235319,undefined,],
+[new Date(2015,7,21,11,04),0.375789824109,0.34690842854,0.267785013465,undefined,],
+[new Date(2015,7,21,11,05),0.375016485401,0.346138081254,0.268582698143,undefined,],
+[new Date(2015,7,21,11,06),0.375789824109,0.346878994329,0.267268150271,undefined,],
+[new Date(2015,7,21,11,07),0.376238184286,0.347306426292,0.268601260294,undefined,],
+[new Date(2015,7,21,11,08),0.376434800811,0.348393424551,0.266074401759,undefined,],
+[new Date(2015,7,21,11,09),0.375357979818,0.346545056361,0.268444588485,undefined,],
+[new Date(2015,7,21,11,10),0.376682875812,0.349037878338,0.269094127656,undefined,],
+[new Date(2015,7,21,11,11),0.377150086575,0.346948167468,0.268391749797,undefined,],
+[new Date(2015,7,21,11,12),0.377150086575,0.349101502518,0.268391749797,undefined,],
+[new Date(2015,7,21,11,13),0.378849601315,0.347044336854,0.268880013877,undefined,],
+[new Date(2015,7,21,11,14),0.377426658686,0.348296699853,0.267593018876,undefined,],
+[new Date(2015,7,21,11,15),0.376930877067,0.348127012997,0.268093425946,undefined,],
+[new Date(2015,7,21,11,16),0.378289460877,0.350037204769,0.268258302651,undefined,],
+[new Date(2015,7,21,11,17),0.378564592607,0.348850389459,0.269235258441,undefined,],
+[new Date(2015,7,21,11,18),0.377815923636,0.349083487793,0.267874313577,undefined,],
+[new Date(2015,7,21,11,19),0.376876240328,0.347441134767,0.269695956015,undefined,],
+[new Date(2015,7,21,11,20),0.37797427426,0.348821632448,0.268760228028,undefined,],
+[new Date(2015,7,21,11,21),0.377730153006,0.34792408831,0.269815312221,undefined,],
+[new Date(2015,7,21,11,22),0.377815923636,0.348203897778,0.269815312221,undefined,],
+[new Date(2015,7,21,11,23),0.377896627139,0.348319937859,0.269188207788,undefined,],
+[new Date(2015,7,21,11,24),0.377929181789,0.349859986526,0.268345671491,undefined,],
+[new Date(2015,7,21,11,25),0.376958102,0.347081686651,0.269987869342,undefined,],
+[new Date(2015,7,21,11,26),0.377096354448,0.347780511196,0.268655670822,undefined,],
+[new Date(2015,7,21,11,27),0.37775507779,0.347956257383,0.268828371518,undefined,],
+[new Date(2015,7,21,11,28),0.37838469676,0.347601820131,0.268931286521,undefined,],
+[new Date(2015,7,21,11,29),0.375826960726,0.347294518461,0.268148670377,undefined,],
+[new Date(2015,7,21,11,30),0.375690132459,0.347611548388,0.26845476322,undefined,],
+[new Date(2015,7,21,11,31),0.376113667553,0.347499233829,0.268903935748,undefined,],
+[new Date(2015,7,21,11,32),0.375628435754,0.34726076926,0.270583923223,undefined,],
+[new Date(2015,7,21,11,33),0.37603555918,0.347522371908,0.269457480227,undefined,],
+[new Date(2015,7,21,11,34),0.375786117519,0.346780199691,0.269632874339,undefined,],
+[new Date(2015,7,21,11,35),0.377096354448,0.347908967759,0.270685157202,undefined,],
+[new Date(2015,7,21,11,36),0.377575481302,0.348570699061,0.26995877855,undefined,],
+[new Date(2015,7,21,11,37),0.377365462735,0.348344255591,0.271211473299,undefined,],
+[new Date(2015,7,21,11,38),0.377365462735,0.348472143607,0.271386908051,undefined,],
+[new Date(2015,7,21,11,39),0.376381048683,0.347317795188,0.270484964375,undefined,],
+[new Date(2015,7,21,11,40),0.376700093587,0.348438380984,0.271382968847,undefined,],
+[new Date(2015,7,21,11,41),0.376940529305,0.348502030771,0.270953539847,undefined,],
+[new Date(2015,7,21,11,42),0.377149539347,0.348368736618,0.269877695109,undefined,],
+[new Date(2015,7,21,11,43),0.376411288978,0.348253722435,0.270228309687,undefined,],
+[new Date(2015,7,21,11,44),0.37615992259,0.347944314335,0.270228309687,undefined,],
+[new Date(2015,7,21,11,45),0.376980173545,0.348182124584,0.271733601279,undefined,],
+[new Date(2015,7,21,11,46),0.377505243361,0.34858856127,0.270299553333,undefined,],
+[new Date(2015,7,21,11,47),0.377729443813,0.347749523118,0.270371511996,undefined,],
+[new Date(2015,7,21,11,48),0.376205350499,0.347628109025,0.270418650519,undefined,],
+[new Date(2015,7,21,11,49),0.374954597359,0.346429709847,0.270908678292,undefined,],
+[new Date(2015,7,21,11,50),0.37442800645,0.345637898236,0.270055719546,undefined,],
+[new Date(2015,7,21,11,51),0.37493345424,0.345949694772,0.270055719546,undefined,],
+[new Date(2015,7,21,11,52),0.374182499669,0.346502605905,0.270512036705,undefined,],
+[new Date(2015,7,21,11,53),0.37392929442,0.346667390375,0.270862459119,undefined,],
+[new Date(2015,7,21,11,54),0.37470552294,0.346429709847,0.270299553333,undefined,],
+[new Date(2015,7,21,11,55),0.374182499669,0.346429709847,0.27242724391,undefined,],
+[new Date(2015,7,21,11,56),0.374435627147,0.346429709847,0.272602497496,undefined,],
+[new Date(2015,7,21,11,57),0.375165641043,0.345094569864,0.270055719546,undefined,],
+[new Date(2015,7,21,11,58),0.373904699132,0.3458287157,0.270230913969,undefined,],
+[new Date(2015,7,21,11,59),0.375879382496,0.346266522497,0.270873621574,undefined,],
+[new Date(2015,7,21,12,00),0.375194543983,0.345084569675,0.270429053465,undefined,],
+[new Date(2015,7,21,13,00),0.374661004235,0.345240178804,0.272973064543,undefined,],
+[new Date(2015,7,21,13,01),0.374438342085,0.344892292488,0.270187512265,undefined,],
+[new Date(2015,7,21,13,02),0.374452893293,0.34550646624,0.269774701158,undefined,],
+[new Date(2015,7,21,13,03),0.374197173704,0.34550646624,0.269774701158,undefined,],
+[new Date(2015,7,21,13,04),0.374456985151,0.34481972484,0.270872518992,undefined,],
+[new Date(2015,7,21,13,05),0.372672940391,0.343900411137,0.272340107309,undefined,],
+[new Date(2015,7,21,13,06),0.373604402601,0.343297134882,0.270581298429,undefined,],
+[new Date(2015,7,21,13,07),0.372885197756,0.34580400703,0.272028469335,undefined,],
+[new Date(2015,7,21,13,08),0.37366134414,0.346622658111,0.271982778311,undefined,],
+[new Date(2015,7,21,13,09),0.373642056471,0.343975651908,0.27145723416,undefined,],
+[new Date(2015,7,21,13,10),0.371707246302,0.34366940594,0.272658406751,undefined,],
+[new Date(2015,7,21,13,11),0.371335031728,0.343597016936,0.27035529957,undefined,],
+[new Date(2015,7,21,13,12),0.369259400828,0.342487687828,0.27386136151,undefined,],
+[new Date(2015,7,21,13,13),0.370378040963,0.342234900861,0.272143242458,undefined,],
+[new Date(2015,7,21,13,14),0.370827602438,0.3422470073,0.271230453602,undefined,],
+[new Date(2015,7,21,13,15),0.372416283362,0.344033807119,0.272070856926,undefined,],
+[new Date(2015,7,21,13,16),0.372162618935,0.346771168071,0.272601569014,undefined,],
+[new Date(2015,7,21,13,17),0.372927981728,0.346025146515,0.273651830181,undefined,],
+[new Date(2015,7,21,13,18),0.372924936482,0.346161889383,0.274527017035,undefined,],
+[new Date(2015,7,21,13,19),0.374193153774,0.346426581826,0.273433800186,undefined,],
+[new Date(2015,7,21,13,20),0.374413755477,0.348324207645,0.275709396619,undefined,],
+[new Date(2015,7,21,13,21),0.376727205812,0.349372760436,0.27271983572,undefined,],
+[new Date(2015,7,21,13,22),0.377513650208,0.349639781136,0.273762313336,undefined,],
+[new Date(2015,7,21,13,23),0.376241298713,0.348148343333,0.273323139706,undefined,],
+[new Date(2015,7,21,13,24),0.37445656508,0.348778906403,0.275162892364,undefined,],
+[new Date(2015,7,21,13,25),0.377240357525,0.349527174252,0.273564734374,undefined,],
+[new Date(2015,7,21,13,26),0.374287893086,0.346321686766,0.274132315137,undefined,],
+[new Date(2015,7,21,13,27),0.375094258911,0.347135310453,0.274411224714,undefined,],
+[new Date(2015,7,21,13,28),0.37389418838,0.345585580123,0.274039012022,undefined,],
+[new Date(2015,7,21,13,29),0.375140587288,0.347448653169,0.274857021099,undefined,],
+[new Date(2015,7,21,13,30),0.375357979818,0.348564449494,0.272761227338,undefined,],
+[new Date(2015,7,21,13,31),0.374245736323,0.343902435133,0.274338969439,undefined,],
+[new Date(2015,7,21,13,32),0.373497333387,0.34481091403,0.275566008409,undefined,],
+[new Date(2015,7,21,13,33),0.373287385968,0.34536579878,0.276018344408,undefined,],
+[new Date(2015,7,21,13,34),0.370342261045,0.344014693184,0.276648821394,undefined,],
+[new Date(2015,7,21,13,35),0.370441238606,0.343445244042,0.278011766333,undefined,],
+[new Date(2015,7,21,13,36),0.370562904398,0.343069654172,0.274895196492,undefined,],
+[new Date(2015,7,21,13,37),0.37156613761,0.343369955704,0.275457998861,undefined,],
+[new Date(2015,7,21,13,38),0.372870320743,0.344110913536,0.274913473237,undefined,],
+[new Date(2015,7,21,13,39),0.371111581926,0.341524509391,0.274913473237,undefined,],
+[new Date(2015,7,21,13,40),0.371897302616,0.342771807865,0.273095449594,undefined,],
+[new Date(2015,7,21,13,41),0.369315895996,0.341659499853,0.27645831503,undefined,],
+[new Date(2015,7,21,13,42),0.370257013879,0.343029109289,0.274444084681,undefined,],
+[new Date(2015,7,21,13,43),0.371306837913,0.342897307658,0.273214094622,undefined,],
+[new Date(2015,7,21,13,44),0.369205692758,0.342460353981,0.273038762248,undefined,],
+[new Date(2015,7,21,13,45),0.37064119115,0.343245872158,0.273232181019,undefined,],
+[new Date(2015,7,21,13,46),0.370864954048,0.343245872158,0.274567743729,undefined,],
+[new Date(2015,7,21,13,47),0.371684854498,0.34258325765,0.27446574384,undefined,],
+[new Date(2015,7,21,13,48),0.371910167803,0.344117648531,0.27446574384,undefined,],
+[new Date(2015,7,21,13,49),0.370496921676,0.342925981682,0.276043477441,undefined,],
+[new Date(2015,7,21,13,50),0.369826136721,0.342899840718,0.277971635625,undefined,],
+[new Date(2015,7,21,13,51),0.372874677203,0.342899840718,0.274328145447,undefined,],
+[new Date(2015,7,21,13,52),0.369602981376,0.342197585661,0.275378964399,undefined,],
+[new Date(2015,7,21,13,53),0.371904426853,0.343527567056,0.274353614688,undefined,],
+[new Date(2015,7,21,13,54),0.373147208232,0.34446115968,0.272996794503,undefined,],
+[new Date(2015,7,21,13,55),0.371534085785,0.343419776663,0.272599314472,undefined,],
+[new Date(2015,7,21,13,56),0.371602900138,0.343404799278,0.275406342112,undefined,],
+[new Date(2015,7,21,13,57),0.371516775368,0.343544793126,0.274737772579,undefined,],
+[new Date(2015,7,21,13,58),0.37103240378,0.344288080801,0.27385283049,undefined,],
+[new Date(2015,7,21,13,59),0.372792693934,0.345598762541,0.272084226847,undefined,],
+[new Date(2015,7,21,14,00),0.37328408616,0.345482781771,0.275729410354,undefined,],
+[new Date(2015,7,21,14,01),0.372302839815,0.343369955704,0.273762911333,undefined,],
+[new Date(2015,7,21,14,02),0.372812671599,0.342349201822,0.275745552271,undefined,],
+[new Date(2015,7,21,14,03),0.372881704165,0.34293255392,0.27515924731,undefined,],
+[new Date(2015,7,21,14,04),0.369512370725,0.342053183597,0.274309156745,undefined,],
+[new Date(2015,7,21,14,05),0.371251193424,0.34264233392,0.27212048946,undefined,],
+[new Date(2015,7,21,14,06),0.370004075027,0.343342781652,0.273886890087,undefined,],
+[new Date(2015,7,21,14,07),0.370171819898,0.342495977474,0.272860251823,undefined,],
+[new Date(2015,7,21,14,08),0.369030909761,0.340426735105,0.273541836014,undefined,],
+[new Date(2015,7,21,14,09),0.368067117262,0.341163010773,0.274364042896,undefined,],
+[new Date(2015,7,21,14,10),0.369271676469,0.341758502551,0.273750418195,undefined,],
+[new Date(2015,7,21,14,11),0.369581414938,0.339615862771,0.272226298654,undefined,],
+[new Date(2015,7,21,14,12),0.368257839211,0.339121673992,0.27223616188,undefined,],
+[new Date(2015,7,21,14,13),0.367837442122,0.339285817823,0.274104276983,undefined,],
+[new Date(2015,7,21,14,14),0.367236375002,0.340622362654,0.272876545172,undefined,],
+[new Date(2015,7,21,14,15),0.368985216076,0.339967278048,0.272299274631,undefined,],
+[new Date(2015,7,21,14,16),0.367861771663,0.338413545639,0.271429030413,undefined,],
+[new Date(2015,7,21,14,17),0.364107619427,0.337285018473,0.272185969464,undefined,],
+[new Date(2015,7,21,14,18),0.365299774298,0.338439112373,0.272380174394,undefined,],
+[new Date(2015,7,21,14,19),0.367962664086,0.339317755603,0.271496572047,undefined,],
+[new Date(2015,7,21,14,20),0.365868662472,0.337242070048,0.273988464533,undefined,],
+[new Date(2015,7,21,14,21),0.367386768808,0.338104497848,0.270958058986,undefined,],
+[new Date(2015,7,21,14,22),0.366463303993,0.339047202398,0.2714738416,undefined,],
+[new Date(2015,7,21,14,23),0.364747786616,0.337644755339,0.271183913601,undefined,],
+[new Date(2015,7,21,14,24),0.365317557968,0.337545686768,0.271007117764,undefined,],
+[new Date(2015,7,21,14,25),0.365613655527,0.338539481723,0.271565742938,undefined,],
+[new Date(2015,7,21,14,26),0.365079173826,0.336785689794,0.272625599899,undefined,],
+[new Date(2015,7,21,14,27),0.365530941162,0.337210400956,0.270539065675,undefined,],
+[new Date(2015,7,21,14,28),0.366077593561,0.338366071398,0.271598987067,undefined,],
+[new Date(2015,7,21,14,29),0.367024676329,0.33868789602,0.272691215621,undefined,],
+[new Date(2015,7,21,14,30),0.366010789684,0.338300188783,0.273134419564,undefined,],
+[new Date(2015,7,21,14,31),0.364917290739,0.336668910767,0.272890496606,undefined,],
+[new Date(2015,7,21,14,32),0.366147545091,0.337808642694,0.271796691973,undefined,],
+[new Date(2015,7,21,14,33),0.36503380275,0.33751092112,0.272326309714,undefined,],
+[new Date(2015,7,21,14,34),0.36503380275,0.338031936073,0.272326309714,undefined,],
+[new Date(2015,7,21,14,35),0.365828318067,0.338653448025,0.271558395045,undefined,],
+[new Date(2015,7,21,14,36),0.366680204517,0.338963209639,0.272090628943,undefined,],
+[new Date(2015,7,21,14,37),0.366837727843,0.338065518373,0.272090628943,undefined,],
+[new Date(2015,7,21,14,38),0.366837727843,0.338902889277,0.272527057371,undefined,],
+[new Date(2015,7,21,14,39),0.367360807067,0.339078137077,0.272327770422,undefined,],
+[new Date(2015,7,21,14,40),0.367792733058,0.339509072282,0.271622233155,undefined,],
+[new Date(2015,7,21,14,41),0.367792733058,0.340298079032,0.272423899256,undefined,],
+[new Date(2015,7,21,14,42),0.367231804561,0.339509072282,0.271894419322,undefined,],
+[new Date(2015,7,21,14,43),0.367837442122,0.339794039482,0.273155468579,undefined,],
+[new Date(2015,7,21,14,44),0.366388327353,0.338082427405,0.272070916773,undefined,],
+[new Date(2015,7,21,14,45),0.366674996802,0.340091305257,0.27167680336,undefined,],
+[new Date(2015,7,21,14,46),0.36620288598,0.339513136635,0.27167680336,undefined,],
+[new Date(2015,7,21,14,47),0.367595676958,0.337804768101,0.272616853202,undefined,],
+[new Date(2015,7,21,14,48),0.367854155282,0.339930354902,0.272101586992,undefined,],
+[new Date(2015,7,21,14,49),0.367153862917,0.339832779536,0.273128042103,undefined,],
+[new Date(2015,7,21,14,50),0.367196177674,0.34084832302,0.271845785965,undefined,],
+[new Date(2015,7,21,14,51),0.36770697955,0.340573620808,0.272458223594,undefined,],
+[new Date(2015,7,21,14,52),0.368007291346,0.341462482568,0.272951821282,undefined,],
+[new Date(2015,7,21,14,53),0.368344299703,0.341956337097,0.27610665083,undefined,],
+[new Date(2015,7,21,14,54),0.370582840674,0.341721198332,0.274536336329,undefined,],
+[new Date(2015,7,21,14,55),0.369934857665,0.342657458993,0.273184408729,undefined,],
+[new Date(2015,7,21,14,56),0.371317305564,0.340980387743,0.272131253436,undefined,],
+[new Date(2015,7,21,14,57),0.370525622371,0.341751509681,0.274173889666,undefined,],
+[new Date(2015,7,21,14,58),0.370413215262,0.341905889207,0.273970464009,undefined,],
+[new Date(2015,7,21,14,59),0.368366875129,0.341756374232,0.274386195388,undefined,],
+[new Date(2015,7,21,15,00),0.368334549016,0.340757247497,0.274441435377,undefined,],
+[new Date(2015,7,21,15,01),0.367126448444,0.338740628243,0.274013741691,undefined,],
+[new Date(2015,7,21,15,02),0.367637147582,0.339217568505,0.273750418195,undefined,],
+[new Date(2015,7,21,15,03),0.367637147582,0.33904997687,0.272870948323,undefined,],
+[new Date(2015,7,21,15,04),0.367981693449,0.33904997687,0.272901588897,undefined,],
+[new Date(2015,7,21,15,05),0.368179792921,0.340091305257,0.274134569725,undefined,],
+[new Date(2015,7,21,15,06),0.365648234845,0.338580114437,0.273449181507,undefined,],
+[new Date(2015,7,21,15,07),0.367830483871,0.339486643701,0.273001483942,undefined,],
+[new Date(2015,7,21,15,08),0.364311869806,0.337746382179,0.272734034107,undefined,],
+[new Date(2015,7,21,15,09),0.364311869806,0.336746727593,0.27314765611,undefined,],
+[new Date(2015,7,21,15,10),0.365180296134,0.337644022393,0.273238917984,undefined,],
+[new Date(2015,7,21,15,11),0.366513258029,0.339056858079,0.269676128795,undefined,],
+[new Date(2015,7,21,15,12),0.366009678343,0.337629395245,0.27602514995,undefined,],
+[new Date(2015,7,21,15,13),0.365544495801,0.337242070048,0.273760050608,undefined,],
+[new Date(2015,7,21,15,14),0.365192274761,0.337877548364,0.273541007336,undefined,],
+[new Date(2015,7,21,15,15),0.365510459857,0.337171142369,0.272625599899,undefined,],
+[new Date(2015,7,21,15,16),0.366309471258,0.336888682333,0.273198907926,undefined,],
+[new Date(2015,7,21,15,17),0.364652078664,0.337296120489,0.273298914274,undefined,],
+[new Date(2015,7,21,15,18),0.364837259364,0.337104221258,0.273022229933,undefined,],
+[new Date(2015,7,21,15,19),0.364685046776,0.336496398435,0.273198907926,undefined,],
+[new Date(2015,7,21,15,20),0.365350482362,0.336047007606,0.273728914889,undefined,],
+[new Date(2015,7,21,15,21),0.364118849433,0.335757657531,0.272868408732,undefined,],
+[new Date(2015,7,21,15,22),0.365068547057,0.336471600466,0.273387188001,undefined,],
+[new Date(2015,7,21,15,23),0.365088229963,0.335996070501,0.272094146612,undefined,],
+[new Date(2015,7,21,15,24),0.365081073756,0.335628663657,0.272535066313,undefined,],
+[new Date(2015,7,21,15,25),0.365170526575,0.336269450071,0.273211289764,undefined,],
+[new Date(2015,7,21,15,26),0.363325679031,0.335253743277,0.274840857448,undefined,],
+[new Date(2015,7,21,15,27),0.364708457195,0.335736022231,0.272822986004,undefined,],
+[new Date(2015,7,21,15,28),0.363699145582,0.335031499226,0.273452689421,undefined,],
+[new Date(2015,7,21,15,29),0.36220861852,0.333943074364,0.273275431489,undefined,],
+[new Date(2015,7,21,15,30),0.36243323272,0.333746831789,0.273311922873,undefined,],
+[new Date(2015,7,21,15,31),0.363981456832,0.335541829366,0.273243749418,undefined,],
+[new Date(2015,7,21,15,32),0.364740219552,0.336874335823,0.273483357826,undefined,],
+[new Date(2015,7,21,15,33),0.364754719488,0.336309105667,0.274951478054,undefined,],
+[new Date(2015,7,21,15,34),0.364154776676,0.336518748922,0.273582525519,undefined,],
+[new Date(2015,7,21,15,35),0.361720741075,0.334148772409,0.276038299764,undefined,],
+[new Date(2015,7,21,15,36),0.363220257191,0.335514954784,0.273962480184,undefined,],
+[new Date(2015,7,21,15,37),0.364128212604,0.336387597188,0.273621704335,undefined,],
+[new Date(2015,7,21,15,38),0.364014680178,0.336431599432,0.274018904184,undefined,],
+[new Date(2015,7,21,15,39),0.36370781634,0.336501711348,0.273921960589,undefined,],
+[new Date(2015,7,21,15,40),0.36438597846,0.33724931175,0.273948528227,undefined,],
+[new Date(2015,7,21,15,41),0.364546714379,0.336577933095,0.272237714243,undefined,],
+[new Date(2015,7,21,15,42),0.365273684882,0.337414493812,0.272261754903,undefined,],
+[new Date(2015,7,21,15,43),0.366242772635,0.338015622918,0.27198178896,undefined,],
+[new Date(2015,7,21,15,44),0.366258087065,0.338926451782,0.272794844836,undefined,],
+[new Date(2015,7,21,15,45),0.363942866077,0.337113841296,0.27283332033,undefined,],
+[new Date(2015,7,21,15,46),0.365875488364,0.337768548367,0.274244702278,undefined,],
+[new Date(2015,7,21,15,47),0.365821036448,0.337992349066,0.27398803738,undefined,],
+[new Date(2015,7,21,15,48),0.365751678605,0.339339607133,0.27283332033,undefined,],
+[new Date(2015,7,21,15,49),0.366388829514,0.338021678346,0.272986464373,undefined,],
+[new Date(2015,7,21,15,50),0.365296105696,0.337956641601,0.276268168032,undefined,],
+[new Date(2015,7,21,15,51),0.366903854569,0.339821344802,0.273858972923,undefined,],
+[new Date(2015,7,21,15,52),0.364976524584,0.337815815653,0.273858972923,undefined,],
+[new Date(2015,7,21,15,53),0.362787861253,0.337234488433,0.273265333044,undefined,],
+[new Date(2015,7,21,15,54),0.365049328468,0.3385108791,0.272756293459,undefined,],
+[new Date(2015,7,21,15,55),0.362949901259,0.33730198688,0.274422570494,undefined,],
+[new Date(2015,7,21,15,56),0.361767253966,0.335733249877,0.273807794314,undefined,],
+[new Date(2015,7,21,15,57),0.36210656416,0.335275716554,0.273114387593,undefined,],
+[new Date(2015,7,21,15,58),0.362657959413,0.334888071552,0.273940464994,undefined,],
+[new Date(2015,7,21,15,59),0.363474917206,0.336083627704,0.273484247128,undefined,],
+[new Date(2015,7,21,16,00),0.36329144986,0.336608189926,0.271492253453,undefined,],
+[new Date(2015,7,21,16,01),0.362671524467,0.336428104184,0.272730409781,undefined,],
+[new Date(2015,7,21,16,02),0.362444177305,0.336360343478,0.271257295119,undefined,],
+[new Date(2015,7,21,16,03),0.362388666308,0.334832175928,0.273501709018,undefined,],
+[new Date(2015,7,21,16,04),0.362682690987,0.335347563471,0.27250930423,undefined,],
+[new Date(2015,7,21,16,05),0.362278182418,0.334537210477,0.273187615283,undefined,],
+[new Date(2015,7,21,16,06),0.363315123856,0.336022597021,0.271443930136,undefined,],
+[new Date(2015,7,21,16,07),0.364562951793,0.33508547528,0.273197037327,undefined,],
+[new Date(2015,7,21,16,08),0.362572980741,0.335840415878,0.272399588274,undefined,],
+[new Date(2015,7,21,16,09),0.36274192268,0.334601632467,0.27112171483,undefined,],
+[new Date(2015,7,21,16,10),0.36001072641,0.334352298926,0.270990014724,undefined,],
+[new Date(2015,7,21,16,11),0.361875485075,0.333346985871,0.270716827615,undefined,],
+[new Date(2015,7,21,16,12),0.359898519663,0.331841563572,0.270716827615,undefined,],
+[new Date(2015,7,21,16,13),0.360408833953,0.333566504813,0.271020848194,undefined,],
+[new Date(2015,7,21,16,14),0.361036543884,0.334353897207,0.271600657614,undefined,],
+[new Date(2015,7,21,16,15),0.365465270401,0.3368445081,0.269935033261,undefined,],
+[new Date(2015,7,24,09,15),0.490877097552,0.501812249024,0.188500707676,undefined,],
+[new Date(2015,7,24,09,16),0.485905885979,0.440517546975,0.289543449436,undefined,],
+[new Date(2015,7,24,09,17),0.475743107556,0.440842032612,0.290065881141,undefined,],
+[new Date(2015,7,24,09,18),0.476709815417,0.436374630553,0.291438523608,undefined,],
+[new Date(2015,7,24,09,19),0.472774899282,0.434669666647,0.291415894142,undefined,],
+[new Date(2015,7,24,09,20),0.493232076462,0.447078148705,0.304655567888,undefined,],
+[new Date(2015,7,24,09,21),0.509322001409,0.467221643584,0.300176777823,undefined,],
+[new Date(2015,7,24,09,22),0.502973227366,0.502351633088,0.18291693628,undefined,],
+[new Date(2015,7,24,09,23),0.523132977924,0.480474563475,0.301206195429,undefined,],
+[new Date(2015,7,24,09,24),0.51487333293,0.499721817112,0.304227712128,undefined,],
+[new Date(2015,7,24,09,25),0.511129115386,0.485558850305,0.308100021595,undefined,],
+[new Date(2015,7,24,09,26),0.519380627746,0.475231350154,0.306731171439,undefined,],
+[new Date(2015,7,24,09,27),0.542981670777,0.495648646168,0.306511103438,undefined,],
+[new Date(2015,7,24,09,28),0.543659292689,0.499961460787,0.306144162815,undefined,],
+[new Date(2015,7,24,09,29),0.546667643263,0.488276433516,0.306333091073,undefined,],
+[new Date(2015,7,24,09,30),0.539340038207,0.489476507779,0.305463342959,undefined,],
+[new Date(2015,7,24,09,31),0.541359441136,0.489492984589,0.311108357547,undefined,],
+[new Date(2015,7,24,09,32),0.530464920325,0.48052828954,0.310530044692,undefined,],
+[new Date(2015,7,24,09,33),0.53655775281,0.485268168922,0.308478848228,undefined,],
+[new Date(2015,7,24,09,34),0.537339301706,0.488602041771,0.308718606528,undefined,],
+[new Date(2015,7,24,09,35),0.551858398464,0.514320395657,0.317367364527,undefined,],
+[new Date(2015,7,24,09,36),0.571824515903,0.490118035448,0.314865998623,undefined,],
+[new Date(2015,7,24,09,37),0.574373029596,0.528804863629,0.318995342455,undefined,],
+[new Date(2015,7,24,09,38),0.557962811448,0.530567314053,0.331123499276,undefined,],
+[new Date(2015,7,24,09,39),0.564442898554,0.523152498213,0.328426869133,undefined,],
+[new Date(2015,7,24,09,40),0.566480167029,0.520676423845,0.330681726881,undefined,],
+[new Date(2015,7,24,09,41),0.563047906696,0.50839493255,0.329572924701,undefined,],
+[new Date(2015,7,24,09,42),0.556618062485,0.518738113589,0.326667016515,undefined,],
+[new Date(2015,7,24,09,43),0.547269653755,0.495432560661,0.328538241277,undefined,],
+[new Date(2015,7,24,09,44),0.549626907459,0.511990772736,0.326366095714,undefined,],
+[new Date(2015,7,24,09,45),0.543834056152,0.505643023402,0.328176812118,undefined,],
+[new Date(2015,7,24,09,46),0.537373880722,0.497641572908,0.323496344859,undefined,],
+[new Date(2015,7,24,09,47),0.534596681764,0.496775609908,0.323249030855,undefined,],
+[new Date(2015,7,24,09,48),0.533578154893,0.501753150953,0.328163529019,undefined,],
+[new Date(2015,7,24,09,49),0.535702346929,0.488678219458,0.325325806849,undefined,],
+[new Date(2015,7,24,09,50),0.529608350065,0.490356952343,0.322055788311,undefined,],
+[new Date(2015,7,24,09,51),0.5339478575,0.493425056393,0.324936798258,undefined,],
+[new Date(2015,7,24,09,52),0.527681062963,0.49265352697,0.322788569075,undefined,],
+[new Date(2015,7,24,09,53),0.525650184778,0.484185340439,0.324470556538,undefined,],
+[new Date(2015,7,24,09,54),0.526111104455,0.488385925849,0.31932069645,undefined,],
+[new Date(2015,7,24,09,55),0.527683493549,0.488056281788,0.319037529817,undefined,],
+[new Date(2015,7,24,09,56),0.521246665574,0.485327191217,0.32557209179,undefined,],
+[new Date(2015,7,24,09,57),0.520333270662,0.488879326179,0.321086125369,undefined,],
+[new Date(2015,7,24,09,58),0.520536632136,0.489177617383,0.319029327817,undefined,],
+[new Date(2015,7,24,09,59),0.513740865666,0.474242003988,0.316192077239,undefined,],
+[new Date(2015,7,24,10,00),0.508802943514,0.480069317005,0.318364727927,undefined,],
+[new Date(2015,7,24,10,01),0.517311899864,0.482383046993,0.320665098531,undefined,],
+[new Date(2015,7,24,10,02),0.513846996219,0.479448723606,0.317139053298,undefined,],
+[new Date(2015,7,24,10,03),0.510684252756,0.472927596688,0.317720837717,undefined,],
+[new Date(2015,7,24,10,04),0.506933017071,0.474087190052,0.31632492528,undefined,],
+[new Date(2015,7,24,10,05),0.510593740936,0.4759389721,0.322745300163,undefined,],
+[new Date(2015,7,24,10,06),0.507212620482,0.472058151391,0.31833512233,undefined,],
+[new Date(2015,7,24,10,07),0.509272166847,0.475544068493,0.320071097005,undefined,],
+[new Date(2015,7,24,10,08),0.506481403323,0.471425970004,0.319696038379,undefined,],
+[new Date(2015,7,24,10,09),0.511475454199,0.476949117494,0.320752515594,undefined,],
+[new Date(2015,7,24,10,10),0.510306665446,0.46987240788,0.320963968314,undefined,],
+[new Date(2015,7,24,10,11),0.51634185824,0.475954312445,0.31921041865,undefined,],
+[new Date(2015,7,24,10,12),0.51496607966,0.476848130658,0.321605340222,undefined,],
+[new Date(2015,7,24,10,13),0.518016536119,0.478490320041,0.32247739468,undefined,],
+[new Date(2015,7,24,10,14),0.52347065033,0.4893260824,0.326377939369,undefined,],
+[new Date(2015,7,24,10,15),0.529822529866,0.488252896873,0.32435867182,undefined,],
+[new Date(2015,7,24,10,16),0.523745367589,0.489369591314,0.324755836338,undefined,],
+[new Date(2015,7,24,10,17),0.526191461243,0.483626452894,0.324894757457,undefined,],
+[new Date(2015,7,24,10,18),0.526957043059,0.485267701783,0.32231425787,undefined,],
+[new Date(2015,7,24,10,19),0.527260621525,0.484201423056,0.325426631093,undefined,],
+[new Date(2015,7,24,10,20),0.531722535902,0.49446758168,0.325081495857,undefined,],
+[new Date(2015,7,24,10,21),0.531909436281,0.482468522252,0.320876980331,undefined,],
+[new Date(2015,7,24,10,22),0.53298069349,0.49041835437,0.325619536637,undefined,],
+[new Date(2015,7,24,10,23),0.523065068841,0.477990329483,0.324915469937,undefined,],
+[new Date(2015,7,24,10,24),0.531126067718,0.487706794771,0.320239147412,undefined,],
+[new Date(2015,7,24,10,25),0.520973100852,0.48525076034,0.324720257681,undefined,],
+[new Date(2015,7,24,10,26),0.516813944303,0.472747190523,0.321372946462,undefined,],
+[new Date(2015,7,24,10,27),0.513040589337,0.476962436968,0.318786166259,undefined,],
+[new Date(2015,7,24,10,28),0.508318216923,0.470291220886,0.321947884323,undefined,],
+[new Date(2015,7,24,10,29),0.504619372915,0.464057010658,0.322101062384,undefined,],
+[new Date(2015,7,24,10,30),0.507037462964,0.464102438387,0.319047612261,undefined,],
+[new Date(2015,7,24,10,31),0.501787284672,0.459467826919,0.321222572001,undefined,],
+[new Date(2015,7,24,10,32),0.499893568101,0.452541113519,0.322499822637,undefined,],
+[new Date(2015,7,24,10,33),0.503968522062,0.453414153779,0.322069480888,undefined,],
+[new Date(2015,7,24,10,34),0.500955444111,0.458787216595,0.325665858738,undefined,],
+[new Date(2015,7,24,10,35),0.503230634829,0.458693614507,0.325242363386,undefined,],
+[new Date(2015,7,24,10,36),0.505298784133,0.461993376739,0.323714122387,undefined,],
+[new Date(2015,7,24,10,37),0.507295941737,0.456838124413,0.327381360363,undefined,],
+[new Date(2015,7,24,10,38),0.510495943034,0.46166310586,0.327200630099,undefined,],
+[new Date(2015,7,24,10,39),0.516258242454,0.469451174401,0.328487872382,undefined,],
+[new Date(2015,7,24,10,40),0.517334696011,0.474344147907,0.330038243588,undefined,],
+[new Date(2015,7,24,10,41),0.515210469361,0.469168579879,0.330732469537,undefined,],
+[new Date(2015,7,24,10,42),0.517311899864,0.476853615591,0.334133347403,undefined,],
+[new Date(2015,7,24,10,43),0.518719396785,0.477946061479,0.333025261625,undefined,],
+[new Date(2015,7,24,10,44),0.519591364143,0.477890972874,0.330906805928,undefined,],
+[new Date(2015,7,24,10,45),0.524493481368,0.48152475815,0.334011151198,undefined,],
+[new Date(2015,7,24,10,46),0.527969330024,0.484745259172,0.334928017517,undefined,],
+[new Date(2015,7,24,10,47),0.530194455957,0.485100060443,0.338586464528,undefined,],
+[new Date(2015,7,24,10,48),0.527459391795,0.485557145756,0.339496219922,undefined,],
+[new Date(2015,7,24,10,49),0.527683493549,0.490335941221,0.336527646271,undefined,],
+[new Date(2015,7,24,10,50),0.525505064854,0.487723779427,0.338834351806,undefined,],
+[new Date(2015,7,24,10,51),0.529591547182,0.486355841713,0.334134703012,undefined,],
+[new Date(2015,7,24,10,52),0.524732978874,0.486713813182,0.337543023784,undefined,],
+[new Date(2015,7,24,10,53),0.522271269975,0.480389962195,0.337112628744,undefined,],
+[new Date(2015,7,24,10,54),0.519385531802,0.479159164786,0.338794640903,undefined,],
+[new Date(2015,7,24,10,55),0.517935483265,0.481070694117,0.338914917987,undefined,],
+[new Date(2015,7,24,10,56),0.521413614802,0.480754426862,0.338265739481,undefined,],
+[new Date(2015,7,24,10,57),0.516748190513,0.477901428575,0.337169572842,undefined,],
+[new Date(2015,7,24,10,58),0.515155054376,0.479803865358,0.336364839634,undefined,],
+[new Date(2015,7,24,10,59),0.521432351827,0.479709173586,0.338197147587,undefined,],
+[new Date(2015,7,24,11,00),0.51496607966,0.475570287982,0.339280183523,undefined,],
+[new Date(2015,7,24,11,01),0.517525429352,0.472277110972,0.342465018867,undefined,],
+[new Date(2015,7,24,11,02),0.517806587359,0.47660387876,0.336696407753,undefined,],
+[new Date(2015,7,24,11,03),0.516907423266,0.477143421519,0.339923802704,undefined,],
+[new Date(2015,7,24,11,04),0.51904763826,0.478535595011,0.340779053974,undefined,],
+[new Date(2015,7,24,11,05),0.51724225588,0.479474903994,0.341151250205,undefined,],
+[new Date(2015,7,24,11,06),0.520355639563,0.479097472753,0.342489423629,undefined,],
+[new Date(2015,7,24,11,07),0.523389340418,0.486013611643,0.344259972319,undefined,],
+[new Date(2015,7,24,11,08),0.532911701626,0.491527235365,0.344389135792,undefined,],
+[new Date(2015,7,24,11,09),0.538627869598,0.49357672126,0.346594313302,undefined,],
+[new Date(2015,7,24,11,10),0.534469955867,0.494466485938,0.348215898017,undefined,],
+[new Date(2015,7,24,11,11),0.538431883121,0.495359318609,0.348257767928,undefined,],
+[new Date(2015,7,24,11,12),0.546453412598,0.502642505625,0.355611473396,undefined,],
+[new Date(2015,7,24,11,13),0.553053453196,0.506637526559,0.356456381442,undefined,],
+[new Date(2015,7,24,11,14),0.55849494812,0.512489825972,0.363587710234,undefined,],
+[new Date(2015,7,24,11,15),0.561405094826,0.523309295654,0.364604567197,undefined,],
+[new Date(2015,7,24,11,16),0.567975687011,0.537194714563,0.3645346208,undefined,],
+[new Date(2015,7,24,11,17),0.570984105594,0.524405955748,0.365099099903,undefined,],
+[new Date(2015,7,24,11,18),0.570249924914,0.528942542959,0.368636493756,undefined,],
+[new Date(2015,7,24,11,19),0.572226451911,0.529257502713,0.367841402812,undefined,],
+[new Date(2015,7,24,11,20),0.563798673087,0.525726913828,0.36811982957,undefined,],
+[new Date(2015,7,24,11,21),0.564460672392,0.527988083984,0.36561355918,undefined,],
+[new Date(2015,7,24,11,22),0.562398827275,0.529110171736,0.36749583603,undefined,],
+[new Date(2015,7,24,11,23),0.553534725174,0.510622870107,0.364538747636,undefined,],
+[new Date(2015,7,24,11,24),0.551326061663,0.515151874134,0.363480534713,undefined,],
+[new Date(2015,7,24,11,25),0.546286821637,0.505834768067,0.362802477833,undefined,],
+[new Date(2015,7,24,11,26),0.540784966348,0.491520084836,0.361554779969,undefined,],
+[new Date(2015,7,24,11,27),0.531858177713,0.490715244246,0.357758072085,undefined,],
+[new Date(2015,7,24,11,28),0.528569734002,0.489394889677,0.354524538712,undefined,],
+[new Date(2015,7,24,11,29),0.51472597374,0.478597374922,0.352821963896,undefined,],
+[new Date(2015,7,24,11,30),0.508061504641,0.471952633389,0.352403768276,undefined,],
+[new Date(2015,7,24,11,31),0.504172522104,0.467864791937,0.35206391901,undefined,],
+[new Date(2015,7,24,11,32),0.500207453169,0.463050618632,0.350872991005,undefined,],
+[new Date(2015,7,24,11,33),0.507997594599,0.465426033615,0.351252510909,undefined,],
+[new Date(2015,7,24,11,34),0.510494339394,0.470298670349,0.353060006582,undefined,],
+[new Date(2015,7,24,11,35),0.515786225347,0.476478526999,0.35401973239,undefined,],
+[new Date(2015,7,24,11,36),0.51580870341,0.474454660796,0.35023630384,undefined,],
+[new Date(2015,7,24,11,37),0.515726797261,0.474412051053,0.352361419576,undefined,],
+[new Date(2015,7,24,11,38),0.51527393042,0.476018786124,0.351008832967,undefined,],
+[new Date(2015,7,24,11,39),0.515213185697,0.473619188053,0.350892446582,undefined,],
+[new Date(2015,7,24,11,40),0.511784068094,0.474418381095,0.350941063002,undefined,],
+[new Date(2015,7,24,11,41),0.521483678199,0.475345130605,0.349771388359,undefined,],
+[new Date(2015,7,24,11,42),0.519466055455,0.479707913179,0.348407943372,undefined,],
+[new Date(2015,7,24,11,43),0.523811516269,0.478865410595,0.3490675152,undefined,],
+[new Date(2015,7,24,11,44),0.525735223149,0.481197361224,0.353968053781,undefined,],
+[new Date(2015,7,24,11,45),0.531244176555,0.486976342708,0.350474158866,undefined,],
+[new Date(2015,7,24,11,46),0.535331537226,0.491415271913,0.351332445229,undefined,],
+[new Date(2015,7,24,11,47),0.536445999126,0.495106627632,0.352489753673,undefined,],
+[new Date(2015,7,24,11,48),0.539211414443,0.495106627632,0.353375325308,undefined,],
+[new Date(2015,7,24,11,49),0.53335854317,0.494903493822,0.349644734174,undefined,],
+[new Date(2015,7,24,11,50),0.536421924639,0.492635714356,0.353766163441,undefined,],
+[new Date(2015,7,24,11,51),0.539117228378,0.495457380508,0.355051828654,undefined,],
+[new Date(2015,7,24,11,52),0.535097049645,0.489946313507,0.352506553581,undefined,],
+[new Date(2015,7,24,11,53),0.539710688536,0.491672034726,0.350992846405,undefined,],
+[new Date(2015,7,24,11,54),0.532539780817,0.495106627632,0.351018412825,undefined,],
+[new Date(2015,7,24,11,55),0.536403264407,0.496946814027,0.353689952124,undefined,],
+[new Date(2015,7,24,11,56),0.541376096616,0.499393813547,0.353825416249,undefined,],
+[new Date(2015,7,24,11,57),0.539545808813,0.498750824876,0.353221905393,undefined,],
+[new Date(2015,7,24,11,58),0.536262843121,0.502417268476,0.350616627498,undefined,],
+[new Date(2015,7,24,11,59),0.540590257017,0.500934560854,0.350253902972,undefined,],
+[new Date(2015,7,24,12,00),0.540619751624,0.500974769224,0.348246392207,undefined,],
+[new Date(2015,7,24,13,00),0.53167903235,0.494767208066,0.348115367353,undefined,],
+[new Date(2015,7,24,13,01),0.536613708727,0.491759198061,0.347954592826,undefined,],
+[new Date(2015,7,24,13,02),0.534714558271,0.492303199644,0.347692049371,undefined,],
+[new Date(2015,7,24,13,03),0.529060005369,0.492762513548,0.347697379766,undefined,],
+[new Date(2015,7,24,13,04),0.532622732092,0.494092158474,0.350736362759,undefined,],
+[new Date(2015,7,24,13,05),0.535546440284,0.489476413181,0.353060954948,undefined,],
+[new Date(2015,7,24,13,06),0.537548430934,0.494967626388,0.350302241733,undefined,],
+[new Date(2015,7,24,13,07),0.538738845198,0.498379331571,0.3517289194,undefined,],
+[new Date(2015,7,24,13,08),0.540019816026,0.501127216907,0.350528361091,undefined,],
+[new Date(2015,7,24,13,09),0.543151331002,0.49914719742,0.352204041831,undefined,],
+[new Date(2015,7,24,13,10),0.546272167843,0.511657419223,0.353662872266,undefined,],
+[new Date(2015,7,24,13,11),0.552015592904,0.514097405959,0.353531087858,undefined,],
+[new Date(2015,7,24,13,12),0.553472278842,0.512183097256,0.358196724647,undefined,],
+[new Date(2015,7,24,13,13),0.564124175556,0.524316551733,0.360396985859,undefined,],
+[new Date(2015,7,24,13,14),0.56327884669,0.523018877285,0.360606651045,undefined,],
+[new Date(2015,7,24,13,15),0.562303465808,0.52922756545,0.364537281398,undefined,],
+[new Date(2015,7,24,13,16),0.56488622487,0.532426748261,0.361453777213,undefined,],
+[new Date(2015,7,24,13,17),0.568418858484,0.529671671536,0.360488111918,undefined,],
+[new Date(2015,7,24,13,18),0.562834808268,0.528670057044,0.35978431373,undefined,],
+[new Date(2015,7,24,13,19),0.562821551101,0.52740222671,0.366511576173,undefined,],
+[new Date(2015,7,24,13,20),0.558928152733,0.531117828053,0.361066942906,undefined,],
+[new Date(2015,7,24,13,21),0.555975097881,0.521927599081,0.359090387719,undefined,],
+[new Date(2015,7,24,13,22),0.555044590047,0.524952936856,0.356678413002,undefined,],
+[new Date(2015,7,24,13,23),0.551193559851,0.516687303766,0.358041151815,undefined,],
+[new Date(2015,7,24,13,24),null,null,null,undefined,],
+[new Date(2015,7,24,13,25),0.553030754328,0.520683156211,0.360887798197,undefined,],
+[new Date(2015,7,24,13,26),0.547237090329,0.520370957925,0.359726149266,undefined,],
+[new Date(2015,7,24,13,27),0.545959783141,0.511374269995,0.357392535195,undefined,],
+[new Date(2015,7,24,13,28),0.535244863573,0.497539807011,0.356953364848,undefined,],
+[new Date(2015,7,24,13,29),0.530313815,0.500100897357,0.354069093051,undefined,],
+[new Date(2015,7,24,13,30),0.530230268737,0.505783894089,0.352854662728,undefined,],
+[new Date(2015,7,24,13,31),0.530475904293,0.488693367519,0.354260359011,undefined,],
+[new Date(2015,7,24,13,32),0.526556214507,0.486980295246,0.354181857842,undefined,],
+[new Date(2015,7,24,13,33),0.52329619972,0.490129007852,0.354733552596,undefined,],
+[new Date(2015,7,24,13,34),0.523774731111,0.486067858681,0.354984726226,undefined,],
+[new Date(2015,7,24,13,35),0.528229954938,0.49041395878,0.354101620548,undefined,],
+[new Date(2015,7,24,13,37),0.531138476532,0.494566725835,0.35581258608,undefined,],
+[new Date(2015,7,24,13,38),0.534423900259,0.49683702551,0.355846422709,undefined,],
+[new Date(2015,7,24,13,39),0.533283165459,0.494102584003,0.358105539746,undefined,],
+[new Date(2015,7,24,13,40),0.535305252316,0.506500221305,0.357371084892,undefined,],
+[new Date(2015,7,24,13,41),0.535793818115,0.496394000463,0.358039201992,undefined,],
+[new Date(2015,7,24,13,42),0.53593435257,0.494506891724,0.356380018999,undefined,],
+[new Date(2015,7,24,13,43),0.534553033959,0.487669167672,0.361981826702,undefined,],
+[new Date(2015,7,24,13,44),0.530200558823,0.49378329068,0.358375210614,undefined,],
+[new Date(2015,7,24,13,45),0.524566934913,0.489986434852,0.3567538572,undefined,],
+[new Date(2015,7,24,13,46),0.528873692548,0.495137779112,0.358024374381,undefined,],
+[new Date(2015,7,24,13,47),0.53017566382,0.488129328377,0.35405943685,undefined,],
+[new Date(2015,7,24,13,48),0.524713322579,0.485250310524,0.354640323654,undefined,],
+[new Date(2015,7,24,13,49),0.525141750112,0.485210192967,0.354132499484,undefined,],
+[new Date(2015,7,24,13,50),0.525834723575,0.485709240154,0.352541505731,undefined,],
+[new Date(2015,7,24,13,51),0.522842922834,0.480438724075,0.352405501634,undefined,],
+[new Date(2015,7,24,13,52),0.523153490246,0.480052108819,0.350113984536,undefined,],
+[new Date(2015,7,24,13,53),0.527633851872,0.485705761852,0.354408977231,undefined,],
+[new Date(2015,7,24,13,54),0.529746094483,0.494822013769,0.359549307549,undefined,],
+[new Date(2015,7,24,13,55),0.534779551317,0.494977487067,0.355095604469,undefined,],
+[new Date(2015,7,24,13,56),0.536171694656,0.49636829508,0.355476623119,undefined,],
+[new Date(2015,7,24,13,57),0.538636910575,0.495325616796,0.357215971952,undefined,],
+[new Date(2015,7,24,13,58),0.540864299535,0.498644241678,0.356023053102,undefined,],
+[new Date(2015,7,24,13,59),0.543436491483,0.503321499804,0.35758803223,undefined,],
+[new Date(2015,7,24,14,00),0.547120646052,0.507151940218,0.358549655674,undefined,],
+[new Date(2015,7,24,14,01),0.548400858376,0.506022674919,0.359517217455,undefined,],
+[new Date(2015,7,24,14,02),0.550893301676,0.508509733407,0.356293862639,undefined,],
+[new Date(2015,7,24,14,03),0.55366373059,0.50851743369,0.357784274023,undefined,],
+[new Date(2015,7,24,14,04),0.554564983721,0.511183790819,0.362069666019,undefined,],
+[new Date(2015,7,24,14,05),0.555036331166,0.513110515472,0.358806620501,undefined,],
+[new Date(2015,7,24,14,06),0.551789402813,0.508963515041,0.359303014785,undefined,],
+[new Date(2015,7,24,14,07),0.551046621841,0.505017888532,0.359517217455,undefined,],
+[new Date(2015,7,24,14,08),0.551938974831,0.502772458942,0.356591436031,undefined,],
+[new Date(2015,7,24,14,09),0.54479286564,0.504233759015,0.356068802135,undefined,],
+[new Date(2015,7,24,14,10),0.545283449413,0.500063534716,0.355182453042,undefined,],
+[new Date(2015,7,24,14,11),0.544137535555,0.500731156913,0.353193631029,undefined,],
+[new Date(2015,7,24,14,12),0.542114144521,0.501351261868,0.355762363081,undefined,],
+[new Date(2015,7,24,14,13),0.542759152456,0.49926651913,0.354739580267,undefined,],
+[new Date(2015,7,24,14,14),0.541978144739,0.499412547203,0.35769535216,undefined,],
+[new Date(2015,7,24,14,15),0.541430825379,0.496775263442,0.358469038472,undefined,],
+[new Date(2015,7,24,14,16),0.546225174209,0.502540467991,0.356380007897,undefined,],
+[new Date(2015,7,24,14,17),0.542334344426,0.502721055352,0.357503317162,undefined,],
+[new Date(2015,7,24,14,18),0.541961095422,0.503666880438,0.353303280088,undefined,],
+[new Date(2015,7,24,14,19),0.540301963405,0.499664843383,0.351969373622,undefined,],
+[new Date(2015,7,24,14,20),0.540888908662,0.501027178914,0.359942206797,undefined,],
+[new Date(2015,7,24,14,21),0.543047548835,0.498796052953,0.358788361956,undefined,],
+[new Date(2015,7,24,14,22),0.539103566176,0.497314477954,0.35846296752,undefined,],
+[new Date(2015,7,24,14,23),0.541376096616,0.502207091874,0.356333274274,undefined,],
+[new Date(2015,7,24,14,24),0.540810999927,0.501609642543,0.359222431749,undefined,],
+[new Date(2015,7,24,14,25),0.542504986266,0.505112526398,0.358652841627,undefined,],
+[new Date(2015,7,24,14,26),0.539182208676,0.502050040193,0.361267746604,undefined,],
+[new Date(2015,7,24,14,27),0.540321418209,0.506539130526,0.360406799058,undefined,],
+[new Date(2015,7,24,14,28),0.543091988122,0.504178004311,0.36419276303,undefined,],
+[new Date(2015,7,24,14,29),0.54699941198,0.505705415743,0.360386128993,undefined,],
+[new Date(2015,7,24,14,30),0.545825650624,0.50459576059,0.361144645223,undefined,],
+[new Date(2015,7,24,14,31),0.550142050598,0.508120742159,0.36250280322,undefined,],
+[new Date(2015,7,24,14,32),0.554699142043,0.508384494218,0.364373595993,undefined,],
+[new Date(2015,7,24,14,33),0.554532751327,0.50854401017,0.364350284259,undefined,],
+[new Date(2015,7,24,14,34),0.553768738196,0.513991536118,0.364782630389,undefined,],
+[new Date(2015,7,24,14,35),0.557665263233,0.518355427885,0.365955931259,undefined,],
+[new Date(2015,7,24,14,36),0.554435259681,0.519205317906,0.361710069835,undefined,],
+[new Date(2015,7,24,14,37),0.551794666811,0.52031744204,0.365214615652,undefined,],
+[new Date(2015,7,24,14,38),0.552171216227,0.510122430705,0.363917604038,undefined,],
+[new Date(2015,7,24,14,39),0.552883213498,0.515082210604,0.36450168916,undefined,],
+[new Date(2015,7,24,14,40),0.554435259681,0.507914482658,0.36602957893,undefined,],
+[new Date(2015,7,24,14,41),0.551105794586,0.514668109437,0.366613327416,undefined,],
+[new Date(2015,7,24,14,42),0.54865830276,0.511820222677,0.366307715755,undefined,],
+[new Date(2015,7,24,14,43),0.546678939718,0.510575301363,0.365228645789,undefined,],
+[new Date(2015,7,24,14,44),0.548002023458,0.50780671231,0.366091545768,undefined,],
+[new Date(2015,7,24,14,45),0.547042855179,0.509749611806,0.363788963529,undefined,],
+[new Date(2015,7,24,14,46),0.547355468516,0.512976608412,0.367210027658,undefined,],
+[new Date(2015,7,24,14,47),0.54989128947,0.508287064304,0.36583513087,undefined,],
+[new Date(2015,7,24,14,48),0.549067919339,0.510992220416,0.364036874833,undefined,],
+[new Date(2015,7,24,14,49),0.551192712122,0.509832271638,0.365479460986,undefined,],
+[new Date(2015,7,24,14,50),0.550270128086,0.51188272652,0.36413067524,undefined,],
+[new Date(2015,7,24,14,51),0.548424478547,0.508072502286,0.367654281853,undefined,],
+[new Date(2015,7,24,14,52),0.550003170876,0.515076357672,0.361173091227,undefined,],
+[new Date(2015,7,24,14,53),0.549125057874,0.515305772585,0.361457312132,undefined,],
+[new Date(2015,7,24,14,54),0.548486278957,0.515225171197,0.363898988963,undefined,],
+[new Date(2015,7,24,14,55),0.545545685093,0.508456781927,0.363860504725,undefined,],
+[new Date(2015,7,24,14,56),0.538221936615,0.504759536457,0.36220647924,undefined,],
+[new Date(2015,7,24,14,57),0.540426071875,0.49808720345,0.36187903619,undefined,],
+[new Date(2015,7,24,14,58),0.530483292771,0.505650747163,0.359897973184,undefined,],
+[new Date(2015,7,24,14,59),0.52822979831,0.499507456524,0.360259068811,undefined,],
+[new Date(2015,7,24,15,00),0.523975316138,0.48530628157,0.360316653325,undefined,],
+[new Date(2015,7,24,15,01),0.525561869098,0.496166532032,0.359715820494,undefined,],
+[new Date(2015,7,24,15,02),0.527675062434,0.491846025128,0.35833596128,undefined,],
+[new Date(2015,7,24,15,03),0.521168801352,0.488025902772,0.356891290219,undefined,],
+[new Date(2015,7,24,15,04),0.51872436456,0.483840158388,0.357050697691,undefined,],
+[new Date(2015,7,24,15,05),0.516423855694,0.479312633713,0.355889140505,undefined,],
+[new Date(2015,7,24,15,06),0.519847486923,0.477627695765,0.353414231068,undefined,],
+[new Date(2015,7,24,15,07),0.519610958545,0.479635015333,0.356230980927,undefined,],
+[new Date(2015,7,24,15,08),0.521766413392,0.482943915691,0.356398782658,undefined,],
+[new Date(2015,7,24,15,09),0.527922942179,0.49328207193,0.357083986745,undefined,],
+[new Date(2015,7,24,15,10),0.533916189294,0.49650165547,0.356943475576,undefined,],
+[new Date(2015,7,24,15,11),0.53563619957,0.49076833824,0.35776890466,undefined,],
+[new Date(2015,7,24,15,12),0.535930577394,0.492163771577,0.357875646623,undefined,],
+[new Date(2015,7,24,15,13),0.539778232966,0.493261546152,0.36426865807,undefined,],
+[new Date(2015,7,24,15,14),0.54009032015,0.49643640126,0.358928802823,undefined,],
+[new Date(2015,7,24,15,15),0.537655847803,0.499650445903,0.353923162187,undefined,],
+[new Date(2015,7,24,15,16),0.536612362077,0.492643343327,0.355385805831,undefined,],
+[new Date(2015,7,24,15,17),0.533895703265,0.49178322861,0.355062605013,undefined,],
+[new Date(2015,7,24,15,18),0.528303211781,0.484848986788,0.355918430284,undefined,],
+[new Date(2015,7,24,15,19),0.524162592779,0.480320491973,0.354365514543,undefined,],
+[new Date(2015,7,24,15,20),0.521259560752,0.487889025911,0.353899951848,undefined,],
+[new Date(2015,7,24,15,21),0.509919479773,0.47843336314,0.354031006026,undefined,],
+[new Date(2015,7,24,15,22),0.504246746545,0.465257193525,0.351776668183,undefined,],
+[new Date(2015,7,24,15,23),0.503943484626,0.458642354795,0.349837956957,undefined,],
+[new Date(2015,7,24,15,24),0.505252050541,0.465516762986,0.348083934277,undefined,],
+[new Date(2015,7,24,15,25),0.50018991177,0.461361111964,0.34591418727,undefined,],
+[new Date(2015,7,24,15,26),0.500485445817,0.463207129829,0.34636987232,undefined,],
+[new Date(2015,7,24,15,27),0.500358742354,0.461994091978,0.345485994827,undefined,],
+[new Date(2015,7,24,15,28),0.498644023193,0.457698252709,0.344211350327,undefined,],
+[new Date(2015,7,24,15,29),0.497441979341,0.463623112036,0.345095359971,undefined,],
+[new Date(2015,7,24,15,30),0.496357951176,0.459571595907,0.342980948589,undefined,],
+[new Date(2015,7,24,15,31),0.499654939328,0.4624160788,0.341314214804,undefined,],
+[new Date(2015,7,24,15,32),0.498276560881,0.465865239687,0.34174781894,undefined,],
+[new Date(2015,7,24,15,33),0.501935979708,0.465908674329,0.34317641189,undefined,],
+[new Date(2015,7,24,15,34),0.505576650976,0.476554154544,0.341506852279,undefined,],
+[new Date(2015,7,24,15,35),0.510553298492,0.471819464747,0.344786396751,undefined,],
+[new Date(2015,7,24,15,36),0.509812686416,0.475610572054,0.343946288809,undefined,],
+[new Date(2015,7,24,15,37),0.518037972619,0.483084272012,0.341486504889,undefined,],
+[new Date(2015,7,24,15,38),0.514624170571,0.482859012986,0.344400458952,undefined,],
+[new Date(2015,7,24,15,39),0.514875196301,0.481263573176,0.346870290848,undefined,],
+[new Date(2015,7,24,15,40),0.513428560005,0.477441777895,0.347497349944,undefined,],
+[new Date(2015,7,24,15,41),0.513930990309,0.472462405125,0.350375206438,undefined,],
+[new Date(2015,7,24,15,42),0.512188879698,0.475523468977,0.346358040223,undefined,],
+[new Date(2015,7,24,15,43),0.51333389591,0.473173944406,0.348462454574,undefined,],
+[new Date(2015,7,24,15,44),0.506117915284,0.468946742876,0.345432665315,undefined,],
+[new Date(2015,7,24,15,45),0.507927621988,0.470655384629,0.345497831496,undefined,],
+[new Date(2015,7,24,15,46),0.508109404227,0.476877168905,0.345978012826,undefined,],
+[new Date(2015,7,24,15,47),0.508754257247,0.466408891957,0.348523702344,undefined,],
+[new Date(2015,7,24,15,48),0.510287062646,0.467908511979,0.346706288575,undefined,],
+[new Date(2015,7,24,15,49),0.508210232112,0.469524935699,0.347543594093,undefined,],
+[new Date(2015,7,24,15,50),0.508712535908,0.470144646616,0.347662253788,undefined,],
+[new Date(2015,7,24,15,51),0.508018383917,0.468390952071,0.346394703797,undefined,],
+[new Date(2015,7,24,15,52),0.50856876636,0.46459359718,0.345881097436,undefined,],
+[new Date(2015,7,24,15,53),0.507283391699,0.460945260283,0.344469908446,undefined,],
+[new Date(2015,7,24,15,54),0.508632662117,0.466889262561,0.345585230143,undefined,],
+[new Date(2015,7,24,15,55),0.512585580233,0.47046795339,0.347956279897,undefined,],
+[new Date(2015,7,24,15,56),0.513579025736,0.471830587209,0.347305431905,undefined,],
+[new Date(2015,7,24,15,57),0.510944661813,0.469836053463,0.347148088065,undefined,],
+[new Date(2015,7,24,15,58),0.510214064986,0.468190779089,0.348106189834,undefined,],
+[new Date(2015,7,24,15,59),0.507662736716,0.464949409522,0.349326669729,undefined,],
+[new Date(2015,7,24,16,00),0.508662594753,0.479680481129,0.347661501357,undefined,],
+[new Date(2015,7,24,16,01),0.50789557814,0.477124256006,0.349533899486,undefined,],
+[new Date(2015,7,24,16,02),0.506966045079,0.477692689463,0.350053027752,undefined,],
+[new Date(2015,7,24,16,03),0.507592024675,0.478263709758,0.351368205304,undefined,],
+[new Date(2015,7,24,16,04),0.506465867817,0.47380132712,0.35059621322,undefined,],
+[new Date(2015,7,24,16,05),0.508417244888,0.480708177118,0.350399940245,undefined,],
+[new Date(2015,7,24,16,06),0.508206034755,0.472792229275,0.350399940245,undefined,],
+[new Date(2015,7,24,16,07),0.506151316668,0.476031488468,0.352049489311,undefined,],
+[new Date(2015,7,24,16,08),0.510227009579,0.473358037088,0.350316610774,undefined,],
+[new Date(2015,7,24,16,09),0.510098394768,0.475658502069,0.350760914067,undefined,],
+[new Date(2015,7,24,16,10),0.502517195441,0.476536895555,0.346972881097,undefined,],
+[new Date(2015,7,24,16,11),0.501182194245,0.471681989574,0.350352489707,undefined,],
+[new Date(2015,7,24,16,12),0.504134001643,0.472986238167,0.352326939763,undefined,],
+[new Date(2015,7,24,16,13),0.499515552217,0.468225398224,0.351638340255,undefined,],
+[new Date(2015,7,24,16,14),0.500908284116,0.461149996462,0.352129164858,undefined,],
+[new Date(2015,7,24,16,15),0.499267805971,0.469603986233,0.351698026088,undefined,],
+[new Date(2015,7,25,08,44),null,null,null,undefined,],
+[new Date(2015,7,25,09,15),0.571434797347,0.59438206805,null,undefined,],
+[new Date(2015,7,25,09,16),0.542237480299,0.59438206805,null,undefined,],
+[new Date(2015,7,25,09,17),0.535277208265,0.59438206805,null,undefined,],
+[new Date(2015,7,25,09,18),0.544120825194,0.59438206805,null,undefined,],
+[new Date(2015,7,25,09,19),0.548763149141,0.59438206805,null,undefined,],
+[new Date(2015,7,25,09,20),0.577496812526,0.59438206805,null,undefined,],
+[new Date(2015,7,25,09,21),0.536721590179,0.59438206805,null,undefined,],
+[new Date(2015,7,25,09,22),0.541011606037,0.59438206805,null,undefined,],
+[new Date(2015,7,25,09,23),0.548472710904,0.488435116126,null,undefined,],
+[new Date(2015,7,25,09,24),0.554552801218,0.522169467495,null,undefined,],
+[new Date(2015,7,25,09,25),0.559728449847,0.506822147995,0.13779303858,undefined,],
+[new Date(2015,7,25,09,26),0.418180573063,0.466758951535,0.265183133642,undefined,],
+[new Date(2015,7,25,09,27),0.554256100099,0.527535554399,0.34745064665,undefined,],
+[new Date(2015,7,25,09,28),0.552510712254,0.526267789537,0.353009832437,undefined,],
+[new Date(2015,7,25,09,29),0.555792584535,0.526267789537,0.356591886622,undefined,],
+[new Date(2015,7,25,09,30),0.573201382906,0.526267789537,0.352996362202,undefined,],
+[new Date(2015,7,25,09,31),0.541397550588,0.526267789537,0.356804016676,undefined,],
+[new Date(2015,7,25,09,32),0.542012036353,0.346887280914,0.349210801986,undefined,],
+[new Date(2015,7,25,09,33),0.529342208396,0.502110235463,0.352100884404,undefined,],
+[new Date(2015,7,25,09,34),0.541348057339,0.498936306161,0.354474519183,undefined,],
+[new Date(2015,7,25,09,35),0.535873261082,0.507307360888,0.349940247712,undefined,],
+[new Date(2015,7,25,09,36),0.531771815087,0.489160175008,0.352169971819,undefined,],
+[new Date(2015,7,25,09,37),0.543376421568,0.509701446575,0.352996121874,undefined,],
+[new Date(2015,7,25,09,38),0.532893808238,0.507974648654,0.349136918865,undefined,],
+[new Date(2015,7,25,09,39),0.526810448247,0.593113931913,0.347119398292,undefined,],
+[new Date(2015,7,25,09,40),0.528596368803,0.50592076488,0.343681572347,undefined,],
+[new Date(2015,7,25,09,41),0.523684617133,0.453691773062,0.331481470057,undefined,],
+[new Date(2015,7,25,09,42),0.524642888855,0.472131116731,0.342812877722,undefined,],
+[new Date(2015,7,25,09,43),0.518896589899,0.477831544693,0.337749762254,undefined,],
+[new Date(2015,7,25,09,44),0.51131074233,0.479507827179,0.33952266844,undefined,],
+[new Date(2015,7,25,09,45),0.523033258183,0.479064397323,0.342849994739,undefined,],
+[new Date(2015,7,25,09,46),0.520684603311,0.471497998722,0.339161831744,undefined,],
+[new Date(2015,7,25,09,47),0.514875605642,0.47748626439,0.340226533499,undefined,],
+[new Date(2015,7,25,09,48),0.507548925006,0.685873972266,0.199365131286,undefined,],
+[new Date(2015,7,25,09,49),0.508997425316,0.468082613306,0.339875394388,undefined,],
+[new Date(2015,7,25,09,50),0.509734005684,0.467748338596,0.339157378369,undefined,],
+[new Date(2015,7,25,09,51),0.507413721322,0.468900725979,0.33904428755,undefined,],
+[new Date(2015,7,25,09,52),0.514513273263,0.572034395018,0.337443899517,undefined,],
+[new Date(2015,7,25,09,53),0.510047228272,0.469069143678,0.338507238638,undefined,],
+[new Date(2015,7,25,09,54),0.508113126404,0.463974071634,0.337004187362,undefined,],
+[new Date(2015,7,25,09,55),0.507317893377,0.461307026713,0.340401156859,undefined,],
+[new Date(2015,7,25,09,56),0.504893790658,0.463925303335,0.334064485274,undefined,],
+[new Date(2015,7,25,09,57),0.503686494293,0.51076312315,0.336916888974,undefined,],
+[new Date(2015,7,25,09,58),0.507479450525,0.462278432806,0.338342036332,undefined,],
+[new Date(2015,7,25,09,59),0.504977049572,0.463978278939,0.337312498495,undefined,],
+[new Date(2015,7,25,10,00),0.501667585951,0.471098824756,0.337036987615,undefined,],
+[new Date(2015,7,25,10,01),0.502838119823,0.459926938337,0.338895519352,undefined,],
+[new Date(2015,7,25,10,02),0.510262739578,0.471123050319,0.339016671902,undefined,],
+[new Date(2015,7,25,10,03),0.513286829625,0.459749582,0.336984389918,undefined,],
+[new Date(2015,7,25,10,04),0.514340257773,0.471158792876,0.337566579523,undefined,],
+[new Date(2015,7,25,10,05),0.510938622195,0.468755104908,0.33947531965,undefined,],
+[new Date(2015,7,25,10,06),0.510826931777,0.470580365608,0.34045497744,undefined,],
+[new Date(2015,7,25,10,07),0.511171030067,0.470634264931,0.340579850844,undefined,],
+[new Date(2015,7,25,10,08),0.517499184404,0.462719866166,0.340044279747,undefined,],
+[new Date(2015,7,25,10,09),0.512376432063,0.466045000065,0.337402971373,undefined,],
+[new Date(2015,7,25,10,10),0.514974208172,0.463208875839,0.339476909963,undefined,],
+[new Date(2015,7,25,10,11),0.509870112368,0.464771601446,0.336062862613,undefined,],
+[new Date(2015,7,25,10,12),0.514008754442,0.465320490574,0.338204361493,undefined,],
+[new Date(2015,7,25,10,13),0.512779350736,0.468511961959,0.339316740698,undefined,],
+[new Date(2015,7,25,10,14),0.512989492802,0.468055443638,0.34071904376,undefined,],
+[new Date(2015,7,25,10,15),0.511971833362,0.467943304763,0.336651476251,undefined,],
+[new Date(2015,7,25,10,16),0.512811767853,0.467797265175,0.335811383109,undefined,],
+[new Date(2015,7,25,10,17),0.515001066827,0.470549119042,0.334540374724,undefined,],
+[new Date(2015,7,25,10,18),0.515321126374,0.464103758745,0.335250436945,undefined,],
+[new Date(2015,7,25,10,19),0.514602708015,0.471176962832,0.333592496712,undefined,],
+[new Date(2015,7,25,10,20),0.514784053846,0.466783612964,0.330828531777,undefined,],
+[new Date(2015,7,25,10,21),0.517999341723,0.469284430715,0.337692370401,undefined,],
+[new Date(2015,7,25,10,22),0.520599878753,0.468667693159,0.334900234828,undefined,],
+[new Date(2015,7,25,10,23),0.518870149312,0.47372517915,0.334526534562,undefined,],
+[new Date(2015,7,25,10,24),0.520599878753,0.473749387571,0.334168102404,undefined,],
+[new Date(2015,7,25,10,25),0.518818124881,0.472193205273,0.332862140938,undefined,],
+[new Date(2015,7,25,10,26),0.519221715429,0.469310330431,0.335095756373,undefined,],
+[new Date(2015,7,25,10,27),0.523322551435,0.475039366223,0.335574824047,undefined,],
+[new Date(2015,7,25,10,28),0.525940694287,0.48483729029,0.337431356487,undefined,],
+[new Date(2015,7,25,10,29),0.52721445042,0.480143972129,0.335155068229,undefined,],
+[new Date(2015,7,25,10,30),0.529158112923,0.483822667885,0.336555636292,undefined,],
+[new Date(2015,7,25,10,31),0.529534483428,0.484011075376,0.337237997438,undefined,],
+[new Date(2015,7,25,10,32),0.532628722033,0.482865293592,0.338325306922,undefined,],
+[new Date(2015,7,25,10,33),0.53296408137,0.486641703756,0.337991086649,undefined,],
+[new Date(2015,7,25,10,34),0.535928797807,0.487618587453,0.341215508635,undefined,],
+[new Date(2015,7,25,10,35),0.531999148481,0.482446714553,0.337124122429,undefined,],
+[new Date(2015,7,25,10,36),0.533237288996,0.483844685321,0.336270982274,undefined,],
+[new Date(2015,7,25,10,37),0.529988382147,0.484438818257,0.335466250041,undefined,],
+[new Date(2015,7,25,10,38),0.531567132796,0.483695418446,0.335454331956,undefined,],
+[new Date(2015,7,25,10,39),0.528201427908,0.482553441025,0.334909787151,undefined,],
+[new Date(2015,7,25,10,40),0.525682971067,0.476886283677,0.333057195094,undefined,],
+[new Date(2015,7,25,10,41),0.52082099499,0.473722012097,0.331657295682,undefined,],
+[new Date(2015,7,25,10,42),0.523993899962,0.475055684924,0.335096800947,undefined,],
+[new Date(2015,7,25,10,43),0.522198741532,0.47604895279,0.3343443242,undefined,],
+[new Date(2015,7,25,10,44),0.52336825305,0.478014387528,0.336410105973,undefined,],
+[new Date(2015,7,25,10,45),0.521969664233,0.474310152073,0.336423395178,undefined,],
+[new Date(2015,7,25,10,46),0.524159523515,0.477302876896,0.334772181946,undefined,],
+[new Date(2015,7,25,10,47),0.522942229865,0.473924949666,0.335524427089,undefined,],
+[new Date(2015,7,25,10,48),0.522749546897,0.476952906639,0.33388479144,undefined,],
+[new Date(2015,7,25,10,49),0.521064393923,0.480650308821,0.335136201006,undefined,],
+[new Date(2015,7,25,10,50),0.520541969317,0.476311320066,0.335658088774,undefined,],
+[new Date(2015,7,25,10,51),0.518053143578,0.472917486637,0.336225789731,undefined,],
+[new Date(2015,7,25,10,52),0.521537265405,0.474137691191,0.337494333118,undefined,],
+[new Date(2015,7,25,10,53),0.51901525203,0.46870714818,0.337061803242,undefined,],
+[new Date(2015,7,25,10,54),0.522108323511,0.473027344308,0.338549685672,undefined,],
+[new Date(2015,7,25,10,55),0.519699889658,0.471132424478,0.337099233052,undefined,],
+[new Date(2015,7,25,10,56),0.519445606345,0.473039513842,0.337823631318,undefined,],
+[new Date(2015,7,25,10,57),0.518957655031,0.471821825657,0.337489390046,undefined,],
+[new Date(2015,7,25,10,58),0.519179018741,0.471324694822,0.337693859123,undefined,],
+[new Date(2015,7,25,10,59),0.520314647056,0.472152011087,0.337517608266,undefined,],
+[new Date(2015,7,25,11,00),0.517853996599,0.47142369235,0.336492463942,undefined,],
+[new Date(2015,7,25,11,01),0.515374325959,0.467007008371,0.335941992198,undefined,],
+[new Date(2015,7,25,11,02),0.513296784611,0.46677901022,0.336192621332,undefined,],
+[new Date(2015,7,25,11,03),0.517784003146,0.468456615245,0.336613310113,undefined,],
+[new Date(2015,7,25,11,04),0.517269818825,0.464765719709,0.338042581806,undefined,],
+[new Date(2015,7,25,11,05),0.516605959433,0.468689335895,0.337063075073,undefined,],
+[new Date(2015,7,25,11,06),0.514515551521,0.469176685077,0.335697388935,undefined,],
+[new Date(2015,7,25,11,07),0.518931550488,0.470749803142,0.336855238689,undefined,],
+[new Date(2015,7,25,11,08),0.513640688302,0.468412110081,0.337669183477,undefined,],
+[new Date(2015,7,25,11,09),0.514724274266,0.47067135176,0.339394533618,undefined,],
+[new Date(2015,7,25,11,10),0.51519874576,0.467644569393,0.338483538844,undefined,],
+[new Date(2015,7,25,11,11),0.515845053725,0.469223067587,0.339771599857,undefined,],
+[new Date(2015,7,25,11,12),0.513947289193,0.470946830582,0.340337352349,undefined,],
+[new Date(2015,7,25,11,13),0.512543247111,0.46859241639,0.342006630241,undefined,],
+[new Date(2015,7,25,11,14),0.51193495932,0.470618201302,0.342134391447,undefined,],
+[new Date(2015,7,25,11,15),0.507609502651,0.459012637077,0.340696769803,undefined,],
+[new Date(2015,7,25,11,16),0.508372261691,0.464970365451,0.34123126378,undefined,],
+[new Date(2015,7,25,11,17),0.507241413404,0.463230251779,0.339638400074,undefined,],
+[new Date(2015,7,25,11,18),0.506877603605,0.460961794557,0.339764000679,undefined,],
+[new Date(2015,7,25,11,19),0.506877603605,0.465014978105,0.34096774221,undefined,],
+[new Date(2015,7,25,11,20),0.505728351091,0.457116069973,0.341249700883,undefined,],
+[new Date(2015,7,25,11,21),0.507966161356,0.456460514473,0.340796059928,undefined,],
+[new Date(2015,7,25,11,22),0.510699347359,0.463353791419,0.340569843242,undefined,],
+[new Date(2015,7,25,11,23),0.505646307121,0.460033366473,0.342444656706,undefined,],
+[new Date(2015,7,25,11,24),0.504360194279,0.459692832092,0.341494721054,undefined,],
+[new Date(2015,7,25,11,25),0.504818829881,0.462278432806,0.341191968362,undefined,],
+[new Date(2015,7,25,11,26),0.507354011822,0.458673047852,0.340494104115,undefined,],
+[new Date(2015,7,25,11,27),0.502684204103,0.461285967748,0.340144294509,undefined,],
+[new Date(2015,7,25,11,28),0.502147183555,0.459846422975,0.342010798164,undefined,],
+[new Date(2015,7,25,11,29),0.503562198646,0.455094490589,0.340541393376,undefined,],
+[new Date(2015,7,25,11,30),0.502488126306,0.458504450844,0.339856071737,undefined,],
+[new Date(2015,7,25,11,31),0.502476253827,0.451738412311,0.340478195612,undefined,],
+[new Date(2015,7,25,11,32),0.500946093925,0.450345123747,0.33902714855,undefined,],
+[new Date(2015,7,25,11,33),0.503801861738,0.461175918745,0.340106611856,undefined,],
+[new Date(2015,7,25,11,34),0.502910696183,0.451800365821,0.339452552631,undefined,],
+[new Date(2015,7,25,11,35),0.501787890898,0.454802663575,0.340596456319,undefined,],
+[new Date(2015,7,25,11,36),0.499460221057,0.457390360681,0.3415364494,undefined,],
+[new Date(2015,7,25,11,37),0.506462212017,0.460195080142,0.340073392342,undefined,],
+[new Date(2015,7,25,11,38),0.506837783676,0.460807720386,0.341572757333,undefined,],
+[new Date(2015,7,25,11,39),0.507016372008,0.454468033221,0.339073803377,undefined,],
+[new Date(2015,7,25,11,40),0.507285279529,0.460489844717,0.340891617716,undefined,],
+[new Date(2015,7,25,11,41),0.502778647374,0.4581610948,0.339657882777,undefined,],
+[new Date(2015,7,25,11,42),0.502156831996,0.455652306184,0.340212008878,undefined,],
+[new Date(2015,7,25,11,43),0.500940368394,0.451767963624,0.340584185482,undefined,],
+[new Date(2015,7,25,11,44),0.4988638821,0.452052836424,0.340187697707,undefined,],
+[new Date(2015,7,25,11,45),0.497215792878,0.452876282552,0.339980241758,undefined,],
+[new Date(2015,7,25,11,46),0.497850931598,0.448519538806,0.339161284898,undefined,],
+[new Date(2015,7,25,11,47),0.493260848087,0.446319824907,0.340383586293,undefined,],
+[new Date(2015,7,25,11,48),0.493518739895,0.448418023263,0.338765164759,undefined,],
+[new Date(2015,7,25,11,49),0.491800288571,0.448340167943,0.339131746775,undefined,],
+[new Date(2015,7,25,11,50),0.492506213517,0.446593883864,0.338969001349,undefined,],
+[new Date(2015,7,25,11,51),0.491234616141,0.443687411031,0.338969001349,undefined,],
+[new Date(2015,7,25,11,52),0.493001846498,0.440673309993,0.340387491628,undefined,],
+[new Date(2015,7,25,11,53),0.492809491614,0.443276696424,0.339190104343,undefined,],
+[new Date(2015,7,25,11,54),0.495353524095,0.446179011735,0.337368287618,undefined,],
+[new Date(2015,7,25,11,55),0.493154632289,0.442254241854,0.338755882777,undefined,],
+[new Date(2015,7,25,11,56),0.494975101081,0.445001549842,0.338895093364,undefined,],
+[new Date(2015,7,25,11,57),0.493583252663,0.442590467777,0.337126067338,undefined,],
+[new Date(2015,7,25,11,58),0.491139227084,0.446303856826,0.339676466926,undefined,],
+[new Date(2015,7,25,11,59),0.488708284252,0.443923305165,0.339483777505,undefined,],
+[new Date(2015,7,25,12,00),0.497775688225,0.446526548265,0.338732784207,undefined,],
+
+        ]);
+
+        var chart = new google.visualization.AnnotationChart(document.getElementById('chart_div'));
+
+        var options = {
+          displayAnnotations: true
+        };
+
+        chart.draw(data, options);
+      }
+    </script>
+  </head>
+
+  <body>
+    <div id='chart_div' style='width: 900px; height: 500px;'></div>
+  </body>
+</html>

+ 899 - 0
html/opt-implv-ts.html~

@@ -0,0 +1,899 @@
+<html>
+  <head>
+    <script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1','packages':['annotationchart']}]}"></script>
+    <script type='text/javascript'>
+      google.load('visualization', '1', {'packages':['annotationchart']});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+        var data = new google.visualization.DataTable();
+        data.addColumn('date', 'Date');
+        data.addColumn('number', 'put 21800 vol');
+        data.addColumn('number', 'put 22600 vol');
+         data.addColumn('number', 'put 22600 sep vol');
+         data.addColumn('string', 'market updates');
+        data.addRows([
+[new Date(2015,7,20,09,30),0.345657985518,0.318713882777,0.252166021442,undefined,],
+[new Date(2015,7,20,09,31),0.34353612072,0.317135139501,0.253025949774,undefined,],
+[new Date(2015,7,20,09,32),0.349645457033,0.323931075823,0.255780377279,undefined,],
+[new Date(2015,7,20,09,33),0.33969379173,0.312151979502,0.249646035438,undefined,],
+[new Date(2015,7,20,09,34),0.341291165701,0.315166087752,0.250055310639,undefined,],
+[new Date(2015,7,20,09,35),0.339533905448,0.31151053009,0.248562230527,undefined,],
+[new Date(2015,7,20,09,36),0.337880489573,0.308778058102,0.24761937847,undefined,],
+[new Date(2015,7,20,09,37),0.341831557268,0.315679164338,0.249356961727,undefined,],
+[new Date(2015,7,20,09,38),0.338089786906,0.309188643721,0.247544827484,undefined,],
+[new Date(2015,7,20,09,39),0.34589144209,0.319283554034,0.249854224214,undefined,],
+[new Date(2015,7,20,09,40),0.342268260512,0.313565921403,0.25048261939,undefined,],
+[new Date(2015,7,20,09,41),0.34457328765,0.317422642904,0.250244350473,undefined,],
+[new Date(2015,7,20,09,42),0.344725812875,0.317697202121,0.248487364364,undefined,],
+[new Date(2015,7,20,09,43),0.347001060534,0.317072448573,0.249656412231,undefined,],
+[new Date(2015,7,20,09,44),0.34493573026,0.315193066399,0.24996796555,undefined,],
+[new Date(2015,7,20,09,45),0.3450393019,0.317459942549,0.24944929199,undefined,],
+[new Date(2015,7,20,09,46),0.343302309743,0.315851787552,0.250214600515,undefined,],
+[new Date(2015,7,20,09,47),0.343232936574,0.315125379587,0.250866249825,undefined,],
+[new Date(2015,7,20,09,48),0.344638647598,0.316759992902,0.249640674229,undefined,],
+[new Date(2015,7,20,09,49),0.344059415932,0.315851787552,0.249640674229,undefined,],
+[new Date(2015,7,20,09,50),0.343730786725,0.314841384291,0.250115740178,undefined,],
+[new Date(2015,7,20,09,51),0.343651043641,0.314507422544,0.249600422349,undefined,],
+[new Date(2015,7,20,09,52),0.344776533989,0.317282791583,0.250248424666,undefined,],
+[new Date(2015,7,20,09,53),0.342238740635,0.3139140308,0.248850021188,undefined,],
+[new Date(2015,7,20,09,54),0.341498489529,0.311184923687,0.248218735377,undefined,],
+[new Date(2015,7,20,09,55),0.344003227405,0.314860074543,0.249206567408,undefined,],
+[new Date(2015,7,20,09,56),0.343486647562,0.313881698524,0.250887305298,undefined,],
+[new Date(2015,7,20,09,57),0.342323315557,0.311792287456,0.248726742559,undefined,],
+[new Date(2015,7,20,09,58),0.345390782827,0.317289286195,0.250464517346,undefined,],
+[new Date(2015,7,20,09,59),0.351900473337,0.321303925834,0.252047784911,undefined,],
+[new Date(2015,7,20,10,00),0.348840691929,0.318568187034,0.252869115886,undefined,],
+[new Date(2015,7,20,10,01),0.346707160717,0.315905982756,0.250740468314,undefined,],
+[new Date(2015,7,20,10,02),0.352469256081,0.322596244357,0.252437392874,undefined,],
+[new Date(2015,7,20,10,03),0.350994860245,0.322376455099,0.252795544253,undefined,],
+[new Date(2015,7,20,10,04),0.347763545438,0.317084141726,0.252795544253,undefined,],
+[new Date(2015,7,20,10,05),0.347440581561,0.316810360425,0.251168821222,undefined,],
+[new Date(2015,7,20,10,06),0.350666502019,0.321284705639,0.253757098199,undefined,],
+[new Date(2015,7,20,10,07),0.346150843687,0.316561048972,0.254891160978,undefined,],
+[new Date(2015,7,20,10,08),0.346662854455,0.316562836129,0.252555594301,undefined,],
+[new Date(2015,7,20,10,09),0.347363946962,0.319196769975,0.252367541022,undefined,],
+[new Date(2015,7,20,10,10),0.349055171772,0.318968492982,0.253360944513,undefined,],
+[new Date(2015,7,20,10,11),0.350417685529,0.320947778749,0.253108822882,undefined,],
+[new Date(2015,7,20,10,12),0.351683596938,0.321797289758,0.254520571927,undefined,],
+[new Date(2015,7,20,10,13),0.352475821862,0.323161079633,0.262495820093,undefined,],
+[new Date(2015,7,20,10,14),0.355110248979,0.325678516087,0.254642003735,undefined,],
+[new Date(2015,7,20,10,15),0.357129980009,0.326473490638,0.25601452015,undefined,],
+[new Date(2015,7,20,10,16),0.357036569774,0.325799538746,0.255494080195,undefined,],
+[new Date(2015,7,20,10,17),0.358174643723,0.32710911337,0.254830408459,undefined,],
+[new Date(2015,7,20,10,18),0.358889181107,0.325535502408,0.256498993503,undefined,],
+[new Date(2015,7,20,10,19),0.359413882204,0.330066824108,0.258700358492,undefined,],
+[new Date(2015,7,20,10,20),0.360506596232,0.329405599431,0.258330245664,undefined,],
+[new Date(2015,7,20,10,21),0.357912507248,0.32840569888,0.258474420012,undefined,],
+[new Date(2015,7,20,10,22),0.354733626072,0.324761834887,0.255497982915,undefined,],
+[new Date(2015,7,20,10,23),0.351683596938,0.321287757012,0.257312548485,undefined,],
+[new Date(2015,7,20,10,24),0.352351569365,0.32281492955,0.257312548485,undefined,],
+[new Date(2015,7,20,10,25),0.350485796928,0.318601027993,0.256128621404,undefined,],
+[new Date(2015,7,20,10,26),0.349679222204,0.318021538052,0.256748202088,undefined,],
+[new Date(2015,7,20,10,27),0.347224729072,0.317358187552,0.256312184382,undefined,],
+[new Date(2015,7,20,10,28),0.344507028176,0.313283864271,0.254440705813,undefined,],
+[new Date(2015,7,20,10,29),0.342657318975,0.312940126589,0.256710975676,undefined,],
+[new Date(2015,7,20,10,30),0.341617320903,0.31309581583,0.256286286448,undefined,],
+[new Date(2015,7,20,10,31),0.341233368592,0.31186184469,0.255540064505,undefined,],
+[new Date(2015,7,20,10,32),0.338365512852,0.309111626592,0.255540064505,undefined,],
+[new Date(2015,7,20,10,33),0.340463786516,0.312062245468,0.255540064505,undefined,],
+[new Date(2015,7,20,10,34),0.344740102487,0.314741863533,0.254351708318,undefined,],
+[new Date(2015,7,20,10,35),0.344740102487,0.316873509778,0.254351708318,undefined,],
+[new Date(2015,7,20,10,36),0.346874776469,0.318994963164,0.255291992423,undefined,],
+[new Date(2015,7,20,10,37),0.349700717383,0.320579614315,0.256607180087,undefined,],
+[new Date(2015,7,20,10,38),0.350400233164,0.321633070421,0.256607180087,undefined,],
+[new Date(2015,7,20,10,39),0.350400233164,0.323208895596,0.256607180087,undefined,],
+[new Date(2015,7,20,10,40),0.350400233164,0.322158921489,0.256607180087,undefined,],
+[new Date(2015,7,20,10,41),0.348361831852,0.319409209614,0.253736227768,undefined,],
+[new Date(2015,7,20,10,42),0.348943400539,0.320458989076,0.253736227768,undefined,],
+[new Date(2015,7,20,10,43),0.351027488996,0.321506480738,0.256239622201,undefined,],
+[new Date(2015,7,20,10,44),0.348031763458,0.319394641392,0.254531966111,undefined,],
+[new Date(2015,7,20,10,45),0.350099764235,0.321635617644,0.254531966111,undefined,],
+[new Date(2015,7,20,10,46),0.350813636645,0.321635617644,0.256826892262,undefined,],
+[new Date(2015,7,20,10,47),0.350088404684,0.320791573117,0.256826892262,undefined,],
+[new Date(2015,7,20,10,48),0.34886277976,0.320784696515,0.256826892262,undefined,],
+[new Date(2015,7,20,10,49),0.352087188946,0.323390561244,0.257494583858,undefined,],
+[new Date(2015,7,20,10,50),0.350850335901,0.321848396657,0.256762543532,undefined,],
+[new Date(2015,7,20,10,51),0.348691764322,0.318747948258,0.255028584849,undefined,],
+[new Date(2015,7,20,10,52),0.347429309194,0.318879171347,0.255885753917,undefined,],
+[new Date(2015,7,20,10,53),0.347763545438,0.31814644245,0.255885753917,undefined,],
+[new Date(2015,7,20,10,54),0.347727651499,0.319621591044,0.254667059517,undefined,],
+[new Date(2015,7,20,10,55),0.347699140422,0.319820555633,0.255042594139,undefined,],
+[new Date(2015,7,20,10,56),0.345043392014,0.314975962197,0.255042594139,undefined,],
+[new Date(2015,7,20,10,57),0.347620343337,0.312858663181,0.25328965118,undefined,],
+[new Date(2015,7,20,10,58),0.351719417944,0.322158161165,0.256579042971,undefined,],
+[new Date(2015,7,20,10,59),0.350295419683,0.321093827557,0.257028682855,undefined,],
+[new Date(2015,7,20,11,00),0.351004259027,0.321093827557,0.256086677255,undefined,],
+[new Date(2015,7,20,11,01),0.346676411802,0.317937685227,0.25756360652,undefined,],
+[new Date(2015,7,20,11,02),0.348791423323,0.318465704486,0.25756360652,undefined,],
+[new Date(2015,7,20,11,03),0.347389345168,0.31740905929,0.254523726785,undefined,],
+[new Date(2015,7,20,11,04),0.34809121914,0.318465704486,0.256213660291,undefined,],
+[new Date(2015,7,20,11,05),0.347401304492,0.318254353211,0.255363922963,undefined,],
+[new Date(2015,7,20,11,06),0.348115290365,0.318254353211,0.255927592047,undefined,],
+[new Date(2015,7,20,11,07),0.34904330376,0.320463190511,0.255175975868,undefined,],
+[new Date(2015,7,20,11,08),0.34904330376,0.318328787446,0.255175975868,undefined,],
+[new Date(2015,7,20,11,09),0.34975343478,0.320463190511,0.257058335171,undefined,],
+[new Date(2015,7,20,11,10),0.346536023465,0.317069926283,0.255422971606,undefined,],
+[new Date(2015,7,20,11,11),0.34635571263,0.316859914509,0.255871629022,undefined,],
+[new Date(2015,7,20,11,12),0.348518648673,0.319139009754,0.256212833729,undefined,],
+[new Date(2015,7,20,11,13),0.347798566926,0.318600875078,0.257721504325,undefined,],
+[new Date(2015,7,20,11,14),0.345103674505,0.316302655294,0.257721504325,undefined,],
+[new Date(2015,7,20,11,15),0.343657336007,0.314150667989,0.25400125907,undefined,],
+[new Date(2015,7,20,11,16),0.342930722479,0.317015535279,0.256566682893,undefined,],
+[new Date(2015,7,20,11,17),0.344214533007,0.315899469416,0.256024114688,undefined,],
+[new Date(2015,7,20,11,18),0.344214533007,0.314813700232,0.25564658558,undefined,],
+[new Date(2015,7,20,11,19),0.34707633099,0.318600875078,0.257721504325,undefined,],
+[new Date(2015,7,20,11,20),0.344559799079,0.315598629811,0.255739730978,undefined,],
+[new Date(2015,7,20,11,21),0.343306808264,0.313672073233,0.255291992423,undefined,],
+[new Date(2015,7,20,11,22),0.342529323749,0.31529449394,0.256086954759,undefined,],
+[new Date(2015,7,20,11,23),0.346161261662,0.317173479812,0.255922119033,undefined,],
+[new Date(2015,7,20,11,24),0.341831557268,0.315679164338,0.256658210469,undefined,],
+[new Date(2015,7,20,11,25),0.343393591266,0.315679164338,0.256083772921,undefined,],
+[new Date(2015,7,20,11,26),0.340184710455,0.312965038712,0.254001056897,undefined,],
+[new Date(2015,7,20,11,27),0.341818875231,0.313755050005,0.254819314675,undefined,],
+[new Date(2015,7,20,11,28),0.341470856411,0.311934289661,0.254819314675,undefined,],
+[new Date(2015,7,20,11,29),0.341782112929,0.313057536496,0.254182135696,undefined,],
+[new Date(2015,7,20,11,30),0.339754148872,0.309142355354,0.253314278808,undefined,],
+[new Date(2015,7,20,11,31),0.33938015085,0.310920967299,0.254186474531,undefined,],
+[new Date(2015,7,20,11,32),0.340908243803,0.312602047896,0.253847597414,undefined,],
+[new Date(2015,7,20,11,33),0.339158161592,0.311531311627,0.253999910182,undefined,],
+[new Date(2015,7,20,11,34),0.340847500839,0.311327389071,0.253999910182,undefined,],
+[new Date(2015,7,20,11,35),0.342018008109,0.31356768158,0.253733717965,undefined,],
+[new Date(2015,7,20,11,36),0.341257884905,0.312448660277,0.255555794372,undefined,],
+[new Date(2015,7,20,11,37),0.338960811283,0.310764131027,0.254032523911,undefined,],
+[new Date(2015,7,20,11,38),0.339406833278,0.311050931299,0.255588630421,undefined,],
+[new Date(2015,7,20,11,39),0.340178945439,0.311050931299,0.255588630421,undefined,],
+[new Date(2015,7,20,11,40),0.34213144282,0.312901632943,0.255742849646,undefined,],
+[new Date(2015,7,20,11,41),0.34213144282,0.312753754961,0.255742849646,undefined,],
+[new Date(2015,7,20,11,42),0.342529323749,0.314306824854,0.254797840518,undefined,],
+[new Date(2015,7,20,11,43),0.343497266821,0.314244704,0.254835475432,undefined,],
+[new Date(2015,7,20,11,44),0.342045018379,0.313424239574,0.254833495995,undefined,],
+[new Date(2015,7,20,11,45),0.342045018379,0.31479730879,0.254833495995,undefined,],
+[new Date(2015,7,20,11,46),0.343497266821,0.314532003261,0.254833495995,undefined,],
+[new Date(2015,7,20,11,47),0.342261047447,0.313916714141,0.254225577292,undefined,],
+[new Date(2015,7,20,11,48),0.341515661058,0.312810208199,0.254983830357,undefined,],
+[new Date(2015,7,20,11,49),0.3440265963,0.315965574305,0.255747257569,undefined,],
+[new Date(2015,7,20,11,50),0.3440265963,0.315411780928,0.255747257569,undefined,],
+[new Date(2015,7,20,11,51),0.3440265963,0.315411780928,0.255747257569,undefined,],
+[new Date(2015,7,20,11,52),0.3440265963,0.314859671599,0.255747257569,undefined,],
+[new Date(2015,7,20,11,53),0.343279069003,0.315411780928,0.255557439692,undefined,],
+[new Date(2015,7,20,11,54),0.343279069003,0.313753234567,0.255747257569,undefined,],
+[new Date(2015,7,20,11,55),0.342529323749,0.312643798317,0.255747257569,undefined,],
+[new Date(2015,7,20,11,56),0.343408760743,0.313664333162,0.255747257569,undefined,],
+[new Date(2015,7,20,11,57),0.341900316228,0.314220275401,0.255747257569,undefined,],
+[new Date(2015,7,20,11,58),0.341900316228,0.313107624945,0.255747257569,undefined,],
+[new Date(2015,7,20,11,59),0.341142621381,0.314775458183,0.256127491542,undefined,],
+[new Date(2015,7,20,12,00),0.340383548011,0.314220275401,0.256887044149,undefined,],
+[new Date(2015,7,20,13,00),0.339621353335,0.311432837286,0.255367412963,undefined,],
+[new Date(2015,7,20,13,01),0.341842993404,0.313922439733,0.256773053408,undefined,],
+[new Date(2015,7,20,13,02),0.341842993404,0.313052168398,0.256734548335,undefined,],
+[new Date(2015,7,20,13,03),0.341972312096,0.31186184469,0.255729029418,undefined,],
+[new Date(2015,7,20,13,04),0.340846300468,0.312617627659,0.256032937793,undefined,],
+[new Date(2015,7,20,13,05),0.343288358732,0.314027513088,0.255740215014,undefined,],
+[new Date(2015,7,20,13,06),0.343302442657,0.314606300921,0.254943879453,undefined,],
+[new Date(2015,7,20,13,07),0.344036262349,0.316774099378,0.257040648702,undefined,],
+[new Date(2015,7,20,13,08),0.3468971663,0.319467468317,0.257794534143,undefined,],
+[new Date(2015,7,20,13,09),0.349056826769,0.321609810596,0.258171299623,undefined,],
+[new Date(2015,7,20,13,10),0.345969774895,0.31740905929,0.255650604615,undefined,],
+[new Date(2015,7,20,13,11),0.345969774895,0.31740905929,0.256213660291,undefined,],
+[new Date(2015,7,20,13,12),0.345969774895,0.31740905929,0.256401289231,undefined,],
+[new Date(2015,7,20,13,13),0.345261228311,0.316879820689,0.256213660291,undefined,],
+[new Date(2015,7,20,13,14),0.346676411802,0.318465704486,0.256964008208,undefined,],
+[new Date(2015,7,20,13,15),0.34809121914,0.318465704486,0.256776463117,undefined,],
+[new Date(2015,7,20,13,16),0.34809121914,0.31740905929,0.256401289231,undefined,],
+[new Date(2015,7,20,13,17),0.34809121914,0.31740905929,0.256964008208,undefined,],
+[new Date(2015,7,20,13,18),0.345969774895,0.316349963255,0.254523726785,undefined,],
+[new Date(2015,7,20,13,19),0.34809121914,0.31845821387,0.257375495486,undefined,],
+[new Date(2015,7,20,13,20),0.345641109074,0.314719617986,0.255871629022,undefined,],
+[new Date(2015,7,20,13,21),0.34635571263,0.317926091726,0.256435794646,undefined,],
+[new Date(2015,7,20,13,22),0.348361831852,0.318968492982,0.257669987383,undefined,],
+[new Date(2015,7,20,13,23),0.349289372234,0.319437543808,0.257806071596,undefined,],
+[new Date(2015,7,20,13,24),0.348602738175,0.318918503975,0.257246060559,undefined,],
+[new Date(2015,7,20,13,25),0.34997444509,0.318918503975,0.257246060559,undefined,],
+[new Date(2015,7,20,13,26),0.34997444509,0.318918503975,0.257619427319,undefined,],
+[new Date(2015,7,20,13,27),0.348132800901,0.320631663801,0.256816907442,undefined,],
+[new Date(2015,7,20,13,28),0.350620269429,0.321273136378,0.258160980227,undefined,],
+[new Date(2015,7,20,13,29),0.350620269429,0.320227225666,0.258160980227,undefined,],
+[new Date(2015,7,20,13,30),0.351394399695,0.321850958934,0.259208709849,undefined,],
+[new Date(2015,7,20,13,31),0.349785711508,0.31910478413,0.259186498957,undefined,],
+[new Date(2015,7,20,13,32),0.351124805259,0.320634947497,0.259372075599,undefined,],
+[new Date(2015,7,20,13,33),0.35135274103,0.320305032934,0.260322509652,undefined,],
+[new Date(2015,7,20,13,34),0.349091881194,0.318729426139,0.260376884999,undefined,],
+[new Date(2015,7,20,13,35),0.349091881194,0.31822436535,0.258712798748,undefined,],
+[new Date(2015,7,20,13,36),0.352386151535,0.322787232352,0.260102751147,undefined,],
+[new Date(2015,7,20,13,37),0.351259616425,0.319362024105,0.260311568462,undefined,],
+[new Date(2015,7,20,13,38),0.347952091376,0.318443588191,0.258832124795,undefined,],
+[new Date(2015,7,20,13,39),0.350529202663,0.320484437525,0.260217505261,undefined,],
+[new Date(2015,7,20,13,40),0.348570456051,0.318706774731,0.259999155136,undefined,],
+[new Date(2015,7,20,13,41),0.349606399516,0.320561437266,0.260553331503,undefined,],
+[new Date(2015,7,20,13,42),0.349606399516,0.320561437266,0.260739500162,undefined,],
+[new Date(2015,7,20,13,43),0.347140969989,0.316562039176,0.259794822472,undefined,],
+[new Date(2015,7,20,13,44),0.346467662719,0.315539612352,0.258911846006,undefined,],
+[new Date(2015,7,20,13,45),0.344438801711,0.314515195909,0.257613677969,undefined,],
+[new Date(2015,7,20,13,46),0.346674914476,0.317358187552,0.259318097774,undefined,],
+[new Date(2015,7,20,13,47),0.345251292345,0.315339154419,0.259033216286,undefined,],
+[new Date(2015,7,20,13,48),0.349786374722,0.315553309792,0.26075466061,undefined,],
+[new Date(2015,7,20,13,49),0.346533325622,0.316834219658,0.259298295972,undefined,],
+[new Date(2015,7,20,13,50),0.347914528547,0.317878829262,0.259298295972,undefined,],
+[new Date(2015,7,20,13,51),0.347224729072,0.316834219658,0.259484708755,undefined,],
+[new Date(2015,7,20,13,52),0.345292127216,0.318918503975,0.26078889051,undefined,],
+[new Date(2015,7,20,13,53),0.345421831582,0.314403441431,0.258680892851,undefined,],
+[new Date(2015,7,20,13,54),0.345052673657,0.315002658647,0.259000898422,undefined,],
+[new Date(2015,7,20,13,55),0.34595085224,0.315402550912,0.258832124795,undefined,],
+[new Date(2015,7,20,13,56),0.344386754811,0.31466880639,0.258191917607,undefined,],
+[new Date(2015,7,20,13,57),0.343732729926,0.313174272187,0.257271909544,undefined,],
+[new Date(2015,7,20,13,58),0.341762581306,0.3111754524,0.257271909544,undefined,],
+[new Date(2015,7,20,13,59),0.34314249069,0.313507574112,0.25863455742,undefined,],
+[new Date(2015,7,20,14,00),0.34314249069,0.314018479435,0.258078994245,undefined,],
+[new Date(2015,7,20,14,01),0.345094694529,0.313722864536,0.259452618543,undefined,],
+[new Date(2015,7,20,14,02),0.343936616294,0.314894049625,0.259017134682,undefined,],
+[new Date(2015,7,20,14,03),0.345280903125,0.3159105722,0.258647092048,undefined,],
+[new Date(2015,7,20,14,04),0.342821101908,0.313075882297,0.257930783389,undefined,],
+[new Date(2015,7,20,14,05),0.344623843782,0.314731952711,0.259216077954,undefined,],
+[new Date(2015,7,20,14,06),0.343379024663,0.313730756502,0.259772074704,undefined,],
+[new Date(2015,7,20,14,07),0.343327787122,0.313213360395,0.258383299758,undefined,],
+[new Date(2015,7,20,14,08),0.343513047118,0.314453398646,0.258502362701,undefined,],
+[new Date(2015,7,20,14,09),0.344865202297,0.315984059738,0.25998355272,undefined,],
+[new Date(2015,7,20,14,10),0.34621139461,0.31751035187,0.260538620522,undefined,],
+[new Date(2015,7,20,14,11),0.341755997408,0.310209264966,0.257562930005,undefined,],
+[new Date(2015,7,20,14,12),0.343441608746,0.313059249681,0.259588516401,undefined,],
+[new Date(2015,7,20,14,13),0.342846951289,0.313110792605,0.258448359002,undefined,],
+[new Date(2015,7,20,14,14),0.343454412305,0.312618837097,0.258617323602,undefined,],
+[new Date(2015,7,20,14,15),0.343252463874,0.312836688125,0.258448359002,undefined,],
+[new Date(2015,7,20,14,16),0.343759751457,0.312856832068,0.257597725533,undefined,],
+[new Date(2015,7,20,14,17),0.348890034966,0.31876727301,0.261255841396,undefined,],
+[new Date(2015,7,20,14,18),0.342503021272,0.311806081258,0.257162433245,undefined,],
+[new Date(2015,7,20,14,19),0.346138922154,0.31510318708,0.25845114024,undefined,],
+[new Date(2015,7,20,14,20),0.345888988357,0.313797411911,0.258328924422,undefined,],
+[new Date(2015,7,20,14,21),0.341608395217,0.311768609772,0.258138020723,undefined,],
+[new Date(2015,7,20,14,22),0.339685020768,0.308330050233,0.256129263935,undefined,],
+[new Date(2015,7,20,14,23),0.340777175402,0.309768494506,0.258320536145,undefined,],
+[new Date(2015,7,20,14,24),0.341195491131,0.309159896705,0.257469531402,undefined,],
+[new Date(2015,7,20,14,25),0.33800189167,0.306391434618,0.257330895937,undefined,],
+[new Date(2015,7,20,14,26),0.344049244539,0.313202582544,0.260455469265,undefined,],
+[new Date(2015,7,20,14,27),0.342441949952,0.311990144603,0.260034388575,undefined,],
+[new Date(2015,7,20,14,28),0.342532677738,0.310953997642,0.260308015905,undefined,],
+[new Date(2015,7,20,14,29),0.343186607955,0.311582665058,0.261000250964,undefined,],
+[new Date(2015,7,20,14,30),0.347560609815,0.315470688169,0.260092480154,undefined,],
+[new Date(2015,7,20,14,31),0.347025550667,0.314804507479,0.261048277484,undefined,],
+[new Date(2015,7,20,14,32),0.348284443317,0.315602712864,0.262461715403,undefined,],
+[new Date(2015,7,20,14,33),0.352050342303,0.318940192486,0.261232741942,undefined,],
+[new Date(2015,7,20,14,34),0.348654624864,0.316268701252,0.262335638356,undefined,],
+[new Date(2015,7,20,14,35),0.348599460508,0.316261316636,0.262235365206,undefined,],
+[new Date(2015,7,20,14,36),0.34879082287,0.316749726087,0.262906374313,undefined,],
+[new Date(2015,7,20,14,37),0.351120296277,0.318333346686,0.262794836697,undefined,],
+[new Date(2015,7,20,14,38),0.348231309895,0.316397845262,0.261959436524,undefined,],
+[new Date(2015,7,20,14,39),0.345630535686,0.314781494599,0.26208301767,undefined,],
+[new Date(2015,7,20,14,40),0.342375391583,0.310991087895,0.261324169243,undefined,],
+[new Date(2015,7,20,14,41),0.343462932786,0.312791867122,0.26208301767,undefined,],
+[new Date(2015,7,20,14,42),0.343125342016,0.311695794112,0.262711190934,undefined,],
+[new Date(2015,7,20,14,43),0.344823138385,0.313149531013,0.262041388238,undefined,],
+[new Date(2015,7,20,14,44),0.340585973732,0.309846930132,0.260445787082,undefined,],
+[new Date(2015,7,20,14,45),0.343949966663,0.314089666489,0.263016485061,undefined,],
+[new Date(2015,7,20,14,46),0.347040267386,0.317467678137,0.263563094775,undefined,],
+[new Date(2015,7,20,14,47),0.341855248687,0.310342599815,0.260024380235,undefined,],
+[new Date(2015,7,20,14,48),0.340515826792,0.309763762087,0.260787691005,undefined,],
+[new Date(2015,7,20,14,49),0.340515826792,0.309763762087,0.260242323517,undefined,],
+[new Date(2015,7,20,14,50),0.339889261122,0.310244024993,0.260605919956,undefined,],
+[new Date(2015,7,20,14,51),0.338718089814,0.308171209522,0.260158626806,undefined,],
+[new Date(2015,7,20,14,52),0.33872563306,0.308383446568,0.259862096644,undefined,],
+[new Date(2015,7,20,14,53),0.342409988425,0.31363732232,0.261859264593,undefined,],
+[new Date(2015,7,20,14,54),0.3415596469,0.311345724161,0.260401767343,undefined,],
+[new Date(2015,7,20,14,55),0.339785204466,0.309235759443,0.259996702617,undefined,],
+[new Date(2015,7,20,14,56),0.340358844488,0.309700589206,0.260930433268,undefined,],
+[new Date(2015,7,20,14,57),0.3389158974,0.309224184028,0.260638443807,undefined,],
+[new Date(2015,7,20,14,58),0.337685916835,0.307805248638,0.259914635005,undefined,],
+[new Date(2015,7,20,14,59),0.337685916835,0.307331615681,0.259733642032,undefined,],
+[new Date(2015,7,20,15,00),0.335680083362,0.310127540926,0.261478621057,undefined,],
+[new Date(2015,7,20,15,01),0.340510280971,0.310812626838,0.261484576111,undefined,],
+[new Date(2015,7,20,15,02),0.338581384894,0.309670439273,0.260503588172,undefined,],
+[new Date(2015,7,20,15,03),0.337391823889,0.307588856311,0.260701531204,undefined,],
+[new Date(2015,7,20,15,04),0.339866276742,0.310384081994,0.26143857417,undefined,],
+[new Date(2015,7,20,15,05),0.337240240924,0.307959848558,0.260097668273,undefined,],
+[new Date(2015,7,20,15,06),0.339760977811,0.311216159976,0.26050839426,undefined,],
+[new Date(2015,7,20,15,07),0.343078940138,0.314725992411,0.262897666546,undefined,],
+[new Date(2015,7,20,15,08),0.339116642859,0.309314872522,0.260582640637,undefined,],
+[new Date(2015,7,20,15,09),0.338967501787,0.308501338365,0.259222916368,undefined,],
+[new Date(2015,7,20,15,10),0.33800189167,0.306874341445,0.259151095756,undefined,],
+[new Date(2015,7,20,15,11),0.339261430939,0.306982528063,0.259365461575,undefined,],
+[new Date(2015,7,20,15,12),0.337422016009,0.306669257438,0.258820651227,undefined,],
+[new Date(2015,7,20,15,13),0.340434218699,0.309905509044,0.260453018626,undefined,],
+[new Date(2015,7,20,15,14),0.338797856837,0.308530068693,0.260993369346,undefined,],
+[new Date(2015,7,20,15,15),0.340010230944,0.30710766585,0.259912188642,undefined,],
+[new Date(2015,7,20,15,16),0.337439335121,0.306619877153,0.259693834234,undefined,],
+[new Date(2015,7,20,15,17),0.339725661091,0.309457759311,0.26184902149,undefined,],
+[new Date(2015,7,20,15,18),0.336754122286,0.306178501611,0.260522933493,undefined,],
+[new Date(2015,7,20,15,19),0.339354503554,0.309232335124,0.262306099013,undefined,],
+[new Date(2015,7,20,15,20),0.338469228782,0.306838627586,0.261139152324,undefined,],
+[new Date(2015,7,20,15,21),0.338469228782,0.307313827855,0.260958147273,undefined,],
+[new Date(2015,7,20,15,22),0.334796896551,0.303024548935,0.259509513997,undefined,],
+[new Date(2015,7,20,15,23),0.332290583241,0.300629074641,0.257021815905,undefined,],
+[new Date(2015,7,20,15,24),0.33929832541,0.30819067187,0.260932470431,undefined,],
+[new Date(2015,7,20,15,25),0.335138854976,0.30331401659,0.260167830494,undefined,],
+[new Date(2015,7,20,15,26),0.338795210301,0.307642850476,0.260879124657,undefined,],
+[new Date(2015,7,20,15,27),0.337004696189,0.306764551538,0.260503588172,undefined,],
+[new Date(2015,7,20,15,28),0.338278321518,0.306764551538,0.26086766164,undefined,],
+[new Date(2015,7,20,15,29),0.336983991049,0.306416314768,0.257629983766,undefined,],
+[new Date(2015,7,20,15,30),0.337664664129,0.306210471566,0.258895767781,undefined,],
+[new Date(2015,7,20,15,31),0.335337936587,0.303930881815,0.257405966186,undefined,],
+[new Date(2015,7,20,15,32),0.334710840417,0.30297128588,0.257224416343,undefined,],
+[new Date(2015,7,20,15,33),0.336544175218,0.305424445261,0.257695086602,undefined,],
+[new Date(2015,7,20,15,34),0.335138854976,0.303847304577,0.257258945445,undefined,],
+[new Date(2015,7,20,15,35),0.334770145549,0.304396518892,0.256607762049,undefined,],
+[new Date(2015,7,20,15,36),0.335284622174,0.303143435804,0.254578511047,undefined,],
+[new Date(2015,7,20,15,37),0.334578734786,0.302842223949,0.25421937948,undefined,],
+[new Date(2015,7,20,15,38),0.331298328069,0.300956905409,0.253989503819,undefined,],
+[new Date(2015,7,20,15,39),0.332811962487,0.301453521447,0.254970572668,undefined,],
+[new Date(2015,7,20,15,40),0.331676974007,0.299120175796,0.252407589848,undefined,],
+[new Date(2015,7,20,15,41),0.33177764194,0.299293279426,0.252957889854,undefined,],
+[new Date(2015,7,20,15,42),0.329989066163,0.298743348863,0.253202726723,undefined,],
+[new Date(2015,7,20,15,43),0.331966553599,0.30123011386,0.253751318517,undefined,],
+[new Date(2015,7,20,15,44),0.331966553599,0.298400216675,0.252650623159,undefined,],
+[new Date(2015,7,20,15,45),0.329706652146,0.297131140887,0.252041913888,undefined,],
+[new Date(2015,7,20,15,46),0.329886352504,0.28094897646,0.251671876308,undefined,],
+[new Date(2015,7,20,15,47),0.329608938399,0.296239080448,0.251671876308,undefined,],
+[new Date(2015,7,20,15,48),0.32872227917,0.296163661915,0.251982439009,undefined,],
+[new Date(2015,7,20,15,49),0.326523614317,0.295753506276,0.25269398372,undefined,],
+[new Date(2015,7,20,15,50),0.32768942147,0.29558976824,0.25162938441,undefined,],
+[new Date(2015,7,20,15,51),0.326498277952,0.295669108579,0.251573461071,undefined,],
+[new Date(2015,7,20,15,52),0.327874116908,0.296694823702,0.252311354544,undefined,],
+[new Date(2015,7,20,15,53),0.328427980454,0.296834586426,0.251934154183,undefined,],
+[new Date(2015,7,20,15,54),0.328374662624,0.29750035672,0.25237536925,undefined,],
+[new Date(2015,7,20,15,55),0.328309329425,0.297770133149,0.252772616862,undefined,],
+[new Date(2015,7,20,15,56),0.330061068213,0.298682101472,0.252715551041,undefined,],
+[new Date(2015,7,20,15,57),0.327707089947,0.295183536187,0.252471806415,undefined,],
+[new Date(2015,7,20,15,58),0.328348429417,0.295722778151,0.251617361615,undefined,],
+[new Date(2015,7,20,15,59),0.327205189464,0.297718418273,0.251721936418,undefined,],
+[new Date(2015,7,20,16,00),0.328004752223,0.298084586981,0.254160917883,undefined,],
+[new Date(2015,7,20,16,01),0.323987655584,0.293125288988,0.250695983396,undefined,],
+[new Date(2015,7,20,16,02),0.328374662624,0.296477082039,0.250695983396,undefined,],
+[new Date(2015,7,20,16,03),0.328592267355,0.29771765458,0.251268655718,undefined,],
+[new Date(2015,7,20,16,04),0.327095385768,0.297025043282,0.253667921177,undefined,],
+[new Date(2015,7,20,16,05),0.32768942147,0.296988982355,0.25400265369,undefined,],
+[new Date(2015,7,20,16,06),0.331036617263,0.296988982355,0.25400265369,undefined,],
+[new Date(2015,7,20,16,07),0.331718419417,0.299537387247,0.253402017533,undefined,],
+[new Date(2015,7,20,16,08),0.331036617263,0.299025422094,0.253402017533,undefined,],
+[new Date(2015,7,20,16,09),0.329668177054,0.299025422094,0.252848384869,undefined,],
+[new Date(2015,7,20,16,10),0.328981510587,0.297486357461,0.253032951477,undefined,],
+[new Date(2015,7,20,16,11),0.328981510587,0.299004906248,0.253586517091,undefined,],
+[new Date(2015,7,20,16,12),0.328981510587,0.2987062119,0.253586517091,undefined,],
+[new Date(2015,7,20,16,13),0.331830908504,0.302464192919,0.253254159911,undefined,],
+[new Date(2015,7,20,16,14),0.333325483395,0.303181567358,0.256343183626,undefined,],
+[new Date(2015,7,20,16,15),0.333325483395,0.303181567358,0.256343183626,undefined,],
+[new Date(2015,7,21,09,15),0.391885483442,0.341621411923,0.257896282525,undefined,],
+[new Date(2015,7,21,09,16),0.376286332171,0.346368735572,0.257726472525,undefined,],
+[new Date(2015,7,21,09,17),0.364157092468,0.350651827073,0.259761158289,undefined,],
+[new Date(2015,7,21,09,18),0.378287800552,0.349018060422,0.262149404196,undefined,],
+[new Date(2015,7,21,09,19),0.406519055716,0.349221981712,0.259926724931,undefined,],
+[new Date(2015,7,21,09,20),0.386891628058,0.348356260363,0.260354921328,undefined,],
+[new Date(2015,7,21,09,21),0.376391071642,0.347462516299,0.261983599291,undefined,],
+[new Date(2015,7,21,09,22),0.380400975635,0.350076244481,0.262907123372,undefined,],
+[new Date(2015,7,21,09,23),0.38469759456,0.350891328784,0.260832942728,undefined,],
+[new Date(2015,7,21,09,24),0.381959726639,0.352037162249,0.265394875528,undefined,],
+[new Date(2015,7,21,09,25),0.38400705409,0.352551785308,0.265122928282,undefined,],
+[new Date(2015,7,21,09,26),0.385994715553,0.357159785836,0.264687387019,undefined,],
+[new Date(2015,7,21,09,27),0.386309936872,0.356464726711,0.264764151121,undefined,],
+[new Date(2015,7,21,09,28),0.384654360566,0.353481973901,0.267086775547,undefined,],
+[new Date(2015,7,21,09,29),0.383861677429,0.353207810549,0.265492136772,undefined,],
+[new Date(2015,7,21,09,30),0.384081627237,0.354660881399,0.26474360518,undefined,],
+[new Date(2015,7,21,09,31),0.38402798666,0.352227505648,0.263120779819,undefined,],
+[new Date(2015,7,21,09,32),0.380629490093,0.349331802195,0.267002361948,undefined,],
+[new Date(2015,7,21,09,33),0.382439113217,0.349456154773,0.26574826637,undefined,],
+[new Date(2015,7,21,09,34),0.382105838898,0.350717776278,0.26528480425,undefined,],
+[new Date(2015,7,21,09,35),0.381427390508,0.350274909497,0.265814809483,undefined,],
+[new Date(2015,7,21,09,36),0.382756606664,0.352175332612,0.264628939323,undefined,],
+[new Date(2015,7,21,09,37),0.380636817524,0.349275379123,0.26793196092,undefined,],
+[new Date(2015,7,21,09,38),0.382128187809,0.350317617766,0.263582480378,undefined,],
+[new Date(2015,7,21,09,39),0.382840194799,0.352233652161,0.26477177494,undefined,],
+[new Date(2015,7,21,09,40),0.382730597177,0.351146082064,0.266375690985,undefined,],
+[new Date(2015,7,21,09,41),0.379892122949,0.348649468128,0.264217867799,undefined,],
+[new Date(2015,7,21,09,42),0.373692611294,0.342929770402,0.265343518064,undefined,],
+[new Date(2015,7,21,09,43),0.372952611376,0.340996141902,0.26524335189,undefined,],
+[new Date(2015,7,21,09,44),0.373929545788,0.340429963548,0.265498680918,undefined,],
+[new Date(2015,7,21,09,45),0.377957156861,0.347026511722,0.265863597446,undefined,],
+[new Date(2015,7,21,09,46),0.375989134328,0.346666533466,0.264854266421,undefined,],
+[new Date(2015,7,21,09,47),0.377754576263,0.34734613799,0.266569548376,undefined,],
+[new Date(2015,7,21,09,48),0.375250142739,0.345030988482,0.266950766259,undefined,],
+[new Date(2015,7,21,09,49),0.375488530475,0.345321012533,0.266152138139,undefined,],
+[new Date(2015,7,21,09,50),0.37587064255,0.344170668485,0.260677959647,undefined,],
+[new Date(2015,7,21,09,51),0.375780837409,0.346724295171,0.261960693658,undefined,],
+[new Date(2015,7,21,09,52),0.372643945657,0.342513433864,0.26570116368,undefined,],
+[new Date(2015,7,21,09,53),0.371704686431,0.34132208023,0.26327416972,undefined,],
+[new Date(2015,7,21,09,54),0.369415572017,0.339440763106,0.262480270666,undefined,],
+[new Date(2015,7,21,09,55),0.371082285317,0.341179400989,0.264554624544,undefined,],
+[new Date(2015,7,21,09,56),0.373058633348,0.342627716629,0.261964643842,undefined,],
+[new Date(2015,7,21,09,57),0.371234681812,0.339845105318,0.262722800594,undefined,],
+[new Date(2015,7,21,09,58),0.371018169135,0.341331023943,0.258668299898,undefined,],
+[new Date(2015,7,21,09,59),0.372077982339,0.341832440235,0.263921883767,undefined,],
+[new Date(2015,7,21,10,00),0.372248180409,0.340889361659,0.263344609946,undefined,],
+[new Date(2015,7,21,10,01),0.372909783613,0.340795987386,0.26448885003,undefined,],
+[new Date(2015,7,21,10,02),0.371671113568,0.34150132884,0.262810940204,undefined,],
+[new Date(2015,7,21,10,03),0.371493533475,0.341084283521,0.261803054059,undefined,],
+[new Date(2015,7,21,10,04),0.371147371796,0.34132208023,0.263252658675,undefined,],
+[new Date(2015,7,21,10,05),0.370293919476,0.34141560959,0.263683815673,undefined,],
+[new Date(2015,7,21,10,06),0.371256719266,0.3419846939,0.262810051838,undefined,],
+[new Date(2015,7,21,10,07),0.371796237921,0.341020450423,0.263248039035,undefined,],
+[new Date(2015,7,21,10,08),0.369819577777,0.339727942206,0.263376629243,undefined,],
+[new Date(2015,7,21,10,09),0.372984863234,0.343045626732,0.263568789191,undefined,],
+[new Date(2015,7,21,10,10),0.371247186723,0.340889361659,0.263761486484,undefined,],
+[new Date(2015,7,21,10,11),0.3717707479,0.342123849374,0.265574825736,undefined,],
+[new Date(2015,7,21,10,12),0.372344825147,0.342815237696,0.265381118311,undefined,],
+[new Date(2015,7,21,10,13),0.373621360097,0.344200141197,0.264050563908,undefined,],
+[new Date(2015,7,21,10,14),0.371996264605,0.343939684373,0.26574826637,undefined,],
+[new Date(2015,7,21,10,15),0.371526911964,0.34244941067,0.265193242793,undefined,],
+[new Date(2015,7,21,10,16),0.371996264605,0.342863532201,0.265689761165,undefined,],
+[new Date(2015,7,21,10,17),0.373347736229,0.343432321224,0.266437885416,undefined,],
+[new Date(2015,7,21,10,18),0.373388126975,0.341290156628,0.264090759747,undefined,],
+[new Date(2015,7,21,10,19),0.37305576787,0.342486288913,0.265450831785,undefined,],
+[new Date(2015,7,21,10,20),0.37418470788,0.34220512908,0.26548519372,undefined,],
+[new Date(2015,7,21,10,21),0.370198847203,0.342381017017,0.266661222461,undefined,],
+[new Date(2015,7,21,10,22),0.370764426367,0.342513433864,0.270377717004,undefined,],
+[new Date(2015,7,21,10,23),0.372026376985,0.341942095056,0.266698067807,undefined,],
+[new Date(2015,7,21,10,24),0.372278651082,0.340759208569,0.267404599763,undefined,],
+[new Date(2015,7,21,10,25),0.370933889403,0.340677122523,0.265393999559,undefined,],
+[new Date(2015,7,21,10,26),0.370589550542,0.340750926503,0.265327924123,undefined,],
+[new Date(2015,7,21,10,27),0.371616826273,0.343201331932,0.264444481319,undefined,],
+[new Date(2015,7,21,10,28),0.371960167465,0.342319094175,0.265283117322,undefined,],
+[new Date(2015,7,21,10,29),0.370782898495,0.342178441667,0.266922498846,undefined,],
+[new Date(2015,7,21,10,30),0.370933889403,0.341745216347,0.266100539762,undefined,],
+[new Date(2015,7,21,10,31),0.372817808398,0.343178999796,0.266862740396,undefined,],
+[new Date(2015,7,21,10,32),0.373229027907,0.342723208655,0.266166141419,undefined,],
+[new Date(2015,7,21,10,33),0.373407984181,0.343018513029,0.265232510906,undefined,],
+[new Date(2015,7,21,10,34),0.372642162468,0.343087653728,0.265860764638,undefined,],
+[new Date(2015,7,21,10,35),0.373847660401,0.344549605043,0.266411504793,undefined,],
+[new Date(2015,7,21,10,36),0.374242979433,0.344958481539,0.267609375363,undefined,],
+[new Date(2015,7,21,10,37),0.374873920904,0.345757873302,0.268605396081,undefined,],
+[new Date(2015,7,21,10,38),0.376305706798,0.347001624793,0.268133654759,undefined,],
+[new Date(2015,7,21,10,39),0.375444161907,0.346143783982,0.267606342345,undefined,],
+[new Date(2015,7,21,10,40),0.375444161907,0.346143783982,0.267606342345,undefined,],
+[new Date(2015,7,21,10,41),0.375193844483,0.345290470697,0.268352986138,undefined,],
+[new Date(2015,7,21,10,42),0.375721791796,0.346469935254,0.269660034862,undefined,],
+[new Date(2015,7,21,10,43),0.375807131338,0.345553378661,0.269329129744,undefined,],
+[new Date(2015,7,21,10,44),0.379271132793,0.349304626428,0.268674616705,undefined,],
+[new Date(2015,7,21,10,45),0.379438571331,0.350084698402,0.269282084223,undefined,],
+[new Date(2015,7,21,10,46),0.379705152393,0.350596723036,0.270008459979,undefined,],
+[new Date(2015,7,21,10,47),0.379903966137,0.350620227197,0.269782516858,undefined,],
+[new Date(2015,7,21,10,48),0.378798938385,0.349399756647,0.270779201354,undefined,],
+[new Date(2015,7,21,10,49),0.378446276481,0.349779017183,0.269875372923,undefined,],
+[new Date(2015,7,21,10,50),0.377120155933,0.34789188761,0.269487796948,undefined,],
+[new Date(2015,7,21,10,51),0.376988203342,0.348720579137,0.269407019411,undefined,],
+[new Date(2015,7,21,10,52),0.378018085267,0.348223939446,0.268364699099,undefined,],
+[new Date(2015,7,21,10,53),0.375887112669,0.346018004582,0.269259399952,undefined,],
+[new Date(2015,7,21,10,54),0.375774600518,0.346122387151,0.269132727501,undefined,],
+[new Date(2015,7,21,10,55),0.375080320601,0.347150878065,0.269338944094,undefined,],
+[new Date(2015,7,21,10,56),0.374918656864,0.346301182131,0.270041428209,undefined,],
+[new Date(2015,7,21,10,57),0.375789824109,0.346878994329,0.268785243216,undefined,],
+[new Date(2015,7,21,10,58),0.375634918761,0.347555481672,0.269216670591,undefined,],
+[new Date(2015,7,21,10,59),0.376625370755,0.34772422242,0.26752212143,undefined,],
+[new Date(2015,7,21,11,00),0.376326912653,0.347908967759,0.270226470816,undefined,],
+[new Date(2015,7,21,11,01),0.376145670558,0.346951780792,0.267574280278,undefined,],
+[new Date(2015,7,21,11,02),0.376036612709,0.346274171692,0.270297704139,undefined,],
+[new Date(2015,7,21,11,03),0.375574839467,0.346138081254,0.266943235319,undefined,],
+[new Date(2015,7,21,11,04),0.375789824109,0.34690842854,0.267785013465,undefined,],
+[new Date(2015,7,21,11,05),0.375016485401,0.346138081254,0.268582698143,undefined,],
+[new Date(2015,7,21,11,06),0.375789824109,0.346878994329,0.267268150271,undefined,],
+[new Date(2015,7,21,11,07),0.376238184286,0.347306426292,0.268601260294,undefined,],
+[new Date(2015,7,21,11,08),0.376434800811,0.348393424551,0.266074401759,undefined,],
+[new Date(2015,7,21,11,09),0.375357979818,0.346545056361,0.268444588485,undefined,],
+[new Date(2015,7,21,11,10),0.376682875812,0.349037878338,0.269094127656,undefined,],
+[new Date(2015,7,21,11,11),0.377150086575,0.346948167468,0.268391749797,undefined,],
+[new Date(2015,7,21,11,12),0.377150086575,0.349101502518,0.268391749797,undefined,],
+[new Date(2015,7,21,11,13),0.378849601315,0.347044336854,0.268880013877,undefined,],
+[new Date(2015,7,21,11,14),0.377426658686,0.348296699853,0.267593018876,undefined,],
+[new Date(2015,7,21,11,15),0.376930877067,0.348127012997,0.268093425946,undefined,],
+[new Date(2015,7,21,11,16),0.378289460877,0.350037204769,0.268258302651,undefined,],
+[new Date(2015,7,21,11,17),0.378564592607,0.348850389459,0.269235258441,undefined,],
+[new Date(2015,7,21,11,18),0.377815923636,0.349083487793,0.267874313577,undefined,],
+[new Date(2015,7,21,11,19),0.376876240328,0.347441134767,0.269695956015,undefined,],
+[new Date(2015,7,21,11,20),0.37797427426,0.348821632448,0.268760228028,undefined,],
+[new Date(2015,7,21,11,21),0.377730153006,0.34792408831,0.269815312221,undefined,],
+[new Date(2015,7,21,11,22),0.377815923636,0.348203897778,0.269815312221,undefined,],
+[new Date(2015,7,21,11,23),0.377896627139,0.348319937859,0.269188207788,undefined,],
+[new Date(2015,7,21,11,24),0.377929181789,0.349859986526,0.268345671491,undefined,],
+[new Date(2015,7,21,11,25),0.376958102,0.347081686651,0.269987869342,undefined,],
+[new Date(2015,7,21,11,26),0.377096354448,0.347780511196,0.268655670822,undefined,],
+[new Date(2015,7,21,11,27),0.37775507779,0.347956257383,0.268828371518,undefined,],
+[new Date(2015,7,21,11,28),0.37838469676,0.347601820131,0.268931286521,undefined,],
+[new Date(2015,7,21,11,29),0.375826960726,0.347294518461,0.268148670377,undefined,],
+[new Date(2015,7,21,11,30),0.375690132459,0.347611548388,0.26845476322,undefined,],
+[new Date(2015,7,21,11,31),0.376113667553,0.347499233829,0.268903935748,undefined,],
+[new Date(2015,7,21,11,32),0.375628435754,0.34726076926,0.270583923223,undefined,],
+[new Date(2015,7,21,11,33),0.37603555918,0.347522371908,0.269457480227,undefined,],
+[new Date(2015,7,21,11,34),0.375786117519,0.346780199691,0.269632874339,undefined,],
+[new Date(2015,7,21,11,35),0.377096354448,0.347908967759,0.270685157202,undefined,],
+[new Date(2015,7,21,11,36),0.377575481302,0.348570699061,0.26995877855,undefined,],
+[new Date(2015,7,21,11,37),0.377365462735,0.348344255591,0.271211473299,undefined,],
+[new Date(2015,7,21,11,38),0.377365462735,0.348472143607,0.271386908051,undefined,],
+[new Date(2015,7,21,11,39),0.376381048683,0.347317795188,0.270484964375,undefined,],
+[new Date(2015,7,21,11,40),0.376700093587,0.348438380984,0.271382968847,undefined,],
+[new Date(2015,7,21,11,41),0.376940529305,0.348502030771,0.270953539847,undefined,],
+[new Date(2015,7,21,11,42),0.377149539347,0.348368736618,0.269877695109,undefined,],
+[new Date(2015,7,21,11,43),0.376411288978,0.348253722435,0.270228309687,undefined,],
+[new Date(2015,7,21,11,44),0.37615992259,0.347944314335,0.270228309687,undefined,],
+[new Date(2015,7,21,11,45),0.376980173545,0.348182124584,0.271733601279,undefined,],
+[new Date(2015,7,21,11,46),0.377505243361,0.34858856127,0.270299553333,undefined,],
+[new Date(2015,7,21,11,47),0.377729443813,0.347749523118,0.270371511996,undefined,],
+[new Date(2015,7,21,11,48),0.376205350499,0.347628109025,0.270418650519,undefined,],
+[new Date(2015,7,21,11,49),0.374954597359,0.346429709847,0.270908678292,undefined,],
+[new Date(2015,7,21,11,50),0.37442800645,0.345637898236,0.270055719546,undefined,],
+[new Date(2015,7,21,11,51),0.37493345424,0.345949694772,0.270055719546,undefined,],
+[new Date(2015,7,21,11,52),0.374182499669,0.346502605905,0.270512036705,undefined,],
+[new Date(2015,7,21,11,53),0.37392929442,0.346667390375,0.270862459119,undefined,],
+[new Date(2015,7,21,11,54),0.37470552294,0.346429709847,0.270299553333,undefined,],
+[new Date(2015,7,21,11,55),0.374182499669,0.346429709847,0.27242724391,undefined,],
+[new Date(2015,7,21,11,56),0.374435627147,0.346429709847,0.272602497496,undefined,],
+[new Date(2015,7,21,11,57),0.375165641043,0.345094569864,0.270055719546,undefined,],
+[new Date(2015,7,21,11,58),0.373904699132,0.3458287157,0.270230913969,undefined,],
+[new Date(2015,7,21,11,59),0.375879382496,0.346266522497,0.270873621574,undefined,],
+[new Date(2015,7,21,12,00),0.375194543983,0.345084569675,0.270429053465,undefined,],
+[new Date(2015,7,21,13,00),0.374661004235,0.345240178804,0.272973064543,undefined,],
+[new Date(2015,7,21,13,01),0.374438342085,0.344892292488,0.270187512265,undefined,],
+[new Date(2015,7,21,13,02),0.374452893293,0.34550646624,0.269774701158,undefined,],
+[new Date(2015,7,21,13,03),0.374197173704,0.34550646624,0.269774701158,undefined,],
+[new Date(2015,7,21,13,04),0.374456985151,0.34481972484,0.270872518992,undefined,],
+[new Date(2015,7,21,13,05),0.372672940391,0.343900411137,0.272340107309,undefined,],
+[new Date(2015,7,21,13,06),0.373604402601,0.343297134882,0.270581298429,undefined,],
+[new Date(2015,7,21,13,07),0.372885197756,0.34580400703,0.272028469335,undefined,],
+[new Date(2015,7,21,13,08),0.37366134414,0.346622658111,0.271982778311,undefined,],
+[new Date(2015,7,21,13,09),0.373642056471,0.343975651908,0.27145723416,undefined,],
+[new Date(2015,7,21,13,10),0.371707246302,0.34366940594,0.272658406751,undefined,],
+[new Date(2015,7,21,13,11),0.371335031728,0.343597016936,0.27035529957,undefined,],
+[new Date(2015,7,21,13,12),0.369259400828,0.342487687828,0.27386136151,undefined,],
+[new Date(2015,7,21,13,13),0.370378040963,0.342234900861,0.272143242458,undefined,],
+[new Date(2015,7,21,13,14),0.370827602438,0.3422470073,0.271230453602,undefined,],
+[new Date(2015,7,21,13,15),0.372416283362,0.344033807119,0.272070856926,undefined,],
+[new Date(2015,7,21,13,16),0.372162618935,0.346771168071,0.272601569014,undefined,],
+[new Date(2015,7,21,13,17),0.372927981728,0.346025146515,0.273651830181,undefined,],
+[new Date(2015,7,21,13,18),0.372924936482,0.346161889383,0.274527017035,undefined,],
+[new Date(2015,7,21,13,19),0.374193153774,0.346426581826,0.273433800186,undefined,],
+[new Date(2015,7,21,13,20),0.374413755477,0.348324207645,0.275709396619,undefined,],
+[new Date(2015,7,21,13,21),0.376727205812,0.349372760436,0.27271983572,undefined,],
+[new Date(2015,7,21,13,22),0.377513650208,0.349639781136,0.273762313336,undefined,],
+[new Date(2015,7,21,13,23),0.376241298713,0.348148343333,0.273323139706,undefined,],
+[new Date(2015,7,21,13,24),0.37445656508,0.348778906403,0.275162892364,undefined,],
+[new Date(2015,7,21,13,25),0.377240357525,0.349527174252,0.273564734374,undefined,],
+[new Date(2015,7,21,13,26),0.374287893086,0.346321686766,0.274132315137,undefined,],
+[new Date(2015,7,21,13,27),0.375094258911,0.347135310453,0.274411224714,undefined,],
+[new Date(2015,7,21,13,28),0.37389418838,0.345585580123,0.274039012022,undefined,],
+[new Date(2015,7,21,13,29),0.375140587288,0.347448653169,0.274857021099,undefined,],
+[new Date(2015,7,21,13,30),0.375357979818,0.348564449494,0.272761227338,undefined,],
+[new Date(2015,7,21,13,31),0.374245736323,0.343902435133,0.274338969439,undefined,],
+[new Date(2015,7,21,13,32),0.373497333387,0.34481091403,0.275566008409,undefined,],
+[new Date(2015,7,21,13,33),0.373287385968,0.34536579878,0.276018344408,undefined,],
+[new Date(2015,7,21,13,34),0.370342261045,0.344014693184,0.276648821394,undefined,],
+[new Date(2015,7,21,13,35),0.370441238606,0.343445244042,0.278011766333,undefined,],
+[new Date(2015,7,21,13,36),0.370562904398,0.343069654172,0.274895196492,undefined,],
+[new Date(2015,7,21,13,37),0.37156613761,0.343369955704,0.275457998861,undefined,],
+[new Date(2015,7,21,13,38),0.372870320743,0.344110913536,0.274913473237,undefined,],
+[new Date(2015,7,21,13,39),0.371111581926,0.341524509391,0.274913473237,undefined,],
+[new Date(2015,7,21,13,40),0.371897302616,0.342771807865,0.273095449594,undefined,],
+[new Date(2015,7,21,13,41),0.369315895996,0.341659499853,0.27645831503,undefined,],
+[new Date(2015,7,21,13,42),0.370257013879,0.343029109289,0.274444084681,undefined,],
+[new Date(2015,7,21,13,43),0.371306837913,0.342897307658,0.273214094622,undefined,],
+[new Date(2015,7,21,13,44),0.369205692758,0.342460353981,0.273038762248,undefined,],
+[new Date(2015,7,21,13,45),0.37064119115,0.343245872158,0.273232181019,undefined,],
+[new Date(2015,7,21,13,46),0.370864954048,0.343245872158,0.274567743729,undefined,],
+[new Date(2015,7,21,13,47),0.371684854498,0.34258325765,0.27446574384,undefined,],
+[new Date(2015,7,21,13,48),0.371910167803,0.344117648531,0.27446574384,undefined,],
+[new Date(2015,7,21,13,49),0.370496921676,0.342925981682,0.276043477441,undefined,],
+[new Date(2015,7,21,13,50),0.369826136721,0.342899840718,0.277971635625,undefined,],
+[new Date(2015,7,21,13,51),0.372874677203,0.342899840718,0.274328145447,undefined,],
+[new Date(2015,7,21,13,52),0.369602981376,0.342197585661,0.275378964399,undefined,],
+[new Date(2015,7,21,13,53),0.371904426853,0.343527567056,0.274353614688,undefined,],
+[new Date(2015,7,21,13,54),0.373147208232,0.34446115968,0.272996794503,undefined,],
+[new Date(2015,7,21,13,55),0.371534085785,0.343419776663,0.272599314472,undefined,],
+[new Date(2015,7,21,13,56),0.371602900138,0.343404799278,0.275406342112,undefined,],
+[new Date(2015,7,21,13,57),0.371516775368,0.343544793126,0.274737772579,undefined,],
+[new Date(2015,7,21,13,58),0.37103240378,0.344288080801,0.27385283049,undefined,],
+[new Date(2015,7,21,13,59),0.372792693934,0.345598762541,0.272084226847,undefined,],
+[new Date(2015,7,21,14,00),0.37328408616,0.345482781771,0.275729410354,undefined,],
+[new Date(2015,7,21,14,01),0.372302839815,0.343369955704,0.273762911333,undefined,],
+[new Date(2015,7,21,14,02),0.372812671599,0.342349201822,0.275745552271,undefined,],
+[new Date(2015,7,21,14,03),0.372881704165,0.34293255392,0.27515924731,undefined,],
+[new Date(2015,7,21,14,04),0.369512370725,0.342053183597,0.274309156745,undefined,],
+[new Date(2015,7,21,14,05),0.371251193424,0.34264233392,0.27212048946,undefined,],
+[new Date(2015,7,21,14,06),0.370004075027,0.343342781652,0.273886890087,undefined,],
+[new Date(2015,7,21,14,07),0.370171819898,0.342495977474,0.272860251823,undefined,],
+[new Date(2015,7,21,14,08),0.369030909761,0.340426735105,0.273541836014,undefined,],
+[new Date(2015,7,21,14,09),0.368067117262,0.341163010773,0.274364042896,undefined,],
+[new Date(2015,7,21,14,10),0.369271676469,0.341758502551,0.273750418195,undefined,],
+[new Date(2015,7,21,14,11),0.369581414938,0.339615862771,0.272226298654,undefined,],
+[new Date(2015,7,21,14,12),0.368257839211,0.339121673992,0.27223616188,undefined,],
+[new Date(2015,7,21,14,13),0.367837442122,0.339285817823,0.274104276983,undefined,],
+[new Date(2015,7,21,14,14),0.367236375002,0.340622362654,0.272876545172,undefined,],
+[new Date(2015,7,21,14,15),0.368985216076,0.339967278048,0.272299274631,undefined,],
+[new Date(2015,7,21,14,16),0.367861771663,0.338413545639,0.271429030413,undefined,],
+[new Date(2015,7,21,14,17),0.364107619427,0.337285018473,0.272185969464,undefined,],
+[new Date(2015,7,21,14,18),0.365299774298,0.338439112373,0.272380174394,undefined,],
+[new Date(2015,7,21,14,19),0.367962664086,0.339317755603,0.271496572047,undefined,],
+[new Date(2015,7,21,14,20),0.365868662472,0.337242070048,0.273988464533,undefined,],
+[new Date(2015,7,21,14,21),0.367386768808,0.338104497848,0.270958058986,undefined,],
+[new Date(2015,7,21,14,22),0.366463303993,0.339047202398,0.2714738416,undefined,],
+[new Date(2015,7,21,14,23),0.364747786616,0.337644755339,0.271183913601,undefined,],
+[new Date(2015,7,21,14,24),0.365317557968,0.337545686768,0.271007117764,undefined,],
+[new Date(2015,7,21,14,25),0.365613655527,0.338539481723,0.271565742938,undefined,],
+[new Date(2015,7,21,14,26),0.365079173826,0.336785689794,0.272625599899,undefined,],
+[new Date(2015,7,21,14,27),0.365530941162,0.337210400956,0.270539065675,undefined,],
+[new Date(2015,7,21,14,28),0.366077593561,0.338366071398,0.271598987067,undefined,],
+[new Date(2015,7,21,14,29),0.367024676329,0.33868789602,0.272691215621,undefined,],
+[new Date(2015,7,21,14,30),0.366010789684,0.338300188783,0.273134419564,undefined,],
+[new Date(2015,7,21,14,31),0.364917290739,0.336668910767,0.272890496606,undefined,],
+[new Date(2015,7,21,14,32),0.366147545091,0.337808642694,0.271796691973,undefined,],
+[new Date(2015,7,21,14,33),0.36503380275,0.33751092112,0.272326309714,undefined,],
+[new Date(2015,7,21,14,34),0.36503380275,0.338031936073,0.272326309714,undefined,],
+[new Date(2015,7,21,14,35),0.365828318067,0.338653448025,0.271558395045,undefined,],
+[new Date(2015,7,21,14,36),0.366680204517,0.338963209639,0.272090628943,undefined,],
+[new Date(2015,7,21,14,37),0.366837727843,0.338065518373,0.272090628943,undefined,],
+[new Date(2015,7,21,14,38),0.366837727843,0.338902889277,0.272527057371,undefined,],
+[new Date(2015,7,21,14,39),0.367360807067,0.339078137077,0.272327770422,undefined,],
+[new Date(2015,7,21,14,40),0.367792733058,0.339509072282,0.271622233155,undefined,],
+[new Date(2015,7,21,14,41),0.367792733058,0.340298079032,0.272423899256,undefined,],
+[new Date(2015,7,21,14,42),0.367231804561,0.339509072282,0.271894419322,undefined,],
+[new Date(2015,7,21,14,43),0.367837442122,0.339794039482,0.273155468579,undefined,],
+[new Date(2015,7,21,14,44),0.366388327353,0.338082427405,0.272070916773,undefined,],
+[new Date(2015,7,21,14,45),0.366674996802,0.340091305257,0.27167680336,undefined,],
+[new Date(2015,7,21,14,46),0.36620288598,0.339513136635,0.27167680336,undefined,],
+[new Date(2015,7,21,14,47),0.367595676958,0.337804768101,0.272616853202,undefined,],
+[new Date(2015,7,21,14,48),0.367854155282,0.339930354902,0.272101586992,undefined,],
+[new Date(2015,7,21,14,49),0.367153862917,0.339832779536,0.273128042103,undefined,],
+[new Date(2015,7,21,14,50),0.367196177674,0.34084832302,0.271845785965,undefined,],
+[new Date(2015,7,21,14,51),0.36770697955,0.340573620808,0.272458223594,undefined,],
+[new Date(2015,7,21,14,52),0.368007291346,0.341462482568,0.272951821282,undefined,],
+[new Date(2015,7,21,14,53),0.368344299703,0.341956337097,0.27610665083,undefined,],
+[new Date(2015,7,21,14,54),0.370582840674,0.341721198332,0.274536336329,undefined,],
+[new Date(2015,7,21,14,55),0.369934857665,0.342657458993,0.273184408729,undefined,],
+[new Date(2015,7,21,14,56),0.371317305564,0.340980387743,0.272131253436,undefined,],
+[new Date(2015,7,21,14,57),0.370525622371,0.341751509681,0.274173889666,undefined,],
+[new Date(2015,7,21,14,58),0.370413215262,0.341905889207,0.273970464009,undefined,],
+[new Date(2015,7,21,14,59),0.368366875129,0.341756374232,0.274386195388,undefined,],
+[new Date(2015,7,21,15,00),0.368334549016,0.340757247497,0.274441435377,undefined,],
+[new Date(2015,7,21,15,01),0.367126448444,0.338740628243,0.274013741691,undefined,],
+[new Date(2015,7,21,15,02),0.367637147582,0.339217568505,0.273750418195,undefined,],
+[new Date(2015,7,21,15,03),0.367637147582,0.33904997687,0.272870948323,undefined,],
+[new Date(2015,7,21,15,04),0.367981693449,0.33904997687,0.272901588897,undefined,],
+[new Date(2015,7,21,15,05),0.368179792921,0.340091305257,0.274134569725,undefined,],
+[new Date(2015,7,21,15,06),0.365648234845,0.338580114437,0.273449181507,undefined,],
+[new Date(2015,7,21,15,07),0.367830483871,0.339486643701,0.273001483942,undefined,],
+[new Date(2015,7,21,15,08),0.364311869806,0.337746382179,0.272734034107,undefined,],
+[new Date(2015,7,21,15,09),0.364311869806,0.336746727593,0.27314765611,undefined,],
+[new Date(2015,7,21,15,10),0.365180296134,0.337644022393,0.273238917984,undefined,],
+[new Date(2015,7,21,15,11),0.366513258029,0.339056858079,0.269676128795,undefined,],
+[new Date(2015,7,21,15,12),0.366009678343,0.337629395245,0.27602514995,undefined,],
+[new Date(2015,7,21,15,13),0.365544495801,0.337242070048,0.273760050608,undefined,],
+[new Date(2015,7,21,15,14),0.365192274761,0.337877548364,0.273541007336,undefined,],
+[new Date(2015,7,21,15,15),0.365510459857,0.337171142369,0.272625599899,undefined,],
+[new Date(2015,7,21,15,16),0.366309471258,0.336888682333,0.273198907926,undefined,],
+[new Date(2015,7,21,15,17),0.364652078664,0.337296120489,0.273298914274,undefined,],
+[new Date(2015,7,21,15,18),0.364837259364,0.337104221258,0.273022229933,undefined,],
+[new Date(2015,7,21,15,19),0.364685046776,0.336496398435,0.273198907926,undefined,],
+[new Date(2015,7,21,15,20),0.365350482362,0.336047007606,0.273728914889,undefined,],
+[new Date(2015,7,21,15,21),0.364118849433,0.335757657531,0.272868408732,undefined,],
+[new Date(2015,7,21,15,22),0.365068547057,0.336471600466,0.273387188001,undefined,],
+[new Date(2015,7,21,15,23),0.365088229963,0.335996070501,0.272094146612,undefined,],
+[new Date(2015,7,21,15,24),0.365081073756,0.335628663657,0.272535066313,undefined,],
+[new Date(2015,7,21,15,25),0.365170526575,0.336269450071,0.273211289764,undefined,],
+[new Date(2015,7,21,15,26),0.363325679031,0.335253743277,0.274840857448,undefined,],
+[new Date(2015,7,21,15,27),0.364708457195,0.335736022231,0.272822986004,undefined,],
+[new Date(2015,7,21,15,28),0.363699145582,0.335031499226,0.273452689421,undefined,],
+[new Date(2015,7,21,15,29),0.36220861852,0.333943074364,0.273275431489,undefined,],
+[new Date(2015,7,21,15,30),0.36243323272,0.333746831789,0.273311922873,undefined,],
+[new Date(2015,7,21,15,31),0.363981456832,0.335541829366,0.273243749418,undefined,],
+[new Date(2015,7,21,15,32),0.364740219552,0.336874335823,0.273483357826,undefined,],
+[new Date(2015,7,21,15,33),0.364754719488,0.336309105667,0.274951478054,undefined,],
+[new Date(2015,7,21,15,34),0.364154776676,0.336518748922,0.273582525519,undefined,],
+[new Date(2015,7,21,15,35),0.361720741075,0.334148772409,0.276038299764,undefined,],
+[new Date(2015,7,21,15,36),0.363220257191,0.335514954784,0.273962480184,undefined,],
+[new Date(2015,7,21,15,37),0.364128212604,0.336387597188,0.273621704335,undefined,],
+[new Date(2015,7,21,15,38),0.364014680178,0.336431599432,0.274018904184,undefined,],
+[new Date(2015,7,21,15,39),0.36370781634,0.336501711348,0.273921960589,undefined,],
+[new Date(2015,7,21,15,40),0.36438597846,0.33724931175,0.273948528227,undefined,],
+[new Date(2015,7,21,15,41),0.364546714379,0.336577933095,0.272237714243,undefined,],
+[new Date(2015,7,21,15,42),0.365273684882,0.337414493812,0.272261754903,undefined,],
+[new Date(2015,7,21,15,43),0.366242772635,0.338015622918,0.27198178896,undefined,],
+[new Date(2015,7,21,15,44),0.366258087065,0.338926451782,0.272794844836,undefined,],
+[new Date(2015,7,21,15,45),0.363942866077,0.337113841296,0.27283332033,undefined,],
+[new Date(2015,7,21,15,46),0.365875488364,0.337768548367,0.274244702278,undefined,],
+[new Date(2015,7,21,15,47),0.365821036448,0.337992349066,0.27398803738,undefined,],
+[new Date(2015,7,21,15,48),0.365751678605,0.339339607133,0.27283332033,undefined,],
+[new Date(2015,7,21,15,49),0.366388829514,0.338021678346,0.272986464373,undefined,],
+[new Date(2015,7,21,15,50),0.365296105696,0.337956641601,0.276268168032,undefined,],
+[new Date(2015,7,21,15,51),0.366903854569,0.339821344802,0.273858972923,undefined,],
+[new Date(2015,7,21,15,52),0.364976524584,0.337815815653,0.273858972923,undefined,],
+[new Date(2015,7,21,15,53),0.362787861253,0.337234488433,0.273265333044,undefined,],
+[new Date(2015,7,21,15,54),0.365049328468,0.3385108791,0.272756293459,undefined,],
+[new Date(2015,7,21,15,55),0.362949901259,0.33730198688,0.274422570494,undefined,],
+[new Date(2015,7,21,15,56),0.361767253966,0.335733249877,0.273807794314,undefined,],
+[new Date(2015,7,21,15,57),0.36210656416,0.335275716554,0.273114387593,undefined,],
+[new Date(2015,7,21,15,58),0.362657959413,0.334888071552,0.273940464994,undefined,],
+[new Date(2015,7,21,15,59),0.363474917206,0.336083627704,0.273484247128,undefined,],
+[new Date(2015,7,21,16,00),0.36329144986,0.336608189926,0.271492253453,undefined,],
+[new Date(2015,7,21,16,01),0.362671524467,0.336428104184,0.272730409781,undefined,],
+[new Date(2015,7,21,16,02),0.362444177305,0.336360343478,0.271257295119,undefined,],
+[new Date(2015,7,21,16,03),0.362388666308,0.334832175928,0.273501709018,undefined,],
+[new Date(2015,7,21,16,04),0.362682690987,0.335347563471,0.27250930423,undefined,],
+[new Date(2015,7,21,16,05),0.362278182418,0.334537210477,0.273187615283,undefined,],
+[new Date(2015,7,21,16,06),0.363315123856,0.336022597021,0.271443930136,undefined,],
+[new Date(2015,7,21,16,07),0.364562951793,0.33508547528,0.273197037327,undefined,],
+[new Date(2015,7,21,16,08),0.362572980741,0.335840415878,0.272399588274,undefined,],
+[new Date(2015,7,21,16,09),0.36274192268,0.334601632467,0.27112171483,undefined,],
+[new Date(2015,7,21,16,10),0.36001072641,0.334352298926,0.270990014724,undefined,],
+[new Date(2015,7,21,16,11),0.361875485075,0.333346985871,0.270716827615,undefined,],
+[new Date(2015,7,21,16,12),0.359898519663,0.331841563572,0.270716827615,undefined,],
+[new Date(2015,7,21,16,13),0.360408833953,0.333566504813,0.271020848194,undefined,],
+[new Date(2015,7,21,16,14),0.361036543884,0.334353897207,0.271600657614,undefined,],
+[new Date(2015,7,21,16,15),0.365465270401,0.3368445081,0.269935033261,undefined,],
+[new Date(2015,7,24,09,15),0.490877097552,0.501812249024,0.188500707676,undefined,],
+[new Date(2015,7,24,09,16),0.485905885979,0.440517546975,0.289543449436,undefined,],
+[new Date(2015,7,24,09,17),0.475743107556,0.440842032612,0.290065881141,undefined,],
+[new Date(2015,7,24,09,18),0.476709815417,0.436374630553,0.291438523608,undefined,],
+[new Date(2015,7,24,09,19),0.472774899282,0.434669666647,0.291415894142,undefined,],
+[new Date(2015,7,24,09,20),0.493232076462,0.447078148705,0.304655567888,undefined,],
+[new Date(2015,7,24,09,21),0.509322001409,0.467221643584,0.300176777823,undefined,],
+[new Date(2015,7,24,09,22),0.502973227366,0.502351633088,0.18291693628,undefined,],
+[new Date(2015,7,24,09,23),0.523132977924,0.480474563475,0.301206195429,undefined,],
+[new Date(2015,7,24,09,24),0.51487333293,0.499721817112,0.304227712128,undefined,],
+[new Date(2015,7,24,09,25),0.511129115386,0.485558850305,0.308100021595,undefined,],
+[new Date(2015,7,24,09,26),0.519380627746,0.475231350154,0.306731171439,undefined,],
+[new Date(2015,7,24,09,27),0.542981670777,0.495648646168,0.306511103438,undefined,],
+[new Date(2015,7,24,09,28),0.543659292689,0.499961460787,0.306144162815,undefined,],
+[new Date(2015,7,24,09,29),0.546667643263,0.488276433516,0.306333091073,undefined,],
+[new Date(2015,7,24,09,30),0.539340038207,0.489476507779,0.305463342959,undefined,],
+[new Date(2015,7,24,09,31),0.541359441136,0.489492984589,0.311108357547,undefined,],
+[new Date(2015,7,24,09,32),0.530464920325,0.48052828954,0.310530044692,undefined,],
+[new Date(2015,7,24,09,33),0.53655775281,0.485268168922,0.308478848228,undefined,],
+[new Date(2015,7,24,09,34),0.537339301706,0.488602041771,0.308718606528,undefined,],
+[new Date(2015,7,24,09,35),0.551858398464,0.514320395657,0.317367364527,undefined,],
+[new Date(2015,7,24,09,36),0.571824515903,0.490118035448,0.314865998623,undefined,],
+[new Date(2015,7,24,09,37),0.574373029596,0.528804863629,0.318995342455,undefined,],
+[new Date(2015,7,24,09,38),0.557962811448,0.530567314053,0.331123499276,undefined,],
+[new Date(2015,7,24,09,39),0.564442898554,0.523152498213,0.328426869133,undefined,],
+[new Date(2015,7,24,09,40),0.566480167029,0.520676423845,0.330681726881,undefined,],
+[new Date(2015,7,24,09,41),0.563047906696,0.50839493255,0.329572924701,undefined,],
+[new Date(2015,7,24,09,42),0.556618062485,0.518738113589,0.326667016515,undefined,],
+[new Date(2015,7,24,09,43),0.547269653755,0.495432560661,0.328538241277,undefined,],
+[new Date(2015,7,24,09,44),0.549626907459,0.511990772736,0.326366095714,undefined,],
+[new Date(2015,7,24,09,45),0.543834056152,0.505643023402,0.328176812118,undefined,],
+[new Date(2015,7,24,09,46),0.537373880722,0.497641572908,0.323496344859,undefined,],
+[new Date(2015,7,24,09,47),0.534596681764,0.496775609908,0.323249030855,undefined,],
+[new Date(2015,7,24,09,48),0.533578154893,0.501753150953,0.328163529019,undefined,],
+[new Date(2015,7,24,09,49),0.535702346929,0.488678219458,0.325325806849,undefined,],
+[new Date(2015,7,24,09,50),0.529608350065,0.490356952343,0.322055788311,undefined,],
+[new Date(2015,7,24,09,51),0.5339478575,0.493425056393,0.324936798258,undefined,],
+[new Date(2015,7,24,09,52),0.527681062963,0.49265352697,0.322788569075,undefined,],
+[new Date(2015,7,24,09,53),0.525650184778,0.484185340439,0.324470556538,undefined,],
+[new Date(2015,7,24,09,54),0.526111104455,0.488385925849,0.31932069645,undefined,],
+[new Date(2015,7,24,09,55),0.527683493549,0.488056281788,0.319037529817,undefined,],
+[new Date(2015,7,24,09,56),0.521246665574,0.485327191217,0.32557209179,undefined,],
+[new Date(2015,7,24,09,57),0.520333270662,0.488879326179,0.321086125369,undefined,],
+[new Date(2015,7,24,09,58),0.520536632136,0.489177617383,0.319029327817,undefined,],
+[new Date(2015,7,24,09,59),0.513740865666,0.474242003988,0.316192077239,undefined,],
+[new Date(2015,7,24,10,00),0.508802943514,0.480069317005,0.318364727927,undefined,],
+[new Date(2015,7,24,10,01),0.517311899864,0.482383046993,0.320665098531,undefined,],
+[new Date(2015,7,24,10,02),0.513846996219,0.479448723606,0.317139053298,undefined,],
+[new Date(2015,7,24,10,03),0.510684252756,0.472927596688,0.317720837717,undefined,],
+[new Date(2015,7,24,10,04),0.506933017071,0.474087190052,0.31632492528,undefined,],
+[new Date(2015,7,24,10,05),0.510593740936,0.4759389721,0.322745300163,undefined,],
+[new Date(2015,7,24,10,06),0.507212620482,0.472058151391,0.31833512233,undefined,],
+[new Date(2015,7,24,10,07),0.509272166847,0.475544068493,0.320071097005,undefined,],
+[new Date(2015,7,24,10,08),0.506481403323,0.471425970004,0.319696038379,undefined,],
+[new Date(2015,7,24,10,09),0.511475454199,0.476949117494,0.320752515594,undefined,],
+[new Date(2015,7,24,10,10),0.510306665446,0.46987240788,0.320963968314,undefined,],
+[new Date(2015,7,24,10,11),0.51634185824,0.475954312445,0.31921041865,undefined,],
+[new Date(2015,7,24,10,12),0.51496607966,0.476848130658,0.321605340222,undefined,],
+[new Date(2015,7,24,10,13),0.518016536119,0.478490320041,0.32247739468,undefined,],
+[new Date(2015,7,24,10,14),0.52347065033,0.4893260824,0.326377939369,undefined,],
+[new Date(2015,7,24,10,15),0.529822529866,0.488252896873,0.32435867182,undefined,],
+[new Date(2015,7,24,10,16),0.523745367589,0.489369591314,0.324755836338,undefined,],
+[new Date(2015,7,24,10,17),0.526191461243,0.483626452894,0.324894757457,undefined,],
+[new Date(2015,7,24,10,18),0.526957043059,0.485267701783,0.32231425787,undefined,],
+[new Date(2015,7,24,10,19),0.527260621525,0.484201423056,0.325426631093,undefined,],
+[new Date(2015,7,24,10,20),0.531722535902,0.49446758168,0.325081495857,undefined,],
+[new Date(2015,7,24,10,21),0.531909436281,0.482468522252,0.320876980331,undefined,],
+[new Date(2015,7,24,10,22),0.53298069349,0.49041835437,0.325619536637,undefined,],
+[new Date(2015,7,24,10,23),0.523065068841,0.477990329483,0.324915469937,undefined,],
+[new Date(2015,7,24,10,24),0.531126067718,0.487706794771,0.320239147412,undefined,],
+[new Date(2015,7,24,10,25),0.520973100852,0.48525076034,0.324720257681,undefined,],
+[new Date(2015,7,24,10,26),0.516813944303,0.472747190523,0.321372946462,undefined,],
+[new Date(2015,7,24,10,27),0.513040589337,0.476962436968,0.318786166259,undefined,],
+[new Date(2015,7,24,10,28),0.508318216923,0.470291220886,0.321947884323,undefined,],
+[new Date(2015,7,24,10,29),0.504619372915,0.464057010658,0.322101062384,undefined,],
+[new Date(2015,7,24,10,30),0.507037462964,0.464102438387,0.319047612261,undefined,],
+[new Date(2015,7,24,10,31),0.501787284672,0.459467826919,0.321222572001,undefined,],
+[new Date(2015,7,24,10,32),0.499893568101,0.452541113519,0.322499822637,undefined,],
+[new Date(2015,7,24,10,33),0.503968522062,0.453414153779,0.322069480888,undefined,],
+[new Date(2015,7,24,10,34),0.500955444111,0.458787216595,0.325665858738,undefined,],
+[new Date(2015,7,24,10,35),0.503230634829,0.458693614507,0.325242363386,undefined,],
+[new Date(2015,7,24,10,36),0.505298784133,0.461993376739,0.323714122387,undefined,],
+[new Date(2015,7,24,10,37),0.507295941737,0.456838124413,0.327381360363,undefined,],
+[new Date(2015,7,24,10,38),0.510495943034,0.46166310586,0.327200630099,undefined,],
+[new Date(2015,7,24,10,39),0.516258242454,0.469451174401,0.328487872382,undefined,],
+[new Date(2015,7,24,10,40),0.517334696011,0.474344147907,0.330038243588,undefined,],
+[new Date(2015,7,24,10,41),0.515210469361,0.469168579879,0.330732469537,undefined,],
+[new Date(2015,7,24,10,42),0.517311899864,0.476853615591,0.334133347403,undefined,],
+[new Date(2015,7,24,10,43),0.518719396785,0.477946061479,0.333025261625,undefined,],
+[new Date(2015,7,24,10,44),0.519591364143,0.477890972874,0.330906805928,undefined,],
+[new Date(2015,7,24,10,45),0.524493481368,0.48152475815,0.334011151198,undefined,],
+[new Date(2015,7,24,10,46),0.527969330024,0.484745259172,0.334928017517,undefined,],
+[new Date(2015,7,24,10,47),0.530194455957,0.485100060443,0.338586464528,undefined,],
+[new Date(2015,7,24,10,48),0.527459391795,0.485557145756,0.339496219922,undefined,],
+[new Date(2015,7,24,10,49),0.527683493549,0.490335941221,0.336527646271,undefined,],
+[new Date(2015,7,24,10,50),0.525505064854,0.487723779427,0.338834351806,undefined,],
+[new Date(2015,7,24,10,51),0.529591547182,0.486355841713,0.334134703012,undefined,],
+[new Date(2015,7,24,10,52),0.524732978874,0.486713813182,0.337543023784,undefined,],
+[new Date(2015,7,24,10,53),0.522271269975,0.480389962195,0.337112628744,undefined,],
+[new Date(2015,7,24,10,54),0.519385531802,0.479159164786,0.338794640903,undefined,],
+[new Date(2015,7,24,10,55),0.517935483265,0.481070694117,0.338914917987,undefined,],
+[new Date(2015,7,24,10,56),0.521413614802,0.480754426862,0.338265739481,undefined,],
+[new Date(2015,7,24,10,57),0.516748190513,0.477901428575,0.337169572842,undefined,],
+[new Date(2015,7,24,10,58),0.515155054376,0.479803865358,0.336364839634,undefined,],
+[new Date(2015,7,24,10,59),0.521432351827,0.479709173586,0.338197147587,undefined,],
+[new Date(2015,7,24,11,00),0.51496607966,0.475570287982,0.339280183523,undefined,],
+[new Date(2015,7,24,11,01),0.517525429352,0.472277110972,0.342465018867,undefined,],
+[new Date(2015,7,24,11,02),0.517806587359,0.47660387876,0.336696407753,undefined,],
+[new Date(2015,7,24,11,03),0.516907423266,0.477143421519,0.339923802704,undefined,],
+[new Date(2015,7,24,11,04),0.51904763826,0.478535595011,0.340779053974,undefined,],
+[new Date(2015,7,24,11,05),0.51724225588,0.479474903994,0.341151250205,undefined,],
+[new Date(2015,7,24,11,06),0.520355639563,0.479097472753,0.342489423629,undefined,],
+[new Date(2015,7,24,11,07),0.523389340418,0.486013611643,0.344259972319,undefined,],
+[new Date(2015,7,24,11,08),0.532911701626,0.491527235365,0.344389135792,undefined,],
+[new Date(2015,7,24,11,09),0.538627869598,0.49357672126,0.346594313302,undefined,],
+[new Date(2015,7,24,11,10),0.534469955867,0.494466485938,0.348215898017,undefined,],
+[new Date(2015,7,24,11,11),0.538431883121,0.495359318609,0.348257767928,undefined,],
+[new Date(2015,7,24,11,12),0.546453412598,0.502642505625,0.355611473396,undefined,],
+[new Date(2015,7,24,11,13),0.553053453196,0.506637526559,0.356456381442,undefined,],
+[new Date(2015,7,24,11,14),0.55849494812,0.512489825972,0.363587710234,undefined,],
+[new Date(2015,7,24,11,15),0.561405094826,0.523309295654,0.364604567197,undefined,],
+[new Date(2015,7,24,11,16),0.567975687011,0.537194714563,0.3645346208,undefined,],
+[new Date(2015,7,24,11,17),0.570984105594,0.524405955748,0.365099099903,undefined,],
+[new Date(2015,7,24,11,18),0.570249924914,0.528942542959,0.368636493756,undefined,],
+[new Date(2015,7,24,11,19),0.572226451911,0.529257502713,0.367841402812,undefined,],
+[new Date(2015,7,24,11,20),0.563798673087,0.525726913828,0.36811982957,undefined,],
+[new Date(2015,7,24,11,21),0.564460672392,0.527988083984,0.36561355918,undefined,],
+[new Date(2015,7,24,11,22),0.562398827275,0.529110171736,0.36749583603,undefined,],
+[new Date(2015,7,24,11,23),0.553534725174,0.510622870107,0.364538747636,undefined,],
+[new Date(2015,7,24,11,24),0.551326061663,0.515151874134,0.363480534713,undefined,],
+[new Date(2015,7,24,11,25),0.546286821637,0.505834768067,0.362802477833,undefined,],
+[new Date(2015,7,24,11,26),0.540784966348,0.491520084836,0.361554779969,undefined,],
+[new Date(2015,7,24,11,27),0.531858177713,0.490715244246,0.357758072085,undefined,],
+[new Date(2015,7,24,11,28),0.528569734002,0.489394889677,0.354524538712,undefined,],
+[new Date(2015,7,24,11,29),0.51472597374,0.478597374922,0.352821963896,undefined,],
+[new Date(2015,7,24,11,30),0.508061504641,0.471952633389,0.352403768276,undefined,],
+[new Date(2015,7,24,11,31),0.504172522104,0.467864791937,0.35206391901,undefined,],
+[new Date(2015,7,24,11,32),0.500207453169,0.463050618632,0.350872991005,undefined,],
+[new Date(2015,7,24,11,33),0.507997594599,0.465426033615,0.351252510909,undefined,],
+[new Date(2015,7,24,11,34),0.510494339394,0.470298670349,0.353060006582,undefined,],
+[new Date(2015,7,24,11,35),0.515786225347,0.476478526999,0.35401973239,undefined,],
+[new Date(2015,7,24,11,36),0.51580870341,0.474454660796,0.35023630384,undefined,],
+[new Date(2015,7,24,11,37),0.515726797261,0.474412051053,0.352361419576,undefined,],
+[new Date(2015,7,24,11,38),0.51527393042,0.476018786124,0.351008832967,undefined,],
+[new Date(2015,7,24,11,39),0.515213185697,0.473619188053,0.350892446582,undefined,],
+[new Date(2015,7,24,11,40),0.511784068094,0.474418381095,0.350941063002,undefined,],
+[new Date(2015,7,24,11,41),0.521483678199,0.475345130605,0.349771388359,undefined,],
+[new Date(2015,7,24,11,42),0.519466055455,0.479707913179,0.348407943372,undefined,],
+[new Date(2015,7,24,11,43),0.523811516269,0.478865410595,0.3490675152,undefined,],
+[new Date(2015,7,24,11,44),0.525735223149,0.481197361224,0.353968053781,undefined,],
+[new Date(2015,7,24,11,45),0.531244176555,0.486976342708,0.350474158866,undefined,],
+[new Date(2015,7,24,11,46),0.535331537226,0.491415271913,0.351332445229,undefined,],
+[new Date(2015,7,24,11,47),0.536445999126,0.495106627632,0.352489753673,undefined,],
+[new Date(2015,7,24,11,48),0.539211414443,0.495106627632,0.353375325308,undefined,],
+[new Date(2015,7,24,11,49),0.53335854317,0.494903493822,0.349644734174,undefined,],
+[new Date(2015,7,24,11,50),0.536421924639,0.492635714356,0.353766163441,undefined,],
+[new Date(2015,7,24,11,51),0.539117228378,0.495457380508,0.355051828654,undefined,],
+[new Date(2015,7,24,11,52),0.535097049645,0.489946313507,0.352506553581,undefined,],
+
+        ]);
+
+        var chart = new google.visualization.AnnotationChart(document.getElementById('chart_div'));
+
+        var options = {
+          displayAnnotations: true
+        };
+
+        chart.draw(data, options);
+      }
+    </script>
+  </head>
+
+  <body>
+    <div id='chart_div' style='width: 900px; height: 500px;'></div>
+  </body>
+</html>

+ 96 - 0
html/opt-pos-chart-tmpl.html

@@ -0,0 +1,96 @@
+<html>
+  <head>
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1.1", {packages:["bar"]});
+      google.load('visualization', '1', {'packages':['table']});
+//      google.load("visualization", "1.1", {packages:["corechart"]});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+        var data = google.visualization.arrayToDataTable([
+          ['Strike Price', 'P', 'C', ],
+{{{dataPCpos}}}
+        ]);
+
+	var dataTbl = google.visualization.arrayToDataTable([
+{{{dataTablePos}}}
+
+        ]);
+
+
+        var options = {
+          width: 900,
+          chart: {
+            title: 'Option Postion Distribution. PUT:CALL Ratio [{{{PRvsCR}}}}]',
+            subtitle: 'for the month of {{{option_months}}}',
+          },
+ 
+        };
+
+        var chart = new google.charts.Bar(document.getElementById('barchart_material'));
+        chart.draw(data, options);
+
+
+
+
+	// chart table display implied volatilities in a nicely formatted table	
+       var chartTbl = new google.visualization.Table(document.getElementById('chartTbl_div'));
+
+
+       var portTbl = new google.visualization.Table(document.getElementById('portTblDiv'));
+
+	var formatter = new google.visualization.NumberFormat({pattern:'0.00'});
+	for (var i = 2; i < 9; i++)
+		formatter.format(dataTbl, i); 
+        var options2 = {
+          displayAnnotations: true,
+	  showRowNumber: true, width: '100%', height: '100%', allowHtml: true,
+        };
+	chartTbl.draw(dataTbl, options2);
+
+	$('input[id="b_reload"]').click();
+
+      }
+
+
+//        $(document).ready(function () {
+		$('input[id="b_reload"]').click(function () {
+//		   var formatter = new google.visualization.NumberFormat({pattern:'0.00'});
+//		   for (var i = 0; i < 9; i++)
+//				formatter.format(portTbl, i); 
+		   var options3 = {
+			displayAnnotations: true,
+			showRowNumber: true, width: '100%', height: '100%', allowHtml: true,
+			};	    
+		    $.ajax({
+			type: 'Post',
+			url: '/ws_position_summary',
+			success: function (data) {
+alert(data);
+				var jdata = JSON.parse('{"rows": [{"v": 0.047488620928674306}, {"v": -34.1918070686455}, {"v": 35.01931221132403}, {"v": -69.21111927996955}, {"v": 0.0}, {"v": 4350.744926215475}, {"v": -297.6744472363985}, {"v": 4648.419373451876}, {"v": 89903.71832036527}, {"v": "20150915231057"}, {"v": "OK"}], "cols": [{"type": "number", "label": "delta_1percent"}, {"type": "number", "label": "delta_all"}, {"type": "number", "label": "delta_c"}, {"type": "number", "label": "delta_p"}, {"type": "number", "label": "theta_1percent"}, {"type": "number", "label": "theta_all"}, {"type": "number", "label": "theta_c"}, {"type": "number", "label": "theta_p"}, {"type": "number", "label": "unreal_pl"}, {"type": "string", "label": "last_updated"}, {"type": "string", "label": "status"}]}');
+
+				$('#temp').text(jdata);
+				var d  = new google.visualization.DataTable(jdata);
+				portTbl.draw(d, options3);
+			}
+		    });
+		})
+//	});
+
+    </script>
+
+
+  </head>
+  <body>
+    <div id="barchart_material" style="width: 900px; height: 500px;"></div>
+    <div id='chartTbl_div' style='width: 900px; height: 500px;'></div>
+    <div id="portTbl">
+        <input type="button" id="b_reload" value="Reload" />
+    </div>
+    <div id='portTblDiv' style='width: 900px; height: 500px;'></div>
+<div id='temp'></div>
+
+  </body>
+</html>
+

+ 96 - 0
html/opt-pos-chart-tmpl.html~

@@ -0,0 +1,96 @@
+<html>
+  <head>
+  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1.1", {packages:["bar"]});
+      google.load('visualization', '1', {'packages':['table']});
+//      google.load("visualization", "1.1", {packages:["corechart"]});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+        var data = google.visualization.arrayToDataTable([
+          ['Strike Price', 'P', 'C', ],
+{{{dataPCpos}}}
+        ]);
+
+	var dataTbl = google.visualization.arrayToDataTable([
+{{{dataTablePos}}}
+
+        ]);
+
+
+        var options = {
+          width: 900,
+          chart: {
+            title: 'Option Postion Distribution. PUT:CALL Ratio [{{{PRvsCR}}}}]',
+            subtitle: 'for the month of {{{option_months}}}',
+          },
+ 
+        };
+
+        var chart = new google.charts.Bar(document.getElementById('barchart_material'));
+        chart.draw(data, options);
+
+
+
+
+	// chart table display implied volatilities in a nicely formatted table	
+       var chartTbl = new google.visualization.Table(document.getElementById('chartTbl_div'));
+
+
+       var portTbl = new google.visualization.Table(document.getElementById('portTblDiv'));
+
+	var formatter = new google.visualization.NumberFormat({pattern:'0.00'});
+	for (var i = 2; i < 9; i++)
+		formatter.format(dataTbl, i); 
+        var options2 = {
+          displayAnnotations: true,
+	  showRowNumber: true, width: '100%', height: '100%', allowHtml: true,
+        };
+	chartTbl.draw(dataTbl, options2);
+
+	$('input[id="b_reload"]').click();
+
+      }
+
+
+        $(document).ready(function () {
+		$('input[id="b_reload"]').click(function () {
+//		   var formatter = new google.visualization.NumberFormat({pattern:'0.00'});
+//		   for (var i = 0; i < 9; i++)
+//				formatter.format(portTbl, i); 
+		   var options3 = {
+			displayAnnotations: true,
+			showRowNumber: true, width: '100%', height: '100%', allowHtml: true,
+			};	    
+		    $.ajax({
+			type: 'Post',
+			url: '/ws_position_summary',
+			success: function (data) {
+alert(data);
+				var jdata = JSON.parse('{"rows": [{"v": 0.047488620928674306}, {"v": -34.1918070686455}, {"v": 35.01931221132403}, {"v": -69.21111927996955}, {"v": 0.0}, {"v": 4350.744926215475}, {"v": -297.6744472363985}, {"v": 4648.419373451876}, {"v": 89903.71832036527}, {"v": "20150915231057"}, {"v": "OK"}], "cols": [{"type": "number", "label": "delta_1percent"}, {"type": "number", "label": "delta_all"}, {"type": "number", "label": "delta_c"}, {"type": "number", "label": "delta_p"}, {"type": "number", "label": "theta_1percent"}, {"type": "number", "label": "theta_all"}, {"type": "number", "label": "theta_c"}, {"type": "number", "label": "theta_p"}, {"type": "number", "label": "unreal_pl"}, {"type": "string", "label": "last_updated"}, {"type": "string", "label": "status"}]}');
+
+				$('#temp').text(jdata);
+				var d  = new google.visualization.DataTable(data);
+				portTbl.draw(d, options3);
+			}
+		    });
+		})
+	});
+
+    </script>
+
+
+  </head>
+  <body>
+    <div id="barchart_material" style="width: 900px; height: 500px;"></div>
+    <div id='chartTbl_div' style='width: 900px; height: 500px;'></div>
+    <div id="portTbl">
+        <input type="button" id="b_reload" value="Reload" />
+    </div>
+    <div id='portTblDiv' style='width: 900px; height: 500px;'></div>
+<div id='temp'></div>
+
+  </body>
+</html>
+

+ 53 - 0
html/opt-trades.html

@@ -0,0 +1,53 @@
+<html>
+  <head>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1.1", {packages:["bar"]});
+//      google.load("visualization", "1.1", {packages:["corechart"]});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+        var data = google.visualization.arrayToDataTable([
+          ['Strike Price', 'P', 'C', ],
+[18000,-1.0,0],
+[18600,-1.0,0],
+[18800,-1.0,0],
+[19800,-1.0,0],
+[20200,-1.0,0],
+[20800,-2.2,0],
+[21000,-0.2,0],
+[21600,0.0,0],
+[21800,-4.0,0],
+[22600,0,-1.0],
+[22600,3.2,0],
+[23000,0,-1.0],
+[23200,1.0,0],
+[23600,0,-2.0],
+[23600,1.8,0],
+[23800,0,-1.0],
+[24000,0,-2.0],
+[24200,0,-1.0],
+[24400,0,1.0],
+[24800,0,-1.0],
+        ]);
+
+        var options = {
+          width: 900,
+          chart: {
+            title: 'Option Postion Distribution',
+            subtitle: 'for the month of August and Sept 2015',
+          },
+ 
+        };
+
+        var chart = new google.charts.Bar(document.getElementById('barchart_material'));
+        
+
+        chart.draw(data, options);
+      }
+    </script>
+  </head>
+  <body>
+    <div id="barchart_material" style="width: 900px; height: 500px;"></div>
+  </body>
+</html>
+

+ 62 - 0
html/opt-trades.html~

@@ -0,0 +1,62 @@
+<html>
+  <head>
+    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
+    <script type="text/javascript">
+      google.load("visualization", "1.1", {packages:["bar"]});
+//      google.load("visualization", "1.1", {packages:["corechart"]});
+      google.setOnLoadCallback(drawChart);
+      function drawChart() {
+        var data = google.visualization.arrayToDataTable([
+          ['X', 'P', 'C', ],
+[18000,-1.0,0],
+[18600,-1.0,0],
+[18800,-1.0,0],
+[19800,-1.0,0],
+[20200,-1.0,0],
+[20800,-2.2,0],
+[21000,-0.2,0],
+[21600,0.0,0],
+[21800,-4.0,0],
+[22600,0,-1.0],
+[22600,3.2,0],
+[23000,0,-1.0],
+[23200,1.0,0],
+[23600,0,-2.0],
+[23600,1.8,0],
+[23800,0,-1.0],
+[24000,0,-2.0],
+[24200,0,-1.0],
+[24400,0,1.0],
+[24800,0,-1.0],
+        ]);
+
+        var options = {
+          width: 900,
+          chart: {
+            title: 'Option Postion Distribution',
+            subtitle: 'for the month of August and Sept 2015',
+          },
+          series: {
+            0: { axis: 'P' }, // Bind series 0 to an axis named 'distance'.
+            1: { axis: 'C' } // Bind series 1 to an axis named 'brightness'.
+          },
+          axes: {
+            y: {
+              P: {label: 'Put'}, // Left y-axis.
+              C: {side: 'right', label: 'Call'} // Right y-axis.
+            }
+          }
+        };
+
+        var chart = new google.charts.Bar(document.getElementById('barchart_material'));
+        
+
+        chart.draw(data, options);
+      }
+    </script>
+  </head>
+  <body>
+    <div id="barchart_material" style="width: 900px; height: 500px;"></div>
+  </body>
+</html>
+

+ 0 - 0
html/portfolio_admin.html


BIN
jar/spark-streaming-kafka-assembly_2.10-1.4.1.jar


+ 5 - 0
sh/alert.sh

@@ -0,0 +1,5 @@
+#!/bin/bash
+ROOT=/home/larry-13.04/workspace/finopt
+export PYTHONPATH=$ROOT/src
+python $ROOT/src/comms/alert_bot.py $ROOT/src/config/app.cfg
+

+ 3 - 0
sh/alert.sh~

@@ -0,0 +1,3 @@
+export PYTHONPATH=/home/larry-13.04/workspace/finopt:$PYTHONPATH
+python ./alert_bot.py ../config/app.cfg
+

+ 11 - 0
sh/momentum.sh

@@ -0,0 +1,11 @@
+#!/bin/bash
+ROOT=/home/larry-13.04/workspace/finopt
+SRC=$ROOT/src
+KAFKA_ASSEMBLY_JAR=$ROOT/jar/spark-streaming-kafka-assembly_2.10-1.4.1.jar
+export PYTHONPATH=$SRC:$PYTHONPATH
+
+#spark-submit  --jars  $KAFKA_ASSEMBLY_JAR /home/larry-13.04/workspace/finopt/cep/momentum.py vsu-01:2181 hsi 1 cal_trend 
+#spark-submit --master spark://192.168.1.118:7077   --jars  $KAFKA_ASSEMBLY_JAR /home/larry-13.04/workspace/finopt/cep/momentum.py vsu-01:2181 hsi 1 simple 
+#spark-submit --total-executor-cores 2 --master spark://192.168.1.118:7077   --jars  $KAFKA_ASSEMBLY_JAR /home/larry-13.04/workspace/finopt/cep/momentum.py vsu-01:2181 hsi 1 cal_trend 
+spark-submit  --jars  $KAFKA_ASSEMBLY_JAR $SRC/cep/momentum2.py vsu-01:2181 hsi 1 persist 
+

+ 11 - 0
sh/momentum.sh~

@@ -0,0 +1,11 @@
+#!/bin/bash
+ROOT=/home/larry-13.04/workspace/finopt
+SRC=$ROOT/src
+KAFKA_ASSEMBLY_JAR=$ROOT/jar/spark-streaming-kafka-assembly_2.10-1.4.1.jar
+export PYTHONPATH=$ROOT:$PYTHONPATH
+
+#spark-submit  --jars  $KAFKA_ASSEMBLY_JAR /home/larry-13.04/workspace/finopt/cep/momentum.py vsu-01:2181 hsi 1 cal_trend 
+#spark-submit --master spark://192.168.1.118:7077   --jars  $KAFKA_ASSEMBLY_JAR /home/larry-13.04/workspace/finopt/cep/momentum.py vsu-01:2181 hsi 1 simple 
+#spark-submit --total-executor-cores 2 --master spark://192.168.1.118:7077   --jars  $KAFKA_ASSEMBLY_JAR /home/larry-13.04/workspace/finopt/cep/momentum.py vsu-01:2181 hsi 1 cal_trend 
+spark-submit  --jars  $KAFKA_ASSEMBLY_JAR $SRC/cep/momentum2.py vsu-01:2181 hsi 1 persist 
+

+ 4 - 0
sh/momentum2.sh

@@ -0,0 +1,4 @@
+export PYTHONPATH=/home/larry-13.04/workspace/finopt:$PYTHONPATH
+KAFKA_ASSEMBLY_JAR=/home/larry-13.04/workspace/finopt/spark-streaming-kafka-assembly_2.10-1.4.1.jar
+spark-submit --executor-cores 3 --master spark://192.168.1.118:7077   --jars  $KAFKA_ASSEMBLY_JAR /home/larry-13.04/workspace/finopt/cep/pairs_corr_redis.py vsu-01:2181 jpy  
+

+ 4 - 0
sh/pairs_corr_redis.sh

@@ -0,0 +1,4 @@
+export PYTHONPATH=/home/larry-13.04/workspace/finopt:$PYTHONPATH
+KAFKA_ASSEMBLY_JAR=/home/larry-13.04/workspace/finopt/spark-streaming-kafka-assembly_2.10-1.4.1.jar
+spark-submit  --jars  /home/larry-13.04/workspace/finopt/spark-streaming-kafka-assembly_2.10-1.4.1.jar /home/larry-13.04/workspace/finopt/cep/pairs_corr_redis.py vsu-01:2181 hkd-aud 
+

+ 4 - 0
sh/run_mds.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+ROOT=/home/larry-13.04/workspace/finopt
+export PYTHONPATH=$ROOT/src
+python $ROOT/src/cep/ib_mds.py $ROOT/src/config/app.cfg

+ 4 - 0
sh/run_mds.sh~

@@ -0,0 +1,4 @@
+#!/bin/bash
+ROOT=/home/larry-13.04/workspace/finopt
+export PYTHONPATH=$ROOT/src
+python $ROOT/src/cep/ib_mds.py $ROOT/config/app.cfg

+ 4 - 0
sh/run_opt_serve.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+ROOT=/home/larry-13.04/workspace/finopt
+export PYTHONPATH=$ROOT/src
+python $ROOT/src/finopt/opt_serve.py $ROOT/src/config/app.cfg

+ 4 - 0
sh/run_opt_serve.sh~

@@ -0,0 +1,4 @@
+#!/bin/bash
+ROOT=/home/larry-13.04/workspace/finopt
+export PYTHONPATH=$ROOT/src
+python $ROOT/src/opt_serve.py $ROOT/src/config/app.cfg

+ 4 - 0
sh/run_options_data.sh

@@ -0,0 +1,4 @@
+#!/bin/bash
+ROOT=/home/larry-13.04/workspace/finopt
+export PYTHONPATH=$ROOT/src
+python $ROOT/src/finopt/options_data.py $ROOT/src/config/app.cfg

+ 4 - 0
sh/run_options_data.sh~

@@ -0,0 +1,4 @@
+#!/bin/bash
+ROOT=/home/larry-13.04/workspace/finopt
+export PYTHONPATH=$ROOT/src
+python $ROOT/src/options_data.py $ROOT/src/config/app.cfg

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác