1086 lines
65 KiB
HTML
1086 lines
65 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" data-bs-theme="light">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
<meta name="author" content="dceoy">
|
|
<link rel="canonical" href="https://github.com/dceoy/mt5cli/api/client/">
|
|
<link rel="shortcut icon" href="../../img/favicon.ico">
|
|
<title>Client - mt5cli API Documentation</title>
|
|
<link href="../../css/bootstrap.min.css" rel="stylesheet">
|
|
<link href="../../css/fontawesome.min.css" rel="stylesheet">
|
|
<link href="../../css/brands.min.css" rel="stylesheet">
|
|
<link href="../../css/solid.min.css" rel="stylesheet">
|
|
<link href="../../css/v4-font-face.min.css" rel="stylesheet">
|
|
<link href="../../css/base.css" rel="stylesheet">
|
|
<link id="hljs-light" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" >
|
|
<link id="hljs-dark" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github-dark.min.css" disabled>
|
|
<link href="../../assets/_mkdocstrings.css" rel="stylesheet">
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
|
|
<script>hljs.highlightAll();</script>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
|
|
<div class="container">
|
|
<a class="navbar-brand" href="../..">mt5cli API Documentation</a>
|
|
<!-- Expander button -->
|
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
|
<span class="navbar-toggler-icon"></span>
|
|
</button>
|
|
|
|
<!-- Expanded navigation -->
|
|
<div id="navbar-collapse" class="navbar-collapse collapse">
|
|
<!-- Main navigation -->
|
|
<ul class="nav navbar-nav">
|
|
<li class="nav-item">
|
|
<a href="../.." class="nav-link">Home</a>
|
|
</li>
|
|
<li class="nav-item dropdown">
|
|
<a href="#" class="nav-link dropdown-toggle active" aria-current="page" role="button" data-bs-toggle="dropdown" aria-expanded="false">API Reference</a>
|
|
<ul class="dropdown-menu">
|
|
|
|
<li>
|
|
<a href="../" class="dropdown-item">Overview</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../public-contract/" class="dropdown-item">Public API Contract</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="./" class="dropdown-item active" aria-current="page">Client</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../schemas/" class="dropdown-item">Schemas</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../converters/" class="dropdown-item">Converters</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../exceptions/" class="dropdown-item">Exceptions</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../cli/" class="dropdown-item">CLI</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../sdk/" class="dropdown-item">SDK</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../trading/" class="dropdown-item">Trading</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../history/" class="dropdown-item">History Collection (SQLite)</a>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="../utils/" class="dropdown-item">Utils</a>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
|
|
<ul class="nav navbar-nav ms-md-auto">
|
|
<li class="nav-item">
|
|
<a href="#" class="nav-link" data-bs-toggle="modal" data-bs-target="#mkdocs_search_modal">
|
|
<i class="fa fa-search"></i> Search
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a rel="prev" href="../public-contract/" class="nav-link">
|
|
<i class="fa fa-arrow-left"></i> Previous
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a rel="next" href="../schemas/" class="nav-link">
|
|
Next <i class="fa fa-arrow-right"></i>
|
|
</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a href="https://github.com/dceoy/mt5cli/edit/master/docs/api/client.md" class="nav-link">Edit on dceoy/mt5cli
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container">
|
|
<div class="row">
|
|
<div class="col-md-3"><div class="navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggler collapsed" data-bs-toggle="collapse" data-bs-target="#toc-collapse" title="Table of Contents">
|
|
<span class="fa fa-angle-down"></span>
|
|
</button>
|
|
</div>
|
|
|
|
|
|
<div id="toc-collapse" class="navbar-collapse collapse card bg-body-tertiary">
|
|
<ul class="nav flex-column">
|
|
|
|
<li class="nav-item" data-bs-level="1"><a href="#client" class="nav-link">Client</a>
|
|
<ul class="nav flex-column">
|
|
<li class="nav-item" data-bs-level="2"><a href="#mt5cli.client" class="nav-link">client</a>
|
|
<ul class="nav flex-column">
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div></div>
|
|
<div class="col-md-9" role="main">
|
|
|
|
<h1 id="client">Client<a class="headerlink" href="#client" title="Permanent link">¶</a></h1>
|
|
|
|
|
|
<div class="doc doc-object doc-module">
|
|
|
|
|
|
|
|
<h2 id="mt5cli.client" class="doc doc-heading">
|
|
<span class="doc doc-object-name doc-module-name">mt5cli.client</span>
|
|
|
|
|
|
<a href="#mt5cli.client" class="headerlink" title="Permanent link">¶</a></h2>
|
|
|
|
<div class="doc doc-contents first">
|
|
|
|
<p>Stable public client abstraction for MT5 data and execution operations.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="doc doc-children">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="doc doc-object doc-attribute">
|
|
|
|
|
|
|
|
<h3 id="mt5cli.client.__all__" class="doc doc-heading">
|
|
<span class="doc doc-object-name doc-attribute-name">__all__</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-module-attribute"><code>module-attribute</code></small>
|
|
</span>
|
|
|
|
<a href="#mt5cli.client.__all__" class="headerlink" title="Permanent link">¶</a></h3>
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'MT5Client'</span><span class="p">,</span> <span class="s1">'build_config'</span><span class="p">,</span> <span class="s1">'mt5_session'</span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents ">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="doc doc-object doc-class">
|
|
|
|
|
|
|
|
<h3 id="mt5cli.client.MT5Client" class="doc doc-heading">
|
|
<span class="doc doc-object-name doc-class-name">MT5Client</span>
|
|
|
|
|
|
<a href="#mt5cli.client.MT5Client" class="headerlink" title="Permanent link">¶</a></h3>
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">MT5Client</span><span class="p">(</span>
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="o">*</span><span class="p">,</span>
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">path</span><span class="p">:</span> <span class="n"><span title="str">str</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">login</span><span class="p">:</span> <span class="n"><span title="int">int</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">password</span><span class="p">:</span> <span class="n"><span title="str">str</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">server</span><span class="p">:</span> <span class="n"><span title="str">str</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">timeout</span><span class="p">:</span> <span class="n"><span title="int">int</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a> <span class="n">retry_count</span><span class="p">:</span> <span class="n"><span title="int">int</span></span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span>
|
|
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a> <span class="n">config</span><span class="p">:</span> <span class="n"><span title="pdmt5.Mt5Config">Mt5Config</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-10" name="__codelineno-0-10" href="#__codelineno-0-10"></a> <span class="n">client</span><span class="p">:</span> <span class="n"><span title="pdmt5.Mt5DataClient">Mt5DataClient</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-11" name="__codelineno-0-11" href="#__codelineno-0-11"></a><span class="p">)</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents ">
|
|
<p class="doc doc-class-bases">
|
|
Bases: <code><a class="autorefs autorefs-internal" title="Mt5CliClient (mt5cli.sdk.Mt5CliClient)" href="../sdk/#mt5cli.sdk.Mt5CliClient">Mt5CliClient</a></code></p>
|
|
|
|
|
|
|
|
<p>Public client for generic MT5 data access and order primitives.</p>
|
|
<p>Extends the read-only SDK client with optional order check/send helpers and
|
|
exposes the same connection lifecycle as :func:<code>mt5_session</code>.</p>
|
|
<p>mt5cli intentionally exposes minimal execution primitives only. Trading
|
|
decisions, signals, strategies, backtests, and optimization remain the
|
|
responsibility of downstream applications.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>mt5cli/sdk.py</code></summary>
|
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-432">432</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-433">433</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-434">434</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-435">435</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-436">436</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-437">437</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-438">438</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-439">439</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-440">440</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-441">441</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-442">442</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-443">443</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-444">444</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-445">445</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-446">446</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-447">447</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-448">448</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-449">449</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-450">450</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-451">451</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-452">452</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-453">453</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-454">454</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-455">455</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-456">456</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-457">457</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-458">458</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-459">459</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-460">460</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-461">461</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-462">462</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-463">463</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-464">464</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-465">465</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-466">466</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-467">467</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-432" name="__codelineno-0-432"></a><span class="k">def</span><span class="w"> </span><span class="fm">__init__</span><span class="p">(</span>
|
|
<a id="__codelineno-0-433" name="__codelineno-0-433"></a> <span class="bp">self</span><span class="p">,</span>
|
|
<a id="__codelineno-0-434" name="__codelineno-0-434"></a> <span class="o">*</span><span class="p">,</span>
|
|
<a id="__codelineno-0-435" name="__codelineno-0-435"></a> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-436" name="__codelineno-0-436"></a> <span class="n">login</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-437" name="__codelineno-0-437"></a> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-438" name="__codelineno-0-438"></a> <span class="n">server</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-439" name="__codelineno-0-439"></a> <span class="n">timeout</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-440" name="__codelineno-0-440"></a> <span class="n">retry_count</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span>
|
|
<a id="__codelineno-0-441" name="__codelineno-0-441"></a> <span class="n">config</span><span class="p">:</span> <span class="n">Mt5Config</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-442" name="__codelineno-0-442"></a> <span class="n">client</span><span class="p">:</span> <span class="n">Mt5DataClient</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-443" name="__codelineno-0-443"></a><span class="p">)</span> <span class="o">-></span> <span class="kc">None</span><span class="p">:</span>
|
|
<a id="__codelineno-0-444" name="__codelineno-0-444"></a><span class="w"> </span><span class="sd">"""Initialize the SDK client.</span>
|
|
<a id="__codelineno-0-445" name="__codelineno-0-445"></a>
|
|
<a id="__codelineno-0-446" name="__codelineno-0-446"></a><span class="sd"> Args:</span>
|
|
<a id="__codelineno-0-447" name="__codelineno-0-447"></a><span class="sd"> path: Path to MetaTrader5 terminal EXE file.</span>
|
|
<a id="__codelineno-0-448" name="__codelineno-0-448"></a><span class="sd"> login: Trading account login.</span>
|
|
<a id="__codelineno-0-449" name="__codelineno-0-449"></a><span class="sd"> password: Trading account password.</span>
|
|
<a id="__codelineno-0-450" name="__codelineno-0-450"></a><span class="sd"> server: Trading server name.</span>
|
|
<a id="__codelineno-0-451" name="__codelineno-0-451"></a><span class="sd"> timeout: Connection timeout in milliseconds.</span>
|
|
<a id="__codelineno-0-452" name="__codelineno-0-452"></a><span class="sd"> retry_count: Number of MT5 initialization retries for sessions</span>
|
|
<a id="__codelineno-0-453" name="__codelineno-0-453"></a><span class="sd"> opened by this client.</span>
|
|
<a id="__codelineno-0-454" name="__codelineno-0-454"></a><span class="sd"> config: Optional pre-built ``Mt5Config`` (overrides other args).</span>
|
|
<a id="__codelineno-0-455" name="__codelineno-0-455"></a><span class="sd"> client: Optional already-connected ``Mt5DataClient``. Injected</span>
|
|
<a id="__codelineno-0-456" name="__codelineno-0-456"></a><span class="sd"> clients are reused as-is and are not initialized or shut down.</span>
|
|
<a id="__codelineno-0-457" name="__codelineno-0-457"></a><span class="sd"> """</span>
|
|
<a id="__codelineno-0-458" name="__codelineno-0-458"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_config</span> <span class="o">=</span> <span class="n">config</span> <span class="ow">or</span> <span class="n">build_config</span><span class="p">(</span>
|
|
<a id="__codelineno-0-459" name="__codelineno-0-459"></a> <span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span>
|
|
<a id="__codelineno-0-460" name="__codelineno-0-460"></a> <span class="n">login</span><span class="o">=</span><span class="n">login</span><span class="p">,</span>
|
|
<a id="__codelineno-0-461" name="__codelineno-0-461"></a> <span class="n">password</span><span class="o">=</span><span class="n">password</span><span class="p">,</span>
|
|
<a id="__codelineno-0-462" name="__codelineno-0-462"></a> <span class="n">server</span><span class="o">=</span><span class="n">server</span><span class="p">,</span>
|
|
<a id="__codelineno-0-463" name="__codelineno-0-463"></a> <span class="n">timeout</span><span class="o">=</span><span class="n">timeout</span><span class="p">,</span>
|
|
<a id="__codelineno-0-464" name="__codelineno-0-464"></a> <span class="p">)</span>
|
|
<a id="__codelineno-0-465" name="__codelineno-0-465"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_retry_count</span> <span class="o">=</span> <span class="n">retry_count</span>
|
|
<a id="__codelineno-0-466" name="__codelineno-0-466"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_client</span> <span class="o">=</span> <span class="n">client</span>
|
|
<a id="__codelineno-0-467" name="__codelineno-0-467"></a> <span class="bp">self</span><span class="o">.</span><span class="n">_owns_client</span> <span class="o">=</span> <span class="n">client</span> <span class="ow">is</span> <span class="kc">None</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
|
|
|
|
|
|
<div class="doc doc-children">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h4 id="mt5cli.client.MT5Client.from_connected_client" class="doc doc-heading">
|
|
<span class="doc doc-object-name doc-function-name">from_connected_client</span>
|
|
|
|
|
|
<span class="doc doc-labels">
|
|
<small class="doc doc-label doc-label-classmethod"><code>classmethod</code></small>
|
|
</span>
|
|
|
|
<a href="#mt5cli.client.MT5Client.from_connected_client" class="headerlink" title="Permanent link">¶</a></h4>
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">from_connected_client</span><span class="p">(</span><span class="n">client</span><span class="p">:</span> <span class="n"><span title="pdmt5.Mt5DataClient">Mt5DataClient</span></span><span class="p">)</span> <span class="o">-></span> <span class="n"><span title="typing.Self">Self</span></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents ">
|
|
|
|
<p>Bind to an already-connected <code>Mt5DataClient</code> without owning it.</p>
|
|
|
|
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code><span title="typing.Self">Self</span></code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>Client wrapper bound to the injected connection.</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>mt5cli/client.py</code></summary>
|
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-63">63</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-64">64</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-65">65</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-66">66</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-67">67</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-68">68</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-69">69</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-70">70</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-63" name="__codelineno-0-63"></a><span class="nd">@classmethod</span>
|
|
<a id="__codelineno-0-64" name="__codelineno-0-64"></a><span class="k">def</span><span class="w"> </span><span class="nf">from_connected_client</span><span class="p">(</span><span class="bp">cls</span><span class="p">,</span> <span class="n">client</span><span class="p">:</span> <span class="n">Mt5DataClient</span><span class="p">)</span> <span class="o">-></span> <span class="n">Self</span><span class="p">:</span>
|
|
<a id="__codelineno-0-65" name="__codelineno-0-65"></a><span class="w"> </span><span class="sd">"""Bind to an already-connected ``Mt5DataClient`` without owning it.</span>
|
|
<a id="__codelineno-0-66" name="__codelineno-0-66"></a>
|
|
<a id="__codelineno-0-67" name="__codelineno-0-67"></a><span class="sd"> Returns:</span>
|
|
<a id="__codelineno-0-68" name="__codelineno-0-68"></a><span class="sd"> Client wrapper bound to the injected connection.</span>
|
|
<a id="__codelineno-0-69" name="__codelineno-0-69"></a><span class="sd"> """</span>
|
|
<a id="__codelineno-0-70" name="__codelineno-0-70"></a> <span class="k">return</span> <span class="bp">cls</span><span class="p">(</span><span class="n">client</span><span class="o">=</span><span class="n">client</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h4 id="mt5cli.client.MT5Client.order_check" class="doc doc-heading">
|
|
<span class="doc doc-object-name doc-function-name">order_check</span>
|
|
|
|
|
|
<a href="#mt5cli.client.MT5Client.order_check" class="headerlink" title="Permanent link">¶</a></h4>
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">order_check</span><span class="p">(</span><span class="n">request</span><span class="p">:</span> <span class="n"><span title="dict">dict</span></span><span class="p">[</span><span class="n"><span title="str">str</span></span><span class="p">,</span> <span class="n"><span title="typing.Any">Any</span></span><span class="p">])</span> <span class="o">-></span> <span class="n"><span title="pandas.DataFrame">DataFrame</span></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents ">
|
|
|
|
<p>Check funds sufficiency for a trade request.</p>
|
|
|
|
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code>request</code>
|
|
</td>
|
|
<td>
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>MT5 order request dictionary.</p>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<em>required</em>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code><span title="pandas.DataFrame">DataFrame</span></code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>One-row DataFrame with the order-check result.</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>mt5cli/client.py</code></summary>
|
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-34">34</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-35">35</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-36">36</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-37">37</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-38">38</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-39">39</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-40">40</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-41">41</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-42">42</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-43">43</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-34" name="__codelineno-0-34"></a><span class="k">def</span><span class="w"> </span><span class="nf">order_check</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">])</span> <span class="o">-></span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">:</span>
|
|
<a id="__codelineno-0-35" name="__codelineno-0-35"></a><span class="w"> </span><span class="sd">"""Check funds sufficiency for a trade request.</span>
|
|
<a id="__codelineno-0-36" name="__codelineno-0-36"></a>
|
|
<a id="__codelineno-0-37" name="__codelineno-0-37"></a><span class="sd"> Args:</span>
|
|
<a id="__codelineno-0-38" name="__codelineno-0-38"></a><span class="sd"> request: MT5 order request dictionary.</span>
|
|
<a id="__codelineno-0-39" name="__codelineno-0-39"></a>
|
|
<a id="__codelineno-0-40" name="__codelineno-0-40"></a><span class="sd"> Returns:</span>
|
|
<a id="__codelineno-0-41" name="__codelineno-0-41"></a><span class="sd"> One-row DataFrame with the order-check result.</span>
|
|
<a id="__codelineno-0-42" name="__codelineno-0-42"></a><span class="sd"> """</span>
|
|
<a id="__codelineno-0-43" name="__codelineno-0-43"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fetch</span><span class="p">(</span><span class="k">lambda</span> <span class="n">client</span><span class="p">:</span> <span class="n">client</span><span class="o">.</span><span class="n">order_check_as_df</span><span class="p">(</span><span class="n">request</span><span class="o">=</span><span class="n">request</span><span class="p">))</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h4 id="mt5cli.client.MT5Client.order_send" class="doc doc-heading">
|
|
<span class="doc doc-object-name doc-function-name">order_send</span>
|
|
|
|
|
|
<a href="#mt5cli.client.MT5Client.order_send" class="headerlink" title="Permanent link">¶</a></h4>
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">order_send</span><span class="p">(</span><span class="n">request</span><span class="p">:</span> <span class="n"><span title="dict">dict</span></span><span class="p">[</span><span class="n"><span title="str">str</span></span><span class="p">,</span> <span class="n"><span title="typing.Any">Any</span></span><span class="p">])</span> <span class="o">-></span> <span class="n"><span title="pandas.DataFrame">DataFrame</span></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents ">
|
|
|
|
<p>Send a live trade request to the MT5 trade server.</p>
|
|
|
|
|
|
<details class="warning" open>
|
|
<summary>Warning</summary>
|
|
<p>This is a live execution primitive. A successful call can place,
|
|
modify, or close real trades on the connected account. Downstream
|
|
applications must gate usage explicitly (for example behind manual
|
|
confirmation or application-specific risk controls). mt5cli does
|
|
not implement strategy logic, signal generation, or trade sizing.</p>
|
|
</details>
|
|
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code>request</code>
|
|
</td>
|
|
<td>
|
|
<code><span title="dict">dict</span>[<span title="str">str</span>, <span title="typing.Any">Any</span>]</code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>MT5 order request dictionary.</p>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<em>required</em>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code><span title="pandas.DataFrame">DataFrame</span></code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>One-row DataFrame with the order-send result.</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>mt5cli/client.py</code></summary>
|
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-45">45</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-46">46</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-47">47</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-48">48</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-49">49</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-50">50</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-51">51</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-52">52</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-53">53</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-54">54</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-55">55</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-56">56</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-57">57</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-58">58</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-59">59</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-60">60</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-61">61</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-45" name="__codelineno-0-45"></a><span class="k">def</span><span class="w"> </span><span class="nf">order_send</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">request</span><span class="p">:</span> <span class="nb">dict</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="n">Any</span><span class="p">])</span> <span class="o">-></span> <span class="n">pd</span><span class="o">.</span><span class="n">DataFrame</span><span class="p">:</span>
|
|
<a id="__codelineno-0-46" name="__codelineno-0-46"></a><span class="w"> </span><span class="sd">"""Send a live trade request to the MT5 trade server.</span>
|
|
<a id="__codelineno-0-47" name="__codelineno-0-47"></a>
|
|
<a id="__codelineno-0-48" name="__codelineno-0-48"></a><span class="sd"> Warning:</span>
|
|
<a id="__codelineno-0-49" name="__codelineno-0-49"></a><span class="sd"> This is a live execution primitive. A successful call can place,</span>
|
|
<a id="__codelineno-0-50" name="__codelineno-0-50"></a><span class="sd"> modify, or close real trades on the connected account. Downstream</span>
|
|
<a id="__codelineno-0-51" name="__codelineno-0-51"></a><span class="sd"> applications must gate usage explicitly (for example behind manual</span>
|
|
<a id="__codelineno-0-52" name="__codelineno-0-52"></a><span class="sd"> confirmation or application-specific risk controls). mt5cli does</span>
|
|
<a id="__codelineno-0-53" name="__codelineno-0-53"></a><span class="sd"> not implement strategy logic, signal generation, or trade sizing.</span>
|
|
<a id="__codelineno-0-54" name="__codelineno-0-54"></a>
|
|
<a id="__codelineno-0-55" name="__codelineno-0-55"></a><span class="sd"> Args:</span>
|
|
<a id="__codelineno-0-56" name="__codelineno-0-56"></a><span class="sd"> request: MT5 order request dictionary.</span>
|
|
<a id="__codelineno-0-57" name="__codelineno-0-57"></a>
|
|
<a id="__codelineno-0-58" name="__codelineno-0-58"></a><span class="sd"> Returns:</span>
|
|
<a id="__codelineno-0-59" name="__codelineno-0-59"></a><span class="sd"> One-row DataFrame with the order-send result.</span>
|
|
<a id="__codelineno-0-60" name="__codelineno-0-60"></a><span class="sd"> """</span>
|
|
<a id="__codelineno-0-61" name="__codelineno-0-61"></a> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">_fetch</span><span class="p">(</span><span class="k">lambda</span> <span class="n">client</span><span class="p">:</span> <span class="n">client</span><span class="o">.</span><span class="n">order_send_as_df</span><span class="p">(</span><span class="n">request</span><span class="o">=</span><span class="n">request</span><span class="p">))</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="mt5cli.client.build_config" class="doc doc-heading">
|
|
<span class="doc doc-object-name doc-function-name">build_config</span>
|
|
|
|
|
|
<a href="#mt5cli.client.build_config" class="headerlink" title="Permanent link">¶</a></h3>
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">build_config</span><span class="p">(</span>
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="o">*</span><span class="p">,</span>
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a> <span class="n">path</span><span class="p">:</span> <span class="n"><span title="str">str</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-4" name="__codelineno-0-4" href="#__codelineno-0-4"></a> <span class="n">login</span><span class="p">:</span> <span class="n"><span title="int">int</span></span> <span class="o">|</span> <span class="n"><span title="str">str</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-5" name="__codelineno-0-5" href="#__codelineno-0-5"></a> <span class="n">password</span><span class="p">:</span> <span class="n"><span title="str">str</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-6" name="__codelineno-0-6" href="#__codelineno-0-6"></a> <span class="n">server</span><span class="p">:</span> <span class="n"><span title="str">str</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-7" name="__codelineno-0-7" href="#__codelineno-0-7"></a> <span class="n">timeout</span><span class="p">:</span> <span class="n"><span title="int">int</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-8" name="__codelineno-0-8" href="#__codelineno-0-8"></a> <span class="n">allow_whole_dollar_env</span><span class="p">:</span> <span class="n"><span title="bool">bool</span></span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
|
<a id="__codelineno-0-9" name="__codelineno-0-9" href="#__codelineno-0-9"></a><span class="p">)</span> <span class="o">-></span> <span class="n"><span title="pdmt5.Mt5Config">Mt5Config</span></span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents ">
|
|
|
|
<p>Build an <code>Mt5Config</code> from optional connection parameters.</p>
|
|
|
|
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code>path</code>
|
|
</td>
|
|
<td>
|
|
<code><span title="str">str</span> | None</code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>Optional terminal executable path.</p>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<code>None</code>
|
|
</td>
|
|
</tr>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code>login</code>
|
|
</td>
|
|
<td>
|
|
<code><span title="int">int</span> | <span title="str">str</span> | None</code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>Optional trading account login. Integers are preserved. String
|
|
values are coerced: empty or whitespace-only strings become
|
|
<code>None</code>; numeric strings such as <code>"12345"</code> are converted to
|
|
<code>int</code>; non-numeric strings raise <code>ValueError</code>. When
|
|
<code>allow_whole_dollar_env=True</code>, <code>$ENV_NAME</code> and
|
|
<code>${ENV_NAME}</code> placeholders are expanded before coercion.</p>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<code>None</code>
|
|
</td>
|
|
</tr>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code>password</code>
|
|
</td>
|
|
<td>
|
|
<code><span title="str">str</span> | None</code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>Optional trading account password.</p>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<code>None</code>
|
|
</td>
|
|
</tr>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code>server</code>
|
|
</td>
|
|
<td>
|
|
<code><span title="str">str</span> | None</code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>Optional trading server name.</p>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<code>None</code>
|
|
</td>
|
|
</tr>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code>timeout</code>
|
|
</td>
|
|
<td>
|
|
<code><span title="int">int</span> | None</code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>Optional connection timeout in milliseconds.</p>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<code>None</code>
|
|
</td>
|
|
</tr>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code>allow_whole_dollar_env</code>
|
|
</td>
|
|
<td>
|
|
<code><span title="bool">bool</span></code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>When <code>True</code>, string parameters that are
|
|
exactly <code>$ENV_NAME</code> are expanded from the environment. Applies
|
|
to <code>path</code>, <code>login</code>, <code>password</code>, and <code>server</code>. Default
|
|
<code>False</code> preserves existing behavior.</p>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<code>False</code>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<p><span class="doc-section-title">Returns:</span></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code><span title="pdmt5.Mt5Config">Mt5Config</span></code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>Configured <code>Mt5Config</code> instance.</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>mt5cli/sdk.py</code></summary>
|
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-324">324</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-325">325</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-326">326</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-327">327</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-328">328</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-329">329</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-330">330</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-331">331</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-332">332</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-333">333</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-334">334</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-335">335</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-336">336</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-337">337</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-338">338</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-339">339</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-340">340</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-341">341</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-342">342</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-343">343</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-344">344</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-345">345</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-346">346</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-347">347</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-348">348</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-349">349</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-350">350</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-351">351</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-352">352</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-353">353</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-354">354</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-355">355</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-356">356</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-357">357</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-358">358</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-359">359</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-360">360</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-361">361</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-362">362</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-363">363</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-364">364</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-365">365</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-366">366</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-367">367</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-368">368</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-369">369</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-370">370</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-371">371</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-324" name="__codelineno-0-324"></a><span class="k">def</span><span class="w"> </span><span class="nf">build_config</span><span class="p">(</span>
|
|
<a id="__codelineno-0-325" name="__codelineno-0-325"></a> <span class="o">*</span><span class="p">,</span>
|
|
<a id="__codelineno-0-326" name="__codelineno-0-326"></a> <span class="n">path</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-327" name="__codelineno-0-327"></a> <span class="n">login</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-328" name="__codelineno-0-328"></a> <span class="n">password</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-329" name="__codelineno-0-329"></a> <span class="n">server</span><span class="p">:</span> <span class="nb">str</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-330" name="__codelineno-0-330"></a> <span class="n">timeout</span><span class="p">:</span> <span class="nb">int</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-331" name="__codelineno-0-331"></a> <span class="n">allow_whole_dollar_env</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
|
<a id="__codelineno-0-332" name="__codelineno-0-332"></a><span class="p">)</span> <span class="o">-></span> <span class="n">Mt5Config</span><span class="p">:</span>
|
|
<a id="__codelineno-0-333" name="__codelineno-0-333"></a><span class="w"> </span><span class="sd">"""Build an ``Mt5Config`` from optional connection parameters.</span>
|
|
<a id="__codelineno-0-334" name="__codelineno-0-334"></a>
|
|
<a id="__codelineno-0-335" name="__codelineno-0-335"></a><span class="sd"> Args:</span>
|
|
<a id="__codelineno-0-336" name="__codelineno-0-336"></a><span class="sd"> path: Optional terminal executable path.</span>
|
|
<a id="__codelineno-0-337" name="__codelineno-0-337"></a><span class="sd"> login: Optional trading account login. Integers are preserved. String</span>
|
|
<a id="__codelineno-0-338" name="__codelineno-0-338"></a><span class="sd"> values are coerced: empty or whitespace-only strings become</span>
|
|
<a id="__codelineno-0-339" name="__codelineno-0-339"></a><span class="sd"> ``None``; numeric strings such as ``"12345"`` are converted to</span>
|
|
<a id="__codelineno-0-340" name="__codelineno-0-340"></a><span class="sd"> ``int``; non-numeric strings raise ``ValueError``. When</span>
|
|
<a id="__codelineno-0-341" name="__codelineno-0-341"></a><span class="sd"> ``allow_whole_dollar_env=True``, ``$ENV_NAME`` and</span>
|
|
<a id="__codelineno-0-342" name="__codelineno-0-342"></a><span class="sd"> ``${ENV_NAME}`` placeholders are expanded before coercion.</span>
|
|
<a id="__codelineno-0-343" name="__codelineno-0-343"></a><span class="sd"> password: Optional trading account password.</span>
|
|
<a id="__codelineno-0-344" name="__codelineno-0-344"></a><span class="sd"> server: Optional trading server name.</span>
|
|
<a id="__codelineno-0-345" name="__codelineno-0-345"></a><span class="sd"> timeout: Optional connection timeout in milliseconds.</span>
|
|
<a id="__codelineno-0-346" name="__codelineno-0-346"></a><span class="sd"> allow_whole_dollar_env: When ``True``, string parameters that are</span>
|
|
<a id="__codelineno-0-347" name="__codelineno-0-347"></a><span class="sd"> exactly ``$ENV_NAME`` are expanded from the environment. Applies</span>
|
|
<a id="__codelineno-0-348" name="__codelineno-0-348"></a><span class="sd"> to ``path``, ``login``, ``password``, and ``server``. Default</span>
|
|
<a id="__codelineno-0-349" name="__codelineno-0-349"></a><span class="sd"> ``False`` preserves existing behavior.</span>
|
|
<a id="__codelineno-0-350" name="__codelineno-0-350"></a>
|
|
<a id="__codelineno-0-351" name="__codelineno-0-351"></a><span class="sd"> Returns:</span>
|
|
<a id="__codelineno-0-352" name="__codelineno-0-352"></a><span class="sd"> Configured ``Mt5Config`` instance.</span>
|
|
<a id="__codelineno-0-353" name="__codelineno-0-353"></a><span class="sd"> """</span>
|
|
<a id="__codelineno-0-354" name="__codelineno-0-354"></a> <span class="k">if</span> <span class="n">allow_whole_dollar_env</span><span class="p">:</span>
|
|
<a id="__codelineno-0-355" name="__codelineno-0-355"></a> <span class="k">if</span> <span class="n">path</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
<a id="__codelineno-0-356" name="__codelineno-0-356"></a> <span class="n">path</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span><span class="n">path</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
<a id="__codelineno-0-357" name="__codelineno-0-357"></a> <span class="k">if</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">login</span><span class="p">,</span> <span class="nb">str</span><span class="p">):</span>
|
|
<a id="__codelineno-0-358" name="__codelineno-0-358"></a> <span class="n">login</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span><span class="n">login</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
<a id="__codelineno-0-359" name="__codelineno-0-359"></a> <span class="k">if</span> <span class="n">password</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
<a id="__codelineno-0-360" name="__codelineno-0-360"></a> <span class="n">password</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span>
|
|
<a id="__codelineno-0-361" name="__codelineno-0-361"></a> <span class="n">password</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span>
|
|
<a id="__codelineno-0-362" name="__codelineno-0-362"></a> <span class="p">)</span>
|
|
<a id="__codelineno-0-363" name="__codelineno-0-363"></a> <span class="k">if</span> <span class="n">server</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span>
|
|
<a id="__codelineno-0-364" name="__codelineno-0-364"></a> <span class="n">server</span> <span class="o">=</span> <span class="n">substitute_env_placeholders</span><span class="p">(</span><span class="n">server</span><span class="p">,</span> <span class="n">allow_whole_dollar_env</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
|
<a id="__codelineno-0-365" name="__codelineno-0-365"></a> <span class="k">return</span> <span class="n">Mt5Config</span><span class="p">(</span>
|
|
<a id="__codelineno-0-366" name="__codelineno-0-366"></a> <span class="n">path</span><span class="o">=</span><span class="n">path</span><span class="p">,</span>
|
|
<a id="__codelineno-0-367" name="__codelineno-0-367"></a> <span class="n">login</span><span class="o">=</span><span class="n">_coerce_login</span><span class="p">(</span><span class="n">login</span><span class="p">),</span>
|
|
<a id="__codelineno-0-368" name="__codelineno-0-368"></a> <span class="n">password</span><span class="o">=</span><span class="n">password</span><span class="p">,</span>
|
|
<a id="__codelineno-0-369" name="__codelineno-0-369"></a> <span class="n">server</span><span class="o">=</span><span class="n">server</span><span class="p">,</span>
|
|
<a id="__codelineno-0-370" name="__codelineno-0-370"></a> <span class="n">timeout</span><span class="o">=</span><span class="n">timeout</span><span class="p">,</span>
|
|
<a id="__codelineno-0-371" name="__codelineno-0-371"></a> <span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="doc doc-object doc-function">
|
|
|
|
|
|
<h3 id="mt5cli.client.mt5_session" class="doc doc-heading">
|
|
<span class="doc doc-object-name doc-function-name">mt5_session</span>
|
|
|
|
|
|
<a href="#mt5cli.client.mt5_session" class="headerlink" title="Permanent link">¶</a></h3>
|
|
<div class="doc-signature highlight"><pre><span></span><code><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">mt5_session</span><span class="p">(</span>
|
|
<a id="__codelineno-0-2" name="__codelineno-0-2" href="#__codelineno-0-2"></a> <span class="n">config</span><span class="p">:</span> <span class="n"><span title="pdmt5.Mt5Config">Mt5Config</span></span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
|
|
<a id="__codelineno-0-3" name="__codelineno-0-3" href="#__codelineno-0-3"></a><span class="p">)</span> <span class="o">-></span> <span class="n"><span title="collections.abc.Iterator">Iterator</span></span><span class="p">[</span><span class="n"><a class="autorefs autorefs-internal" title="MT5Client (mt5cli.client.MT5Client)" href="#mt5cli.client.MT5Client">MT5Client</a></span><span class="p">]</span>
|
|
</code></pre></div>
|
|
|
|
<div class="doc doc-contents ">
|
|
|
|
<p>Open an MT5 terminal session and yield a connected :class:<code>MT5Client</code>.</p>
|
|
|
|
|
|
<p><span class="doc-section-title">Parameters:</span></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th>
|
|
<th>Type</th>
|
|
<th>Description</th>
|
|
<th>Default</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="doc-section-item">
|
|
<td>
|
|
<code>config</code>
|
|
</td>
|
|
<td>
|
|
<code><span title="pdmt5.Mt5Config">Mt5Config</span> | None</code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>MT5 connection configuration. Defaults to an empty config that
|
|
attaches to a running terminal.</p>
|
|
</div>
|
|
</td>
|
|
<td>
|
|
<code>None</code>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<p><span class="doc-section-title">Yields:</span></p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Name</th> <th>Type</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr class="doc-section-item">
|
|
<td><code>Connected</code></td> <td>
|
|
<code><a class="autorefs autorefs-internal" title="MT5Client (mt5cli.client.MT5Client)" href="#mt5cli.client.MT5Client">MT5Client</a></code>
|
|
</td>
|
|
<td>
|
|
<div class="doc-md-description">
|
|
<p>class:<code>MT5Client</code> bound to the session.</p>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
|
|
<details class="mkdocstrings-source">
|
|
<summary>Source code in <code>mt5cli/client.py</code></summary>
|
|
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-0-73">73</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-74">74</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-75">75</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-76">76</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-77">77</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-78">78</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-79">79</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-80">80</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-81">81</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-82">82</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-83">83</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-84">84</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-85">85</a></span>
|
|
<span class="normal"><a href="#__codelineno-0-86">86</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-0-73" name="__codelineno-0-73"></a><span class="nd">@contextmanager</span>
|
|
<a id="__codelineno-0-74" name="__codelineno-0-74"></a><span class="k">def</span><span class="w"> </span><span class="nf">mt5_session</span><span class="p">(</span><span class="n">config</span><span class="p">:</span> <span class="n">Mt5Config</span> <span class="o">|</span> <span class="kc">None</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Iterator</span><span class="p">[</span><span class="n">MT5Client</span><span class="p">]:</span>
|
|
<a id="__codelineno-0-75" name="__codelineno-0-75"></a><span class="w"> </span><span class="sd">"""Open an MT5 terminal session and yield a connected :class:`MT5Client`.</span>
|
|
<a id="__codelineno-0-76" name="__codelineno-0-76"></a>
|
|
<a id="__codelineno-0-77" name="__codelineno-0-77"></a><span class="sd"> Args:</span>
|
|
<a id="__codelineno-0-78" name="__codelineno-0-78"></a><span class="sd"> config: MT5 connection configuration. Defaults to an empty config that</span>
|
|
<a id="__codelineno-0-79" name="__codelineno-0-79"></a><span class="sd"> attaches to a running terminal.</span>
|
|
<a id="__codelineno-0-80" name="__codelineno-0-80"></a>
|
|
<a id="__codelineno-0-81" name="__codelineno-0-81"></a><span class="sd"> Yields:</span>
|
|
<a id="__codelineno-0-82" name="__codelineno-0-82"></a><span class="sd"> Connected :class:`MT5Client` bound to the session.</span>
|
|
<a id="__codelineno-0-83" name="__codelineno-0-83"></a><span class="sd"> """</span>
|
|
<a id="__codelineno-0-84" name="__codelineno-0-84"></a> <span class="n">mt5_config</span> <span class="o">=</span> <span class="n">config</span> <span class="ow">or</span> <span class="n">build_config</span><span class="p">()</span>
|
|
<a id="__codelineno-0-85" name="__codelineno-0-85"></a> <span class="k">with</span> <span class="n">connected_client</span><span class="p">(</span><span class="n">mt5_config</span><span class="p">)</span> <span class="k">as</span> <span class="n">client</span><span class="p">:</span>
|
|
<a id="__codelineno-0-86" name="__codelineno-0-86"></a> <span class="k">yield</span> <span class="n">MT5Client</span><span class="o">.</span><span class="n">from_connected_client</span><span class="p">(</span><span class="n">client</span><span class="p">)</span>
|
|
</code></pre></div></td></tr></table></div>
|
|
</details>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div></div>
|
|
</div>
|
|
</div>
|
|
|
|
<footer class="col-md-12">
|
|
<hr>
|
|
<p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
|
|
</footer>
|
|
<script src="../../js/bootstrap.bundle.min.js"></script>
|
|
<script>
|
|
var base_url = "../..",
|
|
shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
|
|
</script>
|
|
<script src="../../js/base.js"></script>
|
|
<script src="../../search/main.js"></script>
|
|
|
|
<div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title" id="searchModalLabel">Search</h4>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<p>From here you can search these documents. Enter your search terms below.</p>
|
|
<form>
|
|
<div class="form-group">
|
|
<input type="search" class="form-control" placeholder="Search..." id="mkdocs-search-query" title="Type search term here">
|
|
</div>
|
|
</form>
|
|
<div id="mkdocs-search-results" data-no-results-text="No results found"></div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div><div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th style="width: 20%;">Keys</th>
|
|
<th>Action</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td class="help shortcut"><kbd>?</kbd></td>
|
|
<td>Open this help</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="next shortcut"><kbd>n</kbd></td>
|
|
<td>Next page</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="prev shortcut"><kbd>p</kbd></td>
|
|
<td>Previous page</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="search shortcut"><kbd>s</kbd></td>
|
|
<td>Search</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class="modal-footer">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|