Release Trade Dangerous (Est. 2015) Power user's highly configurable trade optimizer

Release version 12.20
✨ New Feature - Popout list editors with autocomplete✨
(nav via & avoid and buy search list so far)

various bugfixes and text corrections.

New windows release. Fixes the above error.


Screenshot 2026-04-10 223845.png
 
This is what I see when I start the program:
As it happened, I had something new I could release anyway, but please as I've said many times, if there's a problem - please raise a ticket on github. You got lucky this time, but normally you'll get my attention much more quickly on Git than on here.
 
You guys can't possibly be using all the functionality in TD.

How do I know?

Release: 12.20.2
Fixes: --via in trade run not working at all, not ever, no sir.

So I know you haven't been using it, because nobody ticketed that you couldn't ever get a -via run to create a route. Well, now you can.
I'm not going to cut a new windows installer quite yet. I was working on the autocomplete for via in run when my testing always said it couldn't find a route and in the end I just didn't believe it. So I'm going to sort out avoid first and see if it has the same issue - THEN when that is done I'll cut a windows installer.
 
OK It's done.

Release: 12.21.0
Full autocomplete in GUI run workspace, for via and avoid
Windows release
Full Changelog

Some notes for you all.

When you're choosing via - you can just choose a system, or you can choose a system and a station.
For avoid, you can do that and you can also avoid specific commodities, like I dunno bertrandite, or water purifiers and systems, and specific stations. OR A MIXTURE OF ALL THREE.

Similarly for buying, you can search on items, categories, ships (if you imported vendors) or a mixture of all three.

If you are just getting basic routes from here to there, you're not using the power of this amazing tool. You all should be writing tickets that "this super feature is broken!" It shouldn't be me testing new cool features in the GUI exposing these bugs.

Remember. This isn't just trade.

This is Trade: Dangerous!
 
Release: 12.22.0
Feature: Ship insurance is now saved as part of the ship's profile, not hidden in extended options. Should have always had it like that. Brain was clearly having a break when I did the original setup.
Under the hood: I've configured the workflows on github so that any time we push a new release, the corresponding windows installer will be released. No more need for manual building and no gaps between releases.

I've got one little change coming up for the import - I've noticed there's no option to import the ship vendors without also importing the huge and slow upgrade vendors, I want to fix that - then I'm done with the GUI for now and the flurry of new releases and features will slow down. I'll still be working on TD, but looking at speed and efficiency. We're still using a lot of mechanisms from 2015 and there is much that can be done to improve responsiveness, which I'm sure you guys will appreciate.

That said, if anyone has requests or suggestions, go ahead and post. If you inspire me, I'll see about implementing them. Any issues, please as ever post a ticket.
 
update detector that can prompt user to install update
(More for the Windows installer version but would also be useful for the pip version as well)
 
Release: 12.22.1
Expose shipvend for GUI.

This is the small change I promised. Users can now import the ship vendor table. Note that this isn't quite the same as how it's done in the CLI. Refer to the help in the Import screen. Deliberately different to reflect slightly different workflow in the GUI, but shipvend overrides skipvend - downloading the ships table. Due to the way eddblink is coded, you can't combine this with clean. Honestly I should alter eddblink but I just... not right now, sorry. I don't have any enthusiasm for that.

update detector that can prompt user to install update
(More for the Windows installer version but would also be useful for the pip version as well)
That would be cool. If it works in the GUI, it works in the GUI, doesn't matter if it's the native windows version or not. When I have some energy for GUI again I'll certainly look at that.

Again I've no plans for further functionality changes, so unless there's a bug that needs fixed, this will be the stable version for a while. The big refactoring work I'm doing in a separate fork, so that won't be released until it's ready. This will include changes to the DB schema so I'm not releasing it piecemeal. When it's done, it will be a major release. Version 13.
 
As I'm working through v13 and testing, I'm seeing silly numbers - here's some examples (which btw, the new code did in less than 30 seconds, the old path takes long enough I gave up waiting after 10 minutes)

Code:
trade run --capacity 200 --credits 100000000 --ly-per 30 --jumps-per 0 --hops 1
Searching with neither --from nor --to scans the whole galaxy for the single best trade. This is much slower than an anchored search and can take several minutes.
Continue? [y/N] y
Col 285 Sector DW-U c3-8/Weis Point -> Col 285 Sector DW-U c3-8/QFJ-40H
Total gain: 933303600 cr
Final credits: 1033303600 cr
Practical score: 986,988,690

Hop 1:
  Buy at Col 285 Sector DW-U c3-8/Weis Point
    200 x Gold @ 44782 cr -> 4711300 cr (+933303600 cr)
  Fly to Col 285 Sector DW-U c3-8/QFJ-40H
    Same-system supercruise
  Sell cargo for 933303600 cr gain

trade run --capacity 200 --credits 100000000 --ly-per 30 --jumps-per 0 --hops 1 --age 5
Searching with neither --from nor --to scans the whole galaxy for the single best trade. This is much slower than an anchored search and can take several minutes.
Continue? [y/N] y
Teaka/Valdes Dock -> Teaka/J1V-32W
Total gain: 82844600 cr
Final credits: 182844600 cr
Practical score: 87,765,065

Hop 1:
  Buy at Teaka/Valdes Dock
    200 x Steel @ 3677 cr -> 417900 cr (+82844600 cr)
  Fly to Teaka/J1V-32W
    Same-system supercruise
  Sell cargo for 82844600 cr gain

Open it up a bit and it will ALWAYS be Titan Drive Components.

Code:
trade run --capacity 200 --credits 100000000 --ly-per 30 --jumps-per 2 --hops
1
Searching with neither --from nor --to scans the whole galaxy for the single best trade. This is much slower than an anchored search and can take several minutes.
Continue? [y/N] y
Fomalhaut/G7X-04T -> Lalande 21185/JZH-85N
Total gain: 1664712216 cr
Final credits: 1764712216 cr
Practical score: 1,766,497,056

Hop 1:
  Buy at Fomalhaut/G7X-04T
    46 x Titan Drive Component @ 18104 cr -> 36207500 cr (+1664712216 cr)
  Fly to Lalande 21185/JZH-85N
    2 jump(s), 53.92 ly: Fomalhaut -> WISE J000517 -> Lalande 21185
  Sell cargo for 1664712216 cr gain

Furthermore this is always with carriers. I dunno if players are using silly prices to transfer money about or what's going on, but TD and every other trade app lags. The FDEV API gives the market data before any trading takes place, so we always get the state of the market when the commander arrives, not what it's like when they've done their thing and are leaving, so even if there really are players buying and selling these commodities for these prices, I doubt the offers are still there by the time we know about them.

So we have a control in place for this already.

Code:
 --max-gain-per-ton credits
 --mgpt credits
   DEFAULT: 0 (disabled)
   Sets an upper threshold on the maximum profit/ton that TD will believe.
   This is a way to ignore obviously bad data.
   e.g.
     --mgpt 2000
     --mgpt 2k

But I'm wondering if we should have a default in place to filter the most outrageous claims even if the user chooses not to use --mgpt. I would set such a default as quite high - a user can still lower that if they are especially sceptical - but still the numbers I'm seeing a plain dumb.

So I'm wondering if you think I should implement such a default in the upcoming version 13. If so, what threshold do you think is reasonable?
 
I have just found a planetary station with a market and tried to do a trade run. I get a message stating this station is flagged as having no market when there clearly is one asa I am looking at it! I thought I'd update it using the trade station command but that says it has been deprecated. Is there another method of updating stations with landing pads, markets, outfitting, etc?
 
Last edited:
I have just found a planetary station with a market and tried to do a trade run. I get a message stating this station is flagged as having no market when there clearly is one asa I am looking at it! I thought I'd update it using the trade station command but that says it has been deprecated. Is there another method of updating stations with landing pads, markets, outfitting, etc?

trade station is dead because it dates back to 2014 ways of doing things and wouldn't work with modern TD. It will be completely removed in the upcoming v13.

If you want to update TD directly from your travels, we recommend using Gazelle's EDMC plugin
 
Just to note I presume there have been some odd messages flying around the network. I was doing some testing a couple of days back and there was a station which our data showed as being just weird, Inara showed as not having a market at all, and spansh showed normal.

The weird was a problem in our logic (affects 0.0005% of stations, fixed in upcoming v13, not fixing a rounding error in live), no clue why other data aggregators disagreed, but it's reassuring to know it's not just us and indeed Inara now shows the station with a market.

We do filter out a lot of messages only accepting from a whitelist of apps, EDMC, EDDiscovery and a couple of others, but still apparently bad messages can arrive and be processed.
 
There will be a short downtime tomorrow morning (UK time). This is to clone the server so I can test some upgrade scripts without risking the live one.
 
Trade Dangerous Version 13. Not too much longer now. Prepare for the EPIC speed increase. It rendered trade run --from sol --to lave --hops 5 --jumps-per 2 --capacity 200 --credits 5000000 --ly-per 20 --fc n, on the full database in 18 seconds.

Screenshot 2026-06-20 011036.png
 
Trade Dangerous, version 13 has gone gold!

Some highlights:

1. Brand-new route planner for trade run
run was rebuilt from scratch. The old engine loaded the entire galaxy into memory on every single run before it did any maths. The new planner asks the database only for what a given route actually needs. Same route shapes as before — fixed, open-origin, open-destination, unanchored — but it no longer drags the whole dataset along for the ride.

2. The whole application has become dramatically faster
This isn't just run. Every lookup-heavy command came off the "load everything first" model. Solid figures from live data:
  • local: ~7s → under 1s (about 8× faster)
  • market: effectively instant
  • sell: ~7.8s → ~0.8s warm (about 9.5×)
  • buy: ~7× faster warm

3. GUI overhaul — including a proper route checklist
The standout new feature: a detached, movable checklist window that walks you through a route hop by hop — what to sell, what to buy, the jumps to the next stop. You can have several route checklists open at once. Also added: importing your commander's ship details from the game journal, and copy-from-results.

4. trade direct — "Trade 2.0"
The old trade trade is rebuilt and renamed trade direct. System-or-station endpoints on either side, a --best mode, [system station hops, freshness filtering, and a proper summary header. trade still works as an alias, so nobody's muscle memory breaks.

————————————————————

I'm planning to release on 1st July — though with any such deadline, it depends somewhat on my health on the day. If I'm having a bad one, I'm not doing a complex release if my head's not in the game.

————————————————————

⚠ Important: Read this before you upgrade
v13 is a clean break. It changes the database schema and does not upgrade your existing database in place — you do a fresh, clean import.

The break reaches the server too: the data feed will no longer emit anything a v12 client can import. There's no overlap period and no staying put. You MUST update to v13 first, then do a clean import — in that order.

A number of commands and options have changed or been removed as well. If you run Trade Dangerous from scripts, or from memory, check the updated documentation before you assume an old invocation still works.
 
Last edited:
v13.1 Trade Dangerous on Window 11 after working fine for several days now reports Smart App Control blocked..may be Unsafe. So any help/thoughts to resolve welcome
 
Back
Top Bottom