173 lines
5.4 KiB
Markdown
173 lines
5.4 KiB
Markdown
# tr2gf
|
|
|
|
Trade Republic transaction export converter for Ghostfolio.
|
|
|
|
`tr2gf.sh` converts a Trade Republic transaction export CSV into one Ghostfolio-compatible CSV file per selected ISIN or symbol. The script is POSIX-compliant, supports config-driven symbol and source mappings, optional CLI overrides, count-only runs and per-symbol export file naming based on the latest matching transaction date.
|
|
|
|
## Outline
|
|
|
|
- [Features](#features)
|
|
- [Repository layout](#repository-layout)
|
|
- [Requirements](#requirements)
|
|
- [Installation](#installation)
|
|
- [Configuration](#configuration)
|
|
- [Usage](#usage)
|
|
- [Examples](#examples)
|
|
- [Output format](#output-format)
|
|
- [Logging and troubleshooting](#logging-and-troubleshooting)
|
|
- [License](#license)
|
|
- [Authors](#authors)
|
|
- [Project Home](#project-home)
|
|
|
|
## Features
|
|
|
|
- Convert a Trade Republic CSV export into one Ghostfolio-compatible CSV file per matching symbol.
|
|
- Export `BUY` and `SELL` transactions and suppress matching `BUY_CANCELLED` records.
|
|
- Load runtime defaults and symbol/source mappings from a local `vars` file.
|
|
- Override symbol codes per selector on the command line via `-S` or `--symbol`.
|
|
- Run in count-only mode without writing export files.
|
|
- Keep the implementation portable with `#!/bin/sh` and standard Unix tools such as `awk`, `sed`, `grep` and `date`.
|
|
|
|
## Repository layout
|
|
|
|
```text
|
|
.
|
|
├── .gitignore
|
|
├── tr2gf.sh
|
|
├── vars.example
|
|
├── README.md
|
|
├── CHANGELOG.md
|
|
└── LICENSE
|
|
```
|
|
|
|
## Requirements
|
|
|
|
The script checks for the presence of `awk`, `sed`, `grep` and `date` at runtime and it expects a readable source CSV plus an output directory when not running in count-only mode.
|
|
|
|
## Installation
|
|
|
|
1. Clone the repository.
|
|
2. Copy `vars.example` to `vars`.
|
|
3. Adjust the runtime defaults and symbol mappings for the local environment.
|
|
4. Make `tr2gf.sh` executable.
|
|
5. Run a help or count-only command first to validate the setup.
|
|
|
|
```sh
|
|
git clone https://github.com/sduesterhaupt/tr2gf.git
|
|
|
|
cd tr2gf
|
|
|
|
cp vars.example vars
|
|
chmod 0750 tr2gf.sh
|
|
chmod 0640 vars
|
|
|
|
./tr2gf.sh help
|
|
```
|
|
|
|
The `tr2gf.sh` script is executable only for the repository owner, and the `vars` file is readable by owner and group to keep configuration and symbol mappings under tighter control.
|
|
|
|
## Configuration
|
|
|
|
The script initializes built-in defaults for the source file, output directory, account name, logging and default data sources, then loads overrides from a local `vars` file if present.
|
|
|
|
Supported configurable keys loaded from `vars` are:
|
|
|
|
- `TR2GF_SOURCE_FILE`
|
|
- `TR2GF_OUTPUT_DIR`
|
|
- `TR2GF_ACCOUNT_NAME`
|
|
- `TR2GF_YAHOO_SOURCE`
|
|
- `TR2GF_CRYPTO_SOURCE`
|
|
- `TR2GF_LOG_DIR`
|
|
- `TR2GF_LOG_FILE`
|
|
- `TR2GF_LOG_LEVEL`
|
|
- `TR2GF_BATCH`
|
|
|
|
Symbol mappings are read as colon-separated entries in the form `SYMBOL:CODE[:SOURCE]`. When no source is set, known crypto symbols default to the configured crypto data source and all other symbols default to the configured Yahoo source.
|
|
|
|
## Usage
|
|
|
|
General command form:
|
|
|
|
```sh
|
|
./tr2gf.sh [options] TARGET [target-options]
|
|
```
|
|
|
|
Global options implemented by the script:
|
|
|
|
- `-f FILE` define a specific Trade Republic source CSV.
|
|
- `-o DIR` define a specific export output directory.
|
|
- `-a NAME` define the account name written to the export CSV.
|
|
- `-c` count matching `BUY` and `SELL` transactions only.
|
|
- `-h`, `--help` show usage information.
|
|
|
|
Target modes implemented by the script:
|
|
|
|
- `ALL` export all matching `BUY` and `SELL` transactions found in the source CSV.
|
|
- `ISIN [target-opts]` export transactions only for the specified selectors (e.g. ISINs and crypto tickers).
|
|
|
|
Target options implemented by the script (per selector):
|
|
|
|
- `-S SYMBOL`
|
|
- `--symbol SYMBOL`
|
|
- `--symbol=SYMBOL`
|
|
|
|
## Examples
|
|
|
|
Export all supported transactions into one file per symbol:
|
|
|
|
```sh
|
|
./tr2gf.sh ALL
|
|
```
|
|
|
|
Count transactions for selected selectors without writing files:
|
|
|
|
```sh
|
|
./tr2gf.sh -c IE00B4L5Y983 BTC
|
|
```
|
|
|
|
Export a selected symbol with a CLI override for the target code:
|
|
|
|
```sh
|
|
./tr2gf.sh IE00BK5BQT80 -S VWCE.DE
|
|
```
|
|
|
|
Write exports into a dedicated directory and set the Ghostfolio account label:
|
|
|
|
```sh
|
|
./tr2gf.sh -o ./exports -a "Trade Republic" ALL
|
|
```
|
|
|
|
## Output format
|
|
|
|
Each generated file starts with the Ghostfolio-compatible header `Date,Code,DataSource,Currency,Price,Quantity,Action,Fee,Account,Note` and the filename is prefixed with the latest matching transaction date in `YYMMDD` form.
|
|
|
|
The generated `Note` field uses the pattern `ISIN <symbol>`, while the `Action` column is mapped to `buy` or `sell` and fees are written as absolute numeric values.
|
|
|
|
## Logging and troubleshooting
|
|
|
|
The script contains a file-based logging system with severity levels from `0` to `5`, configurable via `TR2GF_LOG_LEVEL` and writes to `TR2GF_LOG_FILE` when enabled.
|
|
|
|
For troubleshooting, useful first checks are:
|
|
|
|
```sh
|
|
./tr2gf.sh help
|
|
./tr2gf.sh -c ALL
|
|
sed -n '1,5p' ./TradeRepublic_TransactionExport.csv
|
|
```
|
|
|
|
Adjust the filename in the example above if your Trade Republic export has a date prefix or a different name.
|
|
|
|
Typical failure points are a missing source CSV, a wrong output directory, absent required commands or mismatched CSV headers such as missing `date`, `type`, `symbol`, `name`, `shares`, `price`, `fee` or `currency` columns.
|
|
|
|
## License
|
|
|
|
This project is published under the MIT License. See `LICENSE` for details.
|
|
|
|
## Authors
|
|
|
|
- [Stephan Düsterhaupt](xmpp:me@jabber.stephanduesterhaupt.de)
|
|
|
|
## Project Home
|
|
|
|
Project Home: [https://dev.town-square.de/sduesterhaupt/tr2gf](https://dev.town-square.de/sduesterhaupt/tr2gf)
|