Skip to main content

Cent vs standard account

NOVOSKY supports two account types via config.json → "account_type". The trading logic is identical — only how the balance is displayed and sized differs.
Cent accountStandard account
config.json setting"account_type": "cent""account_type": "standard"
Example deposit500 USC ≈ $5 USD$500 USD
Telegram P/L display+55 USC ($0.55)+$0.55
Telegram balance681 USC ($6.81)$681.00
2% risk per trade2% of 6.81=6.81 = 0.142% of 681=681 = 13.62
Recommended pipeline: start on a cent account to validate the full system end-to-end (signals, execution, Telegram alerts, risk sizing), then graduate to a standard account with identical config.

How it works internally

The API returns balance/equity in the account’s native currency. For cent accounts that is USC; for standard accounts that is USD. The bot normalises balance to USD at the API boundary (_api_balance_to_usd()), so all risk sizing, P/L tracking, and growth calculations are always in USD. format_currency() then converts back to USC for display when account_type = "cent". Deal profits from the API (/history/deals → profit) are always returned in USD regardless of account type — no conversion needed.

Switching account type

Only change one line in config.json. No retraining, no model changes, no other config changes needed.
"account_type": "cent"      // VT Markets Cent — balance in USC
"account_type": "standard"  // Standard account — balance in USD

Spread values per broker

Spread is passed to the backtester to correctly simulate execution costs. Using the wrong value inflates win rate by 5–8 percentage points.
BrokerAccount type--spread value
VT Markets BTCUSDCent or Standard16.95
IC Markets RAWStandard3.0
Spread from /rates is returned in raw points. For BTCUSD, 1695 points = $16.95 round-turn. trading.py handles this conversion automatically — you don’t need to adjust it. The --spread flag for backtesting takes the dollar value.

Broker diagnostics

Before going live on a new broker, check lot limits, margin requirements, and spread:
python scripts/check_broker_limits.py
This prints:
  • Minimum and maximum lot size
  • Lot step
  • Required margin at current price
  • Current spread in points and dollars
  • Swap rates (long and short)
  • Stops level (minimum SL/TP distance)

Backtesting with broker-specific settings

# VT Markets Cent (default)
python backtest_config.py \
  --balance 500 --no-swap --leverage 500 \
  --spread 16.95 --oos-only --no-chart

# VT Markets Cent with lot cap
python backtest_config.py \
  --balance 500 --no-swap --leverage 500 \
  --spread 16.95 --oos-only --cent-account \
  --max-lot 0.1 --no-chart

# IC Markets RAW
python backtest_config.py \
  --balance 10000 --days 365 --swap-long 20 \
  --leverage 200 --spread 3.0 --no-chart