"""mt5cli: Generic MT5 data and execution infrastructure for Python applications. Downstream packages should import from this module (``from mt5cli import ...``) rather than private submodule helpers. See ``docs/api/public-contract.md`` for the stable SDK contract, CLI surface, internal modules, and out-of-scope strategy responsibilities. """ from importlib.metadata import version from pdmt5 import Mt5Config, Mt5RuntimeError, Mt5TradingClient, Mt5TradingError from .client import MT5Client, build_config, mt5_session from .contract import ( PUBLIC_EXPORT_TIERS, SECONDARY_PUBLIC_EXPORTS, STABLE_SDK_EXPORTS, ) from .converters import ( ensure_utc, granularity_name, normalize_symbol, normalize_symbols, parse_date_range, recent_window, ) from .exceptions import ( Mt5CliError, Mt5ConnectionError, Mt5OperationError, Mt5SchemaError, call_with_normalized_errors, is_recoverable_mt5_error, normalize_mt5_exception, ) from .history import ( RateTarget, build_rate_targets, build_rate_view_name, drop_forming_rate_bar, load_rate_data, load_rate_data_from_connection, load_rate_series_by_granularity, load_rate_series_from_sqlite, resolve_history_datasets, resolve_history_tick_flags, resolve_history_timeframes, resolve_rate_table_name, resolve_rate_tables, resolve_rate_view_name, resolve_rate_view_names, ) from .schemas import ( DEDUP_KEYS, KNOWN_MT5_TIME_COLUMNS, REQUIRED_COLUMNS, TIME_COLUMNS, DataKind, normalize_dataframe, normalize_time_columns, schema_columns, validate_schema, ) from .sdk import ( AccountSpec, ThrottledHistoryUpdater, account_info, collect_history, collect_latest_closed_rates_by_granularity, collect_latest_closed_rates_for_accounts, collect_latest_rates, collect_latest_rates_for_accounts, collect_latest_rates_for_accounts_with_retries, copy_rates_from, copy_rates_from_pos, copy_rates_range, copy_ticks_from, copy_ticks_range, fetch_latest_closed_rates, history_deals, history_orders, last_error, latest_rates, market_book, minimum_margins, mt5_summary, mt5_summary_as_df, orders, positions, recent_history_deals, recent_ticks, resolve_account_spec, resolve_account_specs, substitute_env_placeholders, symbol_info, symbol_info_tick, symbols, terminal_info, update_history, update_history_with_config, ) from .sdk import ( version as mt5_version, ) from .storage import ( Dataset, IfExists, detect_format, export_dataframe, export_dataframe_to_sqlite, ) from .trading import ( POSITION_COLUMNS, ExecutionStatus, MarginVolume, OrderExecutionResult, OrderFillingMode, OrderLimits, OrderSide, OrderTimeMode, PositionSide, calculate_account_projected_margin_ratio, calculate_margin_and_volume, calculate_new_position_margin_ratio, calculate_positions_margin, calculate_positions_margin_by_symbol, calculate_positions_margin_safe, calculate_projected_margin_ratio, calculate_spread_ratio, calculate_symbol_group_margin_ratio, calculate_trailing_stop_updates, calculate_volume_by_margin, close_open_positions, create_trading_client, detect_position_side, determine_order_limits, ensure_symbol_selected, estimate_order_margin, extract_tick_price, fetch_latest_closed_rates_for_trading_client, fetch_latest_closed_rates_indexed, get_account_snapshot, get_positions_frame, get_symbol_snapshot, get_tick_snapshot, mt5_trading_session, normalize_order_volume, place_market_order, update_sltp_for_open_positions, update_trailing_stop_loss_for_open_positions, ) from .utils import ( TICK_FLAG_MAP, TIMEFRAME_MAP, parse_datetime, parse_tick_flags, parse_timeframe, ) __version__ = version(__package__) if __package__ else None __all__ = [ "DEDUP_KEYS", "KNOWN_MT5_TIME_COLUMNS", "POSITION_COLUMNS", "PUBLIC_EXPORT_TIERS", "REQUIRED_COLUMNS", "SECONDARY_PUBLIC_EXPORTS", "STABLE_SDK_EXPORTS", "TICK_FLAG_MAP", "TIMEFRAME_MAP", "TIME_COLUMNS", "AccountSpec", "DataKind", "Dataset", "ExecutionStatus", "IfExists", "MT5Client", "MarginVolume", "Mt5CliError", "Mt5Config", "Mt5ConnectionError", "Mt5OperationError", "Mt5RuntimeError", "Mt5SchemaError", "Mt5TradingClient", "Mt5TradingError", "OrderExecutionResult", "OrderFillingMode", "OrderLimits", "OrderSide", "OrderTimeMode", "PositionSide", "RateTarget", "ThrottledHistoryUpdater", "account_info", "build_config", "build_rate_targets", "build_rate_view_name", "calculate_account_projected_margin_ratio", "calculate_margin_and_volume", "calculate_new_position_margin_ratio", "calculate_positions_margin", "calculate_positions_margin_by_symbol", "calculate_positions_margin_safe", "calculate_projected_margin_ratio", "calculate_spread_ratio", "calculate_symbol_group_margin_ratio", "calculate_trailing_stop_updates", "calculate_volume_by_margin", "call_with_normalized_errors", "close_open_positions", "collect_history", "collect_latest_closed_rates_by_granularity", "collect_latest_closed_rates_for_accounts", "collect_latest_rates", "collect_latest_rates_for_accounts", "collect_latest_rates_for_accounts_with_retries", "copy_rates_from", "copy_rates_from_pos", "copy_rates_range", "copy_ticks_from", "copy_ticks_range", "create_trading_client", "detect_format", "detect_position_side", "determine_order_limits", "drop_forming_rate_bar", "ensure_symbol_selected", "ensure_utc", "estimate_order_margin", "export_dataframe", "export_dataframe_to_sqlite", "extract_tick_price", "fetch_latest_closed_rates", "fetch_latest_closed_rates_for_trading_client", "fetch_latest_closed_rates_indexed", "get_account_snapshot", "get_positions_frame", "get_symbol_snapshot", "get_tick_snapshot", "granularity_name", "history_deals", "history_orders", "is_recoverable_mt5_error", "last_error", "latest_rates", "load_rate_data", "load_rate_data_from_connection", "load_rate_series_by_granularity", "load_rate_series_from_sqlite", "market_book", "minimum_margins", "mt5_session", "mt5_summary", "mt5_summary_as_df", "mt5_trading_session", "mt5_version", "normalize_dataframe", "normalize_mt5_exception", "normalize_order_volume", "normalize_symbol", "normalize_symbols", "normalize_time_columns", "orders", "parse_date_range", "parse_datetime", "parse_tick_flags", "parse_timeframe", "place_market_order", "positions", "recent_history_deals", "recent_ticks", "recent_window", "resolve_account_spec", "resolve_account_specs", "resolve_history_datasets", "resolve_history_tick_flags", "resolve_history_timeframes", "resolve_rate_table_name", "resolve_rate_tables", "resolve_rate_view_name", "resolve_rate_view_names", "schema_columns", "substitute_env_placeholders", "symbol_info", "symbol_info_tick", "symbols", "terminal_info", "update_history", "update_history_with_config", "update_sltp_for_open_positions", "update_trailing_stop_loss_for_open_positions", "validate_schema", ]