File size: 14,922 Bytes
8b8fb92
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE html><html class="default" lang="en" data-base=".."><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>NotificationModel | backtest-kit</title><meta name="description" content="Documentation for backtest-kit"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script><script async src="../assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search"><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></div><ul class="results"><li class="state loading">Preparing search index...</li><li class="state failure">The search index is not available</li></ul><a href="../index.html" class="title">backtest-kit</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">backtest-kit</a></li><li><a href="../modules/types.html">types</a></li><li><a href="types.NotificationModel.html">NotificationModel</a></li></ul><h1>Type Alias NotificationModel</h1></div><div class="tsd-signature"><span class="tsd-kind-type-alias">NotificationModel</span><span class="tsd-signature-symbol">:</span><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.SignalOpenedNotification.html" class="tsd-signature-type tsd-kind-interface">SignalOpenedNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.SignalClosedNotification.html" class="tsd-signature-type tsd-kind-interface">SignalClosedNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.PartialProfitAvailableNotification.html" class="tsd-signature-type tsd-kind-interface">PartialProfitAvailableNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.PartialLossAvailableNotification.html" class="tsd-signature-type tsd-kind-interface">PartialLossAvailableNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.BreakevenAvailableNotification.html" class="tsd-signature-type tsd-kind-interface">BreakevenAvailableNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.PartialProfitCommitNotification.html" class="tsd-signature-type tsd-kind-interface">PartialProfitCommitNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.PartialLossCommitNotification.html" class="tsd-signature-type tsd-kind-interface">PartialLossCommitNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.BreakevenCommitNotification.html" class="tsd-signature-type tsd-kind-interface">BreakevenCommitNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.AverageBuyCommitNotification.html" class="tsd-signature-type tsd-kind-interface">AverageBuyCommitNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.ActivateScheduledCommitNotification.html" class="tsd-signature-type tsd-kind-interface">ActivateScheduledCommitNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.TrailingStopCommitNotification.html" class="tsd-signature-type tsd-kind-interface">TrailingStopCommitNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.TrailingTakeCommitNotification.html" class="tsd-signature-type tsd-kind-interface">TrailingTakeCommitNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.CancelScheduledCommitNotification.html" class="tsd-signature-type tsd-kind-interface">CancelScheduledCommitNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.ClosePendingCommitNotification.html" class="tsd-signature-type tsd-kind-interface">ClosePendingCommitNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.SignalSyncOpenNotification.html" class="tsd-signature-type tsd-kind-interface">SignalSyncOpenNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.SignalSyncCloseNotification.html" class="tsd-signature-type tsd-kind-interface">SignalSyncCloseNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.RiskRejectionNotification.html" class="tsd-signature-type tsd-kind-interface">RiskRejectionNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.SignalScheduledNotification.html" class="tsd-signature-type tsd-kind-interface">SignalScheduledNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.SignalCancelledNotification.html" class="tsd-signature-type tsd-kind-interface">SignalCancelledNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.InfoErrorNotification.html" class="tsd-signature-type tsd-kind-interface">InfoErrorNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.CriticalErrorNotification.html" class="tsd-signature-type tsd-kind-interface">CriticalErrorNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.ValidationErrorNotification.html" class="tsd-signature-type tsd-kind-interface">ValidationErrorNotification</a><br/>    <span class="tsd-signature-symbol">|</span> <a href="../interfaces/types.SignalInfoNotification.html" class="tsd-signature-type tsd-kind-interface">SignalInfoNotification</a></div><div class="tsd-comment tsd-typography"><p>Root discriminated union of all notification types.
Type discrimination is done via the <code>type</code> field.</p>
</div><div class="tsd-comment tsd-typography"><div class="tsd-tag-example"><h4 class="tsd-anchor-link"><a id="example" class="tsd-anchor"></a>Example<a href="#example" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h4><pre><code class="typescript"><span class="hl-3">function</span><span class="hl-1"> </span><span class="hl-0">handleNotification</span><span class="hl-1">(</span><span class="hl-5">notification</span><span class="hl-1">: </span><span class="hl-11">NotificationModel</span><span class="hl-1">) {</span><br/><span class="hl-1">  </span><span class="hl-4">switch</span><span class="hl-1"> (</span><span class="hl-5">notification</span><span class="hl-1">.</span><span class="hl-5">type</span><span class="hl-1">) {</span><br/><span class="hl-1">    </span><span class="hl-4">case</span><span class="hl-1"> </span><span class="hl-2">&quot;signal.opened&quot;</span><span class="hl-1">:</span><br/><span class="hl-1">      </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`Position opened: </span><span class="hl-3">${</span><span class="hl-5">notification</span><span class="hl-9">.</span><span class="hl-5">signalId</span><span class="hl-3">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1">      </span><span class="hl-4">break</span><span class="hl-1">;</span><br/><span class="hl-1">    </span><span class="hl-4">case</span><span class="hl-1"> </span><span class="hl-2">&quot;signal.closed&quot;</span><span class="hl-1">:</span><br/><span class="hl-1">      </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-0">log</span><span class="hl-1">(</span><span class="hl-2">`PNL: </span><span class="hl-3">${</span><span class="hl-5">notification</span><span class="hl-9">.</span><span class="hl-5">pnlPercentage</span><span class="hl-3">}</span><span class="hl-2">%`</span><span class="hl-1">);</span><br/><span class="hl-1">      </span><span class="hl-4">break</span><span class="hl-1">;</span><br/><span class="hl-1">    </span><span class="hl-4">case</span><span class="hl-1"> </span><span class="hl-2">&quot;partial.loss&quot;</span><span class="hl-1">:</span><br/><span class="hl-1">      </span><span class="hl-4">if</span><span class="hl-1"> (</span><span class="hl-5">notification</span><span class="hl-1">.</span><span class="hl-5">level</span><span class="hl-1"> &gt;= </span><span class="hl-7">30</span><span class="hl-1">) {</span><br/><span class="hl-1">        </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-0">warn</span><span class="hl-1">(</span><span class="hl-2">&quot;High loss alert!&quot;</span><span class="hl-1">);</span><br/><span class="hl-1">      }</span><br/><span class="hl-1">      </span><span class="hl-4">break</span><span class="hl-1">;</span><br/><span class="hl-1">    </span><span class="hl-4">case</span><span class="hl-1"> </span><span class="hl-2">&quot;risk.rejection&quot;</span><span class="hl-1">:</span><br/><span class="hl-1">      </span><span class="hl-5">console</span><span class="hl-1">.</span><span class="hl-0">error</span><span class="hl-1">(</span><span class="hl-2">`Signal rejected: </span><span class="hl-3">${</span><span class="hl-5">notification</span><span class="hl-9">.</span><span class="hl-5">rejectionNote</span><span class="hl-3">}</span><span class="hl-2">`</span><span class="hl-1">);</span><br/><span class="hl-1">      </span><span class="hl-4">break</span><span class="hl-1">;</span><br/><span class="hl-1">  }</span><br/><span class="hl-1">}</span>
</code><button type="button">Copy</button></pre>

</div></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/tripolskypetr/backtest-kit/blob/b93fe7a5178c040a7a01701ecef340babde42e22/types.d.ts#L12028">types.d.ts:12028</a></li></ul></aside></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">backtest-kit</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>

<!-- Yandex.Metrika counter -->
<script type="text/javascript">
    (function(m,e,t,r,i,k,a){
        m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
        m[i].l=1*new Date();
        for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
        k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
    })(window, document,'script','https://mc.yandex.ru/metrika/tag.js?id=105455585', 'ym');

    ym(105455585, 'init', {ssr:true, webvisor:true, clickmap:true, ecommerce:"dataLayer", accurateTrackBounce:true, trackLinks:true});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/105455585" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-3MQZEBBDDR"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-3MQZEBBDDR');
</script>