Document Version: 1.0
Last Updated: February 2, 2026
For: Apple App Review / Google Play Review
Purpose: Demonstrate safety of NIJA’s independent trading model
CRITICAL SAFETY GUARANTEE
Tier-based capital protection is enforced in all environments and cannot be bypassed.
NIJA is a safe, transparent, and compliant algorithmic trading platform that uses an independent trading model. Each user account makes its own trading decisions using the same algorithm, with position sizes calculated proportionally to their account balance.
Key Safety Points:
Each user account evaluates the market independently and makes its own trading decisions.
Think of NIJA like a GPS navigation app:
Similarly with NIJA:
Platform Account (Reference):
User Accounts (Independent):
Important: No “signal distribution” occurs. Each account reaches the same conclusion independently because they’re all running the same algorithm on the same market data.
Position sizing uses a simple, transparent formula:
user_position_size = platform_position_size × (user_balance ÷ platform_balance)
This is called proportional scaling and ensures:
Scenario: Platform account ($10,000 balance) takes a $200 BTC trade
| User Balance | Calculation | Position Size | Risk % |
|---|---|---|---|
| $50 | $200 × ($50 ÷ $10,000) | $1.00 | 2.0% |
| $100 | $200 × ($100 ÷ $10,000) | $2.00 | 2.0% |
| $500 | $200 × ($500 ÷ $10,000) | $10.00 | 2.0% |
| $1,000 | $200 × ($1,000 ÷ $10,000) | $20.00 | 2.0% |
| $5,000 | $200 × ($5,000 ÷ $10,000) | $100.00 | 2.0% |
| $25,000 | $200 × ($25,000 ÷ $10,000) | $500.00 | 2.0% |
Notice: Every account maintains exactly 2.0% risk, scaled to their balance.
Exchanges have minimum trade sizes to prevent “dust” trades:
Impact on Small Accounts:
Using Kraken example:
This is a safety feature - it prevents unprofitable micro-trades that would be eaten by fees.
Every trade incurs fees that must be overcome for profitability:
Coinbase Fees (Limit Orders):
Example: $100 Trade
Smaller positions face higher fee pressure:
The percentage is the same, but smaller accounts have less room for slippage.
We’ve created a simulation tool (simulate_live_trade.py) that demonstrates the independent trading model.
Platform Account:
User Accounts: 10 accounts with balances from $50 to $50,000
====================================================================================================
NIJA LIVE TRADE SIMULATION - INDEPENDENT TRADING MODEL
====================================================================================================
🎯 PLATFORM ACCOUNT (Reference):
Balance: $10,000.00
Trade Size: $200.00
Risk %: 2.00%
Exchange: COINBASE
📊 USER ACCOUNTS (10 accounts):
----------------------------------------------------------------------------------------------------
User ID Balance Tier Trade Size Effective Scale % Status
----------------------------------------------------------------------------------------------------
micro_1 $ 50.00 STARTER $ 1.00 $ 0.00 0.50% ❌ Invalid (too small)
micro_2 $ 100.00 SAVER $ 2.00 $ 1.99 1.00% ✅ Valid
small_1 $ 250.00 INVESTOR $ 5.00 $ 4.98 2.50% ✅ Valid
small_2 $ 500.00 INVESTOR $ 10.00 $ 9.96 5.00% ✅ Valid
medium_1 $ 1,000.00 INCOME $ 20.00 $ 19.92 10.00% ✅ Valid
medium_2 $ 2,500.00 INCOME $ 50.00 $ 49.80 25.00% ✅ Valid
large_1 $ 5,000.00 LIVABLE $ 100.00 $ 99.60 50.00% ✅ Valid
large_2 $ 10,000.00 LIVABLE $ 200.00 $ 199.20 100.00% ✅ Valid
whale_1 $ 25,000.00 BALLER $ 500.00 $ 498.00 250.00% ✅ Valid
whale_2 $ 50,000.00 BALLER $ 1,000.00 $ 996.00 500.00% ✅ Valid
----------------------------------------------------------------------------------------------------
📈 SIMULATION STATISTICS:
Total Accounts: 10
Valid Trades: 9 (90.0%)
Invalid Trades: 1 (10.0%)
Average Trade Size: $209.67
Min Trade Size: $2.00
Max Trade Size: $1,000.00
Total Trading Volume: $1,887.00
# Default simulation (10 users, Coinbase)
python simulate_live_trade.py
# Custom parameters
python simulate_live_trade.py --platform-balance 25000 --platform-trade-size 500 --num-users 20
# Different exchange (Kraken has higher minimums)
python simulate_live_trade.py --exchange kraken
# Detailed per-user breakdown
python simulate_live_trade.py --detailed
This simulation requires NO API credentials and uses NO real money - it’s purely mathematical demonstration.
Purpose: Prevent unprofitable micro-trades
Implementation:
Result: Accounts too small to profitably trade are blocked automatically.
Purpose: Prevent over-leveraging based on account maturity
Tier Structure:
| Tier | Capital Range | Max Position Size | Max Positions | Risk Per Trade |
|---|---|---|---|---|
| STARTER | $50 - $300 | $10 | 2 | 3% - 5% |
| SAVER | $300 - $1,000 | $50 | 3 | 2.5% - 4% |
| INVESTOR | $1,000 - $5,000 | $150 | 4 | 2% - 3.5% |
| INCOME | $5,000 - $10,000 | $350 | 5 | 1.75% - 3% |
| LIVABLE | $10,000 - $25,000 | $750 | 6 | 1.5% - 2.5% |
| BALLER | $25,000+ | $1,500 | 8 | 1% - 2% |
Result: Accounts are automatically assigned appropriate risk limits based on balance.
Purpose: Ensure trades can be profitable after fees
Implementation:
Example:
Purpose: Limit maximum loss per trade
Implementation:
Result: Maximum loss per trade is capped automatically.
Purpose: Prevent catastrophic drawdown in a single day
Implementation:
Example:
Purpose: Protect accounts from extended losing streaks
Implementation:
Example:
Purpose: Prevent over-diversification and manage risk
Implementation:
Safety Guarantee:
Result: Accounts cannot exceed 8 positions, even in worst-case scenarios (crashes, network failures, database corruption). Multi-layer defense ensures cap is always enforced.
Purpose: Each account validates trades independently
Implementation:
Result: Trades approved for one account may be rejected for another (by design).
This is a critical transparency point for app reviewers. Results WILL differ between users, and this is expected, safe, and properly disclosed.
Network Latency:
API Response Times:
Independent Scanning:
Market Conditions Change:
Balance Differences:
Existing Positions:
Available Capital:
Risk Settings:
Fill Price Variations:
Slippage:
Order Book Depth:
Users can connect different exchanges:
Result: Same signal, different execution quality based on exchange choice.
Account A:
Account B:
Same algorithm, same balance, different results due to:
This is EXPECTED and properly disclosed to users.
How copy trading works:
Why it’s prohibited:
Example:
How NIJA works:
Why it’s compliant:
Example:
| Feature | Copy Trading (Prohibited) | NIJA (Compliant) |
|---|---|---|
| Trade signal source | Master account | Independent algorithm per account |
| Position sizing | Fixed or master-based | Proportional to account balance |
| Execution timing | Synchronized | Independent per account |
| Results between accounts | Identical (if same balance) | Naturally different |
| Account control | Master controls followers | Each account independent |
| Regulatory status | Requires broker license | Software tool |
| Disclosure | Often not disclosed | Fully transparent |
┌─────────────────────────────────────────────────────────────┐
│ NIJA Platform │
│ (Hosts the algorithm, provides infrastructure) │
└─────────────────────────────────────────────────────────────┘
│
│ Algorithm
▼
┌───────────────────────────────────────┐
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ User A │ │ User B │
│ Account │ │ Account │
│ ───────── │ │ ───────── │
│ Balance: │ │ Balance: │
│ $1,000 │ │ $10,000 │
│ │ │ │
│ Runs │ │ Runs │
│ algorithm │ │ algorithm │
│ every ~2.5 │ │ every ~2.5 │
│ minutes │ │ minutes │
│ │ │ │
│ Calculates │ │ Calculates │
│ own │ │ own │
│ position │ │ position │
│ size: $20 │ │ size: $200 │
│ │ │ │
│ Connects to │ │ Connects to │
│ own │ │ own │
│ exchange │ │ exchange │
└──────┬───────┘ └──────┬───────┘
│ │
│ API │ API
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Coinbase │ │ Kraken │
│ Account A │ │ Account B │
│ │ │ │
│ User A's │ │ User B's │
│ funds │ │ funds │
│ (never │ │ (never │
│ leave this │ │ leave this │
│ account) │ │ account) │
└──────────────┘ └──────────────┘
Market Data Analysis (per account):
Position Sizing Calculation:
# Platform reference (for scaling ratio)
platform_balance = 10000.0
platform_trade_size = 200.0
# User account
user_balance = 1000.0
# Calculate scale factor
scale_factor = user_balance / platform_balance # 0.1 (10%)
# Calculate user position size
user_trade_size = platform_trade_size * scale_factor # $20
# Validate against minimums
exchange_minimum = 2.0 # Coinbase
if user_trade_size >= exchange_minimum:
execute_trade(user_trade_size)
else:
reject_trade("Position too small")
Users grant NIJA limited API permissions on their exchange:
Granted Permissions:
Never Granted:
User maintains full control - can revoke API access at any time via exchange settings.
API Key Storage:
Communication:
Monitoring:
First Launch Screen:
Strategy Activation Screen:
Daily Notifications:
In-App FAQ:
Documentation:
Anytime Access:
Monitoring:
Customer Support:
Safety Alerts:
python simulate_live_trade.py --detailed
This demonstrates position sizing math without any API credentials.
# Small accounts
python simulate_live_trade.py --platform-balance 1000 --platform-trade-size 20
# Large accounts
python simulate_live_trade.py --platform-balance 100000 --platform-trade-size 2000
# Kraken exchange (higher minimums)
python simulate_live_trade.py --exchange kraken
position_sizer.py - Position sizing logictier_config.py - Tier limits and risk managementfee_aware_config.py - Fee calculationssimulate_live_trade.py - Full simulationQ: Is this copy trading?
A: No. Each account runs the algorithm independently and makes its own decisions. Position sizes are calculated based on each account’s balance, not copied from another account.
Q: Why would results differ if everyone uses the same algorithm?
A: Timing variations (network latency, scan schedules), account-specific factors (balance, existing positions, risk settings), and execution differences (fill prices, slippage). This is expected and properly disclosed.
Q: How do you ensure smaller accounts are protected?
A: Multiple mechanisms: exchange minimum trade sizes ($2-$10), tier-based position limits, fee-aware sizing (rejects unprofitable trades), stop losses, daily loss limits, drawdown protection.
Q: Can users lose money?
A: Yes, and we’re very clear about this. Trading involves substantial risk. We display risk warnings throughout the app, require acknowledgment, and recommend starting small. Safety mechanisms limit losses, but profit is never guaranteed.
Q: Do you hold user funds?
A: Never. Users maintain funds on their own exchange account. NIJA only has trading permissions via API keys (no withdrawal access). Users can revoke access anytime.
Users acknowledge:
NIJA is a safe, transparent, and compliant trading automation platform that:
We’ve designed NIJA to meet the highest standards for financial applications while providing genuine value to users who want trading automation.
Developer Contact: support@nija.app
Documentation: This document + APPLE_APP_REVIEW_FINANCIAL_FUNCTIONALITY.md
Simulation Tool: simulate_live_trade.py (no credentials required)
Demo Account: Available upon request for App Review team testing
Document Version: 1.0
Last Updated: February 2, 2026
For: Apple App Review / Google Play Review