Quazil's Astro Analytics (new trading/commodity locating program)

Donation Meter: $90 (total donations!)

Current Release: v1.2.0.4
Download

Report Issues
.NET 4.5 is required

A seed of EDDN data can be downloaded from Maddavo's website.

Features
  • Über fast searches - scan all known trades in all known systems in less than 30 seconds takes about a minute now with >9,000 stations.
  • Calculate route best for you; limit tonnage, credit available, travel range, large-landing-pad
  • Connected to EDDN, automatically receiving data from EliteOCR (click the Export to EDDN button)
  • Lots of trade searching and filtering options to filter out trades you're not interested in
  • Commodity Locator, include search for rares
  • Browse station commodity data
  • Navigate between distance systems (needs work to optimize but will find routes if one exist)

Coming Later
  • Ability to edit stored station and commodity data
  • Commodity data (.json) synchronization (crowd-sourced data-healing)
  • French and German commodity localization (the game also supports Russian though I haven't seen any Russian data)

The existing trading programs inspired me to write my own in C# with "NoSQL".
It ties into the EDDN network so if you use EliteOCR and the 'Export to EDDN' button the data will automatically be pushed into the tool and available for searches.
I cache the EDDN relays so it will remember the latest and load it on restart.

I've made a BitBucket account and setup a workspace there.
The code is available for any interested and there's a screenshot and download for the tool.

v1.2.1.9
Updater is vetted and working for both betas & releases

v1.2.0.5
Fixed EDDN date directory crash
Change the way beta works; odd Build numbers (third digit) are betas (because skipping versions is dee-dee-dee)

v1.2.0.4
Create path exist to dated EDDN directory if it does not already exist

v1.2.0.3
Skipped

v1.2.0.2
Added column to show Has Large Pad
Promoted to Release

v1.2.0.1
Binary format can now be merged (multiple .qaa files will be merged into 1)
Added option (see File->Settings) to set if QAA deletes merged files or not
Fixed bug parsing supply data from .price files (Trade Dangerous)
No longer parses .csv files; will now parse .bpc files (this includes user info)
User info is saved into .qaa datastore
Fixed bug in updater that caused it to launch from update folder (#%^$!)
Date-time stamps presume UTC unless told otherwise
Added work-around/hack for RegulatedNoise not providing time-zone info
Speculative Windows 8 fix that checks a .json file exist prior to parsing
Fixed a bug that showed the wrong version when a beta release was detected (... it's like I've never done this before.)

v1.1
v1.1.0.7
QAA will delete .json files sucked into the data-store again

v1.1.0.6
Added ability to delete commodity data - just hit 'del' while highlighting the bad data (then click save)
Commodity data can be deleted on the Locator and Browse tab (not from Trades)
QAA will now distinguish between Release and Beta updates and will not automatically download betas
Run updater with "/beta" argument to download beta (Beta notification tab will execute updater with /beta option)
DateStore.qaa is now downloaded separately from the application (by the updater)
Updating QAA will no longer over-write your qaa file.
Delete DataStore.qaa and run to download the latest .qaa file from the server

v1.1.0.5
Fixed off-by-one bug with commodity locator
Actually set version on all assemblies

v1.1.0.4
You can now filter out Imperial Slaves
GUI tweak, the combo-boxes have a slightly different behavior - you can type to find the system but you must select from the list
Fixed crash bug if EDDN and/or OCR folders were missing
Fixed bug with Abort and multi-threaded searching that gave bad results on a search after an abort
Fixed a bug with black-listing (filtered out bad-data from allBPCuser)

v1.1.0.3
Bug fixes to search parameters ... they might work now
Progress bar works again

v1.1.0.2
Fixed bug with .json files saving to wrong location with underscores
Fixed a bug detecting VerboseLogging is set
Fixed a bug where multiple 'Update' tabs were added
Fixed a bug with avoid-duplicates and non-return-trip searches
Fixed a bug searching for trades - all stations were not being searched 0.o This also broke the search progress bar but at least it's searching everything now (I'll fix this in the next release).

v1.1.0.1
Finished the .NET assembly signing process; v1.1.0.0 crashed and/or caused problems the virus-scanners without this

v1.1.0.0
Bug fixes
Faster load times (slow the first load, fast afterwards)
Compressed binary data-store for system, station, & commodity data
QAA is now a data "blackhole"; it parses a lot of data and sucks it into its internal binary format and deletes the text files when it saves the data-store
Now parses Trade Dangerous .prices data (download here, you can also download the System.csv and Station.csv and QAA will suck it into the blackhole)
Reverted to .NET 4.5 (from 4.5.1) preparing for server-side features
This is a one-way upgrade due to the new data format (and it deletes the text files)

Older version changes
v1.0.26.3
Fixed a bug showing return-trip trades (was silently crashing if a return-trade wasn't found)


v1.0.26.2
Fixed a bug where station distance (Ls) was not filtering results
Fixed bugs in the system/station/commodity selector
Added Any buttons for each (just clears the text)
Added more columns to results; supply, demand, buy & sell price for return-trip
(Added infrastructure for picking which columns are shown; a future release will add this)


v1.0.26.1
Fixed bug loading Stations.csv (which contains the Ls distnace, Balck-market, and Large-Pad info)
Fixed bug on Browse tab that prevented it from working


v1.0.26.0
Add trade-search criteria and trade-filtering criteria. Search scans systems for trades (takes time). Filtering is run on the results of a search (almost instant).
Search options now include: Large-landing-pad, distance-from-star, distance-between-trade-systems
I had an epiphany and I added a standard deviation search criteria for commodity prices. It defaults to ±3.0 std-dev which should cull most bogus trade data.
Unzipping ought to be a little bit faster
There's lot more to add to make this 'complete' (e.g. show/choose more columns) but it's in a usable state now and it's better than v1.0.25.0


v1.0.25.6
Fixed a crash bug in loading settings (this update has binaries only, get v1.0.25.5 for the data)


v1.0.25.5
Fixed endless security-warning pop-ups on auto-update
Fixed null object exception that could occur during auto-update
Added option to set QAA to 'Always on Top' (under File->Settings)
Added tooltips to explain various GUI elements
Added Supply & Demand to Locator commodity search
Only allow one instance to run


v1.0.25.4
Fixed a bug that was ignoring .csv data (if you want to ignore the .csv data just delete it - careful not to delete Starsystems.csv, Rares.csv, Blacklist.csv, or Commodies.csv, they are the four most recently changed files under OCR)
Removed the non-functional filtering GUI


v1.0.25.3
Fixed a bug that prevent EDDN data from taking effect immediately


v1.0.25.2
Fixed a crash bug that occurred if it was the first time you've ran QAA


v1.0.25.1
Auto-updater working


v1.0.25.0
Auto-updater is implemented
Argh ... Auto-updater is bugged. Working on v1.0.25.1 with a fix but you will have to manually extract it.


v1.0.24.1
Browse tab fixed (broke in v1.0.24.0)


v1.0.24.0
Cleaned-up the optimizations and profit calculations
Optimized trade culling
Optimized the way commodity data is stored in RAM
Improved data scrubbing
Optimized return-trip search
Galactic-wide searches are now producing useful results
Galactic-wide searches are über fast again - even faster than before as it should take ~15 seconds on an i7
As part of the data-scrubbing I now ignore all OCR tools except EliteOCR because almost all data from non-EliteOCR is bad.
If you are using a different OCR tool please contact me and I can white-list it (as long as it doesn't suck)
(PS There are <45 Ly trades out there over 3000 CR / ton round-trip)


v1.0.23.1
Bug fix only but it's a big one; the profit calculation was not correct and was not culling trades correctly.
The total trades in the system is around 6.5B which means it takes about 20 ~ 40 min to scan them all with an i5/i7.


v1.0.23.0
Added an excessive profit filter to discard bogus trades (e.g. ignore >6000 CR / ton)
Check that VerboseLogging is enabled


v1.0.22.0
Fixed a bug detecting the current system (should find it right away now)
Added a PayPal Donate button (on about box)

v1.0.21.0
Multi-core searches & sorting
Removed French & German commodity names from Commodity drop-downs.


v1.0.20.0
Highlights current system on Navigation list
File parsing is now always in shared mode


v1.0.19.0
Added Current System button to tabs (NetLog parser working)


v1.0.18.0
Broken NetLog parser


v1.0.17.0
Added Sell Location to commodity Locator
Fixed a bug in trade searches - wasn't finding all the correct sell station
This should also fix the spurious System.Null crashes


v1.0.16.0 released
Faster galaxy-wide searches - takes 5 minutes to scan everything (300M trades) using 1 core, this will become faster in the future once it is parallel
Copy/Paste from the list works
I think the destination & return trip Info Age is finally right ...
And a lot of data scrubbing to ignore bad stuff.
Fixed the About box URL to point to bitbucket
Added a Blacklist to ignore people who keep sending crappy data over EDDN
I have confirmed that Slaves (not Imperial Slaves) do sell for around 10,000 ~ 11,000 CR so that data is probably right.
I added filters for Slaves and Narcotics so you can ignore them in searches.


v1.0.15.0 released
This adds a search for rare goods.
I scan the commodity database and pick out everything that isn't a known normal commodity.
There's some false positives due to misspellings et. al. but I scrub the data as best I can.
I'm working on foreign language support as well which will further reduce the false positives.
There seems to be another issue where the OCR tool is picking up rare goods in inventory as rare goods for sale so double check the good against the system and station - they ought to match.


v1.0.14.0
.NET binaries are now signed (which should make virus scanners happier) and I made what I hope is an improvement to the floating-point number localization.


v1.0.13.0
I added a Navigation algorithm. It's nothing fancy, it's not even A*, but it will find more-or-less direct routes between systems.
I'll improve it later, but at least there's something there now


v1.0.12.0
I fixed a localization issue. If your country uses 10,00 vs 10.00 then you need v1.0.12.0 or newer.
 
Last edited:
quick with a nice clean interface. no such thing as too many trading tools. keep up the good work :)
 
2015-38-01T07:38:04 System.InvalidOperationException: Nullable object must have a value.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Nullable`1.get_Value()
at AstroAnalytics.UX.MainForm.btnTrades_Click(Object sender, EventArgs e)


after that, it won't show any future trades. I was searching with 'Bunda' as point of origin, and 40LY as range.

shows promise tho, considerably less irritating than slopey's.

a minor criticism: along with most of the other trade tools, your 'range' and 'distance' units are a bit baffling. range to what? distance from what?
 
I fixed a localization issue. If your country uses 10,00 vs 10.00 then you need v1.0.12.0 or newer.

- - - - - Additional Content Posted / Auto Merge - - - - -

2015-38-01T07:38:04 System.InvalidOperationException: Nullable object must have a value.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Nullable`1.get_Value()
at AstroAnalytics.UX.MainForm.btnTrades_Click(Object sender, EventArgs e)


after that, it won't show any future trades. I was searching with 'Bunda' as point of origin, and 40LY as range.

shows promise tho, considerably less irritating than slopey's.

a minor criticism: along with most of the other trade tools, your 'range' and 'distance' units are a bit baffling. range to what? distance from what?

Range and distances are from (what I call) the Port of Origin.
Spatial coordinates have been normalized to Sol so if you do not select a system then it defaults to distance from Sol.

If you don't restrict the range then the search goes galaxy wide and who knows how long it would take to finish (if ever).

Someone else had that same error (don't know the root-cause yet).
 
I added a Navigation algorithm. It's nothing fancy, it's not even A*, but it will find more-or-less direct routes between systems.

Grab v1.0.13.0 to try it out.
 
.NET binaries are now signed (which should make virus scanners happier) and I made what I hope is an improvement to the floating-point number localization.
Grab v1.0.14.0
 
  • Like (+1)
Reactions: Hap
Had a quick peek, it has a nice clean look about it and offers me options all in one place that I previously would need a couple of websites for. Will give it a spin over the weekend to see how I get on with it.

Thank you for going to the effort of making it as said above we can never have enough of these type of things and for people like myself who don't have the talent to make them ourselves having more choice is always a good thing.
 
Just downloaded it and want to say it looks very nice. I like that it has a navigator & locator so I don't have to use multiple websites to find information.
 
Hey MagmaiKH, just had a quick look at the tool.
Very nice and simple presentation and fast results.
One question, does it only update the EDDN sources when it is first opened?
If so a useful option would be to allow a refresh to be triggered from within the app by the user.

+Rep for what looks like a really useful app.
 
+ rep, always nice to see new tools. I like the layout and combination of tools. But, I just can't figure out the trading pane at all. I always end up with empty list (says some big number trades found (0 trades shown) by the progress bar. I'd also like to be able to target system to system trade info, perhaps in a future version? Good job nevertheless and kudos for using EDDN, love to see things being brought togeather.
 
Hey MagmaiKH, just had a quick look at the tool.
Very nice and simple presentation and fast results.
One question, does it only update the EDDN sources when it is first opened?
If so a useful option would be to allow a refresh to be triggered from within the app by the user.

It is supposed to stay connected to EDDN the entire time it's running and the incoming data will be made available in your next search.
I've had some problems keeping it connected to the network though. I think I have a work-around that will be in v1.0.15.0.

- - - - - Additional Content Posted / Auto Merge - - - - -

+ rep, always nice to see new tools. I like the layout and combination of tools. But, I just can't figure out the trading pane at all. I always end up with empty list (says some big number trades found (0 trades shown) by the progress bar. I'd also like to be able to target system to system trade info, perhaps in a future version? Good job nevertheless and kudos for using EDDN, love to see things being brought togeather.

Go to File->Settings and ensure the trades shown is something like 10000.
Someone else reported a bug similar to this and said it was 0 !.
 
Last edited:
Seems to work pretty well and I like the round trip feature.

How about multithreaded searching? I can see it maxes a single core well when searching large areas, but it would be nice for it to use all 8 of a 5960x ;)

Or, GPU accelerated searching, OpenCL or CUDA, that would be the holy grail I guess....


Any help with this error?

2015-33-03T07:33:54 System.InvalidOperationException: Nullable object must have a value.
at System.Nullable`1.get_Value()
at AstroAnalytics.UX.MainForm.btnTrades_Click(Object sender, EventArgs e)
 
Last edited:
I think my errors may have to do with me searching too large an area (90ly) but that's kind of the idea ;)

Some early culling in the search process (only routes over X per ton round trip) might reduce the impact of this.

It seemed to error when it tried to cull to 10k results, so I set it to cull at 500million.

Watched the process inflate to 6GB ram usage out of 32 on this system (yay 64 bit process so more than 2gb usable), but then got another error.
 
Go to File->Settings and ensure the trades shown is something like 10000.
Someone else reported a bug similar to this and said it was 0 !.

That did the trick, thanks. Must say, starting to like this app quite a lot!
 
it tells me I can buy Consumer technology at 659 CR at Zaragas's Jenner Hub... therefore making 6972 profit to sell it at normal price somewhere... I doubt that?

Just trying to help... kepp up the good work man!
 
it tells me I can buy Consumer technology at 659 CR at Zaragas's Jenner Hub... therefore making 6972 profit to sell it at normal price somewhere... I doubt that?

Just trying to help... kepp up the good work man!

Haven't tried this app myself but that just sounds like bad EDDN data, nothing the maker of this program can fix.
 
it tells me I can buy Consumer technology at 659 CR at Zaragas's Jenner Hub... therefore making 6972 profit to sell it at normal price somewhere... I doubt that?

Just trying to help... kepp up the good work man!

The data files are .csv & .json text files so if you find something wrong you can go fix it.
You can use the file search in Windows Explorer to locate the files for that system/station.

If you send me a message I will fix it in my data files as well.
However, I don't see this anomaly data in my files.
Long-term I will create a way for the data-set to heal with user input.

(People can end up with different things because it's based on data broadcast over EDDN.)

- - - - - Additional Content Posted / Auto Merge - - - - -

Seems to work pretty well and I like the round trip feature.

How about multithreaded searching? I can see it maxes a single core well when searching large areas, but it would be nice for it to use all 8 of a 5960x ;)

Or, GPU accelerated searching, OpenCL or CUDA, that would be the holy grail I guess....


Any help with this error?

2015-33-03T07:33:54 System.InvalidOperationException: Nullable object must have a value.
at System.Nullable`1.get_Value()
at AstroAnalytics.UX.MainForm.btnTrades_Click(Object sender, EventArgs e)

Not a bad idea, if you would please add the multi-threaded searching to the issues on bitbucket.

This exception has come up several times for multiple people.
I don't have a root cause yet - please add this issue to bitbucket as well.
Other people have reported that sometimes the same search will work the second time they try it (have to restart).
 
Back
Top Bottom