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

For me with the TDHelper the following error message appears:

1669381368752.png


It also switches to the backup server (eddb.io) immediately. I had no problems with the backup server.
 
Last edited:
Sorry, I had an accident, fell down the stairs and that tended to make me forget about such things. Fortunately, I have an SSH client for my android tablet.~

In other news, if anyone is interested in helping with a bit of testing and is comfortable with the tech, I want to see if we can use pypy to speed things up, or if it breaks things. I'll be doing some testing, but other datapoints would help.
 
Sorry, I had an accident, fell down the stairs and that tended to make me forget about such things. Fortunately, I have an SSH client for my android tablet.~

In other news, if anyone is interested in helping with a bit of testing and is comfortable with the tech, I want to see if we can use pypy to speed things up, or if it breaks things. I'll be doing some testing, but other datapoints would help.
Hello Tromador, all not so wild ...
The main thing is that you are fit again, the rest will find itself.
Get well soon !
 
In light of the upcoming Legacy galaxy, I thought it might be prudent to address some things as they relate to using TD in Legacy mode:

The consensus of most of ED's tpa (third-party application) developers is not to double the workload, so it is unlikely that EDDB or EDDN will provide any market data at all for the Legacy galaxy. Since those are the sources for TD's crowd-sourced market database, this means crowd-sourced data for the Legacy market will most likely not be available, and users will have to provide the data manually, such as by importing a *.prices file exported from EDMC after visiting a Legacy station.

If anyone wishes to play in both Live and Legacy, and use TD in both, TD can be run on multiple databases, so running TD in (for example) ".../EDLive" and ".../EDLegacy" folders, depending on which galaxy one is playing in, is sufficient to workaround any potential issues. Just remember not to import using eddblink_plug on Legacy.

(If anybody really wanted to, they could probably create a script for a server with TD installed that imported into TD, and then deleted, *.prices files found in a folder, made its own *.prices file(s) available for public download, and allowed users to submit their own *.prices files (causing that script to run TD's import), the Legacy galaxy could have a Maddavo-esque server like in the distant past. I think that might actually be how the original did it, now I think on it.)
 
Have been looking at this for a little while, finally got round to giving it a go and worked a treat at making a fair amount of money in a starter ship in half a dozen trades. I do have a few questions I'm hoping I can get some clarification on, as I'm not entirely clear after reviewing the wiki/documentation.

Note: I've installed TD using the pip install method to the folder C:/Elite Dangerous/TD (aka my working directory "CWD"). The .exe files were installed by pip to C:\Program Files\Python311\Scripts. Used the terminal window as admin to run trade import eddblink which appears to have worked correctly, creating a data subfolder containing the database files within my CWD.

I'm using EDMC and was intending to output TD market data files and then update the database from these, however my attempts at this have been unsuccessful.

1. What should I use as the destination folder in EDMC for the output files? In the screenshot on the wiki it uses C:/Trade. I had originally used my CWD, however had problems trying to run the update command and want to verify if the issue may be related to the output folder I selected.

2. Which folder should I be located in when updating the database with the EDMC output files? Again, I tried running this from within the CWD and it failed to recognise the .prices files, even when I've explicitly provided the file path/name in the command line.

3. The wiki setup guide has the import command for EDMC files as follow - is "myfile.prices meant to be used as a literal, or is an example only (i.e. replace myfile.prices with name of actual prices file)?
$ trade.py import myfile.prices

4. The wiki user guide suggests that wildcards can be used to import data:
trade.py import mystation.prices
trade.py import *.prices
If using the wildcard, will this effectively act as a "batch" update by updating all files, or would I need to import using the edmc_batch plugin?

Sorry for all the questions. I've read through the last dozen pages or so of the thread and I noticed that there's definitely a trend towards encouraging the use of TDHelper. Unfortunately, I've had zero luck getting the app to read my commander data and the github wiki has very limited information and seems to date back to 2018. To be honest, I feel quite comfortable executing through the command line over a gui provided I can work out the last couple of kinks in the update process.
 
Have been looking at this for a little while, finally got round to giving it a go and worked a treat at making a fair amount of money in a starter ship in half a dozen trades. I do have a few questions I'm hoping I can get some clarification on, as I'm not entirely clear after reviewing the wiki/documentation.

Note: I've installed TD using the pip install method to the folder C:/Elite Dangerous/TD (aka my working directory "CWD"). The .exe files were installed by pip to C:\Program Files\Python311\Scripts. Used the terminal window as admin to run trade import eddblink which appears to have worked correctly, creating a data subfolder containing the database files within my CWD.
Just to clarify, "C:/Elite Dangerous/TD" is the location of your database, not your installation. Your CWD is the directory you are in when you run the trade command, so if you ran it from for example "C:/Elite Dangerous/TD (legacy)" instead, you would have a separate database with the same TD install.

This may seem nit picky and if so my apologies.

I'm using EDMC and was intending to output TD market data files and then update the database from these, however my attempts at this have been unsuccessful.

1. What should I use as the destination folder in EDMC for the output files? In the screenshot on the wiki it uses C:/Trade. I had originally used my CWD, however had problems trying to run the update command and want to verify if the issue may be related to the output folder I selected.
As long as you know what the location is, it doesn't matter.
2. Which folder should I be located in when updating the database with the EDMC output files? Again, I tried running this from within the CWD and it failed to recognise the .prices files, even when I've explicitly provided the file path/name in the command line.
Please provide examples including the output, like so:
Code:
C:\TradeDangerous\test>trade import -h
C:\Program Files\Python\Python3.11\Scripts\trade: TradeDangerous help

usage: trade import [--plug PLUG] [--url URL] [--download] [--ignore-unknown] [--option PLUGINOPTIONS]
                    [--reset-all | --merge-import] [--help] [--debug] [--detail] [--color] [--quiet] [--db DBFILENAME]
                    [--cwd CWD] [--link-ly MAXSYSTEMLINKLY]
                    [filename]

Optional Switches:
  filename              Name of the file to read, or, used with '--url', will save the downloaded file as this name.
  --plug PLUG, -P PLUG  Use the specified import plugin.
  --url URL             URL to download filename (default "import.prices") from.
  --download            Stop after downloading.
  --ignore-unknown, -i  Data for systems, stations and items that are not recognized is reported as warning but
                        skipped.
  --option PLUGINOPTIONS, -O PLUGINOPTIONS
                        Provides a way to pass additional arguments to plugins.
  --reset-all           Clear the database before importing.
  --merge-import, -M    Merge the import file with the existing local database: only loads values that have an
                        explicit entry with a newer timestamp than the existing data. Local values are only removed if
                        there is an explicit entry with a 0/0 demand/supply price.

Common Switches:
  --help, -h            Show this help message and exit.
  --debug, -w           Enable/raise level of diagnostic output.
  --detail, -v          Increase level of detail in output.
  --color, -c           Add color to output for enhanced readability.
  --quiet, -q           Reduce level of detail in output.
  --db DBFILENAME       Specify location of the SQLite database.
  --cwd CWD, -C CWD     Change the working directory file accesses are made from.
  --link-ly MAXSYSTEMLINKLY, -L MAXSYSTEMLINKLY
                        Maximum lightyears between systems to be considered linked.

This sub-command provides a plugin infrastructure, and comes with a module to import data from Maddavo's Market Share
(http://www.davek.com.au/td/). See "import -P maddavo -O help" for more help.
This will help to clarify what exactly you are trying and thus what is going wrong.

For example, if you ran >trade import C:/Elite Dangerous/TD/example_file.prices you would get the following:
Code:
>trade import C:/Elite Dangerous/TD/edmc-export.prices
P:\Program Files\Python\Python3.11\Scripts\trade: ERROR: unrecognized arguments: Dangerous/TD/edmc-export.prices

usage: trade {import} ...
This is because paths that include a space must be quoted.

3. The wiki setup guide has the import command for EDMC files as follow - is "myfile.prices meant to be used as a literal, or is an example only (i.e. replace myfile.prices with name of actual prices file)?
'myfiles.prices' is an example.

4. The wiki user guide suggests that wildcards can be used to import data:

If using the wildcard, will this effectively act as a "batch" update by updating all files, or would I need to import using the edmc_batch plugin?
Wildcards can be used in filepaths.
If you ran >trade import *.prices, TD would attempt to import all .prices files it found in that folder.
Sorry for all the questions. I've read through the last dozen pages or so of the thread and I noticed that there's definitely a trend towards encouraging the use of TDHelper. Unfortunately, I've had zero luck getting the app to read my commander data and the github wiki has very limited information and seems to date back to 2018. To be honest, I feel quite comfortable executing through the command line over a gui provided I can work out the last couple of kinks in the update process.
I have no idea if TDHelper still works, I don't use it myself. The original developer quit working on it, and I haven't heard from the current maintainer in years. I'm not surprised it doesn't work anymore.

TD has a very basic gui if you want to try it: >tradegui. It's not great, and I'm being very slow at making it better, but I'd say it meets minimum usability requirements.
 
Last edited:
Strych. The TD Helper that you refer to is still alive and kicking. You can find the latest version 3.1.1.0 at https://github.com/JarangMandi/TDHelper where JarangMandi is doing a good job keeping it going. I don't think he has a huge amount of time to devote to it but is currently in a workable state! There are a few on this forum that use it and can probably help you out if you get stuck.
 
With the sad demise of EDDB, TD server will be down until further notice, as we relied on information from that source.

Fortunately EDDN is still up and running, so eyeonus is looking into different ways of accessing the data we need to continue producing the high quality output you are used to.
We will have more news soon, I hope.
 
Does anyone have a copy of stations.jsonl and systems_populated.jsonl from prior to EDDB going down? I can get something working if I can get those. The only copies I presently have are the HTML of the goodbye notice and none of the data, which will make TD choke.

Eyeonus has sorted the server side, so we are now receiving new data, but TD itself also needs some work so I need to use the old files to give it something to think about until we work out another solution.
 
Does anyone have a copy of stations.jsonl and systems_populated.jsonl from prior to EDDB going down? I can get something working if I can get those. The only copies I presently have are the HTML of the goodbye notice and none of the data, which will make TD choke.

Eyeonus has sorted the server side, so we are now receiving new data, but TD itself also needs some work so I need to use the old files to give it something to think about until we work out another solution.
Bravada saved the dumps after the announcement: https://edgalaxydata.space/EDDB/dumps/
 
Pleased to say we are back up and running. With caveats:

1: System data is based on the information recently saved by Bravada.
2: Whilst we are testing it should make a new full dump every hour, so expect to be downloading more data more often.
3: If the hourly dumps (which are the new stuff) don't work, then the live file will just keep growing until we (by which I mean eyeonus) fixes it. If they do, I will reduce the frequency to something more sane.
4: If my server goes down, it will try and download from the now defunct EDDB, which will just cause it to choke, so hopefully my end stays up. In fact, the only reason the server went down this time, is because it too choked on the non-existent EDDB data.

So you should be able to get new data from my server. One way or another.
 
Hello ... 🙋‍♂️
Question for the specialists: Is it possible to automatically transfer the market data from the station you are docking to the TD database ?
Background: I have reset my second account and now play without external data, TD with its own database (solo).
Until now I transferred the data of the stations via EDMC and the corresponding plugin by hand (trade import -P edmc_batch -O folder=C:\Users\User\Desktop\EDMC).
Of course, this is a bit laborious. It would be nice if there would be an automatism (ok, I already thought about Voice Attack ...).
Thanks for some tips :giggle:
 
I did that and was using the journal and edapi plugin for that, like:
Code:
./trade.py import -P journal
./trade.py import -P edapi -O save,csvs
I can't tell you if this still works. The journal plugin need the environment variable FDEVJRNDIR set to the journal directory and the edapi plugin will ask you to log into your fdev account (like EDMC).

Code:
$ ./trade.py import -P journal -O help
Plugin that parses the Journal file and add or update systems and stations.

Options supported by this plugin:
--opt=date          Only parse Journal files from date, format=[YY]YY[-MM[-DD]].
--opt=last          Only parse the last (newest) Journal file.
--opt=show          Only show the system or station.  Don't update the DB.

You can also chain options together, e.g.:
  --opt=show,last,date

$ ./trade.py import -P edapi -O help
Plugin that downloads market and ship vendor data from the Elite Dangerous
mobile API.

Options supported by this plugin:
--opt=csvs          Merge shipyards into ShipVendor.csv.
--opt=edcd          Call the EDCD plugin first.
--opt=eddn          Post market, shipyard and outfitting to EDDN.
--opt=login         Ask for login credentials.
--opt=name          Do not obfuscate commander name for EDDN submit.
--opt=save          Save the API response (tmp/profile.YYYYMMDD_HHMMSS.json).
--opt=test          Test the plugin with a json file (test=[FILENAME]).
--opt=warn          Ask for station update if a API<->DB diff is encountered.

You can also chain options together, e.g.:
  --opt=csvs,edcd,eddn
 
Last edited:
Hello @gazelle , thank you for your tip (y):). Unfortunately I have a problem with this environment variable.
I play on a Windoof PC and I looked at the hint to set the variable in the text file of TD\scripts\README.txt, but I can't deal with it.
Is there any way to make it easier ? :unsure:
 
Hello @gazelle , thank you for your tip (y):). Unfortunately I have a problem with this environment variable.
I play on a Windoof PC and I looked at the hint to set the variable in the text file of TD\scripts\README.txt, but I can't deal with it.
Is there any way to make it easier ? :unsure:
Hm, I don't know how you run TD. On windows you can set up environment variables over a GUI. The path to the gui in german win10 is:
Dieser PC -> Eigenschaften -> Erweiterte Systemeinstellungen -> Umgebungsvaribalen... -> Neu... (oberes)
1681591653495.png
 
I can say that edapi plugin hasn't been touched since 2019 when eyeonus made a change for Apple Mac., it may (or more likely), may not work. If it doesn't, you might want to raise an issue on git @ https://github.com/eyeonus/Trade-Dangerous/issues.

The README is even older. Last one to touch it was Gazelle, but really it's original KFSOne vintage. It describes a method to install the common default GNU/Linux shell Bash and set environment from there, so it's probably not what you want, dating from way before any kind of GUI was available for TD.
From command line, you can begin by setting a windows variable in one of two ways:

Temporarily (for that instance of CMD only)
Code:
C:\WINDOWS\System32>set FDEVJRNDIR=C:"\Path\to\journals"

Or permanently (using a CMD window with admin privs)
Code:
C:\WINDOWS\System32>setx FDEVJRNDIR "C:\Path\To\Journals" /m

Personally, unless you are sure, I would suggest setting a temp variable, because if you mess up with using setx, you have to use regedit to remove it, no easy backward step!

Dunno what version of windows you are on. From windows 11, if you press start and type Erweiterte Systemeinstellungen Advanced System Settings, it will get you to a screen with an Environment Variable button and you can set a user variable from there. On Windows 10, what Bernd said. Honestly it's probably the same thing, but I was too lazy to look.
 
Last edited:
Back
Top Bottom