Skip to content

Latest commit

 

History

History
601 lines (346 loc) · 34.2 KB

File metadata and controls

601 lines (346 loc) · 34.2 KB

QuantFolio GUI User Manual

Introduction

Welcome to the QuantFolio GUI! This is a desktop application that helps you manage investment portfolios, analyze market data, and optimize strategies through a visual interface. This manual walks you through each feature so you can make the most of the app.

Unlike the command-line version, the GUI gives you everything through menus, buttons, and forms-no need to remember commands. Built with WPF (Windows Presentation Foundation), it provides a clean, modern interface for portfolio analysis. Let's explore how it works.

Getting Started

System Requirements and Installation

You'll need:

  • Windows 10 (version 1809 or later) or Windows 11
  • .NET 8.0 Runtime installed
  • Screen resolution: 1280x720 minimum (1920x1080+ recommended)
  • Hardware: 4GB RAM minimum (8GB+ for large portfolios)

To install, open a terminal in the repository root and run:

dotnet build gui/QuantFolio.GUI.csproj

To launch:

  • From root: dotnet run --project gui/QuantFolio.GUI.csproj
  • From gui directory: cd gui then dotnet run

The app window opens in seconds, ready to use.

Understanding the Main Interface

The main window has three parts:

  • Header bar (top) - Shows the logo, status messages, and progress indicator
  • Navigation sidebar (left) - Lists all features organized by category
  • Content area (right) - Displays the active view

Dashboard Overview

The header shows real-time status updates during operations like data fetching or optimization. The progress bar appears for longer tasks so you know what's happening.

The sidebar organizes features into:

  • NAVIGATION - Core portfolio features
  • MANAGEMENT - Client and manager administration
  • SETTINGS - Configuration and info

Each item has an icon and name. Click one to switch views in the main area.

Navigating Between Views

Just click any item in the left sidebar to switch views. The active view is highlighted in light blue so you always know where you are. When you first launch, the Dashboard is selected by default.

Each view is designed for its specific purpose:

  • Dashboard - Overview of all portfolios
  • Portfolio Creation - Step-by-step forms
  • Data Fetching - Market data management
  • And so on...

The app remembers where you were, so switching away and coming back puts you right where you left off. Many screens also remember your previous settings to save time.

Dashboard

Understanding the Dashboard

The Dashboard is your starting point. It shows an overview of all portfolios with key metrics and recent activity. This bird's-eye view is great when managing multiple portfolios or checking overall status quickly.

Dashboard View

At the top, you'll see summary stats: total portfolios, total assets under management, and other key numbers. Below that is a table listing all portfolios with their details.

Interpreting Portfolio Information

The portfolio table shows:

  • Name - Portfolio identifier
  • Client - Who owns it
  • Manager - Who manages it
  • Strategy - Low Risk, Low Turnover, or High Yield
  • Asset Universe - What it can invest in
  • Creation Date - When it was created
  • Cash Balance - Uninvested capital

Click column headers to sort by any field. This helps you quickly find portfolios with specific characteristics.

Dashboard Actions

The Dashboard has quick-action buttons for common tasks like creating portfolios or refreshing data. These shortcuts save clicks.

Double-click any portfolio row to see its full details, positions, and performance. This makes it easy to drill down when something catches your eye.

Most people start their day here-a quick glance tells you if everything's running normally or if something needs attention.

Portfolio Creation

Introduction to Portfolio Creation

Creating a portfolio sets the fundamental parameters for all future investment decisions. The Portfolio Creation view guides you through each step with a clear form, making sure nothing important gets missed.

Portfolio Creation View

Click "Portfolio Creation" in the sidebar. You'll see a form with labeled fields. Work from top to bottom-each field builds on the previous ones.

Basic Portfolio Information

Start with the Portfolio Name. Pick something descriptive like "Smith Retirement - Conservative" or "Tech Growth 2024" rather than "Portfolio 1." Good names help as your collection grows.

The name should make sense to everyone who uses the system, including clients and colleagues. Include the client name, objective, or strategy type. But keep it concise-overly long names get awkward in tables and charts.

Client and Manager Selection

Next, pick the Client and Manager from the dropdown menus.

The Client dropdown shows all investors registered in the system. If your desired client isn't there, add them first through the Clients & Managers view.

Same for managers-pick who will manage this portfolio's investments. This assignment matters for reporting and accountability.

These aren't just formalities. They create database relationships that enable proper reporting, performance tracking, and compliance. So make sure they're accurate.

Strategy Selection

Pick an investment strategy-this determines how the portfolio allocates money. Three options:

Low Risk - Prioritizes stability and capital preservation. Uses variance optimization to minimize volatility. Great for conservative investors, retirees, or anyone with strict risk limits.

Low Turnover - Minimizes trading to reduce costs and taxes. Maintains stable positions, only rebalancing when necessary. The algorithm penalizes excessive trading.

High Yield - Targets maximum returns. Identifies securities with strong historical performance. Accepts higher volatility but includes risk controls to prevent catastrophic losses. Good for growth-oriented investors with long time horizons.

Asset Universe Configuration

Define the Asset Universe-what types of securities the portfolio can hold:

  • US Equities - American stocks only
  • EU Equities - European markets
  • Equities - Global stocks
  • Commodities - Physical goods futures
  • ETF - Exchange-traded funds
  • Crypto - Cryptocurrencies
  • All Assets - No restrictions

This acts as a hard constraint. Securities outside the universe won't be selected, no matter how attractive. Choose based on investment preferences, regulations, and risk tolerance.

Initial Cash Balance

Enter the Initial Cash Balance-the starting capital for investment. Just the number, no currency symbols or commas. Example: 100000 for $100,000.

This sets the portfolio's scale, establishes the baseline for return calculations, and determines maximum position sizes. For real portfolios, enter the actual client capital. For testing, use a standard amount like $100,000.

Creating the Portfolio

Review everything, then click "Create Portfolio." The app validates your inputs-checking for missing fields, invalid values, or duplicate names.

If successful, you'll see a green confirmation message. The new portfolio appears everywhere: the Dashboard, optimization tools, reports. It exists now but has no positions yet-just configuration and cash, waiting for the first optimization.

If validation fails, fix the problems indicated and try again. Common errors: empty fields, negative balances, duplicate names.

Data Fetching

Understanding Market Data Requirements

Before optimizing portfolios or running backtests, you need historical market data. The system needs daily OHLCV (Open, High, Low, Close, Volume) data for all securities you want to analyze.

Data Fetching View

The Data Fetching view helps you manage securities and their price history. Click "Data Fetching" in the sidebar. The view has sections for managing products (securities) and fetching their historical data.

Managing Products (Securities)

First, register securities as "products" in the system. A product is any tradable instrument-stocks, ETFs, bonds, commodities, crypto. Each has a symbol, name, type, region, sector, and active/inactive status.

You'll see a table listing all registered securities. To add one, click "Add Product" and enter:

  • Symbol - The ticker ("AAPL", "BTC-USD", etc.)
  • Name - Full name ("Apple Inc.", "Bitcoin USD")
  • Type - Stock, ETF, Bond, Commodity, Cryptocurrency, etc.
  • Region - United States, Europe, Global, Asia
  • Sector - Technology, Healthcare, Financial, Energy, or N/A

Click "Add" or "Save" to register it. The product immediately becomes available for data fetching and portfolio use.

Fetching Historical Data

Once products are registered, get their price history. Select a product from the dropdown, enter start and end dates, then click "Fetch Data."

Choosing a Date Range

Get enough data for meaningful analysis-minimum 2 years, ideally 3-5 years. More data means better patterns but longer downloads and more storage. For most use cases, 5 years is plenty.

Fetching Process

Click "Fetch Data" to start. The app connects to Yahoo Finance (or your configured provider) and downloads OHLCV data. You'll see progress messages like "Fetching data from provider..." This takes a few seconds to a couple minutes depending on date range and internet speed.

When done, the system checks for missing dates, zero prices, or weird values. Clean data goes into your local database. You'll see how many data points were saved. If it fails (network issue, bad symbol), you'll get an error message-fix it and try again.

Note: Fetching the same data multiple times is fine-the system updates existing records instead of duplicating. Some implementations only fetch new dates beyond what you already have, making updates efficient.

Batch Data Fetching

If you manage many securities, fetching one-by-one gets tedious. Use batch fetching to grab multiple at once. Look for "Fetch Multiple" or "Fetch All" buttons, or checkboxes to select products.

Set your date range once, pick all desired products, and start the batch. The system processes them sequentially with progress updates. This can take a while-tens of minutes or even hours for large lists and long date ranges. Run it during off-hours if possible. Some versions let you work while fetching continues in the background.

Viewing and Verifying Data

After fetching, verify your data before using it. Many Data Fetching views have an inspector that shows actual price records. Select a product and see a table of dates, OHLC prices, and volume.

Check for:

  • Gaps - Missing dates (possible data feed issues)
  • Flat prices - Same price many days (trading halts or errors)
  • Spikes - Extreme jumps (could be real events or bad data)

If you spot problems, re-fetch the data, contact your provider, or manually fix obvious errors in the database. Good data is essential for reliable analysis-don't skip this step when setting up.

Some views also show summary stats: how many products have data, date ranges, total data points stored, and storage used. This helps you see if you have enough coverage for your needs.

Portfolio Optimization

Introduction to Optimization

Optimization is where your strategy meets market data to generate actual positions. You pick a portfolio, set training and testing periods, and let the algorithm figure out what to buy.

Optimization View

Click "Optimization" in the sidebar. You'll see sections for selecting a portfolio, setting parameters, and viewing results. Some versions also show history of previous optimization runs.

Selecting a Portfolio to Optimize

Pick which portfolio to optimize from the dropdown. You'll see all your registered portfolios by name. After selecting one, some parameters may auto-fill based on its strategy and asset universe settings.

Configuring Optimization Parameters

Set these key parameters:

Strategy - Which algorithm to use (Low Risk, Low Turnover, High Yield). Usually defaults to your portfolio's strategy, but you can change it to compare approaches.

Asset Universe - Which securities to consider (US Equities, Global Equities, US Bonds, Global Bonds). Defaults to your portfolio's universe. The optimizer only looks at products matching this universe.

Training Period - Historical dates the optimizer uses to learn patterns. Use 1-3 years of relatively normal market conditions. Avoid periods dominated by crashes or bubbles-they produce strategies that don't generalize well.

Testing Period - Date range for "out-of-sample" evaluation. This must come after training (no overlap) and shows if the strategy actually works on unseen data. Example: train on 2020-2022, test on 2023-2024.

Initial Capital - How much money to allocate. Should match your portfolio's cash balance unless you're testing different scenarios.

Double-check everything before running-optimization takes several minutes and bad parameters waste time.

Running the Optimization

Review your parameters, then click "Run Optimization." The app validates everything-checking for overlapping dates, missing data, etc.

If validation passes, optimization starts. You'll see progress messages:

  • "Fetching market data"
  • "Training strategy"
  • "Generating portfolio weights"
  • "Simulating trades"
  • "Calculating performance metrics"

This takes 30 seconds to several minutes depending on how many securities, how long the date ranges, and how complex the strategy. A progress bar shows completion percentage. Some versions let you cancel mid-run, though it won't stop instantly.

Interpreting Optimization Results

When done, you'll see key metrics:

Final Value - Portfolio worth at end of testing period. Compare to initial capital to see if it made money.

Total Return - Percentage gain or loss. Easier to compare across different runs.

Sharpe Ratio - Risk-adjusted performance (return divided by volatility). Higher is better. Above 1.0 is good, above 2.0 is excellent. Useful for comparing strategies with different risk levels.

Maximum Drawdown - Worst peak-to-trough decline. Shows the biggest temporary loss an investor would've faced. Important for understanding realistic downside risk.

Number of Trades - How often the strategy rebalances. High turnover looks good on paper but costs more in transaction fees and taxes.

You may also see detailed positions (what to buy and how much), daily equity curves (portfolio value over time), risk analytics, and trade-by-trade breakdowns.

Many implementations have a "Save Results" button to store this run for future comparison. Save anything important, not just quick experiments.

Using Optimization Results

Optimization results inform real trading decisions. After reviewing and confirming they look reasonable, use them to guide actual trades. Some implementations have "Apply Trades" that automatically executes recommendations, updating positions without manual transcription.

Before blindly applying recommendations, use judgment:

  • Does the testing period represent realistic future conditions?
  • Is the maximum drawdown acceptable for your risk tolerance?
  • Are transaction costs reasonable given the number of trades?
  • Do individual positions make sense? (95% in one obscure stock = probably a data error)

Remember: optimization reflects historical data. Markets change, relationships break, strategies that worked before may fail later. Use optimization as one input to decisions, not gospel. Combine quantitative analysis with qualitative judgment, diversification, and ongoing monitoring.

Visualization

Introduction to Visualization Tools

Visualization tools turn numbers into charts that reveal patterns, trends, and relationships faster than reading tables. The GUI offers several chart types for analyzing portfolios.

Visualization - Performance Charts

Click "Visualization" in the sidebar. You'll find sections for Performance Charts, Asset Allocation, and Report Export.

Performance Charts

Performance charts show how portfolio value changed over time. Pick a portfolio from the dropdown, set a date range ("Last 3 Months", "Last Year", "All Time", or custom dates), then click "Generate Chart."

The chart shows three lines:

  • Total Value - Overall portfolio worth
  • Positions - Market value of securities held
  • Cash - Uninvested capital

An upward trend = growing portfolio. Downward = losses. If positions track total value closely, you're fully invested. A big gap means lots of cash sitting idle.

Some charts include markers for big trades, dividends, or rebalancing. Hover over points to see exact values and dates. Zoom into time periods for detail.

Asset Allocation Visualizations

Allocation charts show how capital is distributed across securities. Select a portfolio and optionally a date (defaults to today), then click "Show Allocation."

Visualization - Asset Allocation

Pie Charts - Each slice represents a security's percentage of total value. Big slices = concentrated positions. Many similar-sized slices = diversified.

Bar Charts - Better for many positions. Each bar's height shows a position's allocation, sorted largest to smallest. Easier to read than pie charts when you have lots of small holdings.

Grouped Views - Some implementations aggregate by asset type, sector, or region. For example, "30% Technology, 20% Healthcare, 15% Financial." These help you see if you're inadvertently concentrated in certain areas.

Historical Allocation - Advanced versions show how allocation evolved over time, revealing when major rebalancing happened and how actively the portfolio is managed.

Export and Reporting

Report export bundles visualizations and performance data into shareable formats. Select a portfolio, reporting period, and output format (usually PDF or JSON), then click "Export Report."

Visualization - Export Reports

The app gathers configuration, positions, transactions, metrics, charts, and allocations, then formats them. This takes seconds to minutes depending on data volume. When done, you'll see where the file was saved-typically outputs/reports/ with a filename like PortfolioName_2023-2024.pdf.

Reports are useful for:

  • Client communications (show investors how their money is managed)
  • Internal documentation (performance attribution, strategy refinement, audits)
  • Compliance and record-keeping
  • Comparing periods over time

Portfolio Comparison

Introduction to Comparison Tools

Compare multiple portfolios side-by-side to see which strategies worked, which took too much risk, and where to put your money.

Comparison View

Click "Comparison" in the sidebar. Select multiple portfolios, choose comparison parameters, and view results.

Selecting Portfolios for Comparison

Pick at least two portfolios using checkboxes or Ctrl+click. Choose portfolios where comparison makes sense:

  • Same asset universe, different strategies → which strategy won?
  • Same strategy, different universes → which market offered better opportunities?
  • Same time period → differences reflect strategy, not just market conditions

Comparison Metrics

Choose a comparison mode:

  • Performance Comparison - Returns, volatility, risk-adjusted metrics
  • Risk Comparison - Maximum drawdown, downside deviation
  • Efficiency Comparison - Turnover, transaction costs

Click "Compare" or "Generate Comparison." The app normalizes data for fair comparison (e.g., adjusting different capital amounts to the same base like $100,000).

Interpreting Comparison Results

You'll see a table with portfolios in rows and metrics in columns: Total Return, Annualized Return, Volatility, Sharpe Ratio, Maximum Drawdown, etc.

Don't just pick the highest return. Consider:

  • Sharpe Ratio - Risk-adjusted performance
  • Maximum Drawdown - Worst decline experienced
  • Consistency - Smooth vs. volatile returns

A portfolio with 50% return but 60% drawdown might be worse than one with 30% return and 15% drawdown, depending on your risk tolerance.

Graphical Comparisons:

  • Overlay charts - All portfolios' equity curves on one chart. Shows who led when, gaps widening/narrowing, volatility differences.
  • Risk-return scatter plots - Each portfolio is a point (risk on x-axis, return on y-axis). Upper-left quadrant = ideal (high return, low risk). Lower-right = bad (low return, high risk).

Using Comparison Insights

Comparison helps you decide where to put new capital, which strategies to emphasize, and what to drop.

Example insights:

  • Low Risk outperformed High Yield during a period → defensive positioning was rewarded
  • High Yield dominated another period → aggressive positioning paid off
  • Understanding which market conditions favor which strategies helps timing decisions

Comparison also reveals why portfolios performed differently. By changing one variable (strategy) while keeping others constant (asset universe, time period), you isolate what actually drove performance vs. just luck.

Client and Manager Management

Introduction to User Management

The Clients & Managers view manages records of investors and portfolio managers. Not exciting, but essential for accountability, communication, and compliance.

Clients and Managers View

Click "Clients & Managers" in the sidebar. You'll see two sections: one for clients, one for managers. Each has a table of existing records plus controls to add, edit, or delete entries.

Managing Client Information

The client table shows Name, Email, Phone, Address, and Registration Date. This info is used for portfolio creation, reports, communications, and regulatory filings.

Adding a Client

Click "Add Client" to open a form. Enter:

  • Name - Full legal name (appears on reports)
  • Email - For communications
  • Phone - Contact number
  • Address - For regulatory/tax documents

Click "Save" or "Create." The client appears in the table and becomes available when creating portfolios. If validation fails, fix the indicated fields and try again.

Editing a Client

Click "Edit" in the client's row or double-click the row. Make changes, then save. Be careful renaming clients-it affects how associated portfolios display throughout the app.

Deleting a Client

Click "Delete" and confirm. If the client has portfolios, deletion fails due to database constraints. Delete or reassign all their portfolios first, then delete the client.

Managing Manager Information

Manager records work the same way: Name, Email, Phone, and Specialty ("Equities," "Fixed Income," "Quantitative Strategies"). The Specialty field helps assign portfolios to managers with appropriate expertise.

Adding, editing, and deleting managers follows the same pattern as clients. Same referential integrity protection-can't delete managers currently assigned to portfolios.

Best Practices:

  • Review and update contact info regularly (quarterly or annually)
  • Don't immediately delete departed clients/managers-keep records for historical integrity
  • Maintain consistent naming conventions ("Firstname Lastname" or "Lastname, Firstname")-pick one and stick with it
  • Use official legal names for entities, not informal abbreviations

Settings and Configuration

Application Settings

Settings lets you customize system behavior, defaults, and integrations. The GUI works fine with defaults, but you can tailor it to your needs.

Settings View

Click "Settings" in the sidebar. You'll see categories: Database Configuration, Market Data Provider, Optimization Defaults, Visualization Preferences, Report Templates. Some settings apply immediately; others need an app restart.

Database Configuration

Specify where the SQLite database lives. Default: outputs/database/quantfolio.db. You might change this for:

  • Network locations (shared access)
  • Cloud-synced folders (automatic backup)
  • Faster SSDs (better performance with large databases)

Important: Changing the path doesn't move your data. The app just starts using a different file at the new location (possibly empty). To migrate data, copy the database file to the new location first, then change this setting.

Some versions have a "Backup Database" button that creates timestamped copies. Use it regularly-weekly or monthly-especially before major operations like bulk imports or schema upgrades.

Market Data Provider Settings

Choose which service fetches historical prices:

  • Yahoo Finance - Free, no API key, reliable for equities/ETFs
  • Alpha Vantage - Free tier available, requires API key
  • Custom - Requires specific configuration

If your provider needs an API key, enter it here. Keys authenticate requests and track usage against rate limits. Free tiers often limit requests per minute/day. If you hit "rate limit exceeded" errors, upgrade to paid or spread requests over time.

Other settings:

  • Request delays - Time between requests to avoid rate limits
  • Timeout values - How long to wait before giving up
  • Retry logic - Auto-retry failed requests and how many attempts

Adjust based on your provider's limits and your patience for wait times.

Optimization Defaults

Set values that pre-fill optimization fields. Example: If you always use 2-year training periods, set default training length to 730 days. Fields auto-populate with these values, which you can override anytime.

Set defaults for: training period length, testing period length, initial capital, preferred strategy. Reduces repetitive data entry without constraining your choices.

Visualization Preferences

Control chart aesthetics and functionality:

  • Color schemes - Which colors for portfolio components
  • Chart resolution - How many data points to plot (detail vs. speed)
  • Default date ranges - For performance charts
  • Label formatting - How to display dates, currency, percentages

Some prefer dark themes (less eye strain), others prefer high-contrast (better readability). Experiment to find what works for your environment.

About and Help

Application Information

The About view shows version number, build date, copyright, and developer credits.

About View

Click "About" at the bottom of the sidebar. The version number tells you if you're running the latest release. Always include it when reporting bugs-issues may be version-specific or already fixed.

You'll also see license information explaining how you can use, modify, and distribute the software. QuantFolio is open-source, so understanding the license matters if you plan to customize or incorporate it elsewhere. Links to GitHub, documentation, and community support may be included.

Getting Help and Support

When stuck:

  1. Check built-in help - Look for Help menus or buttons with tutorials, FAQs, and troubleshooting guides

  2. Visit GitHub - Browse existing issues to see if others reported the same problem. The Issues section often has solutions or workarounds. If you can't find your issue, open a new one with details: what you tried, what you expected, what actually happened. Include version, OS, and error messages.

  3. Be patient - QuantFolio is open-source, maintained by volunteers. Response times vary. Provide complete info upfront and be grateful for help. If you solve something yourself, contribute it back via pull requests.

Advanced Tips and Best Practices

Workflow Optimization

As you get comfortable with the GUI, you'll find patterns that work for you. Common approach: run batch operations during off-hours. Fetch data for all securities in the evening, review fresh data in the morning. Queue multiple optimization runs with different parameters overnight, compare results when you return.

Another efficiency technique involves preparing portfolio configurations before market events that might create opportunities. For example, if you anticipate increased volatility due to upcoming economic announcements, create test portfolios with various risk levels ahead of time. Then, after the event passes and new market data arrives, you can quickly optimize all configurations and compare outcomes, enabling rapid decision-making while conditions are still favorable.

Additionally, establish naming conventions for portfolios that encode important metadata. Prefixes or suffixes can indicate client type (individual vs. institutional), risk level (conservative/moderate/aggressive), or strategy family (quantitative/fundamental). Consistent naming makes portfolios easier to locate in dropdown lists and makes reports and comparisons more understandable at a glance.

Data Quality Management

Data Quality Monitoring

Good data = good results. Bad data = garbage. Set up routines to check data completeness and accuracy. Monthly review: verify all securities have current data, investigate suspicious price movements or gaps, ensure new products have complete history.

Document issues you find and how you fixed them. This log helps you spot unreliable data sources, decide whether to switch providers, and provide an audit trail if questions arise.

Before running important optimizations, verify all relevant securities have data through your testing period. This simple check saves hours of wasted work.

Performance Monitoring

Review portfolios regularly, not just through tools but with manual common-sense checks. Generate reports monthly or quarterly. A portfolio that suddenly acts weird might signal data problems, config errors, or market changes worth investigating.

Keep a performance journal. When you implement optimization recommendations, note the date, key characteristics, and your reasoning. Later, when reviewing how things turned out, this context helps you learn from successes and failures.

Compare portfolios to appropriate benchmarks (market indices, peer averages). Consistent underperformance suggests strategies need refinement. Consistent outperformance validates your approach.

Security and Backup

QuantFolio doesn't manage real money or connect to brokerages, but your data-portfolio configs, optimization results, performance histories-is valuable. Back it up.

Set up automated backups (daily or weekly) using OS tools or third-party software. Store backups separately from your main computer (NAS, external drive, cloud storage) to protect against hardware failure, theft, or disasters.

If multiple people use the app, control access using OS file permissions on the database file. On shared network locations, configure folder permissions to prevent unauthorized access.

Before risky operations (schema upgrades, bulk imports), create a manual backup. One mistake shouldn't cost weeks of work.

Troubleshooting Common Issues

Application Won't Start

If the GUI fails to launch or crashes immediately:

  1. Check .NET Runtime - Run dotnet --version in a command prompt. Should be 8.0 or higher. If not, install/update it.

  2. Check Database File - The app expects outputs/database/quantfolio.db (or your configured location). If missing, corrupted, or locked, startup fails. Try creating the directory if missing, or temporarily rename the database to force a fresh one.

  3. Read Error Messages - Check errors displayed at startup or in log files. Common issues: insufficient disk space, low memory, antivirus blocking file access.

Data Fetching Failures

Network Issues - Verify your internet works by visiting websites. Fix network connectivity first.

Provider Issues - Try fetching "AAPL" (Apple). If it works but others fail, those symbols might be misspelled, delisted, or unsupported. Double-check spelling and verify symbols exist on your provider's site.

Rate Limits - Providers restrict requests per minute/day. If you hit "rate limit exceeded" errors, wait for the limit to reset (usually next day), or space requests using delay settings. For batch ops, spread requests across multiple days.

Optimization Produces Unexpected Results

When results seem wrong (extreme returns, weird positions, errors):

  1. Check Date Ranges - Training and testing periods shouldn't overlap. Both must fall within available data dates.

  2. Check Asset Universe - Make sure it includes securities with data. "US Equities" universe needs US stocks in your database.

  3. Review Data Quality - One bad security (like $0.01 price error) can skew everything. Check for data gaps or stale info.

  4. Consider Strategy Fit - Low Risk needs several years of data for accurate covariance estimates. High Yield can recommend aggressive positions if training patterns don't generalize.

User Interface Issues

Controls not responding, overlapping elements, charts not rendering?

  1. Restart the app - Clears corrupted state and reinitializes components.

  2. Resize window - Some layout issues occur at specific window sizes. Try resizing or changing screen resolution.

  3. Update graphics drivers - Outdated drivers cause rendering problems in WPF apps.

  4. Check recent changes - Did Windows updates or system changes coincide with when problems started? Check GitHub issues to see if others reported similar problems.

Conclusion

This manual covers everything in the QuantFolio GUI, from basic portfolio creation to advanced optimization and analysis. With these tools, you can make data-driven investment decisions through an accessible graphical interface.

As you use the app more, you'll develop your own workflows and figure out which features matter most to you. Some focus on optimization, running frequent analyses to adapt to market changes. Others emphasize visualization and reporting for client communications. Some concentrate on comparison tools to evaluate multiple strategies.

Important: QuantFolio is a powerful assistant, not a replacement for judgment. Optimization and backtesting show what worked historically and suggest what might work next, but they can't predict the future. Markets change, relationships break, strategies that worked before can fail. Combine quantitative analysis with qualitative assessment, maintain diversification, understand historical testing limitations, and never risk more than you can afford to lose.

The GUI makes advanced quantitative techniques accessible without programming or command-line skills. This puts rigorous, data-driven approaches-once limited to big institutions with quant teams-in your hands.

Hope this manual helps. Good luck with your portfolios!