|
charlotte nc
Experience: Advanced
Platform: My Own System
Posts: 409 since Jan 2015
Thanks Given: 91
Thanks Received: 1,152
|
I feel your pain, and you will definitely need a programmer for this. As it takes many steps. There may be some 3rd party stuff out there for sale, but I haven't checked. But since I have already done something similar I can give a few ideas.... (Kind of a down and dirty way to do it all, but it definitely will work and not break the bank)
Here is how you would do it:
1. Build a Ninja-trader strategy to run concurrently with what you are doing live. Create a sub routine for your manual clicking and capture your actions in this subroutine.
2. Create a few variables to capture the data live such as High[0], Low[0], Open[0], Close[0] and anything else you want. Pretty easy stuff.
3. Create a sub routine that sends the data on each bar update to a SQL Server via an insert statement. I have already built such a program. I could share some of this type of code if you or any programmers you work with were interested.
4. In SQL you can create views of the data to have it only look at a specific subset of data based on time. Let's say check the computers internal clock against the data stamp of the NT data and only display records that are < 10 seconds old. You can define this however like, but you need some logic to partition this raw data into batches that you will be sending back to excel, otherwise it will just be the entire table each time. Easy to do though.
5. In excel you just setup a standard data source connection to your SQL server view that has the data in time defined batches and from here you can get the data a number of different ways.
6. The best method to get the data to sync with your batches is to set a counter sub in VBA that runs a time based bool condition and every 10 seconds or whatever it simply refreshes the data source to go fetch the new data.
7. In terms of putting the data into one unabridged data-set in excel I would have one tab that just has the connection to the SQL view and keeps refreshing, but you would need a second tab to hold all of the unabridged data. You can do this in two parts.
A: For each column, just have a basic formula that points to the matching column from the data source connected to SQL. This will theoretically run thousands of rows, whereas the data connected to SQL may only be hundreds or rows or less. With each refresh it would theoretically just be replacing the old values with the new values so you need some logic to kill the formulas on the rows that just took the update.
B: Create a Second VBA sub to capture the rows that just recently took the update and kill the formulas rendering these as values, There are a number of ways to do this, but this is the tricky part I believe.
Overall not the easiest thing to do, but I actually built something like this back in the day. This may be useful if you can find a programmer to help you.
Best of luck.
Ian
|