From 89dea902d7cfb0cffb7a5744d3d5a8cbb1ee770c Mon Sep 17 00:00:00 2001 From: jeog Date: Wed, 2 Apr 2014 12:53:25 -0400 Subject: [PATCH 01/26] Create gh-pages branch via GitHub --- index.html | 104 ++++++++++++++ javascripts/scale.fix.js | 17 +++ params.json | 1 + stylesheets/pygment_trac.css | 69 ++++++++++ stylesheets/styles.css | 255 +++++++++++++++++++++++++++++++++++ 5 files changed, 446 insertions(+) create mode 100644 index.html create mode 100644 javascripts/scale.fix.js create mode 100644 params.json create mode 100644 stylesheets/pygment_trac.css create mode 100644 stylesheets/styles.css diff --git a/index.html b/index.html new file mode 100644 index 0000000..eb405f1 --- /dev/null +++ b/index.html @@ -0,0 +1,104 @@ + + + + + + TOSDataBridge v0.1-alpha by jeog + + + + + + + +
+
+

TOSDataBridge v0.1-alpha

+

Free, Real-Time Streaming Market Data (API)[C,C++,Python]

+ +

View the Project on GitHub jeog/TOSDataBridge

+ + + +
+
+

TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; perform specialized, low-level, and efficient analysis on large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.

+ +

TOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls.

+ +

Complete Documentation (README.html - you'll need to copy the raw text into a new html file and open in a browser)

+ +

++ Requirements

+ +
    +
  • Windows (this has been lightly tested on Windows 7 SP1 and Vista SP2)
  • +
  • TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (it should)
  • +
  • VC++ 2012 Redistributable (included)
  • +
  • Some basic Windows knowledge; some basic C, C++, or Python programming knowledge
  • +
  • Patience (this is v0.1-alpha)
  • +

++ Installation

+ +
    +
  • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to README.html for a more detailed explanation.
  • +
  • +

    Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper).

    + +

    +++ Core C/C++ Libraries

    + +
    (Admin) C:\[...TOSDataBridge]\tosdb-setup.bat   [x86|x64]   [admin]
    +
    + +
      +
    • [x86|x64] : the version to build (required)
    • +
    • [admin] : does your TOS platform require elevation? (leave blank if no)
    • +
    +

    +++ Python Wrapper/Front-End (optional)

    + +
    C:\[...TOSDataBridge]\python\python setup.py install
    +
    + +
      +
    • C/C++ libs must be installed first.
    • +
    • Building the _tosdb.pyd extension is problematic on some systems - please refer to README.html for troubleshooting information.
    • +
    +
  • +

++ Start

+ +
    +
  1. (You may need to white-list some of these files in your Anti-Virus software before proceeding.) Start the service:
    +
  2. +
(Admin) C:\> SC start TOSDataBridge
+
+ +
    +
  1. Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler), add the necessary lib calls, build it.
  2. +
  3. Log on to the TOS platform and start your program or the python wrapper(see the python tutorial in \python\docs for a walk-through).
  4. +

+LICENSING & WARRANTY

+ +

TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.

+ +

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. By choosing to use the software - under the broadest interpretation of the term 'use' - you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.

+ +

Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.

+
+
+

This project is maintained by jeog

+

Hosted on GitHub Pages — Theme by orderedlist

+
+
+ + + + \ No newline at end of file diff --git a/javascripts/scale.fix.js b/javascripts/scale.fix.js new file mode 100644 index 0000000..87a40ca --- /dev/null +++ b/javascripts/scale.fix.js @@ -0,0 +1,17 @@ +var metas = document.getElementsByTagName('meta'); +var i; +if (navigator.userAgent.match(/iPhone/i)) { + for (i=0; i SC start TOSDataBridge\r\n```\r\n2. Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler), add the necessary lib calls, build it.\r\n3. Log on to the TOS platform and start your program or the python wrapper(see the python tutorial in \\python\\docs for a walk-through).\r\n\r\n\r\n###LICENSING & WARRANTY\r\n\r\n*TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.*\r\n\r\n*This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. By choosing to use the software - under the broadest interpretation of the term 'use' - you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.* \r\n\r\n*Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.*","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file diff --git a/stylesheets/pygment_trac.css b/stylesheets/pygment_trac.css new file mode 100644 index 0000000..c6a6452 --- /dev/null +++ b/stylesheets/pygment_trac.css @@ -0,0 +1,69 @@ +.highlight { background: #ffffff; } +.highlight .c { color: #999988; font-style: italic } /* Comment */ +.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.highlight .k { font-weight: bold } /* Keyword */ +.highlight .o { font-weight: bold } /* Operator */ +.highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */ +.highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #aa0000 } /* Generic.Error */ +.highlight .gh { color: #999999 } /* Generic.Heading */ +.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */ +.highlight .go { color: #888888 } /* Generic.Output */ +.highlight .gp { color: #555555 } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */ +.highlight .gt { color: #aa0000 } /* Generic.Traceback */ +.highlight .kc { font-weight: bold } /* Keyword.Constant */ +.highlight .kd { font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { font-weight: bold } /* Keyword.Pseudo */ +.highlight .kr { font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.highlight .m { color: #009999 } /* Literal.Number */ +.highlight .s { color: #d14 } /* Literal.String */ +.highlight .na { color: #008080 } /* Name.Attribute */ +.highlight .nb { color: #0086B3 } /* Name.Builtin */ +.highlight .nc { color: #445588; font-weight: bold } /* Name.Class */ +.highlight .no { color: #008080 } /* Name.Constant */ +.highlight .ni { color: #800080 } /* Name.Entity */ +.highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */ +.highlight .nf { color: #990000; font-weight: bold } /* Name.Function */ +.highlight .nn { color: #555555 } /* Name.Namespace */ +.highlight .nt { color: #000080 } /* Name.Tag */ +.highlight .nv { color: #008080 } /* Name.Variable */ +.highlight .ow { font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #009999 } /* Literal.Number.Float */ +.highlight .mh { color: #009999 } /* Literal.Number.Hex */ +.highlight .mi { color: #009999 } /* Literal.Number.Integer */ +.highlight .mo { color: #009999 } /* Literal.Number.Oct */ +.highlight .sb { color: #d14 } /* Literal.String.Backtick */ +.highlight .sc { color: #d14 } /* Literal.String.Char */ +.highlight .sd { color: #d14 } /* Literal.String.Doc */ +.highlight .s2 { color: #d14 } /* Literal.String.Double */ +.highlight .se { color: #d14 } /* Literal.String.Escape */ +.highlight .sh { color: #d14 } /* Literal.String.Heredoc */ +.highlight .si { color: #d14 } /* Literal.String.Interpol */ +.highlight .sx { color: #d14 } /* Literal.String.Other */ +.highlight .sr { color: #009926 } /* Literal.String.Regex */ +.highlight .s1 { color: #d14 } /* Literal.String.Single */ +.highlight .ss { color: #990073 } /* Literal.String.Symbol */ +.highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #008080 } /* Name.Variable.Class */ +.highlight .vg { color: #008080 } /* Name.Variable.Global */ +.highlight .vi { color: #008080 } /* Name.Variable.Instance */ +.highlight .il { color: #009999 } /* Literal.Number.Integer.Long */ + +.type-csharp .highlight .k { color: #0000FF } +.type-csharp .highlight .kt { color: #0000FF } +.type-csharp .highlight .nf { color: #000000; font-weight: normal } +.type-csharp .highlight .nc { color: #2B91AF } +.type-csharp .highlight .nn { color: #000000 } +.type-csharp .highlight .s { color: #A31515 } +.type-csharp .highlight .sc { color: #A31515 } diff --git a/stylesheets/styles.css b/stylesheets/styles.css new file mode 100644 index 0000000..dacf2e1 --- /dev/null +++ b/stylesheets/styles.css @@ -0,0 +1,255 @@ +@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700); + +body { + padding:50px; + font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; + color:#777; + font-weight:300; +} + +h1, h2, h3, h4, h5, h6 { + color:#222; + margin:0 0 20px; +} + +p, ul, ol, table, pre, dl { + margin:0 0 20px; +} + +h1, h2, h3 { + line-height:1.1; +} + +h1 { + font-size:28px; +} + +h2 { + color:#393939; +} + +h3, h4, h5, h6 { + color:#494949; +} + +a { + color:#39c; + font-weight:400; + text-decoration:none; +} + +a small { + font-size:11px; + color:#777; + margin-top:-0.6em; + display:block; +} + +.wrapper { + width:860px; + margin:0 auto; +} + +blockquote { + border-left:1px solid #e5e5e5; + margin:0; + padding:0 0 0 20px; + font-style:italic; +} + +code, pre { + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + color:#333; + font-size:12px; +} + +pre { + padding:8px 15px; + background: #f8f8f8; + border-radius:5px; + border:1px solid #e5e5e5; + overflow-x: auto; +} + +table { + width:100%; + border-collapse:collapse; +} + +th, td { + text-align:left; + padding:5px 10px; + border-bottom:1px solid #e5e5e5; +} + +dt { + color:#444; + font-weight:700; +} + +th { + color:#444; +} + +img { + max-width:100%; +} + +header { + width:270px; + float:left; + position:fixed; +} + +header ul { + list-style:none; + height:40px; + + padding:0; + + background: #eee; + background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); + background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); + background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); + background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); + background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%); + + border-radius:5px; + border:1px solid #d2d2d2; + box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0; + width:270px; +} + +header li { + width:89px; + float:left; + border-right:1px solid #d2d2d2; + height:40px; +} + +header ul a { + line-height:1; + font-size:11px; + color:#999; + display:block; + text-align:center; + padding-top:6px; + height:40px; +} + +strong { + color:#222; + font-weight:700; +} + +header ul li + li { + width:88px; + border-left:1px solid #fff; +} + +header ul li + li + li { + border-right:none; + width:89px; +} + +header ul a strong { + font-size:14px; + display:block; + color:#222; +} + +section { + width:500px; + float:right; + padding-bottom:50px; +} + +small { + font-size:11px; +} + +hr { + border:0; + background:#e5e5e5; + height:1px; + margin:0 0 20px; +} + +footer { + width:270px; + float:left; + position:fixed; + bottom:50px; +} + +@media print, screen and (max-width: 960px) { + + div.wrapper { + width:auto; + margin:0; + } + + header, section, footer { + float:none; + position:static; + width:auto; + } + + header { + padding-right:320px; + } + + section { + border:1px solid #e5e5e5; + border-width:1px 0; + padding:20px 0; + margin:0 0 20px; + } + + header a small { + display:inline; + } + + header ul { + position:absolute; + right:50px; + top:52px; + } +} + +@media print, screen and (max-width: 720px) { + body { + word-wrap:break-word; + } + + header { + padding:0; + } + + header ul, header p.view { + position:static; + } + + pre, code { + word-wrap:normal; + } +} + +@media print, screen and (max-width: 480px) { + body { + padding:15px; + } + + header ul { + display:none; + } +} + +@media print { + body { + padding:0.4in; + font-size:12pt; + color:#444; + } +} From f08018c5da6415876d9dd79fb81ab7ab5bf09faf Mon Sep 17 00:00:00 2001 From: jeog Date: Fri, 4 Apr 2014 08:21:13 -0400 Subject: [PATCH 02/26] Create gh-pages branch via GitHub --- index.html | 2 +- params.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index eb405f1..61a5ec6 100644 --- a/index.html +++ b/index.html @@ -16,7 +16,7 @@

TOSDataBridge v0.1-alpha

-

Free, Real-Time Streaming Market Data (API)[C,C++,Python]

+

An API for Free, Real-Time Streaming Market Data from your TOS Platform

View the Project on GitHub jeog/TOSDataBridge

diff --git a/params.json b/params.json index 80fabdb..0dcc459 100644 --- a/params.json +++ b/params.json @@ -1 +1 @@ -{"name":"TOSDataBridge v0.1-alpha ","tagline":"Free, Real-Time Streaming Market Data (API)[C,C++,Python]","body":"TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; perform specialized, low-level, and efficient analysis on large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.\r\n\r\nTOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls. \r\n\r\n[Complete Documentation (README.html - you'll need to copy the raw text into a new html file and open in a browser) ](https://raw.githubusercontent.com/jeog/TOSDataBridge/master/README.html)\r\n\r\n###+ Requirements\r\n- Windows (this has been lightly tested on Windows 7 SP1 and Vista SP2)\r\n- TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (it should)\r\n- VC++ 2012 Redistributable (included)\r\n- Some basic Windows knowledge; some basic C, C++, or Python programming knowledge\r\n- Patience (this is v0.1-alpha)\r\n \r\n###+ Installation\r\n- tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to README.html for a more detailed explanation.\r\n- Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper).\r\n\r\n ####++ Core C/C++ Libraries\r\n ```\r\n(Admin) C:\\[...TOSDataBridge]\\tosdb-setup.bat [x86|x64] [admin]\r\n```\r\n - [x86|x64] : the version to build (required)\r\n - [admin] : does your TOS platform require elevation? (leave blank if no)\r\n\r\n ####++ Python Wrapper/Front-End (optional)\r\n ```\r\nC:\\[...TOSDataBridge]\\python\\python setup.py install\r\n```\r\n - C/C++ libs must be installed first.\r\n - Building the _tosdb.pyd extension is problematic on some systems - please refer to README.html for troubleshooting information.\r\n\r\n\r\n###+ Start\r\n1. (You may need to white-list some of these files in your Anti-Virus software before proceeding.) Start the service: \r\n```\r\n(Admin) C:\\> SC start TOSDataBridge\r\n```\r\n2. Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler), add the necessary lib calls, build it.\r\n3. Log on to the TOS platform and start your program or the python wrapper(see the python tutorial in \\python\\docs for a walk-through).\r\n\r\n\r\n###LICENSING & WARRANTY\r\n\r\n*TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.*\r\n\r\n*This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. By choosing to use the software - under the broadest interpretation of the term 'use' - you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.* \r\n\r\n*Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.*","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file +{"name":"TOSDataBridge v0.1-alpha ","tagline":"An API for Free, Real-Time Streaming Market Data from your TOS Platform ","body":"TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; perform specialized, low-level, and efficient analysis on large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.\r\n\r\nTOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls. \r\n\r\n[Complete Documentation (README.html - you'll need to copy the raw text into a new html file and open in a browser) ](https://raw.githubusercontent.com/jeog/TOSDataBridge/master/README.html)\r\n\r\n###+ Requirements\r\n- Windows (this has been lightly tested on Windows 7 SP1 and Vista SP2)\r\n- TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (it should)\r\n- VC++ 2012 Redistributable (included)\r\n- Some basic Windows knowledge; some basic C, C++, or Python programming knowledge\r\n- Patience (this is v0.1-alpha)\r\n \r\n###+ Installation\r\n- tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to README.html for a more detailed explanation.\r\n- Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper).\r\n\r\n ####++ Core C/C++ Libraries\r\n ```\r\n(Admin) C:\\[...TOSDataBridge]\\tosdb-setup.bat [x86|x64] [admin]\r\n```\r\n - [x86|x64] : the version to build (required)\r\n - [admin] : does your TOS platform require elevation? (leave blank if no)\r\n\r\n ####++ Python Wrapper/Front-End (optional)\r\n ```\r\nC:\\[...TOSDataBridge]\\python\\python setup.py install\r\n```\r\n - C/C++ libs must be installed first.\r\n - Building the _tosdb.pyd extension is problematic on some systems - please refer to README.html for troubleshooting information.\r\n\r\n\r\n###+ Start\r\n1. (You may need to white-list some of these files in your Anti-Virus software before proceeding.) Start the service: \r\n```\r\n(Admin) C:\\> SC start TOSDataBridge\r\n```\r\n2. Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler), add the necessary lib calls, build it.\r\n3. Log on to the TOS platform and start your program or the python wrapper(see the python tutorial in \\python\\docs for a walk-through).\r\n\r\n\r\n###LICENSING & WARRANTY\r\n\r\n*TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.*\r\n\r\n*This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. By choosing to use the software - under the broadest interpretation of the term 'use' - you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.* \r\n\r\n*Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.*","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file From 5e8651034b53af71433602da8a13665419993001 Mon Sep 17 00:00:00 2001 From: jeog Date: Fri, 4 Apr 2014 08:24:42 -0400 Subject: [PATCH 03/26] Create gh-pages branch via GitHub --- index.html | 2 +- params.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 61a5ec6..6bdd233 100644 --- a/index.html +++ b/index.html @@ -16,7 +16,7 @@

TOSDataBridge v0.1-alpha

-

An API for Free, Real-Time Streaming Market Data from your TOS Platform

+

Free, Real-Time Streaming Market Data from your TOS Platform - API [C,C++,Python]

View the Project on GitHub jeog/TOSDataBridge

diff --git a/params.json b/params.json index 0dcc459..3a1ef02 100644 --- a/params.json +++ b/params.json @@ -1 +1 @@ -{"name":"TOSDataBridge v0.1-alpha ","tagline":"An API for Free, Real-Time Streaming Market Data from your TOS Platform ","body":"TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; perform specialized, low-level, and efficient analysis on large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.\r\n\r\nTOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls. \r\n\r\n[Complete Documentation (README.html - you'll need to copy the raw text into a new html file and open in a browser) ](https://raw.githubusercontent.com/jeog/TOSDataBridge/master/README.html)\r\n\r\n###+ Requirements\r\n- Windows (this has been lightly tested on Windows 7 SP1 and Vista SP2)\r\n- TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (it should)\r\n- VC++ 2012 Redistributable (included)\r\n- Some basic Windows knowledge; some basic C, C++, or Python programming knowledge\r\n- Patience (this is v0.1-alpha)\r\n \r\n###+ Installation\r\n- tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to README.html for a more detailed explanation.\r\n- Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper).\r\n\r\n ####++ Core C/C++ Libraries\r\n ```\r\n(Admin) C:\\[...TOSDataBridge]\\tosdb-setup.bat [x86|x64] [admin]\r\n```\r\n - [x86|x64] : the version to build (required)\r\n - [admin] : does your TOS platform require elevation? (leave blank if no)\r\n\r\n ####++ Python Wrapper/Front-End (optional)\r\n ```\r\nC:\\[...TOSDataBridge]\\python\\python setup.py install\r\n```\r\n - C/C++ libs must be installed first.\r\n - Building the _tosdb.pyd extension is problematic on some systems - please refer to README.html for troubleshooting information.\r\n\r\n\r\n###+ Start\r\n1. (You may need to white-list some of these files in your Anti-Virus software before proceeding.) Start the service: \r\n```\r\n(Admin) C:\\> SC start TOSDataBridge\r\n```\r\n2. Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler), add the necessary lib calls, build it.\r\n3. Log on to the TOS platform and start your program or the python wrapper(see the python tutorial in \\python\\docs for a walk-through).\r\n\r\n\r\n###LICENSING & WARRANTY\r\n\r\n*TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.*\r\n\r\n*This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. By choosing to use the software - under the broadest interpretation of the term 'use' - you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.* \r\n\r\n*Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.*","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file +{"name":"TOSDataBridge v0.1-alpha ","tagline":"Free, Real-Time Streaming Market Data from your TOS Platform - API [C,C++,Python]","body":"TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; perform specialized, low-level, and efficient analysis on large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.\r\n\r\nTOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls. \r\n\r\n[Complete Documentation (README.html - you'll need to copy the raw text into a new html file and open in a browser) ](https://raw.githubusercontent.com/jeog/TOSDataBridge/master/README.html)\r\n\r\n###+ Requirements\r\n- Windows (this has been lightly tested on Windows 7 SP1 and Vista SP2)\r\n- TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (it should)\r\n- VC++ 2012 Redistributable (included)\r\n- Some basic Windows knowledge; some basic C, C++, or Python programming knowledge\r\n- Patience (this is v0.1-alpha)\r\n \r\n###+ Installation\r\n- tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to README.html for a more detailed explanation.\r\n- Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper).\r\n\r\n ####++ Core C/C++ Libraries\r\n ```\r\n(Admin) C:\\[...TOSDataBridge]\\tosdb-setup.bat [x86|x64] [admin]\r\n```\r\n - [x86|x64] : the version to build (required)\r\n - [admin] : does your TOS platform require elevation? (leave blank if no)\r\n\r\n ####++ Python Wrapper/Front-End (optional)\r\n ```\r\nC:\\[...TOSDataBridge]\\python\\python setup.py install\r\n```\r\n - C/C++ libs must be installed first.\r\n - Building the _tosdb.pyd extension is problematic on some systems - please refer to README.html for troubleshooting information.\r\n\r\n\r\n###+ Start\r\n1. (You may need to white-list some of these files in your Anti-Virus software before proceeding.) Start the service: \r\n```\r\n(Admin) C:\\> SC start TOSDataBridge\r\n```\r\n2. Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler), add the necessary lib calls, build it.\r\n3. Log on to the TOS platform and start your program or the python wrapper(see the python tutorial in \\python\\docs for a walk-through).\r\n\r\n\r\n###LICENSING & WARRANTY\r\n\r\n*TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.*\r\n\r\n*This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. By choosing to use the software - under the broadest interpretation of the term 'use' - you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.* \r\n\r\n*Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.*","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file From 6febacac8bd2ead8032b3fa1f74bf282cb8899aa Mon Sep 17 00:00:00 2001 From: jeog Date: Wed, 2 Dec 2015 18:58:06 -0500 Subject: [PATCH 04/26] Create gh-pages branch via GitHub --- index.html | 118 +++++++++++++++++++--------- params.json | 2 +- stylesheets/github-light.css | 116 ++++++++++++++++++++++++++++ stylesheets/styles.css | 145 ++++++++++++++++++++++++++--------- 4 files changed, 307 insertions(+), 74 deletions(-) create mode 100644 stylesheets/github-light.css diff --git a/index.html b/index.html index 6bdd233..33cb73a 100644 --- a/index.html +++ b/index.html @@ -3,11 +3,11 @@ - TOSDataBridge v0.1-alpha by jeog + TOSDataBridge v0.2 by jeog - - + + @@ -15,7 +15,7 @@
-

TOSDataBridge v0.1-alpha

+

TOSDataBridge v0.2

Free, Real-Time Streaming Market Data from your TOS Platform - API [C,C++,Python]

View the Project on GitHub jeog/TOSDataBridge

@@ -28,70 +28,118 @@

TOSDataBridge v0.1-alpha

-

TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; perform specialized, low-level, and efficient analysis on large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.

+

+TOSDataBridge v0.2

-

TOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls.

+
-

Complete Documentation (README.html - you'll need to copy the raw text into a new html file and open in a browser)

+

TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; analyze large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.

+ +

TOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls.

+ +

Obviously the core implementation is not portable, but the python interface does provides a thin virtualization layer over TCP. A user running Windows in a Virtual Machine, for instance, can expose the exact same python interface to a different host system running python3.

-+ Requirements

+Requirements + +
    -
  • Windows (this has been lightly tested on Windows 7 SP1 and Vista SP2)
  • -
  • TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (it should)
  • +
  • Windows for the core implementation(tested on Windows 7 SP1, Vista SP2,and Server 2008 R2.) The python interface is available to any system running python3(also tested on Debian/Linux-3.2.)
  • +
  • TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (the Window's verion)
  • VC++ 2012 Redistributable (included)
  • +
  • Python3 (optional, for the python wrapper)
  • Some basic Windows knowledge; some basic C, C++, or Python programming knowledge
  • -
  • Patience (this is v0.1-alpha)
  • -

-+ Installation

+ + +

+Quick Setup

+ +
    -
  • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to README.html for a more detailed explanation.
  • +
  • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to Installation Details below for a more detailed explanation
  • -

    Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper).

    +

    Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper)

    -

    -++ Core C/C++ Libraries

    +
    +Core C/C++ Libraries
    -
    (Admin) C:\[...TOSDataBridge]\tosdb-setup.bat   [x86|x64]   [admin]
    +
    (Admin) C:\[...TOSDataBridge]\tosdb-setup.bat   [x86|x64]   [admin]   [session]
     
    • [x86|x64] : the version to build (required)
    • -
    • [admin] : does your TOS platform require elevation? (leave blank if no)
    • +
    • [admin] : does your TOS platform require elevation? (optional)
    • +
    • [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. MOST USERS SHOULDN'T WORRY ABOUT THIS unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. (optional)
    -

    -++ Python Wrapper/Front-End (optional)

    + +
    +Python Wrapper (optional)
    C:\[...TOSDataBridge]\python\python setup.py install
     
      -
    • C/C++ libs must be installed first.
    • -
    • Building the _tosdb.pyd extension is problematic on some systems - please refer to README.html for troubleshooting information.
    • +
    • Core C/C++ libs (above) must be installed first to use the (non-virtual) interface
    • +
    • C++ python extensions have been converted to pure python to avoid portability/build issues. (tosdb/_tosdb.py is now generated automatically by setup.py)
  • -

-+ Start

+ + +

+Quick Start

+ +
    -
  1. (You may need to white-list some of these files in your Anti-Virus software before proceeding.) Start the service:
    -
  2. -
(Admin) C:\> SC start TOSDataBridge
+
  • You may need to white-list some of these files (specifically tos-databridge-engine-[x86|x64].exe) in your Anti-Virus software before proceeding.
  • +
  • +

    Start the service:

    + +
    (Admin) C:\> SC start TOSDataBridge
     
    +
  • +
  • Log on to your TOS platform
  • + -
      -
    1. Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler), add the necessary lib calls, build it.
    2. -
    3. Log on to the TOS platform and start your program or the python wrapper(see the python tutorial in \python\docs for a walk-through).
    4. -

    -LICENSING & WARRANTY

    +
    +For C/C++:
    + +
      +
    • Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler)
    • +
    • Use the library calls detailed in the C/C++ Interface... sections below
    • +
    • Link with tos-databridge-0.2-[x86|x64].dll +
    • +
    • Build
    • +
    • Run
    • +
    + +
    +For Python:
    + +
      +
    • Open a python shell/interpreter or create a script
    • +
    • import tosdb
    • +
    • tosdb.init(...)
    • +
    + +

    +License & Terms

    + +

    TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.

    -

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. By choosing to use the software - under the broadest interpretation of the term 'use' - you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.

    +

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

    + +

    By choosing to use the software - under the broadest interpretation of the term "use" - you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.

    Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.

    + +
    + +

    Copyright (C) 2014 Jonathon Ogden

    This project is maintained by jeog

    @@ -101,4 +149,4 @@

    - \ No newline at end of file + diff --git a/params.json b/params.json index 3a1ef02..61c825d 100644 --- a/params.json +++ b/params.json @@ -1 +1 @@ -{"name":"TOSDataBridge v0.1-alpha ","tagline":"Free, Real-Time Streaming Market Data from your TOS Platform - API [C,C++,Python]","body":"TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; perform specialized, low-level, and efficient analysis on large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.\r\n\r\nTOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls. \r\n\r\n[Complete Documentation (README.html - you'll need to copy the raw text into a new html file and open in a browser) ](https://raw.githubusercontent.com/jeog/TOSDataBridge/master/README.html)\r\n\r\n###+ Requirements\r\n- Windows (this has been lightly tested on Windows 7 SP1 and Vista SP2)\r\n- TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (it should)\r\n- VC++ 2012 Redistributable (included)\r\n- Some basic Windows knowledge; some basic C, C++, or Python programming knowledge\r\n- Patience (this is v0.1-alpha)\r\n \r\n###+ Installation\r\n- tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to README.html for a more detailed explanation.\r\n- Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper).\r\n\r\n ####++ Core C/C++ Libraries\r\n ```\r\n(Admin) C:\\[...TOSDataBridge]\\tosdb-setup.bat [x86|x64] [admin]\r\n```\r\n - [x86|x64] : the version to build (required)\r\n - [admin] : does your TOS platform require elevation? (leave blank if no)\r\n\r\n ####++ Python Wrapper/Front-End (optional)\r\n ```\r\nC:\\[...TOSDataBridge]\\python\\python setup.py install\r\n```\r\n - C/C++ libs must be installed first.\r\n - Building the _tosdb.pyd extension is problematic on some systems - please refer to README.html for troubleshooting information.\r\n\r\n\r\n###+ Start\r\n1. (You may need to white-list some of these files in your Anti-Virus software before proceeding.) Start the service: \r\n```\r\n(Admin) C:\\> SC start TOSDataBridge\r\n```\r\n2. Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler), add the necessary lib calls, build it.\r\n3. Log on to the TOS platform and start your program or the python wrapper(see the python tutorial in \\python\\docs for a walk-through).\r\n\r\n\r\n###LICENSING & WARRANTY\r\n\r\n*TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.*\r\n\r\n*This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. By choosing to use the software - under the broadest interpretation of the term 'use' - you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.* \r\n\r\n*Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.*","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file +{"name":"TOSDataBridge v0.2","tagline":"Free, Real-Time Streaming Market Data from your TOS Platform - API [C,C++,Python]","body":"## TOSDataBridge v0.2 \r\n- - -\r\nTOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; analyze large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.\r\n\r\nTOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls.\r\n\r\nObviously the core implementation is not portable, but the python interface does provides a thin virtualization layer over TCP. A user running Windows in a Virtual Machine, for instance, can expose the exact same python interface to a different host system running python3. \r\n\r\n### Requirements\r\n- - -\r\n- Windows for the core implementation(tested on Windows 7 SP1, Vista SP2,and Server 2008 R2.) The python interface is available to any system running python3(also tested on Debian/Linux-3.2.)\r\n- TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (the Window's verion)\r\n- VC++ 2012 Redistributable (included)\r\n- Python3 (optional, for the python wrapper)\r\n- Some basic Windows knowledge; some basic C, C++, or Python programming knowledge\r\n\r\n### Quick Setup\r\n- - -\r\n- tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to **Installation Details** below for a more detailed explanation\r\n- Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper)\r\n\r\n ##### Core C/C++ Libraries\r\n ```\r\n (Admin) C:\\[...TOSDataBridge]\\tosdb-setup.bat [x86|x64] [admin] [session]\r\n ```\r\n\r\n - [x86|x64] : the version to build (required)\r\n - [admin] : does your TOS platform require elevation? (optional) \r\n - [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. MOST USERS SHOULDN'T WORRY ABOUT THIS unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. (optional)\r\n\r\n ##### Python Wrapper (optional)\r\n ```\r\n C:\\[...TOSDataBridge]\\python\\python setup.py install\r\n ```\r\n - Core C/C++ libs (above) must be installed first to use the (non-virtual) interface\r\n - C++ python extensions have been converted to pure python to avoid portability/build issues. (tosdb/_tosdb.py is now generated automatically by setup.py)\r\n\r\n### Quick Start\r\n- - -\r\n1. You may need to white-list some of these files (specifically tos-databridge-engine-\\[x86|x64].exe) in your Anti-Virus software before proceeding.\r\n2. Start the service:\r\n\r\n ```\r\n (Admin) C:\\> SC start TOSDataBridge\r\n ```\r\n3. Log on to your TOS platform\r\n\r\n##### For C/C++:\r\n- Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler)\r\n- Use the library calls detailed in the **C/C++ Interface...** sections below\r\n- Link with *tos-databridge-0.2-[x86|x64].dll*\r\n- Build\r\n- Run\r\n\r\n##### For Python:\r\n- Open a python shell/interpreter or create a script\r\n- import tosdb\r\n- tosdb.init(...)\r\n\r\n\r\n### License & Terms\r\n- - -\r\n*TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.*\r\n\r\n*This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.*\r\n\r\n*By choosing to use the software - under the broadest interpretation of the term \"use\" \\- you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.*\r\n\r\n*Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.*\r\n\r\n- - -\r\n*Copyright (C) 2014 Jonathon Ogden*","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file diff --git a/stylesheets/github-light.css b/stylesheets/github-light.css new file mode 100644 index 0000000..872a6f4 --- /dev/null +++ b/stylesheets/github-light.css @@ -0,0 +1,116 @@ +/* + Copyright 2014 GitHub Inc. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + +*/ + +.pl-c /* comment */ { + color: #969896; +} + +.pl-c1 /* constant, markup.raw, meta.diff.header, meta.module-reference, meta.property-name, support, support.constant, support.variable, variable.other.constant */, +.pl-s .pl-v /* string variable */ { + color: #0086b3; +} + +.pl-e /* entity */, +.pl-en /* entity.name */ { + color: #795da3; +} + +.pl-s .pl-s1 /* string source */, +.pl-smi /* storage.modifier.import, storage.modifier.package, storage.type.java, variable.other, variable.parameter.function */ { + color: #333; +} + +.pl-ent /* entity.name.tag */ { + color: #63a35c; +} + +.pl-k /* keyword, storage, storage.type */ { + color: #a71d5d; +} + +.pl-pds /* punctuation.definition.string, string.regexp.character-class */, +.pl-s /* string */, +.pl-s .pl-pse .pl-s1 /* string punctuation.section.embedded source */, +.pl-sr /* string.regexp */, +.pl-sr .pl-cce /* string.regexp constant.character.escape */, +.pl-sr .pl-sra /* string.regexp string.regexp.arbitrary-repitition */, +.pl-sr .pl-sre /* string.regexp source.ruby.embedded */ { + color: #183691; +} + +.pl-v /* variable */ { + color: #ed6a43; +} + +.pl-id /* invalid.deprecated */ { + color: #b52a1d; +} + +.pl-ii /* invalid.illegal */ { + background-color: #b52a1d; + color: #f8f8f8; +} + +.pl-sr .pl-cce /* string.regexp constant.character.escape */ { + color: #63a35c; + font-weight: bold; +} + +.pl-ml /* markup.list */ { + color: #693a17; +} + +.pl-mh /* markup.heading */, +.pl-mh .pl-en /* markup.heading entity.name */, +.pl-ms /* meta.separator */ { + color: #1d3e81; + font-weight: bold; +} + +.pl-mq /* markup.quote */ { + color: #008080; +} + +.pl-mi /* markup.italic */ { + color: #333; + font-style: italic; +} + +.pl-mb /* markup.bold */ { + color: #333; + font-weight: bold; +} + +.pl-md /* markup.deleted, meta.diff.header.from-file */ { + background-color: #ffecec; + color: #bd2c00; +} + +.pl-mi1 /* markup.inserted, meta.diff.header.to-file */ { + background-color: #eaffea; + color: #55a532; +} + +.pl-mdr /* meta.diff.range */ { + color: #795da3; + font-weight: bold; +} + +.pl-mo /* meta.output */ { + color: #1d3e81; +} + diff --git a/stylesheets/styles.css b/stylesheets/styles.css index dacf2e1..2e1768e 100644 --- a/stylesheets/styles.css +++ b/stylesheets/styles.css @@ -1,10 +1,65 @@ -@import url(https://fonts.googleapis.com/css?family=Lato:300italic,700italic,300,700); +@font-face { + font-family: 'Noto Sans'; + font-weight: 400; + font-style: normal; + src: url('../fonts/Noto-Sans-regular/Noto-Sans-regular.eot'); + src: url('../fonts/Noto-Sans-regular/Noto-Sans-regular.eot?#iefix') format('embedded-opentype'), + local('Noto Sans'), + local('Noto-Sans-regular'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.woff2') format('woff2'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.woff') format('woff'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.ttf') format('truetype'), + url('../fonts/Noto-Sans-regular/Noto-Sans-regular.svg#NotoSans') format('svg'); +} + +@font-face { + font-family: 'Noto Sans'; + font-weight: 700; + font-style: normal; + src: url('../fonts/Noto-Sans-700/Noto-Sans-700.eot'); + src: url('../fonts/Noto-Sans-700/Noto-Sans-700.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Bold'), + local('Noto-Sans-700'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.woff2') format('woff2'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.woff') format('woff'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.ttf') format('truetype'), + url('../fonts/Noto-Sans-700/Noto-Sans-700.svg#NotoSans') format('svg'); +} + +@font-face { + font-family: 'Noto Sans'; + font-weight: 400; + font-style: italic; + src: url('../fonts/Noto-Sans-italic/Noto-Sans-italic.eot'); + src: url('../fonts/Noto-Sans-italic/Noto-Sans-italic.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Italic'), + local('Noto-Sans-italic'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.woff2') format('woff2'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.woff') format('woff'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.ttf') format('truetype'), + url('../fonts/Noto-Sans-italic/Noto-Sans-italic.svg#NotoSans') format('svg'); +} + +@font-face { + font-family: 'Noto Sans'; + font-weight: 700; + font-style: italic; + src: url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot'); + src: url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot?#iefix') format('embedded-opentype'), + local('Noto Sans Bold Italic'), + local('Noto-Sans-700italic'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff2') format('woff2'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff') format('woff'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.ttf') format('truetype'), + url('../fonts/Noto-Sans-700italic/Noto-Sans-700italic.svg#NotoSans') format('svg'); +} body { + background-color: #fff; padding:50px; - font:14px/1.5 Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; - color:#777; - font-weight:300; + font: 14px/1.5 "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; + color:#727272; + font-weight:400; } h1, h2, h3, h4, h5, h6 { @@ -34,17 +89,24 @@ h3, h4, h5, h6 { a { color:#39c; - font-weight:400; text-decoration:none; } +a:hover { + color:#069; +} + a small { font-size:11px; color:#777; - margin-top:-0.6em; + margin-top:-0.3em; display:block; } +a:hover small { + color:#777; +} + .wrapper { width:860px; margin:0 auto; @@ -58,14 +120,14 @@ blockquote { } code, pre { - font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; + font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal, Consolas, Liberation Mono, DejaVu Sans Mono, Courier New, monospace; color:#333; font-size:12px; } pre { padding:8px 15px; - background: #f8f8f8; + background: #f8f8f8; border-radius:5px; border:1px solid #e5e5e5; overflow-x: auto; @@ -99,35 +161,34 @@ header { width:270px; float:left; position:fixed; + -webkit-font-smoothing:subpixel-antialiased; } header ul { list-style:none; height:40px; - padding:0; - - background: #eee; - background: -moz-linear-gradient(top, #f8f8f8 0%, #dddddd 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); - background: -webkit-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); - background: -o-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); - background: -ms-linear-gradient(top, #f8f8f8 0%,#dddddd 100%); - background: linear-gradient(top, #f8f8f8 0%,#dddddd 100%); - + background: #f4f4f4; border-radius:5px; - border:1px solid #d2d2d2; - box-shadow:inset #fff 0 1px 0, inset rgba(0,0,0,0.03) 0 -1px 0; + border:1px solid #e0e0e0; width:270px; } header li { width:89px; float:left; - border-right:1px solid #d2d2d2; + border-right:1px solid #e0e0e0; height:40px; } +header li:first-child a { + border-radius:5px 0 0 5px; +} + +header li:last-child a { + border-radius:0 5px 5px 0; +} + header ul a { line-height:1; font-size:11px; @@ -135,7 +196,15 @@ header ul a { display:block; text-align:center; padding-top:6px; - height:40px; + height:34px; +} + +header ul a:hover { + color:#999; +} + +header ul a:active { + background-color:#f0f0f0; } strong { @@ -143,11 +212,6 @@ strong { font-weight:700; } -header ul li + li { - width:88px; - border-left:1px solid #fff; -} - header ul li + li + li { border-right:none; width:89px; @@ -181,36 +245,37 @@ footer { float:left; position:fixed; bottom:50px; + -webkit-font-smoothing:subpixel-antialiased; } @media print, screen and (max-width: 960px) { - + div.wrapper { width:auto; margin:0; } - + header, section, footer { float:none; position:static; width:auto; } - + header { padding-right:320px; } - + section { border:1px solid #e5e5e5; border-width:1px 0; padding:20px 0; margin:0 0 20px; } - + header a small { display:inline; } - + header ul { position:absolute; right:50px; @@ -222,15 +287,15 @@ footer { body { word-wrap:break-word; } - + header { padding:0; } - + header ul, header p.view { position:static; } - + pre, code { word-wrap:normal; } @@ -240,9 +305,13 @@ footer { body { padding:15px; } - + header ul { - display:none; + width:99%; + } + + header li, header ul li + li + li { + width:33%; } } From d9275e9fbe1119f7eebf4dba77c868cfe08eaccc Mon Sep 17 00:00:00 2001 From: jeog Date: Tue, 14 Jun 2016 13:21:36 -0400 Subject: [PATCH 05/26] Create gh-pages branch via GitHub --- index.html | 52 +++++++++++++++++++++++------------- params.json | 8 +++++- stylesheets/github-light.css | 34 ++++++++++++++--------- 3 files changed, 62 insertions(+), 32 deletions(-) diff --git a/index.html b/index.html index 33cb73a..9d3094a 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - TOSDataBridge v0.2 by jeog + TOSDataBridge v0.3 by jeog @@ -15,8 +15,8 @@
    -

    TOSDataBridge v0.2

    -

    Free, Real-Time Streaming Market Data from your TOS Platform - API [C,C++,Python]

    +

    TOSDataBridge v0.3

    +

    Free, Real-Time Streaming Market Data from your TOS Platform [C,C++,Python]

    View the Project on GitHub jeog/TOSDataBridge

    @@ -29,7 +29,7 @@

    TOSDataBridge v0.2

    -TOSDataBridge v0.2

    +TOSDataBridge v0.3


    @@ -40,7 +40,7 @@

    Obviously the core implementation is not portable, but the python interface does provides a thin virtualization layer over TCP. A user running Windows in a Virtual Machine, for instance, can expose the exact same python interface to a different host system running python3.

    -Requirements

    +Requirements
    @@ -48,12 +48,27 @@

  • Windows for the core implementation(tested on Windows 7 SP1, Vista SP2,and Server 2008 R2.) The python interface is available to any system running python3(also tested on Debian/Linux-3.2.)
  • TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (the Window's verion)
  • VC++ 2012 Redistributable (included)
  • -
  • Python3 (optional, for the python wrapper)
  • -
  • Some basic Windows knowledge; some basic C, C++, or Python programming knowledge
  • +
  • Some basic Windows knowledge; some basic C, C++, or Python(3) programming knowledge
  • -Quick Setup

    +Versions + +
    + +

    Major changes will generally lead to a new version/branch, but not necessarily the label of 'stable'. Minor changes may or may not use a seperate branch that will be merged back into master when deemed 'usable'.

    + +
      +
    • v0.3 (branch 'v0.3') - 'stable' version, use the README from branch 'v0.3' **

    • +
    • v0.4 (branch 'master') - pre-release development, interface subject to slight change

    • +
    + +

    If you simply want the core functionality - and/or need the most up-to-date pre-compiled binaries - with the small(est) chance of running into bugs, use v0.3 (branch v0.3). If you want the latest-and-greatest features, improvements etc., don't mind building your own and dealing with more bugs, or may want to contribute, use v0.4 (branch master).

    + +

    ** contains up-to-date binaries/signatures

    + +

    +Quick Setup


    @@ -63,7 +78,7 @@

    Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper)

    -Core C/C++ Libraries
    +Core C/C++ Libraries
    (Admin) C:\[...TOSDataBridge]\tosdb-setup.bat   [x86|x64]   [admin]   [session]
     
    @@ -71,11 +86,11 @@
    • [x86|x64] : the version to build (required)
    • [admin] : does your TOS platform require elevation? (optional)
    • -
    • [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. MOST USERS SHOULDN'T WORRY ABOUT THIS unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. (optional)
    • +
    • [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. MOST USERS SHOULDN'T WORRY ABOUT THIS unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. (optional)
    -Python Wrapper (optional)
    +Python Wrapper (optional)
    C:\[...TOSDataBridge]\python\python setup.py install
     
    @@ -88,7 +103,7 @@

    -Quick Start

    +Quick Start
    @@ -99,33 +114,34 @@

    (Admin) C:\> SC start TOSDataBridge
     
    + +

    (see #9 in the 'Installation Details' section for more info on using the service.)

  • Log on to your TOS platform
  • -For C/C++:
    +For C/C++:
      -
    • Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler)
    • +
    • Include tos_databridge.h header in your code
    • Use the library calls detailed in the C/C++ Interface... sections below
    • -
    • Link with tos-databridge-0.2-[x86|x64].dll +
    • Link with tos-databridge-0.4-[x86|x64].dll
    • Build
    • Run
    -For Python:
    +For Python:
    • Open a python shell/interpreter or create a script
    • import tosdb
    • -
    • tosdb.init(...)

    -License & Terms

    +License & Terms
    diff --git a/params.json b/params.json index 61c825d..a38eda9 100644 --- a/params.json +++ b/params.json @@ -1 +1,7 @@ -{"name":"TOSDataBridge v0.2","tagline":"Free, Real-Time Streaming Market Data from your TOS Platform - API [C,C++,Python]","body":"## TOSDataBridge v0.2 \r\n- - -\r\nTOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; analyze large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.\r\n\r\nTOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls.\r\n\r\nObviously the core implementation is not portable, but the python interface does provides a thin virtualization layer over TCP. A user running Windows in a Virtual Machine, for instance, can expose the exact same python interface to a different host system running python3. \r\n\r\n### Requirements\r\n- - -\r\n- Windows for the core implementation(tested on Windows 7 SP1, Vista SP2,and Server 2008 R2.) The python interface is available to any system running python3(also tested on Debian/Linux-3.2.)\r\n- TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (the Window's verion)\r\n- VC++ 2012 Redistributable (included)\r\n- Python3 (optional, for the python wrapper)\r\n- Some basic Windows knowledge; some basic C, C++, or Python programming knowledge\r\n\r\n### Quick Setup\r\n- - -\r\n- tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to **Installation Details** below for a more detailed explanation\r\n- Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper)\r\n\r\n ##### Core C/C++ Libraries\r\n ```\r\n (Admin) C:\\[...TOSDataBridge]\\tosdb-setup.bat [x86|x64] [admin] [session]\r\n ```\r\n\r\n - [x86|x64] : the version to build (required)\r\n - [admin] : does your TOS platform require elevation? (optional) \r\n - [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. MOST USERS SHOULDN'T WORRY ABOUT THIS unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. (optional)\r\n\r\n ##### Python Wrapper (optional)\r\n ```\r\n C:\\[...TOSDataBridge]\\python\\python setup.py install\r\n ```\r\n - Core C/C++ libs (above) must be installed first to use the (non-virtual) interface\r\n - C++ python extensions have been converted to pure python to avoid portability/build issues. (tosdb/_tosdb.py is now generated automatically by setup.py)\r\n\r\n### Quick Start\r\n- - -\r\n1. You may need to white-list some of these files (specifically tos-databridge-engine-\\[x86|x64].exe) in your Anti-Virus software before proceeding.\r\n2. Start the service:\r\n\r\n ```\r\n (Admin) C:\\> SC start TOSDataBridge\r\n ```\r\n3. Log on to your TOS platform\r\n\r\n##### For C/C++:\r\n- Include tos_databridge.h header in your code (if C++ make sure containers.hpp and generic.hpp can be found by the compiler)\r\n- Use the library calls detailed in the **C/C++ Interface...** sections below\r\n- Link with *tos-databridge-0.2-[x86|x64].dll*\r\n- Build\r\n- Run\r\n\r\n##### For Python:\r\n- Open a python shell/interpreter or create a script\r\n- import tosdb\r\n- tosdb.init(...)\r\n\r\n\r\n### License & Terms\r\n- - -\r\n*TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.*\r\n\r\n*This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.*\r\n\r\n*By choosing to use the software - under the broadest interpretation of the term \"use\" \\- you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.*\r\n\r\n*Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.*\r\n\r\n- - -\r\n*Copyright (C) 2014 Jonathon Ogden*","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file +{ + "name": "TOSDataBridge v0.3", + "tagline": "Free, Real-Time Streaming Market Data from your TOS Platform [C,C++,Python]", + "body": "## TOSDataBridge v0.3 \r\n- - -\r\nTOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; analyze large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.\r\n\r\nTOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls.\r\n\r\nObviously the core implementation is not portable, but the python interface does provides a thin virtualization layer over TCP. A user running Windows in a Virtual Machine, for instance, can expose the exact same python interface to a different host system running python3. \r\n\r\n### Requirements\r\n- - -\r\n- Windows for the core implementation(tested on Windows 7 SP1, Vista SP2,and Server 2008 R2.) The python interface is available to any system running python3(also tested on Debian/Linux-3.2.)\r\n- TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (the Window's verion)\r\n- VC++ 2012 Redistributable (included)\r\n- Some basic Windows knowledge; some basic C, C++, or Python(3) programming knowledge\r\n\r\n### Versions\r\n- - -\r\nMajor changes will generally lead to a new version/branch, but not necessarily the label of 'stable'. Minor changes may or may not use a seperate branch that will be merged back into master when deemed 'usable'. \r\n\r\n- **v0.3** (branch 'v0.3') - 'stable' version, use the README from branch 'v0.3' \\*\\*\r\n\r\n- **v0.4** (branch 'master') - pre-release development, interface subject to slight change \r\n \r\nIf you simply want the core functionality - and/or need the most up-to-date pre-compiled binaries - with the small(est) chance of running into bugs, use v0.3 (branch v0.3). If you want the latest-and-greatest features, improvements etc., don't mind building your own and dealing with more bugs, or may want to contribute, use v0.4 (branch master). \r\n\r\n\\*\\* **contains up-to-date binaries/signatures**\r\n\r\n### Quick Setup\r\n- - -\r\n- tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to **Installation Details** below for a more detailed explanation\r\n- Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper)\r\n\r\n ##### Core C/C++ Libraries\r\n ```\r\n (Admin) C:\\[...TOSDataBridge]\\tosdb-setup.bat [x86|x64] [admin] [session]\r\n ```\r\n\r\n - [x86|x64] : the version to build (required)\r\n - [admin] : does your TOS platform require elevation? (optional) \r\n - [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. **MOST USERS SHOULDN'T WORRY ABOUT THIS** unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. (optional)\r\n\r\n ##### Python Wrapper (optional)\r\n ```\r\n C:\\[...TOSDataBridge]\\python\\python setup.py install\r\n ```\r\n - Core C/C++ libs (above) must be installed first to use the (non-virtual) interface\r\n - C++ python extensions have been converted to pure python to avoid portability/build issues. (tosdb/_tosdb.py is now generated automatically by setup.py)\r\n\r\n### Quick Start\r\n- - -\r\n1. You may need to white-list some of these files (specifically tos-databridge-engine-\\[x86|x64].exe) in your Anti-Virus software before proceeding.\r\n2. Start the service:\r\n\r\n ```\r\n (Admin) C:\\> SC start TOSDataBridge\r\n ```\r\n (see #9 in the 'Installation Details' section for more info on using the service.)\r\n3. Log on to your TOS platform\r\n\r\n##### For C/C++:\r\n- Include tos_databridge.h header in your code \r\n- Use the library calls detailed in the **C/C++ Interface...** sections below\r\n- Link with *tos-databridge-0.4-[x86|x64].dll*\r\n- Build\r\n- Run\r\n\r\n##### For Python:\r\n- Open a python shell/interpreter or create a script\r\n- import tosdb\r\n\r\n\r\n### License & Terms\r\n- - -\r\n*TOSDB is released under the GNU General Public License(GPL); a copy (LICENSE.txt) should be included. If not, see http://www.gnu.org/licenses. The author reserves the right to issue current and/or future versions of TOSDB under other licensing agreements. Any party that wishes to use TOSDB, in whole or in part, in any way not explicitly stipulated by the GPL, is thereby required to obtain a separate license from the author. The author reserves all other rights.*\r\n\r\n*This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.*\r\n\r\n*By choosing to use the software - under the broadest interpretation of the term \"use\" \\- you absolve the author of ANY and ALL responsibility, for ANY and ALL damages incurred; including, but not limited to, damages arising from the accuracy and/or timeliness of data the software does, or does not, provide.*\r\n\r\n*Furthermore, TOSDB is in no way related to TDAmeritrade or affiliated parties; users of TOSDB must abide by their terms of service and are solely responsible for any violations therein.*\r\n\r\n- - -\r\n*Copyright (C) 2014 Jonathon Ogden*", + "google": "", + "note": "Don't delete this file! It's used internally to help with page regeneration." +} \ No newline at end of file diff --git a/stylesheets/github-light.css b/stylesheets/github-light.css index 872a6f4..d64ba5d 100644 --- a/stylesheets/github-light.css +++ b/stylesheets/github-light.css @@ -1,17 +1,25 @@ /* - Copyright 2014 GitHub Inc. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +The MIT License (MIT) + +Copyright (c) 2015 GitHub, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. */ From 2f0e13ae1b57846cba6691c54c4c027e7d3a6c05 Mon Sep 17 00:00:00 2001 From: jeog Date: Tue, 14 Jun 2016 13:48:29 -0400 Subject: [PATCH 06/26] update download links to v0.3 on project page --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 9d3094a..af043f7 100644 --- a/index.html +++ b/index.html @@ -22,8 +22,8 @@

    TOSDataBridge v0.3

    From fa0286e09299e9300ee5b76329a075e9cffd6680 Mon Sep 17 00:00:00 2001 From: jeog Date: Wed, 15 Jun 2016 10:27:28 -0400 Subject: [PATCH 07/26] remove bold from version section --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index af043f7..1e15203 100644 --- a/index.html +++ b/index.html @@ -65,7 +65,7 @@

    If you simply want the core functionality - and/or need the most up-to-date pre-compiled binaries - with the small(est) chance of running into bugs, use v0.3 (branch v0.3). If you want the latest-and-greatest features, improvements etc., don't mind building your own and dealing with more bugs, or may want to contribute, use v0.4 (branch master).

    -

    ** contains up-to-date binaries/signatures

    +

    ** contains up-to-date binaries/signatures

    Quick Setup

    From 14dfc1d902b83d1d6be92d6042ebec1cc3ea183a Mon Sep 17 00:00:00 2001 From: jeog Date: Mon, 11 Jul 2016 11:58:59 -0400 Subject: [PATCH 08/26] add links --- index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 1e15203..bb6440c 100644 --- a/index.html +++ b/index.html @@ -125,7 +125,7 @@
    • Include tos_databridge.h header in your code
    • -
    • Use the library calls detailed in the C/C++ Interface... sections below
    • +
    • Use the library calls detailed in the C/C++ Interface... sections
    • Link with tos-databridge-0.4-[x86|x64].dll
    • Build
    • @@ -138,6 +138,7 @@
      • Open a python shell/interpreter or create a script
      • import tosdb
      • +
      • (view tutorial)

      From c383d7d7fb41fa0fbda42846dd08d0f9c71029d5 Mon Sep 17 00:00:00 2001 From: jeog Date: Mon, 11 Jul 2016 12:05:16 -0400 Subject: [PATCH 09/26] add links(2) --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index bb6440c..66a813e 100644 --- a/index.html +++ b/index.html @@ -73,7 +73,7 @@


        -
      • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to Installation Details below for a more detailed explanation
      • +
      • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to the 'Installation Details' section for a more detailed explanation
      • Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper)

        @@ -115,7 +115,7 @@

        (Admin) C:\> SC start TOSDataBridge
         
        -

        (see #9 in the 'Installation Details' section for more info on using the service.)

        +

        (see #9 in the 'Installation Details' section for more info on using the service.)

      • Log on to your TOS platform
      • From 8677f952139d0b7b4e8931eff80cb02b4281bf28 Mon Sep 17 00:00:00 2001 From: jeog Date: Sun, 23 Oct 2016 12:20:18 -0400 Subject: [PATCH 10/26] update page, general (1) --- index.html | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index 66a813e..1563041 100644 --- a/index.html +++ b/index.html @@ -59,14 +59,10 @@

        Major changes will generally lead to a new version/branch, but not necessarily the label of 'stable'. Minor changes may or may not use a seperate branch that will be merged back into master when deemed 'usable'.

          -
        • v0.3 (branch 'v0.3') - 'stable' version, use the README from branch 'v0.3' **

        • -
        • v0.4 (branch 'master') - pre-release development, interface subject to slight change

        • +
        • v0.3 (branch 'v0.3') - 'stable' version that guarantees up-to-date binaries/signatures (use the README from branch 'v0.3')

        • +
        • v0.4 (branch 'master') - pre-release development version that may not have up-to-date binaries/signatures

        -

        If you simply want the core functionality - and/or need the most up-to-date pre-compiled binaries - with the small(est) chance of running into bugs, use v0.3 (branch v0.3). If you want the latest-and-greatest features, improvements etc., don't mind building your own and dealing with more bugs, or may want to contribute, use v0.4 (branch master).

        - -

        ** contains up-to-date binaries/signatures

        -

        Quick Setup

        @@ -86,9 +82,15 @@
        • [x86|x64] : the version to build (required)
        • [admin] : does your TOS platform require elevation? (optional)
        • -
        • [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. MOST USERS SHOULDN'T WORRY ABOUT THIS unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. (optional)
        • +
        • [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. MOST USERS SHOULDN'T WORRY ABOUT THIS unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. An explanation of Sessions, Desktops, and Stations. (optional)
        +
        Example 1: C:\TOSDataBridge\> tosdb-setup.bat x86 
        +Example 2:: C:\TOSDataBridge\> tosdb-setup.bat x64 admin
        +Example 3: C:\TOSDataBridge\> tosdb-setup.bat x64 admin 2 +
        +
        +
        Python Wrapper (optional)
        From 0626aecad92bda6237b73149fbe954f8b618b0a5 Mon Sep 17 00:00:00 2001 From: jeog Date: Sun, 23 Oct 2016 12:22:05 -0400 Subject: [PATCH 11/26] update page, general (2) --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 1563041..d180f8c 100644 --- a/index.html +++ b/index.html @@ -85,8 +85,8 @@
      • [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. MOST USERS SHOULDN'T WORRY ABOUT THIS unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. An explanation of Sessions, Desktops, and Stations. (optional)
      -
      Example 1: C:\TOSDataBridge\> tosdb-setup.bat x86 
      -Example 2:: C:\TOSDataBridge\> tosdb-setup.bat x64 admin
      +
      Example 1: C:\TOSDataBridge\> tosdb-setup.bat x86 
      +Example 2:: C:\TOSDataBridge\> tosdb-setup.bat x64 admin 
       Example 3: C:\TOSDataBridge\> tosdb-setup.bat x64 admin 2
       
       
      From 7e49b65342949db4626ec8c8b469d539772135e4 Mon Sep 17 00:00:00 2001 From: jeog Date: Sun, 23 Oct 2016 12:24:12 -0400 Subject: [PATCH 12/26] update page, general (3) --- index.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index.html b/index.html index d180f8c..2aa92ec 100644 --- a/index.html +++ b/index.html @@ -87,8 +87,7 @@
      Example 1: C:\TOSDataBridge\> tosdb-setup.bat x86 
       Example 2:: C:\TOSDataBridge\> tosdb-setup.bat x64 admin 
      -Example 3: C:\TOSDataBridge\> tosdb-setup.bat x64 admin 2
      -
      +Example 3: C:\TOSDataBridge\> tosdb-setup.bat x64 admin 2 
       
      From 2e011cb4e86c20c959a55330f97bb68b667ceb06 Mon Sep 17 00:00:00 2001 From: jeog Date: Sun, 23 Oct 2016 12:32:59 -0400 Subject: [PATCH 13/26] update page, general (4) --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 2aa92ec..096f660 100644 --- a/index.html +++ b/index.html @@ -82,11 +82,11 @@
      • [x86|x64] : the version to build (required)
      • [admin] : does your TOS platform require elevation? (optional)
      • -
      • [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. MOST USERS SHOULDN'T WORRY ABOUT THIS unless they plan to run in a non-standard environment (e.g an EC2 instance). The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. An explanation of Sessions, Desktops, and Stations. (optional)
      • +
      • [session] : override the service's attempt to determine the session id when exiting from session-0 isolation. The tos-databridge-engine.exe[] binary needs to run in the same session as the ThinkOrSwim platform. Most users shouldn't worry about this unless they plan to run in a non-standard environment (e.g an EC2 instance). An explanation of Sessions, Desktops, and Stations. (optional)
      Example 1: C:\TOSDataBridge\> tosdb-setup.bat x86 
      -Example 2:: C:\TOSDataBridge\> tosdb-setup.bat x64 admin 
      +Example 2: C:\TOSDataBridge\> tosdb-setup.bat x64 admin 
       Example 3: C:\TOSDataBridge\> tosdb-setup.bat x64 admin 2 
       
      @@ -116,7 +116,7 @@

      (Admin) C:\> SC start TOSDataBridge
       
      -

      (see #9 in the 'Installation Details' section for more info on using the service.)

      +

      (consider having the service begin automatically on startup to avoid this step in the future; see #9 in the 'Installation Details' section for more info on using the service.)

    • Log on to your TOS platform
    • From 1b3ee251a277a6ce6718275f24a085b70924348b Mon Sep 17 00:00:00 2001 From: jeog Date: Wed, 2 Nov 2016 11:35:18 -0400 Subject: [PATCH 14/26] update page v0.4 --- index.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index 096f660..5864a39 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - TOSDataBridge v0.3 by jeog + TOSDataBridge v0.4 by jeog @@ -15,15 +15,15 @@
      -

      TOSDataBridge v0.3

      +

      TOSDataBridge v0.4

      Free, Real-Time Streaming Market Data from your TOS Platform [C,C++,Python]

      View the Project on GitHub jeog/TOSDataBridge

      @@ -59,8 +59,8 @@

      Major changes will generally lead to a new version/branch, but not necessarily the label of 'stable'. Minor changes may or may not use a seperate branch that will be merged back into master when deemed 'usable'.

        -
      • v0.3 (branch 'v0.3') - 'stable' version that guarantees up-to-date binaries/signatures (use the README from branch 'v0.3')

      • -
      • v0.4 (branch 'master') - pre-release development version that may not have up-to-date binaries/signatures

      • +
      • v0.4 (branch 'v0.4') - 'stable' version that guarantees up-to-date binaries/signatures (use the README from branch 'v0.3')

      • +
      • v0.5 (branch 'master') - pre-release development version that may not have up-to-date binaries/signatures

      From c5dbf8ff7b4492d2abfc1fdaa7b5f1da528bcca0 Mon Sep 17 00:00:00 2001 From: jeog Date: Wed, 2 Nov 2016 11:38:04 -0400 Subject: [PATCH 15/26] update page v0.4 (2) --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 5864a39..86ecbf0 100644 --- a/index.html +++ b/index.html @@ -59,7 +59,7 @@

      Major changes will generally lead to a new version/branch, but not necessarily the label of 'stable'. Minor changes may or may not use a seperate branch that will be merged back into master when deemed 'usable'.

        -
      • v0.4 (branch 'v0.4') - 'stable' version that guarantees up-to-date binaries/signatures (use the README from branch 'v0.3')

      • +
      • v0.4 (branch 'v0.4') - 'stable' version that guarantees up-to-date binaries/signatures (use the README from branch 'v0.4')

      • v0.5 (branch 'master') - pre-release development version that may not have up-to-date binaries/signatures

      @@ -127,7 +127,7 @@

      • Include tos_databridge.h header in your code
      • Use the library calls detailed in the C/C++ Interface... sections
      • -
      • Link with tos-databridge-0.4-[x86|x64].dll +
      • Link with tos-databridge-[0.4|0.5]-[x86|x64].dll
      • Build
      • Run
      • From af0b17e765331d0eef6c590d67430a05dcec6d5c Mon Sep 17 00:00:00 2001 From: jeog Date: Thu, 3 Nov 2016 00:16:14 -0400 Subject: [PATCH 16/26] update page (3) --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 86ecbf0..35d2408 100644 --- a/index.html +++ b/index.html @@ -29,7 +29,7 @@

        TOSDataBridge v0.4

    -TOSDataBridge v0.3

    +TOSDataBridge
    From cd8f05db6a89ba194390472841911418fe747966 Mon Sep 17 00:00:00 2001 From: jeog Date: Thu, 29 Dec 2016 16:05:02 -0500 Subject: [PATCH 17/26] -> v0.5 --- index.html | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/index.html b/index.html index 35d2408..1916aa0 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - TOSDataBridge v0.4 by jeog + TOSDataBridge v0.5 by jeog @@ -15,15 +15,15 @@
    -

    TOSDataBridge v0.4

    +

    TOSDataBridge v0.5

    Free, Real-Time Streaming Market Data from your TOS Platform [C,C++,Python]

    View the Project on GitHub jeog/TOSDataBridge

    @@ -45,22 +45,9 @@


      -
    • Windows for the core implementation(tested on Windows 7 SP1, Vista SP2,and Server 2008 R2.) The python interface is available to any system running python3(also tested on Debian/Linux-3.2.)
    • +
    • Windows for the core implementation. The python interface is available to any system running python3.
    • TDAmeritrade's ThinkOrSwim(TOS) platform that exposes DDE functionality (the Window's verion)
    • VC++ 2012 Redistributable (included)
    • -
    • Some basic Windows knowledge; some basic C, C++, or Python(3) programming knowledge
    • -
    - -

    -Versions

    - -
    - -

    Major changes will generally lead to a new version/branch, but not necessarily the label of 'stable'. Minor changes may or may not use a seperate branch that will be merged back into master when deemed 'usable'.

    - -
      -
    • v0.4 (branch 'v0.4') - 'stable' version that guarantees up-to-date binaries/signatures (use the README from branch 'v0.4')

    • -
    • v0.5 (branch 'master') - pre-release development version that may not have up-to-date binaries/signatures

    @@ -127,7 +114,7 @@

    • Include tos_databridge.h header in your code
    • Use the library calls detailed in the C/C++ Interface... sections
    • -
    • Link with tos-databridge-[0.4|0.5]-[x86|x64].dll +
    • Link with tos-databridge-[0.5]-[x86|x64].dll
    • Build
    • Run
    • @@ -137,7 +124,6 @@
      For Python:
        -
      • Open a python shell/interpreter or create a script
      • import tosdb
      • (view tutorial)
      From 9855ea8bc20c3ac78c9984d7b7247867ea9ec8b9 Mon Sep 17 00:00:00 2001 From: jeog Date: Thu, 29 Dec 2016 16:09:16 -0500 Subject: [PATCH 18/26] trim intro --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 1916aa0..6300d7f 100644 --- a/index.html +++ b/index.html @@ -33,11 +33,11 @@


      -

      TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces. Users of the TOS platform - with some basic programming/scripting knowledge - can use these tools to populate their own databases with market data; analyze large data-sets in real-time; test and debug other financial apps; or even build extensions on top of it.

      +

      TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces.

      -

      TOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format, providing an interactive environment for easy access to the low(er)-level calls.

      +

      TOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format.

      -

      Obviously the core implementation is not portable, but the python interface does provides a thin virtualization layer over TCP. A user running Windows in a Virtual Machine, for instance, can expose the exact same python interface to a different host system running python3.

      +

      The core implementation is not portable, but the python interface does provides a thin virtualization layer over TCP. A user running Windows in a Virtual Machine, for instance, can expose the exact same python interface to a different host system running python3.

      Requirements

      From 190fe31e1a995ef717899f9c7151cc4c491f174b Mon Sep 17 00:00:00 2001 From: Jonathon Date: Thu, 5 Jan 2017 13:53:20 -0500 Subject: [PATCH 19/26] update links --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 6300d7f..690d4f2 100644 --- a/index.html +++ b/index.html @@ -56,7 +56,7 @@


        -
      • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to the 'Installation Details' section for a more detailed explanation
      • +
      • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to 'Installation Details' for a more detailed explanation
      • Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper)

        @@ -103,7 +103,7 @@

        (Admin) C:\> SC start TOSDataBridge
         
        -

        (consider having the service begin automatically on startup to avoid this step in the future; see #9 in the 'Installation Details' section for more info on using the service.)

        +

        (consider having the service begin automatically on startup to avoid this step in the future; see #9 in 'Installation Details' .)

      • Log on to your TOS platform
      • @@ -113,7 +113,7 @@
        • Include tos_databridge.h header in your code
        • -
        • Use the library calls detailed in the C/C++ Interface... sections
        • +
        • Use the library calls detailed in C/C++ API
        • Link with tos-databridge-[0.5]-[x86|x64].dll
        • Build
        • From 0b1c4ebac707cddf434d3651611799001875dd14 Mon Sep 17 00:00:00 2001 From: jeog Date: Thu, 5 Jan 2017 14:02:08 -0500 Subject: [PATCH 20/26] fix links --- index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 690d4f2..243b240 100644 --- a/index.html +++ b/index.html @@ -56,7 +56,7 @@


            -
          • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to 'Installation Details' for a more detailed explanation
          • +
          • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to 'Installation Details' for a more detailed explanation
          • Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper)

            @@ -103,7 +103,7 @@

            (Admin) C:\> SC start TOSDataBridge
             
            -

            (consider having the service begin automatically on startup to avoid this step in the future; see #9 in 'Installation Details' .)

            +

            (consider having the service begin automatically on startup to avoid this step in the future; see #9 in 'Installation Details' .)

          • Log on to your TOS platform
          • @@ -113,7 +113,7 @@
            • Include tos_databridge.h header in your code
            • -
            • Use the library calls detailed in C/C++ API
            • +
            • Use the library calls detailed in C/C++ API
            • Link with tos-databridge-[0.5]-[x86|x64].dll
            • Build
            • From 1b6e049269f8530f27b3ad0190870452135278e4 Mon Sep 17 00:00:00 2001 From: jeog Date: Thu, 5 Jan 2017 14:04:39 -0500 Subject: [PATCH 21/26] fix links(2) --- index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.html b/index.html index 243b240..2424d6f 100644 --- a/index.html +++ b/index.html @@ -113,7 +113,7 @@
              • Include tos_databridge.h header in your code
              • -
              • Use the library calls detailed in C/C++ API
              • +
              • Use the library calls detailed in C/C++ API
              • Link with tos-databridge-[0.5]-[x86|x64].dll
              • Build
              • From 324ccfb59750dd77247fd4ab629c56cc5da0780f Mon Sep 17 00:00:00 2001 From: jeog Date: Wed, 29 Mar 2017 10:43:07 -0400 Subject: [PATCH 22/26] -> v0.7 --- index.html | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index 2424d6f..40487a9 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - TOSDataBridge v0.5 by jeog + TOSDataBridge v0.7 by jeog @@ -15,15 +15,15 @@
                -

                TOSDataBridge v0.5

                -

                Free, Real-Time Streaming Market Data from your TOS Platform [C,C++,Python]

                +

                TOSDataBridge v0.7

                +

                Free, Real-Time Streaming Market Data from your TOS Platform [C,C++,Java,Python]

                View the Project on GitHub jeog/TOSDataBridge

                @@ -33,7 +33,7 @@


                -

                TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, and Python interfaces.

                +

                TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, Java(in development) and Python interfaces.

                TOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format.

                @@ -90,6 +90,16 @@

              + +
              +Java Wrapper (optional)
              + +
                +
              • Warning - in early development; not stable; interface subject to change; see docs
              • +
              • Core C/C++ libs (above) must be installed first
              • +
              • java/tosdatabridge.jar should be included (source is in java/src if you want/need to build)
              • +
              +

              Quick Start

              @@ -128,6 +138,19 @@
            • (view tutorial)
            +
            +For Java:
            + +
              +
            • Warning - in early development; not stable; interface subject to change
            • +
            • add java/tosdatabridge.jar to your classpath
            • +
            • see docs for an intro to the API, or the source(java/src) for the details
            • +
            • Link with tos-databridge-[0.5]-[x86|x64].dll +
            • +
            • Compile
            • +
            • Run
            • +
            +

            License & Terms

            From b6e7689431cc5b3071b0c5d11ad9172588bbb1da Mon Sep 17 00:00:00 2001 From: jeog Date: Wed, 29 Mar 2017 10:46:35 -0400 Subject: [PATCH 23/26] -> v0.7 (2) --- index.html | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/index.html b/index.html index 40487a9..39b383b 100644 --- a/index.html +++ b/index.html @@ -124,7 +124,7 @@
            • Include tos_databridge.h header in your code
            • Use the library calls detailed in C/C++ API
            • -
            • Link with tos-databridge-[0.5]-[x86|x64].dll +
            • Link with tos-databridge-[0.7]-[x86|x64].dll
            • Build
            • Run
            • @@ -142,11 +142,9 @@
              For Java:
                -
              • Warning - in early development; not stable; interface subject to change
              • -
              • add java/tosdatabridge.jar to your classpath
              • +
              • add java/tosdatabridge.jar to your classpath
              • see docs for an intro to the API, or the source(java/src) for the details
              • -
              • Link with tos-databridge-[0.5]-[x86|x64].dll -
              • +
              • Link with tos-databridge-[0.7]-[x86|x64].dll
              • Compile
              • Run
              From 57448c6c3eef97ff451d3dee098499cbb10e3f43 Mon Sep 17 00:00:00 2001 From: jeog Date: Mon, 3 Apr 2017 21:27:22 -0400 Subject: [PATCH 24/26] update java sections (1) --- index.html | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/index.html b/index.html index 39b383b..4e5e383 100644 --- a/index.html +++ b/index.html @@ -35,7 +35,7 @@

              TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, Java(in development) and Python interfaces.

              -

              TOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python interface wraps this library in a more object-oriented, user-friendly format.

              +

              TOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python and Java interfaces wrap this library in a more object-oriented, user-friendly format.

              The core implementation is not portable, but the python interface does provides a thin virtualization layer over TCP. A user running Windows in a Virtual Machine, for instance, can expose the exact same python interface to a different host system running python3.

              @@ -144,7 +144,6 @@

              • add java/tosdatabridge.jar to your classpath
              • see docs for an intro to the API, or the source(java/src) for the details
              • -
              • Link with tos-databridge-[0.7]-[x86|x64].dll
              • Compile
              • Run
              From 0ba1e7c111d7a529023ca17adedec8fd1eacf9ac Mon Sep 17 00:00:00 2001 From: jeog Date: Tue, 4 Apr 2017 00:17:10 -0400 Subject: [PATCH 25/26] update java sections (2) --- index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 4e5e383..a6784a6 100644 --- a/index.html +++ b/index.html @@ -58,7 +58,7 @@

              • tosdb-setup.bat will attempt to install the necessary modules/dependencies for you but you should refer to 'Installation Details' for a more detailed explanation
              • -

                Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper)

                +

                Be sure to know what build you need(x86 vs x64); it should match your system, all the modules you'll need, and your version of Python(if you plan on using the python wrapper), or your version of the Java Runtime(if you plan on using the java wrapper).

                Core C/C++ Libraries
                @@ -95,7 +95,7 @@
                Java Wrapper (optional)
                  -
                • Warning - in early development; not stable; interface subject to change; see docs
                • +
                • Warning - in early development; see docs
                • Core C/C++ libs (above) must be installed first
                • java/tosdatabridge.jar should be included (source is in java/src if you want/need to build)
                From 4404a47e82b1511ca53e92aa890a3d5b35c1bec8 Mon Sep 17 00:00:00 2001 From: jeog Date: Sun, 8 Oct 2017 12:08:15 -0400 Subject: [PATCH 26/26] v0.7 -> v0.8 --- index.html | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/index.html b/index.html index a6784a6..272cef7 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@ - TOSDataBridge v0.7 by jeog + TOSDataBridge v0.8 by jeog @@ -15,15 +15,15 @@
                -

                TOSDataBridge v0.7

                -

                Free, Real-Time Streaming Market Data from your TOS Platform [C,C++,Java,Python]

                +

                TOSDataBridge v0.8

                +

                Free, Real-Time Streaming Data from your TOS Platform [C,C++,Java,Python]

                View the Project on GitHub jeog/TOSDataBridge

                @@ -33,7 +33,7 @@


                -

                TOSDataBridge (TOSDB) is an open-source collection of resources for 'scraping' real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, Java(in development) and Python interfaces.

                +

                TOSDataBridge (TOSDB) is an open-source collection of resources for pulling real-time streaming data off of TDAmeritrade's ThinkOrSwim(TOS) platform, providing C, C++, Java and Python interfaces.

                TOSDB uses TOS's antiquated, yet still useful, DDE feature, directly through the Windows API. The C / C++ interfaces are implemented as a shared library(DLL) that communicates with a back-end Windows Service. The Python and Java interfaces wrap this library in a more object-oriented, user-friendly format.

                @@ -85,7 +85,7 @@

                • Core C/C++ libs (above) must be installed first to use the (non-virtual) interface
                • -
                • C++ python extensions have been converted to pure python to avoid portability/build issues. (tosdb/_tosdb.py is now generated automatically by setup.py)
                • +
                • tosdb/_tosdb.py is generated automatically by setup.py
              @@ -95,7 +95,7 @@

              Java Wrapper (optional)
                -
              • Warning - in early development; see docs
              • +
              • Warning - in development; see docs
              • Core C/C++ libs (above) must be installed first
              • java/tosdatabridge.jar should be included (source is in java/src if you want/need to build)
              @@ -124,7 +124,7 @@
              • Include tos_databridge.h header in your code
              • Use the library calls detailed in C/C++ API
              • -
              • Link with tos-databridge-[0.7]-[x86|x64].dll +
              • Link with tos-databridge-[0.8]-[x86|x64].dll
              • Build
              • Run