339 lines
131 KiB
HTML
339 lines
131 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<meta name="generator" content="VuePress 2.0.0-beta.67">
|
||
<style>
|
||
:root {
|
||
--c-bg: #fff;
|
||
}
|
||
html.dark {
|
||
--c-bg: #22272e;
|
||
}
|
||
html, body {
|
||
background-color: var(--c-bg);
|
||
}
|
||
</style>
|
||
<script>
|
||
const userMode = localStorage.getItem('vuepress-color-scheme');
|
||
const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
|
||
if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
|
||
document.documentElement.classList.toggle('dark', true);
|
||
}
|
||
</script>
|
||
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon.ico"><link rel="preload" href="/embed/chat-ui-embed.css" as="style"><link rel="preload" href="/embed/chat-ui-embed.umd.cjs" as="script"><link rel="stylesheet" href="/embed/chat-ui-embed.css"><style>
|
||
[data-chat-ui-embedded] {
|
||
background-color: var(--c-bg, #fff);
|
||
}
|
||
html.dark [data-chat-ui-embedded] {
|
||
background-color: var(--c-bg, #1b1b1f);
|
||
}
|
||
.assistant-layout,
|
||
.assistant-panel,
|
||
.assistant-chat {
|
||
background-color: var(--c-bg, #fff);
|
||
}
|
||
html.dark .assistant-layout,
|
||
html.dark .assistant-panel,
|
||
html.dark .assistant-chat {
|
||
background-color: var(--c-bg, #1b1b1f);
|
||
}
|
||
.assistant-chat,
|
||
.assistant-chat-preboot {
|
||
height: 100%;
|
||
width: 100%;
|
||
}
|
||
.assistant-chat.is-ready,
|
||
.assistant-chat-preboot.is-ready {
|
||
opacity: 1 !important;
|
||
}
|
||
</style><script>
|
||
// 为浏览器环境提供process变量的兼容性处理
|
||
if (typeof window !== 'undefined' && !window.process) {
|
||
window.process = { env: { NODE_ENV: 'production' } };
|
||
}
|
||
</script><script src="/embed/chat-ui-embed.umd.cjs" id="chat-ui-embed-script"></script><script>
|
||
window.__chatUILoadPromise = new Promise(function(resolve) {
|
||
function onReady() {
|
||
resolve(!!window.ChatUI);
|
||
}
|
||
if (window.ChatUI) {
|
||
onReady();
|
||
return;
|
||
}
|
||
var el = document.getElementById('chat-ui-embed-script');
|
||
if (!el) {
|
||
resolve(false);
|
||
return;
|
||
}
|
||
if (el.readyState === 'complete' || el.readyState === 'loaded') {
|
||
onReady();
|
||
return;
|
||
}
|
||
el.addEventListener('load', onReady);
|
||
el.addEventListener('error', function() { resolve(false); });
|
||
});
|
||
</script><script>
|
||
var _hmt = _hmt || [];
|
||
(function() {
|
||
var hm = document.createElement("script");
|
||
hm.src = "https://hm.baidu.com/hm.js?db74a9715180bac1ca6d22e853a90e9b";
|
||
var s = document.getElementsByTagName("script")[0];
|
||
s.parentNode.insertBefore(hm, s);
|
||
})();
|
||
</script><title>快速开始 | 迅投知识库</title><meta name="description" content="QMT说明, QMT-Python-API, QMT用户手册。">
|
||
<link rel="preload" href="/assets/style-937c34dd.css" as="style"><link rel="stylesheet" href="/assets/style-937c34dd.css">
|
||
<link rel="modulepreload" href="/assets/app-2fe24c5e.js"><link rel="modulepreload" href="/assets/start_now.html-2cd8fc71.js"><link rel="modulepreload" href="/assets/start_now.html-5a5de085.js"><link rel="prefetch" href="/assets/index.html-aacedb99.js" as="script"><link rel="prefetch" href="/assets/basic_syntax.html-e393df56.js" as="script"><link rel="prefetch" href="/assets/check_sheet.html-a405c8a3.js" as="script"><link rel="prefetch" href="/assets/code_examples.html-985b4984.js" as="script"><link rel="prefetch" href="/assets/control_statement.html-bf992bd7.js" as="script"><link rel="prefetch" href="/assets/operating_mode.html-a2f39c1a.js" as="script"><link rel="prefetch" href="/assets/start_now.html-1be21f8a.js" as="script"><link rel="prefetch" href="/assets/system_function.html-feab901e.js" as="script"><link rel="prefetch" href="/assets/python调用VBA.html-1946fa92.js" as="script"><link rel="prefetch" href="/assets/全市场涨跌幅度统计.html-b8ba35f1.js" as="script"><link rel="prefetch" href="/assets/全市场资金流向.html-2357f922.js" as="script"><link rel="prefetch" href="/assets/前结_今结_持仓.html-a4436106.js" as="script"><link rel="prefetch" href="/assets/北向资金.html-e540615d.js" as="script"><link rel="prefetch" href="/assets/南向资金.html-9137d95c.js" as="script"><link rel="prefetch" href="/assets/因子获取.html-89140fd6.js" as="script"><link rel="prefetch" href="/assets/外盘_内盘.html-e7f33912.js" as="script"><link rel="prefetch" href="/assets/多空对比.html-a634bb69.js" as="script"><link rel="prefetch" href="/assets/委买价_委卖价_委买量_委卖量.html-e9c29505.js" as="script"><link rel="prefetch" href="/assets/委差_委比.html-ff3246bc.js" as="script"><link rel="prefetch" href="/assets/总股本_总市值.html-e8ba60d4.js" as="script"><link rel="prefetch" href="/assets/振幅.html-e9576d1a.js" as="script"><link rel="prefetch" href="/assets/换手.html-f2f05a67.js" as="script"><link rel="prefetch" href="/assets/最新_今开_最高_最低_总额_总手_交易状态.html-2ca89ba1.js" as="script"><link rel="prefetch" href="/assets/注册资本.html-bec636fc.js" as="script"><link rel="prefetch" href="/assets/流通值.html-f34e70d5.js" as="script"><link rel="prefetch" href="/assets/流通盘_流通值.html-50ac8dc4.js" as="script"><link rel="prefetch" href="/assets/涨停_跌停.html-ba7667b7.js" as="script"><link rel="prefetch" href="/assets/涨跌_涨幅.html-a4d004cb.js" as="script"><link rel="prefetch" href="/assets/涨跌家数变化.html-a30316a7.js" as="script"><link rel="prefetch" href="/assets/现手.html-0f4ec2e6.js" as="script"><link rel="prefetch" href="/assets/规模风向标.html-d7dc3f5e.js" as="script"><link rel="prefetch" href="/assets/量比.html-2be39bbd.js" as="script"><link rel="prefetch" href="/assets/rookie.html-90dba3b5.js" as="script"><link rel="prefetch" href="/assets/ty_rookie.html-8868ad82.js" as="script"><link rel="prefetch" href="/assets/index.html-a4665f64.js" as="script"><link rel="prefetch" href="/assets/bond.html-087de96b.js" as="script"><link rel="prefetch" href="/assets/data_browser_barra_factor.html-2740d45d.js" as="script"><link rel="prefetch" href="/assets/floorfunds.html-f1e05c44.js" as="script"><link rel="prefetch" href="/assets/future.html-3c7280d8.js" as="script"><link rel="prefetch" href="/assets/indexes.html-4c831e2f.js" as="script"><link rel="prefetch" href="/assets/industry.html-07c2d987.js" as="script"><link rel="prefetch" href="/assets/option.html-1cda80f4.js" as="script"><link rel="prefetch" href="/assets/question_answer.html-57f4a833.js" as="script"><link rel="prefetch" href="/assets/scenario_based_example.html-e840fc79.js" as="script"><link rel="prefetch" href="/assets/stock.html-d4aeb9ec.js" as="script"><link rel="prefetch" href="/assets/xuntou_factor.html-47f372c3.js" as="script"><link rel="prefetch" href="/assets/callback_function.html-ba3839f5.js" as="script"><link rel="prefetch" href="/assets/code_examples.html-28482bfc.js" as="script"><link rel="prefetch" href="/assets/data_function.html-412f8b29.js" as="script"><link rel="prefetch" href="/assets/data_structure.html-8f55b710.js" as="script"><link rel="prefetch" href="/assets/drawing_function.html-dee669df.js" as="script"><link rel="prefetch" href="/assets/enum_constants.html-42ed8cba.js" as="script"><link rel="prefetch" href="/assets/interface_operation.html-47a2cf15.js" as="script"><link rel="prefetch" href="/assets/question_answer.html-f08895ff.js" as="script"><link rel="prefetch" href="/assets/quote_function.html-d5906fa7.js" as="script"><link rel="prefetch" href="/assets/related_instructions.html-9b630c20.js" as="script"><link rel="prefetch" href="/assets/system_function.html-79f889f8.js" as="script"><link rel="prefetch" href="/assets/trading_function.html-19c5ecb8.js" as="script"><link rel="prefetch" href="/assets/user_attention.html-e0d27a96.js" as="script"><link rel="prefetch" href="/assets/variable_convention.html-92ed4d6f.js" as="script"><link rel="prefetch" href="/assets/code_examples.html-84d3bae8.js" as="script"><link rel="prefetch" href="/assets/download_xtquant.html-9de3a818.js" as="script"><link rel="prefetch" href="/assets/question_function.html-4e4bd334.js" as="script"><link rel="prefetch" href="/assets/start_now.html-b2c933ee.js" as="script"><link rel="prefetch" href="/assets/xtdata.html-312381bb.js" as="script"><link rel="prefetch" href="/assets/xtdata_new.html-2164196d.js" as="script"><link rel="prefetch" href="/assets/xttrader.html-cd097e38.js" as="script"><link rel="prefetch" href="/assets/JoinQuant2QMT.html-38cb9974.js" as="script"><link rel="prefetch" href="/assets/index.html-22b6b31a.js" as="script"><link rel="prefetch" href="/assets/daoru_daochu.html-c8cace75.js" as="script"><link rel="prefetch" href="/assets/hangqing_setting.html-1a9570b3.js" as="script"><link rel="prefetch" href="/assets/ty_add_indicator.html-1f2f4b0a.js" as="script"><link rel="prefetch" href="/assets/ty_backtest_strategy.html-3f8682bc.js" as="script"><link rel="prefetch" href="/assets/ty_code_review_backtest.html-200ceddd.js" as="script"><link rel="prefetch" href="/assets/ty_content.html-f2564dc8.js" as="script"><link rel="prefetch" href="/assets/ty_data_download.html-351b4a4f.js" as="script"><link rel="prefetch" href="/assets/ty_data_interface.html-2e32a98a.js" as="script"><link rel="prefetch" href="/assets/ty_direct_connect.html-f8b10f83.js" as="script"><link rel="prefetch" href="/assets/ty_factor_data.html-1746bcaa.js" as="script"><link rel="prefetch" href="/assets/ty_native_python.html-55154231.js" as="script"><link rel="prefetch" href="/assets/ty_register_install.html-0d2c078f.js" as="script"><link rel="prefetch" href="/assets/404.html-f9875e7b.js" as="script"><link rel="prefetch" href="/assets/index.html-ced75bd7.js" as="script"><link rel="prefetch" href="/assets/basic_syntax.html-b8abc947.js" as="script"><link rel="prefetch" href="/assets/check_sheet.html-dcf52204.js" as="script"><link rel="prefetch" href="/assets/code_examples.html-3113b68a.js" as="script"><link rel="prefetch" href="/assets/control_statement.html-00e2be67.js" as="script"><link rel="prefetch" href="/assets/operating_mode.html-61fbaed0.js" as="script"><link rel="prefetch" href="/assets/start_now.html-eaff5695.js" as="script"><link rel="prefetch" href="/assets/system_function.html-2d90b97e.js" as="script"><link rel="prefetch" href="/assets/python调用VBA.html-13606619.js" as="script"><link rel="prefetch" href="/assets/全市场涨跌幅度统计.html-233ddc7a.js" as="script"><link rel="prefetch" href="/assets/全市场资金流向.html-ecb85a96.js" as="script"><link rel="prefetch" href="/assets/前结_今结_持仓.html-837c8847.js" as="script"><link rel="prefetch" href="/assets/北向资金.html-b86e0737.js" as="script"><link rel="prefetch" href="/assets/南向资金.html-af4159d2.js" as="script"><link rel="prefetch" href="/assets/因子获取.html-96ca84cb.js" as="script"><link rel="prefetch" href="/assets/外盘_内盘.html-46442d98.js" as="script"><link rel="prefetch" href="/assets/多空对比.html-77a530ac.js" as="script"><link rel="prefetch" href="/assets/委买价_委卖价_委买量_委卖量.html-298fb634.js" as="script"><link rel="prefetch" href="/assets/委差_委比.html-8aaf6597.js" as="script"><link rel="prefetch" href="/assets/总股本_总市值.html-ed03a153.js" as="script"><link rel="prefetch" href="/assets/振幅.html-0d26176f.js" as="script"><link rel="prefetch" href="/assets/换手.html-1a803631.js" as="script"><link rel="prefetch" href="/assets/最新_今开_最高_最低_总额_总手_交易状态.html-256abaa5.js" as="script"><link rel="prefetch" href="/assets/注册资本.html-1d912787.js" as="script"><link rel="prefetch" href="/assets/流通值.html-9ba094fb.js" as="script"><link rel="prefetch" href="/assets/流通盘_流通值.html-2d754f1f.js" as="script"><link rel="prefetch" href="/assets/涨停_跌停.html-e9099f68.js" as="script"><link rel="prefetch" href="/assets/涨跌_涨幅.html-4efc9eb8.js" as="script"><link rel="prefetch" href="/assets/涨跌家数变化.html-53de94c7.js" as="script"><link rel="prefetch" href="/assets/现手.html-0ab76010.js" as="script"><link rel="prefetch" href="/assets/规模风向标.html-79312cc7.js" as="script"><link rel="prefetch" href="/assets/量比.html-9ef1d579.js" as="script"><link rel="prefetch" href="/assets/rookie.html-5fca3b77.js" as="script"><link rel="prefetch" href="/assets/ty_rookie.html-35f28c88.js" as="script"><link rel="prefetch" href="/assets/index.html-fcd652a1.js" as="script"><link rel="prefetch" href="/assets/bond.html-29897ac6.js" as="script"><link rel="prefetch" href="/assets/data_browser_barra_factor.html-e738eab1.js" as="script"><link rel="prefetch" href="/assets/floorfunds.html-0d9d6507.js" as="script"><link rel="prefetch" href="/assets/future.html-f7124802.js" as="script"><link rel="prefetch" href="/assets/indexes.html-d7b6311e.js" as="script"><link rel="prefetch" href="/assets/industry.html-16efb403.js" as="script"><link rel="prefetch" href="/assets/option.html-9f501a6a.js" as="script"><link rel="prefetch" href="/assets/question_answer.html-47cf70ab.js" as="script"><link rel="prefetch" href="/assets/scenario_based_example.html-0950e171.js" as="script"><link rel="prefetch" href="/assets/stock.html-f974aa84.js" as="script"><link rel="prefetch" href="/assets/xuntou_factor.html-8e81ea23.js" as="script"><link rel="prefetch" href="/assets/callback_function.html-a2c9d30a.js" as="script"><link rel="prefetch" href="/assets/code_examples.html-2ffd3c2b.js" as="script"><link rel="prefetch" href="/assets/data_function.html-cb5dd5ef.js" as="script"><link rel="prefetch" href="/assets/data_structure.html-2ba7501e.js" as="script"><link rel="prefetch" href="/assets/drawing_function.html-3f6a35e8.js" as="script"><link rel="prefetch" href="/assets/enum_constants.html-cc910da2.js" as="script"><link rel="prefetch" href="/assets/interface_operation.html-9afd00f4.js" as="script"><link rel="prefetch" href="/assets/question_answer.html-f50e9534.js" as="script"><link rel="prefetch" href="/assets/quote_function.html-8ec4b48e.js" as="script"><link rel="prefetch" href="/assets/related_instructions.html-b21d5ef1.js" as="script"><link rel="prefetch" href="/assets/system_function.html-cb9d0895.js" as="script"><link rel="prefetch" href="/assets/trading_function.html-fdb92ee0.js" as="script"><link rel="prefetch" href="/assets/user_attention.html-67276bd2.js" as="script"><link rel="prefetch" href="/assets/variable_convention.html-96cab360.js" as="script"><link rel="prefetch" href="/assets/code_examples.html-7561c6c2.js" as="script"><link rel="prefetch" href="/assets/download_xtquant.html-9bc2e654.js" as="script"><link rel="prefetch" href="/assets/question_function.html-845d97e5.js" as="script"><link rel="prefetch" href="/assets/start_now.html-9a07cd5e.js" as="script"><link rel="prefetch" href="/assets/xtdata.html-60737e81.js" as="script"><link rel="prefetch" href="/assets/xtdata_new.html-18c73eaa.js" as="script"><link rel="prefetch" href="/assets/xttrader.html-a6a0e543.js" as="script"><link rel="prefetch" href="/assets/JoinQuant2QMT.html-ace7c465.js" as="script"><link rel="prefetch" href="/assets/index.html-9d1612c5.js" as="script"><link rel="prefetch" href="/assets/daoru_daochu.html-eae2410f.js" as="script"><link rel="prefetch" href="/assets/hangqing_setting.html-0ff7ba11.js" as="script"><link rel="prefetch" href="/assets/ty_add_indicator.html-79a10fed.js" as="script"><link rel="prefetch" href="/assets/ty_backtest_strategy.html-bf683d1f.js" as="script"><link rel="prefetch" href="/assets/ty_code_review_backtest.html-3497c894.js" as="script"><link rel="prefetch" href="/assets/ty_content.html-d9354c9a.js" as="script"><link rel="prefetch" href="/assets/ty_data_download.html-d1a7795c.js" as="script"><link rel="prefetch" href="/assets/ty_data_interface.html-8f993a77.js" as="script"><link rel="prefetch" href="/assets/ty_direct_connect.html-ffc766ea.js" as="script"><link rel="prefetch" href="/assets/ty_factor_data.html-75792bc5.js" as="script"><link rel="prefetch" href="/assets/ty_native_python.html-7400d196.js" as="script"><link rel="prefetch" href="/assets/ty_register_install.html-5498913b.js" as="script"><link rel="prefetch" href="/assets/404.html-86fec5d9.js" as="script"><link rel="prefetch" href="/assets/SearchBox-625c401e.js" as="script"><link rel="prefetch" href="/assets/auto-6adc87e8.js" as="script"><link rel="prefetch" href="/assets/index-2bf332f6.js" as="script"><link rel="prefetch" href="/assets/flowchart-c441f34d.js" as="script"><link rel="prefetch" href="/assets/SignPanel-da80f282.js" as="script"><link rel="prefetch" href="/assets/SignPanel-da80f282.js" as="script">
|
||
</head>
|
||
<body>
|
||
<div id="app"><!--[--><div class="theme-container"><!--[--><div class="n-config-provider"><header class="navbar"><div><div class="toggle-sidebar-button" title="切换侧边栏" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div></div><span><a href="/" class=""><img class="logo" src="/images/logo.png" alt="迅投知识库"><span class="site-name can-hide">迅投知识库</span></a></span><span><div class="search-box" role="search" data-v-7a908cc7><div data-v-7a908cc7><input value="" aria-label="Search" class="" placeholder="搜索文档" autocomplete="off" spellcheck="false" data-v-7a908cc7><!----></div><!----><!----></div></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide" id="customize-nav"><!--[--><div class="navbar-item"><a href="/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="API"><span class="title">API</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="API"><span class="title">API</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/freshman/ty_rookie.html" class="" aria-label="投研新手教程"><!--[--><!--]--> 投研新手教程 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/freshman/rookie.html" class="" aria-label="QMT新手教程"><!--[--><!--]--> QMT新手教程 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/innerApi/start_now.html" class="router-link-active router-link-exact-active router-link-active" aria-label="内置Python"><!--[--><!--]--> 内置Python <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/nativeApi/start_now.html" class="" aria-label="XtQuant文档"><!--[--><!--]--> XtQuant文档 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/VBA/start_now.html" class="" aria-label="VBA"><!--[--><!--]--> VBA <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="数据字典"><span class="title">数据字典</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="数据字典"><span class="title">数据字典</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/dictionary/" class="" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/stock.html" class="" aria-label="股票数据"><!--[--><!--]--> 股票数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/industry.html" class="" aria-label="行业概念数据"><!--[--><!--]--> 行业概念数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/indexes.html" class="" aria-label="指数数据"><!--[--><!--]--> 指数数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/future.html" class="" aria-label="期货数据"><!--[--><!--]--> 期货数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/option.html" class="" aria-label="期权数据"><!--[--><!--]--> 期权数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/floorfunds.html" class="" aria-label="场内基金数据"><!--[--><!--]--> 场内基金数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/bond.html" class="" aria-label="债券数据"><!--[--><!--]--> 债券数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/question_answer.html" class="" aria-label="常见问题"><!--[--><!--]--> 常见问题 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/scenario_based_example.html" class="" aria-label="场景化示例"><!--[--><!--]--> 场景化示例 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/xuntou_factor.html" class="" aria-label="迅投因子"><!--[--><!--]--> 迅投因子 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/data_browser_barra_factor.html" class="" aria-label="数据浏览器"><!--[--><!--]--> 数据浏览器 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="策略迁移"><span class="title">策略迁移</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="策略迁移"><span class="title">策略迁移</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/strategy/JoinQuant2QMT.html" class="" aria-label="聚宽策略"><!--[--><!--]--> 聚宽策略 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span></span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a aria-current="page" href="/innerApi/start_now.html" class="router-link-active router-link-exact-active router-link-active" aria-label="客服QQ: 810315303"><!--[--><!--]--> 客服QQ: 810315303 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a aria-current="page" href="/innerApi/start_now.html" class="router-link-active router-link-exact-active router-link-active" aria-label="联系方式: 18309226715"><!--[--><!--]--> 联系方式: 18309226715 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="视频教程"><span class="title">视频教程</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="视频教程"><span class="title">视频教程</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/videos/touyan/ty_register_install.html" class="" aria-label="投研端教程"><!--[--><!--]--> 投研端教程 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.xuntou.net/plugin.php?id=keke_video_base" rel="noopener noreferrer" target="_blank" aria-label="迅投学堂"><!--[--><!--]--> 迅投学堂 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><!--]--></nav><div class="navbar-item flexBtn fromBtn"><span> 投研平台 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></span></div><div class="flexBtn fromBtn"><span> 迅投社区 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></span></div><!-- <div class="navbar-item flexBtn fromBtn" v-if="!info.isMobile">
|
||
<span
|
||
@click="getNUrl('crowdfunding')"
|
||
>
|
||
特色众筹
|
||
<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
|
||
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg>
|
||
<span class="external-link-icon-sr-only">在新窗口打开</span>
|
||
</span>
|
||
</span>
|
||
</div> --><div class="navbar-item flexBtn"><a class="external-link" href="http://www.thinktrader.net" rel="noopener noreferrer" target="_blank" aria-label="迅投官网"> 迅投官网 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></a></div><!--v-if--><!--[--><!--]--><div class="ToggleColor"><button class="toggle-color-mode-button" title="切换颜色模式"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button></div><div><div class="n-config-provider user"><!--v-if--></div><div role="none" class="n-space" style="display:flex;flex-direction:row;justify-content:flex-start;flex-wrap:wrap;margin-top:;margin-bottom:;gap:8px 12px;"><!-- <n-button strong secondary type="error" @click="linkTo('/signup/')" v-show="!info.isMobile">注册</n-button> --><!-- <n-button strong secondary type="info" @click="linkTo('/signin/')">登录</n-button> --><div role="none" class="" style="max-width:100%;"><button class="n-button n-button--error-type n-button--medium-type n-button--secondary" tabindex="0" type="button" style="--n-bezier:cubic-bezier(.4, 0, .2, 1);--n-bezier-ease-out:cubic-bezier(0, 0, .2, 1);--n-ripple-duration:.6s;--n-opacity-disabled:0.5;--n-wave-opacity:0.6;--n-font-weight:500;--n-color:rgba(208, 48, 80, 0.16);--n-color-hover:rgba(208, 48, 80, 0.22);--n-color-pressed:rgba(208, 48, 80, 0.28);--n-color-focus:rgba(208, 48, 80, 0.22);--n-color-disabled:rgba(46, 51, 56, .05);--n-ripple-color:#0000;--n-text-color:#d03050;--n-text-color-hover:#d03050;--n-text-color-pressed:#d03050;--n-text-color-focus:#d03050;--n-text-color-disabled:#d03050;--n-border:1px solid #d03050;--n-border-hover:1px solid #de576d;--n-border-pressed:1px solid #ab1f3f;--n-border-focus:1px solid #de576d;--n-border-disabled:1px solid #d03050;--n-width:initial;--n-height:34px;--n-font-size:14px;--n-padding:0 14px;--n-icon-size:18px;--n-icon-margin:6px;--n-border-radius:3px;"><!----><!----><span class="n-button__content">注册</span><div aria-hidden="true" class="n-base-wave"></div><!----><!----></button></div><div role="none" class="" style="max-width:100%;"><button class="n-button n-button--info-type n-button--medium-type n-button--secondary" tabindex="0" type="button" style="--n-bezier:cubic-bezier(.4, 0, .2, 1);--n-bezier-ease-out:cubic-bezier(0, 0, .2, 1);--n-ripple-duration:.6s;--n-opacity-disabled:0.5;--n-wave-opacity:0.6;--n-font-weight:500;--n-color:rgba(32, 128, 240, 0.16);--n-color-hover:rgba(32, 128, 240, 0.22);--n-color-pressed:rgba(32, 128, 240, 0.28);--n-color-focus:rgba(32, 128, 240, 0.22);--n-color-disabled:rgba(46, 51, 56, .05);--n-ripple-color:#0000;--n-text-color:#2080f0;--n-text-color-hover:#2080f0;--n-text-color-pressed:#2080f0;--n-text-color-focus:#2080f0;--n-text-color-disabled:#2080f0;--n-border:1px solid #2080f0;--n-border-hover:1px solid #4098fc;--n-border-pressed:1px solid #1060c9;--n-border-focus:1px solid #4098fc;--n-border-disabled:1px solid #2080f0;--n-width:initial;--n-height:34px;--n-font-size:14px;--n-padding:0 14px;--n-icon-size:18px;--n-icon-margin:6px;--n-border-radius:3px;"><!----><!----><span class="n-button__content">登录</span><div aria-hidden="true" class="n-base-wave"></div><!----><!----></button></div></div></div></div></header><!--[--><!-- 桌面端:微信 / 分享始终可见 --><div class="assistant-float-actions" style="right:462px;top:calc(50% + var(--navbar-height) / 2);" data-v-5b14e8e0><button type="button" class="assistant-float-btn" title="微信扫码联系客服" data-v-5b14e8e0><img src="/assets/wechat-d90fd08f.png" alt="微信扫码联系客服" data-v-5b14e8e0></button><button id="assistant-share-btn" type="button" class="assistant-float-btn" title="分享链接" data-v-5b14e8e0><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADKQTcFAAADjElEQVRIDcVXW0hVQRRdM/fce/OVpfRA8dENDckkMILsYRG9PnqQQUkg9NFfBCFEJJSFRj8R+BP4URREGEVGRNSXWEiE1odoDx+lhkoWpTe1+zrT7KPnes59ddQbDujM7D17rbNn9uzZl8FCqxaC36l1l4iAekgIFDOwDEDIP2psUEAMMoY2ZuONFVUpLdWMqVO66P9ZdBWw/ZZY9GXAfZqpolKCL4+1VtfJj/omOLuWm5VS13SC/dHloX1UYtcld5lA4Lr0MCvUyMpc7sAAg+1M78WUh5HW81ChEIKtqh6rVUXgwVxJCZNsCYOwCDOUxySgBa7LY/dkfzR04XzmjLGG3guLy2UvdByTx3J7a+JNSkSESdg6KfVBj+lMaWuMyniPObMd0c9c85iilwIpHkSZqQyudNNGBmGJg7hIoK2gKzOfQKJt27xawc41dtytSELesijEMuCISyOm5ED3lCazbXaJv6fAjvrjyShcaUPlDidy0mzoHI6eP4hL43TVjG1R/erL2ZAm2IF9ax0oW+9EWiLH0w4PSl02bMhW4PYIFF0diwnHFb5VoTQYc5VBmZrAcLDIgf2FTiQ7p+LyxQcvijO5RkpLO4cDBovIQ+JU5NkWR1bPSFekMByW3u0tcMChBC8Cmrq8yF0iU2ue3ILpZolYckoYliHzsG5n6rOWchwrdqJUAttkDjS2ll4fkuwCB9Y5jWJLHhOnMvPKmOy1yfndichNt4Up2vp9mPAEcGqbdjNM+o6hf281cUaO+2mo2ucTaB/ym4DbB/34/MMfkdQXEOgeiR7RQSAGIYnZYFAQMvj6S8XZR+Ooa5rAuFfg/bAfrX1eVO0K95RMuySpzwIvBBtS6BGXNvkhnKbps04fmrt92CivS315ImSyN+n1iZXAorXEyaly0A1j9eNeYJNLgcIjk5KtVWKJ0CrzNm+MRWjUvekP4KPcztHJyLfAMrHCH3OqkahcMRLEGguZ3uuaPWh466XnzrTUCjFxESenwoxqJBNClEnPSAA3Xk3i5msPzj2ZRPntcfR8n7o+Az9VmS6jGBrExEWc2oHRU9XXP/ppLi+UQ17zkyVOjPxWcf+dz0ARPqQ6LCc7NZ+KwGCkLEghQN9GlQEDvxL+nfGRELZefRBi0GOayGBZmGKPqkCtGoyj55qnIRVmmMck0Bud+f8s6E1brZPq/YL8hNHJqacaKd4/2v4CgdaZJ2zGqYAAAAAASUVORK5CYII=" alt="分享链接" data-v-5b14e8e0></button></div><!-- 桌面端:头部下方左右布局,助手固定右侧 --><aside class="assistant-layout" style="width:450px;" data-v-5b14e8e0><div class="assistant-resize-handle" title="拖动调整宽度,向右拖至最窄可关闭" data-v-5b14e8e0></div><div class="assistant-panel" data-v-5b14e8e0><div class="assistant-loading" data-v-5b14e8e0><div class="assistant-loading-inner" data-v-5b14e8e0><span class="assistant-spinner" aria-hidden="true" data-v-5b14e8e0></span><span class="assistant-loading-text" data-v-5b14e8e0>智能助手加载中...</span></div></div><div data-chat-ui-embedded class="assistant-chat" data-v-5b14e8e0></div><!----></div></aside><!-- 后续启用:底部输入条(展开态)
|
||
<form
|
||
v-if="showFloatingAssistant && quickBarExpanded"
|
||
class="assistant-quick-bar"
|
||
:class="{ 'assistant-quick-bar--mobile': isMobile }"
|
||
role="search"
|
||
aria-label="和 AI 开始对话"
|
||
@submit.prevent="submitFabQuery"
|
||
>
|
||
<input
|
||
v-model="fabQuery"
|
||
type="text"
|
||
class="assistant-quick-bar-input"
|
||
placeholder="和 AI 说点什么,按 Enter 直接发送..."
|
||
maxlength="500"
|
||
aria-label="向 AI 提问"
|
||
/>
|
||
<button
|
||
type="button"
|
||
class="assistant-quick-bar-submit"
|
||
:title="fabQuery.trim() ? '发送并打开智能助手' : '收起输入框'"
|
||
@click="onAiBallClick"
|
||
>
|
||
AI
|
||
</button>
|
||
</form>
|
||
--><!-- 助手收起后:可拖动悬浮球,点击打开智能助手 --><!----><!-- 移动端:保留抽屉 --><!----><!--]--><!--v-if--></div><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><div class="toggleColor" style="display:none;"><button class="toggle-color-mode-button" title="切换颜色模式"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button></div><nav class="navbar-items" id="customize-sidebar"><!--[--><div class="navbar-item"><a href="/" class="" aria-label="首页"><!--[--><!--]--> 首页 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="API"><span class="title">API</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="API"><span class="title">API</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/freshman/ty_rookie.html" class="" aria-label="投研新手教程"><!--[--><!--]--> 投研新手教程 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/freshman/rookie.html" class="" aria-label="QMT新手教程"><!--[--><!--]--> QMT新手教程 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a aria-current="page" href="/innerApi/start_now.html" class="router-link-active router-link-exact-active router-link-active" aria-label="内置Python"><!--[--><!--]--> 内置Python <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/nativeApi/start_now.html" class="" aria-label="XtQuant文档"><!--[--><!--]--> XtQuant文档 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/VBA/start_now.html" class="" aria-label="VBA"><!--[--><!--]--> VBA <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="数据字典"><span class="title">数据字典</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="数据字典"><span class="title">数据字典</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/dictionary/" class="" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/stock.html" class="" aria-label="股票数据"><!--[--><!--]--> 股票数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/industry.html" class="" aria-label="行业概念数据"><!--[--><!--]--> 行业概念数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/indexes.html" class="" aria-label="指数数据"><!--[--><!--]--> 指数数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/future.html" class="" aria-label="期货数据"><!--[--><!--]--> 期货数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/option.html" class="" aria-label="期权数据"><!--[--><!--]--> 期权数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/floorfunds.html" class="" aria-label="场内基金数据"><!--[--><!--]--> 场内基金数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/bond.html" class="" aria-label="债券数据"><!--[--><!--]--> 债券数据 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/question_answer.html" class="" aria-label="常见问题"><!--[--><!--]--> 常见问题 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/scenario_based_example.html" class="" aria-label="场景化示例"><!--[--><!--]--> 场景化示例 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/xuntou_factor.html" class="" aria-label="迅投因子"><!--[--><!--]--> 迅投因子 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a href="/dictionary/data_browser_barra_factor.html" class="" aria-label="数据浏览器"><!--[--><!--]--> 数据浏览器 <!--[--><!--]--></a></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="策略迁移"><span class="title">策略迁移</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="策略迁移"><span class="title">策略迁移</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/strategy/JoinQuant2QMT.html" class="" aria-label="聚宽策略"><!--[--><!--]--> 聚宽策略 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><!--[--><h4 class="navbar-dropdown-subtitle"><span></span></h4><ul class="navbar-dropdown-subitem-wrapper"><!--[--><li class="navbar-dropdown-subitem"><a aria-current="page" href="/innerApi/start_now.html" class="router-link-active router-link-exact-active router-link-active" aria-label="客服QQ: 810315303"><!--[--><!--]--> 客服QQ: 810315303 <!--[--><!--]--></a></li><li class="navbar-dropdown-subitem"><a aria-current="page" href="/innerApi/start_now.html" class="router-link-active router-link-exact-active router-link-active" aria-label="联系方式: 18309226715"><!--[--><!--]--> 联系方式: 18309226715 <!--[--><!--]--></a></li><!--]--></ul><!--]--></li><!--]--></ul></div></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="视频教程"><span class="title">视频教程</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="视频教程"><span class="title">视频教程</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a href="/videos/touyan/ty_register_install.html" class="" aria-label="投研端教程"><!--[--><!--]--> 投研端教程 <!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.xuntou.net/plugin.php?id=keke_video_base" rel="noopener noreferrer" target="_blank" aria-label="迅投学堂"><!--[--><!--]--> 迅投学堂 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><!--]--></nav><div class="newSider" style="display:none;"><div class="fromBtn"><span> 投研平台 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></span></div><div class="fromBtn" style="display:none;"><span> 迅投社区 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></span></div><!-- <div class="navbar-item fromBtn" v-if="info.isMobile">
|
||
<span
|
||
@click="getNUrl('crowdfunding')"
|
||
>
|
||
特色众筹
|
||
<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path>
|
||
<polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg>
|
||
<span class="external-link-icon-sr-only">在新窗口打开</span>
|
||
</span>
|
||
</span>
|
||
</div> --><div class="navbar-item"><a class="external-link" href="http://www.thinktrader.net" rel="noopener noreferrer" target="_blank" aria-label="迅投官网"> 迅投官网 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></a></div><!----></div><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading active">内置Python <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/innerApi/start_now.html" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/innerApi/start_now.html#一、概述" class="router-link-active router-link-exact-active sidebar-item" aria-label="一、概述"><!--[--><!--]--> 一、概述 <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/innerApi/start_now.html#二、场景需求" class="router-link-active router-link-exact-active sidebar-item" aria-label="二、场景需求"><!--[--><!--]--> 二、场景需求 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/innerApi/start_now.html#回测模型" class="router-link-active router-link-exact-active sidebar-item" aria-label="回测模型"><!--[--><!--]--> 回测模型 <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/innerApi/start_now.html#实盘模型" class="router-link-active router-link-exact-active sidebar-item" aria-label="实盘模型"><!--[--><!--]--> 实盘模型 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/innerApi/start_now.html#三、运行机制对比" class="router-link-active router-link-exact-active sidebar-item" aria-label="三、运行机制对比"><!--[--><!--]--> 三、运行机制对比 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/innerApi/start_now.html#逐-k-线驱动-handlebar" class="router-link-active router-link-exact-active sidebar-item" aria-label="逐 K 线驱动:handlebar"><!--[--><!--]--> 逐 K 线驱动:handlebar <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/innerApi/start_now.html#事件驱动-subscribe-订阅推送" class="router-link-active router-link-exact-active sidebar-item" aria-label="事件驱动 :subscribe 订阅推送"><!--[--><!--]--> 事件驱动 :subscribe 订阅推送 <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/innerApi/start_now.html#定时任务-run-time-定时运行" class="router-link-active router-link-exact-active sidebar-item" aria-label="定时任务 :run_time 定时运行"><!--[--><!--]--> 定时任务 :run_time 定时运行 <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/innerApi/start_now.html#不同机制匹配不同场景需求" class="router-link-active router-link-exact-active sidebar-item" aria-label="不同机制匹配不同场景需求"><!--[--><!--]--> 不同机制匹配不同场景需求 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/innerApi/start_now.html#四、逐-k-线驱动-handlebar-示例" class="router-link-active router-link-exact-active sidebar-item" aria-label="四、逐 K 线驱动(handlebar)示例"><!--[--><!--]--> 四、逐 K 线驱动(handlebar)示例 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/innerApi/start_now.html#回测示例-基于-handlebar" class="router-link-active router-link-exact-active sidebar-item" aria-label="回测示例-基于 handlebar"><!--[--><!--]--> 回测示例-基于 handlebar <!--[--><!--]--></a><!----></li><li><a aria-current="page" href="/innerApi/start_now.html#实盘示例-基于-handlebar" class="router-link-active router-link-exact-active sidebar-item" aria-label="实盘示例-基于 handlebar"><!--[--><!--]--> 实盘示例-基于 handlebar <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/innerApi/start_now.html#五、事件驱动-subscribe-示例" class="router-link-active router-link-exact-active sidebar-item" aria-label="五、事件驱动(subscribe)示例"><!--[--><!--]--> 五、事件驱动(subscribe)示例 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/innerApi/start_now.html#实盘示例-基于-subscribe" class="router-link-active router-link-exact-active sidebar-item" aria-label="实盘示例-基于 subscribe"><!--[--><!--]--> 实盘示例-基于 subscribe <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a aria-current="page" href="/innerApi/start_now.html#六、定时任务-run-time-示例" class="router-link-active router-link-exact-active sidebar-item" aria-label="六、定时任务(run_time)示例"><!--[--><!--]--> 六、定时任务(run_time)示例 <!--[--><!--]--></a><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/innerApi/start_now.html#实盘示例-基于-run-time" class="router-link-active router-link-exact-active sidebar-item" aria-label="实盘示例-基于 run_time"><!--[--><!--]--> 实盘示例-基于 run_time <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a href="/innerApi/user_attention.html" class="sidebar-item" aria-label="使用须知"><!--[--><!--]--> 使用须知 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/interface_operation.html" class="sidebar-item" aria-label="界面操作"><!--[--><!--]--> 界面操作 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/variable_convention.html" class="sidebar-item" aria-label="变量约定"><!--[--><!--]--> 变量约定 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/data_structure.html" class="sidebar-item" aria-label="数据结构"><!--[--><!--]--> 数据结构 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/system_function.html" class="sidebar-item" aria-label="系统函数"><!--[--><!--]--> 系统函数 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/data_function.html" class="sidebar-item" aria-label="行情函数"><!--[--><!--]--> 行情函数 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/trading_function.html" class="sidebar-item" aria-label="交易函数"><!--[--><!--]--> 交易函数 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/callback_function.html" class="sidebar-item" aria-label="成交回报实时主推函数"><!--[--><!--]--> 成交回报实时主推函数 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/quote_function.html" class="sidebar-item" aria-label="引用函数"><!--[--><!--]--> 引用函数 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/drawing_function.html" class="sidebar-item" aria-label="绘图函数"><!--[--><!--]--> 绘图函数 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/enum_constants.html" class="sidebar-item" aria-label="枚举常量"><!--[--><!--]--> 枚举常量 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/code_examples.html" class="sidebar-item" aria-label="完整示例"><!--[--><!--]--> 完整示例 <!--[--><!--]--></a><!----></li><li><a href="/innerApi/question_answer.html" class="sidebar-item" aria-label="常见问题"><!--[--><!--]--> 常见问题 <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page" data-v-3c904194><!--[--><!--]--><div class="theme-default-contents" data-v-3c904194><!----><!--[--><!--]--><div class="theme-default-content" data-v-3c904194><div data-v-3c904194><h3 id="一、概述" tabindex="-1"><a class="header-anchor" href="#一、概述" aria-hidden="true">#</a> 一、概述</h3><p>QMT 极速策略交易系统,以下简称 <strong>QMT 系统</strong>,内置了 <strong><code>3.6 版本</code></strong> 的 <code>python</code> 运行环境,提供<strong>行情数据</strong>与<strong>交易下单</strong>两大核心功能。通过编写 python 脚本,可以完成指标计算,策略编写,策略回测,实盘下单等需求。</p><h3 id="二、场景需求" tabindex="-1"><a class="header-anchor" href="#二、场景需求" aria-hidden="true">#</a> 二、场景需求</h3><p>QMT 系统支持<strong>回测模型</strong>与<strong>实盘模型</strong>。</p><p><img src="/assets/内置API_回测模型_实盘模型-a800c759.png" alt=""></p><p><strong>回测模型:</strong> 指在历史 k 线上,自左向右逐根遍历 k 线,以模拟的资金账号记录每日的买卖信号,持仓盈亏,最终展示策略在历史上的净值走势结果。</p><p><strong>实盘模型:</strong> 指在盘中收取最新的动态行情,即时发送买卖信号到交易所,判断委托状态,需要实时重复报撤的模型。</p><br><p><strong>两类模型分别有各自的注意点:</strong></p><h4 id="回测模型" tabindex="-1"><a class="header-anchor" href="#回测模型" aria-hidden="true">#</a> 回测模型</h4><ol><li><p>回测是遍历固定的历史数据:</p><p><img src="/assets/内置API_操作_数据管理_下载全部-d3b5864c.png" alt=""></p><ul><li>首先需要下载历史行情,首次下载可以在界面左上角,点击<code>操作</code>,选择<code>数据管理</code>补充行情,选择回测的周期,如<code>日线</code>,所需的板块数据,如<code>沪深A股板块</code>,时间范围选择<code>全部</code>,下载完整历史行情</li></ul><p><img src="/assets/内置API_批量下载-c98af807.png" alt=""></p><ul><li>其次设置每日定时更新,可以点击客户端右下角<code>行情</code>按钮,在<code>批量下载</code>界面选择需要每天更新的数据,勾选<code>定时下载</code>选项,之后每天在指定时间会自动下载行情数据到本地</li></ul></li><li><p>回测模型取本地数据遍历,不需要向服务器订阅实时行情,应使用 <code>get_market_data_ex</code>函数,指定<code>subscribe</code>参数为<code>False</code>,来读取本地行情数据。</p></li><li><p>回测模型的撮合规则为,指定交易价格在当前k线高低点间的,按指定价格撮合,超过高低点的,按当前 k 线收盘价撮合。委托数量大于可用数量时,按可用数量撮合。</p></li></ol><p><img src="/assets/内置API_基本信息_回测参数-eec55083.png" alt=""></p><ol start="4"><li>回测模型右侧的基本信息,如默认周期,默认主图,在<code>我的界面</code>点击回测时会生效。在行情界面k线下点击回测,以当前 k 线的周期,品种为准。回测必须以<code>副图模式</code>执行,不要选择主图 /主图叠加.</li></ol><h4 id="实盘模型" tabindex="-1"><a class="header-anchor" href="#实盘模型" aria-hidden="true">#</a> 实盘模型</h4><p>当你回测结束,你需要开始实盘模型,注意这里提到的实盘,指的是接收未来 K 线的数据,生成策略信号,进行交易下单。</p><div class="custom-container tip"><p class="custom-container-title">提示</p><p>实盘模型也分<code>模拟柜台模拟交易</code>和<code>真实柜台实盘交易</code>两种。具体请参考<a href="https://dict.thinktrader.net/innerApi/interface_operation.md#%E9%85%8D%E7%BD%AE%E8%B4%A6%E5%8F%B7" target="_blank" rel="noopener noreferrer">如何配置账号<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></a></p></div><ol><li><p>你要运行实盘模型,QMT 系统提供两种交易模式:</p><ul><li><p>默认的交易模式为<strong>逐 k 线生效</strong> (<code>passorder</code>函数<strong>快速交易</strong><code>quicktrade</code>参数填 <code>0</code> 即默认值),适用与需要在盘中模拟历史上逐 k 线的效果需求。例如选择一分钟周期,将下单判断,下单函数放在<code>handlebar</code>函数内,盘中主图每个分笔 (三秒一次)会触发一次<code>handlebar</code>函数调用,系统会暂存当前<code>handlebar</code>产生的下单信号。三秒后下一个分笔到达时,如果是新的一分钟 k 线的第一个分笔,判断上一个分笔为前一根k线最后分笔,会将暂存的交易信号发送给交易所,完成交易。如到达的下一个分笔不是新一根 k 线的,则判定当前 k 线未完成,丢弃暂存的交易信号。1 分钟 k 线情形,每根k线内会有 20 个分笔,前 19 个分笔产生的信号会被丢弃,最后一个分笔的信号,会在下一根k线,首个分笔到达时,延迟三秒发出。系统自带的<code>ContxtInfo</code>也做了同样的等待,回退处理,逐 k 线模式的交易记录可以保存在<code>ContextInfo</code>对象的属性中。详细说明参见 <a href="/innerApi/question_answer.html#%E7%B3%BB%E7%BB%9F%E5%AF%B9%E8%B1%A1-contextinfo-%E9%80%90-k-%E7%BA%BF%E4%BF%9D%E5%AD%98%E7%9A%84%E6%9C%BA%E5%88%B6" class="">常见问题:系统对象ContextInfo 逐K线保存的机制</a></p></li><li><p>QMT 系统也支持立即下单的交易模式,<code>passorder</code>函数的<strong>快速交易</strong><code>quicktrade</code>参数填 <code>2</code>,可以在运行后立刻发出委托,不对信号进行等待,丢弃的操作。此时需要用普通的全局变量(如自定义一个<code>Class a()</code>)保存委托状态,不能存在<code>ContextInfo</code>的属性里。参见<a href="/innerApi/code_examples.html#%E4%BD%BF%E7%94%A8%E5%BF%AB%E9%80%9F%E4%BA%A4%E6%98%93%E5%8F%82%E6%95%B0%E5%A7%94%E6%89%98" class="">使用快速交易参数委托</a> 、<a href="/innerApi/code_examples.html#%E8%B0%83%E6%95%B4%E8%87%B3%E7%9B%AE%E6%A0%87%E6%8C%81%E4%BB%93" class="">调整至目标持仓Demo</a></p></li></ul></li><li><p>实盘的撮合规则以交易所为准。股票品种的话,价格不能超过 2% 的价格笼子否则废单。数量超过可用数量时会废单。</p></li><li><p>实盘模型需要在模型交易界面执行。模型交易界面,选择新建策略交易,添加需要的模型。运行模式可以选择<code>模拟</code>或<code>实盘</code>。</p><ul><li>选择<code>模拟信号模式</code>,在策略信号界面显示买卖信号,不实际发出委托。具体请参考<a href="/innerApi/variable_convention.html#%E6%A8%A1%E6%8B%9F%E4%BF%A1%E5%8F%B7%E6%A8%A1%E5%BC%8F" class="">模拟信号模式</a></li><li>选择<code>实盘交易模式</code>,显示的策略信号会实际发出到交易所。具体请参考<a href="/innerApi/variable_convention.html#%E5%AE%9E%E7%9B%98%E4%BA%A4%E6%98%93%E6%A8%A1%E5%BC%8F" class="">实盘交易模式</a></li></ul></li></ol><div class="custom-container tip"><p class="custom-container-title">提示</p><p>运行模式的<code>模拟</code>和<code>实盘</code>,与您使用的账号实际是<code>实盘账号(真实交易所柜台)</code>或是<code>模拟账号(模拟交易柜台)</code>无关。相关账号申请需要联系您做所在券商的工作人员,或者购买<a href="https://xuntou.net/#/productvip" target="_blank" rel="noopener noreferrer">投研端账号<span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">在新窗口打开</span></span></a>获取模拟柜台撮合服务。</p></div><h3 id="三、运行机制对比" tabindex="-1"><a class="header-anchor" href="#三、运行机制对比" aria-hidden="true">#</a> 三、运行机制对比</h3><p>QMT 系统提供两大类(事件驱动与定时任务),共三种运行机制。</p><p><img src="/assets/内置API_三种机制对比-bc32690d.png" alt=""></p><h4 id="逐-k-线驱动-handlebar" tabindex="-1"><a class="header-anchor" href="#逐-k-线驱动-handlebar" aria-hidden="true">#</a> 逐 K 线驱动:<code>handlebar</code></h4><p><code>handlebar</code>是<strong>主图历史 k 线</strong>+<strong>盘中订阅推送</strong>。运行开始时,所选周期历史 k 线从左向右每根触发一次<code>handlebar</code>函数调用。盘中时,主图品种每个新分笔数据到达,触发一次<code>handlebar</code>函数调用。</p><div class="custom-container tip"><p class="custom-container-title">提示</p><p>盘中分笔驱动,但是逐 K 线生效。请参考<a href="/innerApi/question_answer.html#%E7%B3%BB%E7%BB%9F%E5%AF%B9%E8%B1%A1-contextinfo-%E9%80%90-k-%E7%BA%BF%E4%BF%9D%E5%AD%98%E7%9A%84%E6%9C%BA%E5%88%B6" class="">常见问题:系统对象ContextInfo 逐K线保存的机制</a></p></div><h4 id="事件驱动-subscribe-订阅推送" tabindex="-1"><a class="header-anchor" href="#事件驱动-subscribe-订阅推送" aria-hidden="true">#</a> 事件驱动 :<code>subscribe</code> 订阅推送</h4><p>盘中订阅指定品种的分笔数据,新分笔到达时,触发指定的回调函数。</p><h4 id="定时任务-run-time-定时运行" tabindex="-1"><a class="header-anchor" href="#定时任务-run-time-定时运行" aria-hidden="true">#</a> 定时任务 :<code>run_time</code> 定时运行</h4><p>指定固定的时间间隔,持续触发指定的回调函数.</p><h4 id="不同机制匹配不同场景需求" tabindex="-1"><a class="header-anchor" href="#不同机制匹配不同场景需求" aria-hidden="true">#</a> 不同机制匹配不同场景需求</h4><p><img src="/assets/内置API_不同机制匹配不同场景需求-6942d075.png" alt=""></p><table><thead><tr><th>机制</th><th>分类</th><th>特点</th><th>匹配需求</th></tr></thead><tbody><tr><td>逐 K 线运行(<code>handlebar</code>)</td><td>事件驱动</td><td>同时支持历史回测和盘中可模拟逐K线效果</td><td>在实盘中模拟逐K线运行的效果</td></tr><tr><td>订阅推送(<code>subscribe</code>)</td><td>事件驱动</td><td>盘中行情分笔触发函数调用</td><td>盘中随分笔行情判断交易</td></tr><tr><td>定时运行(<code>run_time</code>)</td><td>定时任务</td><td>固定间隔触发调用</td><td>盘中固定时间间隔判断交易</td></tr></tbody></table><h3 id="四、逐-k-线驱动-handlebar-示例" tabindex="-1"><a class="header-anchor" href="#四、逐-k-线驱动-handlebar-示例" aria-hidden="true">#</a> 四、逐 K 线驱动(handlebar)示例</h3><p>因此,结合不同场景需求(回测或实盘),针对不同的机制(定时任务或事件驱动),我们分别给出回测与实盘的完整示例,复制到策略编辑器中即可使用。</p><p>在编写策略前,有以下注意事项:</p><div class="custom-container danger"><p class="custom-container-title">警告</p><p>在编写一个策略时,首先需要在代码的最前一行写上: <code>#coding:gbk</code> 统一脚本的编码格式是<code>GBK</code></p><p>缩进需要统一 全部统一为<code>····</code>或者<code>-></code></p></div><h4 id="回测示例-基于-handlebar" tabindex="-1"><a class="header-anchor" href="#回测示例-基于-handlebar" aria-hidden="true">#</a> 回测示例-基于 handlebar</h4><p>回测的操作流程请参考:<a href="/innerApi/interface_operation.html#%E7%AD%96%E7%95%A5%E5%9B%9E%E6%B5%8B" class="">界面操作-策略回测</a></p><p>复制代码以下代码到策略编辑器:</p><div class="vp-tabs"><div class="vp-tabs-nav" role="tablist"><button type="button" class="vp-tab-nav active" role="tab" aria-controls="tab-258-0" aria-selected="true">python</button></div><!--[--><div class="vp-tab active" id="tab-258-0" role="tabpanel" aria-expanded="true"><div class="language-python line-numbers-mode" data-ext="py"><pre class="shiki dracula" style="background-color:#282A36;" tabindex="0"><code><span class="line"><span style="color:#6272A4;">#coding:gbk</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#6272A4;">#导入常用库</span></span>
|
||
<span class="line"><span style="color:#FF79C6;">import</span><span style="color:#F8F8F2;"> pandas </span><span style="color:#FF79C6;">as</span><span style="color:#F8F8F2;"> pd</span></span>
|
||
<span class="line"><span style="color:#FF79C6;">import</span><span style="color:#F8F8F2;"> numpy </span><span style="color:#FF79C6;">as</span><span style="color:#F8F8F2;"> np</span></span>
|
||
<span class="line"><span style="color:#FF79C6;">import</span><span style="color:#F8F8F2;"> talib</span></span>
|
||
<span class="line"><span style="color:#6272A4;">#示例说明:本策略,通过计算快慢双均线,在金叉时买入,死叉时做卖出 点击回测运行 主图选择要交易的股票品种</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#FF79C6;">def</span><span style="color:#F8F8F2;"> </span><span style="color:#50FA7B;">init</span><span style="color:#F8F8F2;">(</span><span style="color:#FFB86C;font-style:italic;">C</span><span style="color:#F8F8F2;">):</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#init handlebar函数的入参是ContextInfo对象 可以缩写为C</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#设置测试标的为主图品种</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> C.stock</span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> C.stockcode </span><span style="color:#FF79C6;">+</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">.</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">+</span><span style="color:#F8F8F2;">C.market</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#line1和line2分别为两条均线期数</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> C.line1</span><span style="color:#FF79C6;">=</span><span style="color:#BD93F9;">10</span><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#快线参数</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> C.line2</span><span style="color:#FF79C6;">=</span><span style="color:#BD93F9;">20</span><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#慢线参数</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#accountid为测试的ID 回测模式资金账号可以填任意字符串</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> C.accountid </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">"</span><span style="color:#F1FA8C;">testS</span><span style="color:#E9F284;">"</span><span style="color:#F8F8F2;"> </span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#FF79C6;">def</span><span style="color:#F8F8F2;"> </span><span style="color:#50FA7B;">handlebar</span><span style="color:#F8F8F2;">(</span><span style="color:#FFB86C;font-style:italic;">C</span><span style="color:#F8F8F2;">):</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#当前k线日期</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> bar_date </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> timetag_to_datetime(C.get_bar_timetag(C.barpos), </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">%Y%m</span><span style="color:#BD93F9;">%d</span><span style="color:#F1FA8C;">%H%M%S</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#回测不需要订阅最新行情使用本地数据速度更快 指定subscribe参数为否. 如果回测多个品种 需要先下载对应周期历史数据 </span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> local_data </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> C.get_market_data_ex([</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">close</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">], [C.stock], </span><span style="color:#FFB86C;font-style:italic;">end_time</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> bar_date, </span><span style="color:#FFB86C;font-style:italic;">period</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> C.period, </span><span style="color:#FFB86C;font-style:italic;">count</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">max</span><span style="color:#F8F8F2;">(C.line1, C.line2), </span><span style="color:#FFB86C;font-style:italic;">subscribe</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">False</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> close_list </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;font-style:italic;">list</span><span style="color:#F8F8F2;">(local_data[C.stock].iloc[</span><span style="color:#FF79C6;">:</span><span style="color:#F8F8F2;">, </span><span style="color:#BD93F9;">0</span><span style="color:#F8F8F2;">])</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#将获取的历史数据转换为DataFrame格式方便计算</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#如果目前未持仓,同时快线穿过慢线,则买入8成仓位</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">len</span><span style="color:#F8F8F2;">(close_list) </span><span style="color:#FF79C6;"><</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(bar_date, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">行情不足 跳过</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> line1_mean </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">round</span><span style="color:#F8F8F2;">(np.mean(close_list[</span><span style="color:#FF79C6;">-</span><span style="color:#F8F8F2;">C.line1</span><span style="color:#FF79C6;">:</span><span style="color:#F8F8F2;">]), </span><span style="color:#BD93F9;">2</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> line2_mean </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">round</span><span style="color:#F8F8F2;">(np.mean(close_list[</span><span style="color:#FF79C6;">-</span><span style="color:#F8F8F2;">C.line2</span><span style="color:#FF79C6;">:</span><span style="color:#F8F8F2;">]), </span><span style="color:#BD93F9;">2</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(</span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">"</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">bar_date</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 短均线</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">line1_mean</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 长均线</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">line2_mean</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;">"</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> account </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> get_trade_detail_data(</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">test</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">stock</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">account</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> account </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> account[</span><span style="color:#BD93F9;">0</span><span style="color:#F8F8F2;">]</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> available_cash </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;font-style:italic;">int</span><span style="color:#F8F8F2;">(account.m_dAvailable)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> holdings </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> get_trade_detail_data(</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">test</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">stock</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">position</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> holdings </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> {i.m_strInstrumentID </span><span style="color:#FF79C6;">+</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">.</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">+</span><span style="color:#F8F8F2;"> i.m_strExchangeID : i.m_nVolume </span><span style="color:#FF79C6;">for</span><span style="color:#F8F8F2;"> i </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> holdings}</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> holding_vol </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> holdings[C.stock] </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> C.stock </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> holdings </span><span style="color:#FF79C6;">else</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">0</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> holding_vol </span><span style="color:#FF79C6;">==</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">0</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> line1_mean </span><span style="color:#FF79C6;">></span><span style="color:#F8F8F2;"> line2_mean:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> vol </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;font-style:italic;">int</span><span style="color:#F8F8F2;">(available_cash </span><span style="color:#FF79C6;">/</span><span style="color:#F8F8F2;"> close_list[</span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">] </span><span style="color:#FF79C6;">/</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">100</span><span style="color:#F8F8F2;">) </span><span style="color:#FF79C6;">*</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">100</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#下单开仓</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> passorder(</span><span style="color:#BD93F9;">23</span><span style="color:#F8F8F2;">, </span><span style="color:#BD93F9;">1101</span><span style="color:#F8F8F2;">, C.accountid, C.stock, </span><span style="color:#BD93F9;">5</span><span style="color:#F8F8F2;">, </span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">, vol, C)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(</span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">"</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">bar_date</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 开仓"</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> C.draw_text(</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">, </span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">开</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#如果目前持仓中,同时快线下穿慢线,则全部平仓</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">elif</span><span style="color:#F8F8F2;"> holding_vol </span><span style="color:#FF79C6;">></span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">0</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> line1_mean </span><span style="color:#FF79C6;"><</span><span style="color:#F8F8F2;"> line2_mean:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#状态变更为未持仓</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> C.holding</span><span style="color:#FF79C6;">=</span><span style="color:#BD93F9;">False</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#下单平仓</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> passorder(</span><span style="color:#BD93F9;">24</span><span style="color:#F8F8F2;">, </span><span style="color:#BD93F9;">1101</span><span style="color:#F8F8F2;">, C.accountid, C.stock, </span><span style="color:#BD93F9;">5</span><span style="color:#F8F8F2;">, </span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">, holding_vol, C)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(</span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">"</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">bar_date</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 平仓"</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> C.draw_text(</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">, </span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">平</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></div><!--]--></div><p><strong>基础信息设置</strong> 请参考<a href="/innerApi/interface_operation.html#%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF-%E5%AD%97%E6%AE%B5%E6%8F%8F%E8%BF%B0" class="">基础信息-字段描述</a></p><p><strong>回测参数设置</strong> 请参考<a href="/innerApi/interface_operation.html#%E5%9B%9E%E6%B5%8B%E5%8F%82%E6%95%B0-%E5%AD%97%E6%AE%B5%E6%8F%8F%E8%BF%B0" class="">回测参数-字段描述</a></p><h4 id="实盘示例-基于-handlebar" tabindex="-1"><a class="header-anchor" href="#实盘示例-基于-handlebar" aria-hidden="true">#</a> 实盘示例-基于 handlebar</h4><p>实盘的操作流程请参考:<a href="/innerApi/interface_operation.html#%E7%AD%96%E7%95%A5%E8%BF%90%E8%A1%8C" class="">界面操作-模型交易</a></p><p>复制代码以下代码到策略编辑器:</p><div class="vp-tabs"><div class="vp-tabs-nav" role="tablist"><button type="button" class="vp-tab-nav active" role="tab" aria-controls="tab-278-0" aria-selected="true">python</button></div><!--[--><div class="vp-tab active" id="tab-278-0" role="tabpanel" aria-expanded="true"><div class="language-python line-numbers-mode" data-ext="py"><pre class="shiki dracula" style="background-color:#282A36;" tabindex="0"><code><span class="line"><span style="color:#6272A4;">#coding:gbk</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#6272A4;"># 导入包</span></span>
|
||
<span class="line"><span style="color:#FF79C6;">import</span><span style="color:#F8F8F2;"> pandas </span><span style="color:#FF79C6;">as</span><span style="color:#F8F8F2;"> pd</span></span>
|
||
<span class="line"><span style="color:#FF79C6;">import</span><span style="color:#F8F8F2;"> numpy </span><span style="color:#FF79C6;">as</span><span style="color:#F8F8F2;"> np</span></span>
|
||
<span class="line"><span style="color:#FF79C6;">import</span><span style="color:#F8F8F2;"> datetime</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#6272A4;">"""</span></span>
|
||
<span class="line"><span style="color:#6272A4;">示例说明:双均线实盘策略,通过计算快慢双均线,在金叉时买入,死叉时做卖出</span></span>
|
||
<span class="line"><span style="color:#6272A4;">"""</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#FF79C6;">class</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">a</span><span style="color:#F8F8F2;">():</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">pass</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;">A </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> a() </span><span style="color:#6272A4;">#创建空的类的实例 用来保存委托状态 </span></span>
|
||
<span class="line"></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#FF79C6;">def</span><span style="color:#F8F8F2;"> </span><span style="color:#50FA7B;">init</span><span style="color:#F8F8F2;">(</span><span style="color:#FFB86C;font-style:italic;">C</span><span style="color:#F8F8F2;">):</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.stock</span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> C.stockcode </span><span style="color:#FF79C6;">+</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">.</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">+</span><span style="color:#F8F8F2;"> C.market </span><span style="color:#6272A4;">#品种为模型交易界面选择品种</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.acct</span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> account </span><span style="color:#6272A4;">#账号为模型交易界面选择账号</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.acct_type</span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> accountType </span><span style="color:#6272A4;">#账号类型为模型交易界面选择账号</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.amount </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">10000</span><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#单笔买入金额 触发买入信号后买入指定金额</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.line1</span><span style="color:#FF79C6;">=</span><span style="color:#BD93F9;">17</span><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#快线周期</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.line2</span><span style="color:#FF79C6;">=</span><span style="color:#BD93F9;">27</span><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#慢线周期</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.waiting_list </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> [] </span><span style="color:#6272A4;">#未查到委托列表 存在未查到委托情况暂停后续报单 防止超单</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.buy_code </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">23</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> A.acct_type </span><span style="color:#FF79C6;">==</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">STOCK</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">else</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">33</span><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#买卖代码 区分股票 与 两融账号</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.sell_code </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">24</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> A.acct_type </span><span style="color:#FF79C6;">==</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">STOCK</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">else</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">34</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(</span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">'双均线实盘示例</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">A.stock</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">A.acct</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">A.acct_type</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 单笔买入金额</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">A.amount</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#FF79C6;">def</span><span style="color:#F8F8F2;"> </span><span style="color:#50FA7B;">handlebar</span><span style="color:#F8F8F2;">(</span><span style="color:#FFB86C;font-style:italic;">C</span><span style="color:#F8F8F2;">):</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#跳过历史k线</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">not</span><span style="color:#F8F8F2;"> C.is_last_bar():</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">return</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> now </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> datetime.datetime.now()</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> now_time </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> now.strftime(</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">%H%M%S</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;"># 跳过非交易时间</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> now_time </span><span style="color:#FF79C6;"><</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">093000</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">or</span><span style="color:#F8F8F2;"> now_time </span><span style="color:#FF79C6;">></span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">"</span><span style="color:#F1FA8C;">150000</span><span style="color:#E9F284;">"</span><span style="color:#F8F8F2;">:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">return</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> account </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> get_trade_detail_data(A.acct, A.acct_type, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">account</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">len</span><span style="color:#F8F8F2;">(account)</span><span style="color:#FF79C6;">==</span><span style="color:#BD93F9;">0</span><span style="color:#F8F8F2;">:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(</span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">'账号</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">A.acct</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 未登录 请检查'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">return</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> account </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> account[</span><span style="color:#BD93F9;">0</span><span style="color:#F8F8F2;">]</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> available_cash </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;font-style:italic;">int</span><span style="color:#F8F8F2;">(account.m_dAvailable)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#如果有未查到成交 查询成交</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> A.waiting_list:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> found_list </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> []</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> deals </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> get_trade_detail_data(A.acct, A.acct_type, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">deal</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">for</span><span style="color:#F8F8F2;"> deal </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> deals:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> deal.m_strRemark </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> A.waiting_list:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> found_list.append(deal.m_strRemark)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.waiting_list </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> [i </span><span style="color:#FF79C6;">for</span><span style="color:#F8F8F2;"> i </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> A.waiting_list </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> i </span><span style="color:#FF79C6;">not</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> found_list]</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> A.waiting_list:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(</span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">"当前有未查到委托 </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">A.waiting_list</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 暂停后续报单"</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">return</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> holdings </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> get_trade_detail_data(A.acct, A.acct_type, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">position</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> holdings </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> {i.m_strInstrumentID </span><span style="color:#FF79C6;">+</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">.</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">+</span><span style="color:#F8F8F2;"> i.m_strExchangeID : i.m_nCanUseVolume </span><span style="color:#FF79C6;">for</span><span style="color:#F8F8F2;"> i </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> holdings}</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#获取行情数据</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> data </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> C.get_market_data_ex([</span><span style="color:#E9F284;">"</span><span style="color:#F1FA8C;">close</span><span style="color:#E9F284;">"</span><span style="color:#F8F8F2;">],[A.stock],</span><span style="color:#FFB86C;font-style:italic;">period</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">1d</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">,</span><span style="color:#FFB86C;font-style:italic;">count</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">max</span><span style="color:#F8F8F2;">(A.line1, A.line2)</span><span style="color:#FF79C6;">+</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> close_list </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> data[A.stock].values</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">len</span><span style="color:#F8F8F2;">(close_list) </span><span style="color:#FF79C6;"><</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">max</span><span style="color:#F8F8F2;">(A.line1, A.line2)</span><span style="color:#FF79C6;">+</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">行情长度不足(新上市或最近有停牌) 跳过运行</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">return</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> pre_line1 </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> np.mean(close_list[</span><span style="color:#FF79C6;">-</span><span style="color:#F8F8F2;">A.line1</span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#FF79C6;">:</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">])</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> pre_line2 </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> np.mean(close_list[</span><span style="color:#FF79C6;">-</span><span style="color:#F8F8F2;">A.line2</span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#FF79C6;">:</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">])</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> current_line1 </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> np.mean(close_list[</span><span style="color:#FF79C6;">-</span><span style="color:#F8F8F2;">A.line1</span><span style="color:#FF79C6;">:</span><span style="color:#F8F8F2;">])</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> current_line2 </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> np.mean(close_list[</span><span style="color:#FF79C6;">-</span><span style="color:#F8F8F2;">A.line2</span><span style="color:#FF79C6;">:</span><span style="color:#F8F8F2;">])</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#如果快线穿过慢线,则买入委托 当前无持仓 买入</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> vol </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;font-style:italic;">int</span><span style="color:#F8F8F2;">(A.amount </span><span style="color:#FF79C6;">/</span><span style="color:#F8F8F2;"> close_list[</span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">] </span><span style="color:#FF79C6;">/</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">100</span><span style="color:#F8F8F2;">) </span><span style="color:#FF79C6;">*</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">100</span><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#买入数量 向下取整到100的整数倍</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> A.amount </span><span style="color:#FF79C6;"><</span><span style="color:#F8F8F2;"> available_cash </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> vol </span><span style="color:#FF79C6;">>=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">100</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> A.stock </span><span style="color:#FF79C6;">not</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> holdings </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> pre_line1 </span><span style="color:#FF79C6;"><</span><span style="color:#F8F8F2;"> pre_line2 </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> current_line1 </span><span style="color:#FF79C6;">></span><span style="color:#F8F8F2;"> current_line2:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#下单开仓 ,参数说明可搜索PY交易函数 passorder</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> msg </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">"双均线实盘 </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">A.stock</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 上穿均线 买入 </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">vol</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;">股"</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> passorder(A.buy_code, </span><span style="color:#BD93F9;">1101</span><span style="color:#F8F8F2;">, A.acct, A.stock, </span><span style="color:#BD93F9;">14</span><span style="color:#F8F8F2;">, </span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">, vol, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">双均线实盘</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">, </span><span style="color:#BD93F9;">2</span><span style="color:#F8F8F2;"> , msg, C)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(msg)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.waiting_list.append(msg)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#如果快线下穿慢线,则卖出委托</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> A.stock </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> holdings </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> holdings[A.stock] </span><span style="color:#FF79C6;">></span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">0</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> pre_line1 </span><span style="color:#FF79C6;">></span><span style="color:#F8F8F2;"> pre_line2 </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> current_line1 </span><span style="color:#FF79C6;"><</span><span style="color:#F8F8F2;"> current_line2:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> msg </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">"双均线实盘 </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">A.stock</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 下穿均线 卖出 </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">holdings[A.stock]</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;">股"</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> passorder(A.sell_code, </span><span style="color:#BD93F9;">1101</span><span style="color:#F8F8F2;">, A.acct, A.stock, </span><span style="color:#BD93F9;">14</span><span style="color:#F8F8F2;">, </span><span style="color:#FF79C6;">-</span><span style="color:#BD93F9;">1</span><span style="color:#F8F8F2;">, holdings[A.stock], </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">双均线实盘</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">, </span><span style="color:#BD93F9;">2</span><span style="color:#F8F8F2;"> , msg, C)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(msg)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.waiting_list.append(msg)</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></div><!--]--></div><div class="custom-container danger"><p class="custom-container-title">警告</p><p>对于立刻下单的模型需要用普通的全局变量来保存状态不能ContextInfo对象存详细说明参考<a href="/innerApi/question_answer.html#%E7%B3%BB%E7%BB%9F%E5%AF%B9%E8%B1%A1-contextinfo-%E9%80%90-k-%E7%BA%BF%E4%BF%9D%E5%AD%98%E7%9A%84%E6%9C%BA%E5%88%B6" class="">常见问题:系统对象ContextInfo 逐K线保存的机制</a></p></div><p>更多示例请参见<a href="/innerApi/code_examples.html" class="">完整示例</a></p><h3 id="五、事件驱动-subscribe-示例" tabindex="-1"><a class="header-anchor" href="#五、事件驱动-subscribe-示例" aria-hidden="true">#</a> 五、事件驱动(subscribe)示例</h3><h4 id="实盘示例-基于-subscribe" tabindex="-1"><a class="header-anchor" href="#实盘示例-基于-subscribe" aria-hidden="true">#</a> 实盘示例-基于 subscribe</h4><div class="vp-tabs"><div class="vp-tabs-nav" role="tablist"><button type="button" class="vp-tab-nav active" role="tab" aria-controls="tab-297-0" aria-selected="true">python</button></div><!--[--><div class="vp-tab active" id="tab-297-0" role="tabpanel" aria-expanded="true"><div class="language-python line-numbers-mode" data-ext="py"><pre class="shiki dracula" style="background-color:#282A36;" tabindex="0"><code><span class="line"><span style="color:#6272A4;">#coding:gbk</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#FF79C6;">class</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">a</span><span style="color:#F8F8F2;">():</span><span style="color:#FF79C6;">pass</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;">A </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> a()</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;">A.bought_list </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> []</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#F8F8F2;">account </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">testaccount</span><span style="color:#E9F284;">'</span></span>
|
||
<span class="line"><span style="color:#FF79C6;">def</span><span style="color:#F8F8F2;"> </span><span style="color:#50FA7B;">init</span><span style="color:#F8F8F2;">(</span><span style="color:#FFB86C;font-style:italic;">C</span><span style="color:#F8F8F2;">):</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#下单函数的参数需要 ContextInfo对象 在init中定义行情回调函数 可以用到init函数的入参 不用手动传入 </span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">def</span><span style="color:#F8F8F2;"> </span><span style="color:#50FA7B;">callback_func</span><span style="color:#F8F8F2;">(</span><span style="color:#FFB86C;font-style:italic;">data</span><span style="color:#F8F8F2;">):</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#print(data)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">for</span><span style="color:#F8F8F2;"> stock </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> data:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> current_price </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> data[stock][</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">close</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">]</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> pre_price </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> data[stock][</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">preClose</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">]</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> ratio </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> current_price </span><span style="color:#FF79C6;">/</span><span style="color:#F8F8F2;"> pre_price </span><span style="color:#FF79C6;">-</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">1</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(stock, C.get_stock_name(stock), </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">当前涨幅</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">, ratio)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> ratio </span><span style="color:#FF79C6;">></span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">0</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> stock </span><span style="color:#FF79C6;">not</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> A.bought_list:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> msg </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">"当前涨幅 </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">ratio</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 大于0 买入100股"</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(msg)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#下单函数passorder 安全起见处于注释状态 需要实际测试下单交易时再放开</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#passorder(23, 1101, account, stock, 5, -1, 100, '订阅下单示例', 2, msg, C)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.bought_list.append(stock)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> stock_list </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> [</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">600000.SH</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">, </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">000001.SZ</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">]</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">for</span><span style="color:#F8F8F2;"> stock </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> stock_list:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> C.subscribe_quote(stock, </span><span style="color:#FFB86C;font-style:italic;">period</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">1d</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">, </span><span style="color:#FFB86C;font-style:italic;">callback</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> callback_func)</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></div><!--]--></div><h3 id="六、定时任务-run-time-示例" tabindex="-1"><a class="header-anchor" href="#六、定时任务-run-time-示例" aria-hidden="true">#</a> 六、定时任务(run_time)示例</h3><h4 id="实盘示例-基于-run-time" tabindex="-1"><a class="header-anchor" href="#实盘示例-基于-run-time" aria-hidden="true">#</a> 实盘示例-基于 run_time</h4><div class="vp-tabs"><div class="vp-tabs-nav" role="tablist"><button type="button" class="vp-tab-nav active" role="tab" aria-controls="tab-308-0" aria-selected="true">python</button></div><!--[--><div class="vp-tab active" id="tab-308-0" role="tabpanel" aria-expanded="true"><div class="language-python line-numbers-mode" data-ext="py"><pre class="shiki dracula" style="background-color:#282A36;" tabindex="0"><code><span class="line"><span style="color:#6272A4;">#coding:gbk</span></span>
|
||
<span class="line"><span style="color:#FF79C6;">import</span><span style="color:#F8F8F2;"> time, datetime</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#FF79C6;">class</span><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">a</span><span style="color:#F8F8F2;">():</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">pass</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;">A </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> a()</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#FF79C6;">def</span><span style="color:#F8F8F2;"> </span><span style="color:#50FA7B;">init</span><span style="color:#F8F8F2;">(</span><span style="color:#FFB86C;font-style:italic;">C</span><span style="color:#F8F8F2;">):</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.hsa </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> C.get_stock_list_in_sector(</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">沪深A股</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.vol_dict </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> {}</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">for</span><span style="color:#F8F8F2;"> stock </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> A.hsa:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.vol_dict[stock] </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> C.get_last_volume(stock)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.bought_list </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> []</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> C.run_time(</span><span style="color:#E9F284;">"</span><span style="color:#F1FA8C;">f</span><span style="color:#E9F284;">"</span><span style="color:#F8F8F2;">, </span><span style="color:#E9F284;">"</span><span style="color:#F1FA8C;">1nSecond</span><span style="color:#E9F284;">"</span><span style="color:#F8F8F2;">, </span><span style="color:#E9F284;">"</span><span style="color:#F1FA8C;">2019-10-14 13:20:00</span><span style="color:#E9F284;">"</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"></span>
|
||
<span class="line"><span style="color:#FF79C6;">def</span><span style="color:#F8F8F2;"> </span><span style="color:#50FA7B;">f</span><span style="color:#F8F8F2;">(</span><span style="color:#FFB86C;font-style:italic;">C</span><span style="color:#F8F8F2;">):</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> t0 </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> time.time()</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> now </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> datetime.datetime.now()</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> full_tick </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> C.get_full_tick(A.hsa)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> total_market_value </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">0</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> total_ratio </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">0</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> count </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">0</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">for</span><span style="color:#F8F8F2;"> stock </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> A.hsa:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> ratio </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> full_tick[stock][</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">lastPrice</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">] </span><span style="color:#FF79C6;">/</span><span style="color:#F8F8F2;"> full_tick[stock][</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">lastClose</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">] </span><span style="color:#FF79C6;">-</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">1</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">if</span><span style="color:#F8F8F2;"> ratio </span><span style="color:#FF79C6;">></span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">0.09</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">and</span><span style="color:#F8F8F2;"> stock </span><span style="color:#FF79C6;">not</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">in</span><span style="color:#F8F8F2;"> A.bought_list:</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> msg </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> </span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">"</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">now</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">stock</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">C.get_stock_name(stock)</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 当前涨幅 </span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">ratio</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 大于5% 买入100股"</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#下单示例 安全起见处于注释状态 需要实际测试下单时可以放开 </span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#6272A4;">#passorder(23, 1101, account, stock, 5, -1, 100, '示例策略', 2, msg, C)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> A.bought_list.append(stock)</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> market_value </span><span style="color:#FF79C6;">=</span><span style="color:#F8F8F2;"> full_tick[stock][</span><span style="color:#E9F284;">'</span><span style="color:#F1FA8C;">lastPrice</span><span style="color:#E9F284;">'</span><span style="color:#F8F8F2;">] </span><span style="color:#FF79C6;">*</span><span style="color:#F8F8F2;"> A.vol_dict[stock]</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> total_ratio </span><span style="color:#FF79C6;">+=</span><span style="color:#F8F8F2;"> ratio </span><span style="color:#FF79C6;">*</span><span style="color:#F8F8F2;"> market_value</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> total_market_value </span><span style="color:#FF79C6;">+=</span><span style="color:#F8F8F2;"> market_value</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> count </span><span style="color:#FF79C6;">+=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">1</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> total_ratio </span><span style="color:#FF79C6;">/=</span><span style="color:#F8F8F2;"> total_market_value</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> total_ratio </span><span style="color:#FF79C6;">*=</span><span style="color:#F8F8F2;"> </span><span style="color:#BD93F9;">100</span></span>
|
||
<span class="line"><span style="color:#F8F8F2;"> </span><span style="color:#8BE9FD;">print</span><span style="color:#F8F8F2;">(</span><span style="color:#FF79C6;">f</span><span style="color:#F1FA8C;">'</span><span style="color:#BD93F9;">{</span><span style="color:#F8F8F2;">now</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;"> 当前A股加权涨幅 </span><span style="color:#BD93F9;">{</span><span style="color:#8BE9FD;">round</span><span style="color:#F8F8F2;">(total_ratio, </span><span style="color:#BD93F9;">2</span><span style="color:#F8F8F2;">)</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;">% 函数运行耗时</span><span style="color:#BD93F9;">{</span><span style="color:#8BE9FD;">round</span><span style="color:#F8F8F2;">(time.time()</span><span style="color:#FF79C6;">-</span><span style="color:#F8F8F2;"> t0, </span><span style="color:#BD93F9;">5</span><span style="color:#F8F8F2;">)</span><span style="color:#BD93F9;">}</span><span style="color:#F1FA8C;">秒'</span><span style="color:#F8F8F2;">)</span></span>
|
||
<span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></div><!--]--></div></div></div><!--[--><!--]--></div><footer class="page-meta pageFooter" data-v-3c904194><!----><div class="meta-item last-updated"><span class="meta-item-label">上次更新: </span><!----></div><!----><div id="myFooter"><div vertical id="content"><div class="content-title">邀请注册送VIP优惠券</div><div>分享下方的内容给好友、QQ群、微信群,好友注册您即可获得VIP优惠券</div><div class="content-body"><div class="n-input-group"><div class="tip"><div>玩转qmt,上迅投qmt知识库</div></div><button class="n-button n-button--info-type n-button--small-type n-button--secondary" tabindex="0" type="button" style="--n-bezier:cubic-bezier(.4, 0, .2, 1);--n-bezier-ease-out:cubic-bezier(0, 0, .2, 1);--n-ripple-duration:.6s;--n-opacity-disabled:0.5;--n-wave-opacity:0.6;--n-font-weight:500;--n-color:rgba(32, 128, 240, 0.16);--n-color-hover:rgba(32, 128, 240, 0.22);--n-color-pressed:rgba(32, 128, 240, 0.28);--n-color-focus:rgba(32, 128, 240, 0.22);--n-color-disabled:rgba(46, 51, 56, .05);--n-ripple-color:#0000;--n-text-color:#2080f0;--n-text-color-hover:#2080f0;--n-text-color-pressed:#2080f0;--n-text-color-focus:#2080f0;--n-text-color-disabled:#2080f0;--n-border:1px solid #2080f0;--n-border-hover:1px solid #4098fc;--n-border-pressed:1px solid #1060c9;--n-border-focus:1px solid #4098fc;--n-border-disabled:1px solid #2080f0;--n-width:initial;--n-height:28px;--n-font-size:14px;--n-padding:0 10px;--n-icon-size:18px;--n-icon-margin:6px;--n-border-radius:3px;" id="copy-btn2"><!----><!----><span class="n-button__content">登录后获取</span><div aria-hidden="true" class="n-base-wave"></div><!----><!----></button></div><!-- <n-space style="width: 100%;" vertical>
|
||
<div style="width: 100%;">
|
||
<div>玩转qmt,上迅投qmt知识库,复制分享要登录</div>
|
||
</div>
|
||
<n-space style="width: 100%;" justify="end">
|
||
|
||
</n-space>
|
||
</n-space> --></div></div></div></footer><nav class="page-nav" data-v-3c904194><p class="inner"><!----><span class="next"><a href="/innerApi/user_attention.html" class="" aria-label="使用须知"><!--[--><!--]--> 使用须知 <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
|
||
<script type="module" src="/assets/app-2fe24c5e.js" defer></script>
|
||
</body>
|
||
</html>
|