{% extends "journal/base.html" %} {% block title %}Import CSV — Setup Log Pro{% endblock %} {% block content %}

Import CSV

{% if not license_info %}

No license found. The forms below still accept a file and Import still submits, but nothing will actually import until a license file is installed — see the footer for how to get one. Manually adding trades, and everything else in the app, works either way — up to a free limit of 200 trades total, after which a license is needed for that too.

{% endif %}

Risk per trade (used for R-multiples) — remembered per portfolio:

{% csrf_token %} {{ risk_form.risk_per_trade }}
{{ portfolio_risks|json_script:"portfolio-risks" }}

Import from DAS Trader Pro

Upload a DAS Trader Pro export. Since the file only has time-of-day, pick the trading date it belongs to.

{% csrf_token %}
{% if form.errors %}

{% for field in form %}{% for error in field.errors %}{{ field.label }}: {{ error }} {% endfor %}{% endfor %}

{% endif %}

Import from TradingView

Upload a TradingView per-fill trade-history export (Symbol, Side, Quantity, Fill price, Time, Net amount, Commission). Each row carries its own date and time, so unlike DAS this can cover more than one trading day in a single file. Commission is read per fill and summed into each trade's real commission, instead of the default-rate estimate used for sources that don't provide one.

{% csrf_token %}
{% if tradingview_form.errors %}

{% for field in tradingview_form %}{% for error in field.errors %}{{ field.label }}: {{ error }} {% endfor %}{% endfor %}

{% endif %}

Import from TradeZella

Upload a TradeZella trade-history export. Each row is already a full trade (not raw fills) — defaults match TradeZella's own column names, adjust below if your export or preference differs. A mistake value of "no mistake" is always treated as none, whichever column it's mapped from.

{% csrf_token %}
Column mapping (defaults usually work — expand to adjust)
{% if tradezella_form.errors %}

{% for field in tradezella_form %}{% for error in field.errors %}{{ field.label }}: {{ error }} {% endfor %}{% endfor %}

{% endif %}

Import from Tradersync/Backtester Pro

Upload a TraderSync trade-history export, or a CSV exported from Backtester Pro's run results page. Each row is already a full trade (not raw fills), so it's built directly from the columns mapped below — adjust any of them if your export doesn't match the defaults. Only Type = SHARE rows are imported; options/spreads aren't supported.

{% csrf_token %}
Column mapping (defaults usually work — expand to adjust)
{% if tradersync_form.errors %}

{% for field in tradersync_form %}{% for error in field.errors %}{{ field.label }}: {{ error }} {% endfor %}{% endfor %}

{% endif %}
{% endblock %}