266 lines
6.4 KiB
Python
266 lines
6.4 KiB
Python
"""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 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,
|
|
Mt5CliClient,
|
|
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_margin_and_volume,
|
|
calculate_new_position_margin_ratio,
|
|
calculate_spread_ratio,
|
|
calculate_volume_by_margin,
|
|
close_open_positions,
|
|
create_trading_client,
|
|
detect_position_side,
|
|
determine_order_limits,
|
|
ensure_symbol_selected,
|
|
get_account_snapshot,
|
|
get_positions_frame,
|
|
get_symbol_snapshot,
|
|
get_tick_snapshot,
|
|
mt5_trading_session,
|
|
place_market_order,
|
|
update_sltp_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",
|
|
"REQUIRED_COLUMNS",
|
|
"STABLE_SDK_EXPORTS",
|
|
"TICK_FLAG_MAP",
|
|
"TIMEFRAME_MAP",
|
|
"TIME_COLUMNS",
|
|
"AccountSpec",
|
|
"DataKind",
|
|
"Dataset",
|
|
"ExecutionStatus",
|
|
"IfExists",
|
|
"MT5Client",
|
|
"MarginVolume",
|
|
"Mt5CliClient",
|
|
"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_margin_and_volume",
|
|
"calculate_new_position_margin_ratio",
|
|
"calculate_spread_ratio",
|
|
"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",
|
|
"export_dataframe",
|
|
"export_dataframe_to_sqlite",
|
|
"fetch_latest_closed_rates",
|
|
"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_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",
|
|
"validate_schema",
|
|
]
|