欢迎使用交易开拓者

 下一页

欢迎使用交易开拓者

交易开拓者(TradeBlazer)是一款为中国证券、期货市场专业投资用户开发的金融投资软件，它集中了实时行情，技术分析， 快捷交易及程式化交易的功能。通过使用交易开拓者，用户可以简单，快速的将自己的交易思想转化为计算机代码，让计算机帮助用户实现价值。

我们致力于为期货行业的投资者提供一个实现盈利的工具，但并不保证该软件能为所有的使用者带来盈利， 希望使用者能够通过使用系统，建立并优化自己的交易思想，形成自己的交易策略。

感谢您选择交易开拓者，希望您能够通过使用该系统找到乐趣，并能创造更多价值。

交易开拓者快速链接

  • 关于交易开拓者

  • 快速入门

  • 系统基础

  • 行情报价

  • 分时图

  • 超级图表

  • 交易系统

  • 公式系统


系统简介

交易开拓者是一款针对中国证券、期货行业的专业金融投资软件，它借鉴了华尔街一些著名软件的优点， 吸收了国际众多的网上交易系统的精华，并拥有简单和友好的用户界面，用户可以方便快捷的开发及优化自己的技术分析和交易策略。

功能特色

  • 强大的公式支持系统，方便用户实现交易思想

  • 领先的策略交易体系，实时数据驱动和自动交易功能

  • 投资组合性能测试分析

  • 面向用户的快速下单体系

  • 强大的多帐户管理功能，让您使用多帐户像单帐户一样轻松

  • 多种方式的套利功能，直观轻松的实现套利交易

  • 动态帐户和风险监控机制

  • 完善的图表体系设计、分析工具与交易功能的动态交互

  • 工作区管理机制和个性化模板应用


系统配置

最低系统配置

  • CPU: Intel或AMD双核1.5GHZ以上

  • 硬盘: 1G及以上可用空间

  • 内存: 512M及以上

  • 显示器: 15吋彩显，分辨率1024*768

  • 操作系统: WindowsXP sp2及以上系统

  • 互联网: 宽带1Mbps以上

推荐系统配置

  • CPU: Intel或AMD双核2.5GHZ以上

  • 硬盘: 10G及以上可用空间

  • 内存: 1G及以上

  • 显示器: 17吋彩显，分辨率1280*1024

  • 操作系统: WindowsXP sp2及以上系统

  • 互联网: 宽带2Mbps以上

  • 其他：有声卡和音箱等多媒体设备


寻求帮助

交易开拓者是一个专业金融投资工具，需要您多些耐心，慢慢地去和它沟通。在使用交易开拓者的过程中，无论您遇到什么问题，我们都将为您提供帮助。为了有效的解决问题，在您和我们直接联系前，您可以先采取以下方法获取帮助：

查看连机帮助

  1. 打开帮助窗口: 如果需要获得帮助，只需单击“帮助”菜单中的“帮助指南”，系统将显示“帮助”窗口。或者直接按键盘中的“F1”键。通过鼠标单击系统任何窗口中的“帮助”按钮，都可以打开“帮助”窗口，并直接定位到与此窗口相关的帮助说明页上。

  2. 帮助窗口中的索引功能: 单击“索引”选项卡，在“键入要查找的关键字”文本框中，输入您要查找的问题的关键性字、词或短语，回车即可获得相关帮助信息条目，选中您所需要的帮助内容进行查阅。

  3. 帮助窗口中的搜索功能: 要在“帮助”窗口中键入问题，请单击“搜索”选项卡，在“输入要查找的单词”文本框中，输入您要查找的问题的关键性字、词或短语，点击列出主题，就会在主题框里显示您要查找的主题，双击标题就可查看相关内容。

  4. 其它： 要查看工具栏按钮的名称，可将鼠标置于该按钮上，直到提示信息出现。

其他途径

选择菜栏单“帮助”下的“常见问题解答”，查看有关交易开拓者的常见问题解答。如果没有找到问题的解决方法，您还可以将您的疑问，作为“用户问题”提交，即可将您的问题反馈给我们，我们将尽快给您解答。

也可访问系统交易论坛您可以在这里找到更多的例子以及各种问题的答案。

如果您的问题还是没有解决，请与我们的技术支持联系，我们会以最快的速度回复您的问题。

感谢您选用交易开拓者，我们将用心的为您提供最有价值的服务！


安装和卸载

下载

  • 用户可以登录交易开拓者下载页面，找到要下载的相关文件，直接点击下载。

  • 如果您是老用户，如果有新版本发布，系统在登录时会提示您下载最新版本，此时点击下载按钮即下载。

安装

  • 成功下载完交易开拓者安装程序之后，您可以双击安装文件进行安装，按照安装向导的提示，只需要点击几下按钮，即可轻松完成。

卸载

  • 单击“开始”按钮，指向“程序”子菜单，然后再用鼠标指向“交易开拓者”子菜单，最后单击“卸载交易开拓者”，程序会自动将用户计算机上安装的交易开拓者程序及其快捷方式删除。

  • 单击“开始”按钮，选择“控制面板”子菜单，找到并双击“添加/删除程序”图标，在“安装/卸载”选项卡页面的列表中上找到“交易开拓者”项，然后单击“删除”按钮即可。


系统登录

运行交易开拓者

成功安装交易开拓者之后，您就可以开始使用交易开拓者了，点击桌面或应用程序组中"交易开拓者"快捷方式，将弹出系统登录界面。

新用户注册

如果您是交易开拓者的新用户，请先点击登录界面中的"新用户注册"按钮，按照提示信息填写相关内容，并提交。您将获得一个登录的用户ID和密码，请牢记用户ID和密码，这是您登录系统的唯一身份认证。

用户登录

如果您已经有交易开拓者的用户ID，可以直接在登录界面中输入用户ID和密码，并点击"登录"按钮。

修改密码

如果您已经有交易开拓者的用户ID，可以直接在登录界面中点击"修改密码"按钮，进行密码修改。

注意: 如果系统登录时网络不通，您将不能够使用该系统。但在系统使用过程中出现网络问题，您仍然可以脱机使用交易开拓者,但脱机情况下只能使用部分功能。当网络恢复正常的情况下，系统会自动连接服务器。


连接交易帐户

添加交易帐户

成功注册交易开拓者用户ID之后，如果您想使用交易开拓者进行交易，需要先添加交易帐户。

请按照以下步骤进行操作:

    1. 登录交易开拓者网站，查看已经开通交易开拓者服务的合作伙伴；

    2. 如果您已经在此列表中的经纪商开户，恭喜您，您可以通过和经纪商提交申请，开通交易开拓者的实盘交易功能；

    3. 如果您没有在此列表中的经纪商开户，您需要先选择其中的一个经纪商开设帐户，然后才能使用交易开拓者的实盘交易功能；

    4. 您也可以向您的经纪商要求提供此项服务，只需简单安装，交易开拓者就可在该经纪商开通，您就可以使用交易开拓者的交易功能；

    5. 在收到经纪公式传真的申请表之后，我们将会把您的交易帐户加入交易开拓者帐号中，您可以加入多个交易帐户(可包括不同的经纪商)，使用交易开拓者的多帐户交易和管理功能。

单个交易帐户登录

成功添加交易帐户之后，您的交易开拓者帐号之下就会包含有相关的交易帐户。在登录系统之后，您可以在屏幕下部的状态条上找到一个按钮"交易帐户"，如果只有一个交易帐户，点击该按钮，将会弹出一个对话框，如下图所示：

选择您想要登录的交易帐户，输入密码，点击"登录"按钮，就完成了交易帐户的登录，登录之后您就可以对该帐户进行各项操作。选中"保存密码"复选框，下次登录时可以不输入密码；选中"自动登录"复选框，下次登录交易开拓者时，可自动将该交易帐户登录。

多个交易帐户登录

成功添加多个交易帐户之后，您的交易开拓者帐号之下就会包含有相关的交易帐户。在登录系统之后，您可以在屏幕下部的状态条上找到一个按钮"交易帐户"，如果只有多个交易帐户，点击该按钮，将会弹出一个对话框，如下图所示：

勾选您想要登录的交易帐户，输入密码，点击"登录"按钮，就完成了多个交易帐户的登录，登录之后您就可以对交易帐户进行各项操作。选中"保存密码"复选框，下次登录时可以不输入密码；在[帐户设置]中勾选需要自动登录的帐户，并且设置保存密码后，下次登录交易开拓者时，可自动将该交易帐户登录。

交易帐户登录设置

参见系统设置 - 交易帐户设置。


主界面介绍

主界面示意图

主界面内容说明

  • 菜单: 无工作区时，菜单为系统菜单。当工作区打开之后，对应不同的模块，系统会自动生成不同的菜单；

  • 工具栏: 无工作区时，工具栏为系统工具栏。当工作区打开之后，对应不同的模块，系统会自动生成不同的工具栏；

  • 状态栏: 包含一个简洁的报价窗体和下单工具，帐户登录，系统配置等快捷按钮；

  • 面板: 为用户建立了常用模块和功能调用的快速通道，用户只要选中某个按钮，系统可以迅速打开相对应的功能和模块窗口；

  • 工作区: 用户可以同时打开多个窗口，可以让用户同时关注更为丰富的内容。

  • 帐户管理: 对用户的交易帐户信息进行管理，包括资金，持仓，委托等信息。

  • 跑马灯: 滚动显示多个商品的报价信息。


视窗模块

通过单击快捷面板中的按钮，可以在工作区内打开一系列的窗体用于查看行情数据，历史数据，进行技术分析，浏览网页等。

目前，交易开拓者包含了以下视窗模块：行情报价,超级图表和分时图，详细介绍如下：

行情报价

拥有强大的行情订阅和行情检索功能，实行工作区和模板管理，是个性化极强的动态揭示行情变动的功能模块。

详细介绍请参见行情报价。

超级图表

拥有多种周期下的图形表现形式，支持多市场、多时区、多品种的数据显示；实行任意数据长度订阅，连续图合约独立订阅等特色功能。更重要的您可以通过超级图表实现完全的自动交易。

详细介绍请参见超级图表。

分时图

拥有固定1分钟时间坐标的分时图表及盘口明细，分笔成交显示的功能模块。

详细介绍请参见分时图。


特色功能

除了视窗模块之外，交易开拓者还提供一系列的特色功能，方便用户进行分析和交易。

主要的特色功能包含以下模块：交易师，策略易，触发单，批量下单，套利宝、快车道，帐户管理，TB公式，消息中心等。

交易师

集中普通下单、止损获利、触发单、修改委托和平仓等多种交易功能。并集成嵌入图表及报价等多项功能，可不需任何输入一键下单，是用户交易的必备利器。

详细介绍请参见交易师。

策略易

通过界面输入参数，不需要编写复杂繁琐的公式代码就可以轻松实现无人值守自动化交易。

详细介绍请参见策略易。

批量下单

提供多帐户批量下单的功能，提高多帐户交易的效率。

详细介绍请参见批量下单。

套利宝

提供普通套利和蝶式套利的自动下单功能，还可以进行自动跨月换仓操作，并提供分布建仓等高级功能。

详细介绍请参见套利宝。

价差下单

提供普通套利和蝶式套利的手动下单功能，还可以进行跨月换仓操作，并有实时的价差买卖盘图表，可直观的进行手动套利交易。

详细介绍请参见价差下单。

本地触发单

提供本地触发单，方便您实现在本地进行触发单交易。

详细介绍请参见本地触发单。

快车道(该功能只在专业版中提供)

提供直观快捷的交易功能，可通过按1，2，3，4键实现委托，并有自动识别持仓，不需要您再设置开平仓选项。

详细介绍请参见快车道。

交易助手

提供未成交单的自动监控及后续处理功能。

详细介绍请参见交易助手。

帐户管理

对用户的交易帐户信息进行管理，包括资金，持仓，委托等信息。可对多帐户进行集中管理，并在页面中提供了快速交易的通道。

详细介绍请参见帐户管理。

TB公式

一种用于金融投资分析的计算机高级语言，TB公式语言是一门语法简单但是功能强大的语言，它能帮助您创建自己的交易和技术分析工具。通过组合普通的公式应用和简单的语句，TB公式语言使您能够很容易并且直接的用简单语句表达自己的交易规则和行为。

交易开拓者读取您开发的TB公式，在历史价格数据基础上进行评估，并执行特定的交易动作，完成您的交易思想。

详细介绍请参见公式简介。

消息中心

是为了统一管理各类报警功能和系统、行情、交易消息提示而设计的特色功能，实现了多通道通知方式和个性化设置功能。

详细介绍请参见消息中心。


退出系统

尚未登录系统

如果您在“欢迎登录交易开拓者”的界面，直接点击“退出”按钮即可。

已经登录系统

如果您已经进入了交易开拓者系统，要退出程序，有以下几种方法：

    1. 直接按快捷键Alt+F4；

    2. 用鼠标单击系统菜单[文件]-[退出]菜单项；

    3. 用鼠标点击窗口右上角的关闭按钮。

交易开拓者退出之前，系统会弹出是否保存对工作区的修改，用户可根据您自己的需要选择。

注意: 菜单"窗口"的"关闭窗口"和"关闭所有窗口"以及工作区窗口右上方的关闭按钮"X"，只是关闭您所打开的工作区，并不退出系统。

相关链接:

系统登录

系统菜单

主界面介绍


系统菜单

在无工作区打开情况下，系统菜单有以下几个子菜单：文件、视图和帮助。在有工作区打开情况下，将会增加一个子菜单窗口。以下详细描述个子菜单内容：

文件菜单

  • 新建: 新建视窗模块和TB公式；

  • 打开工作区...: 打开保存的工作区文件；

  • 打开工作室...: 打开工作室选择窗口，调入工作室文件；

  • 图像储存和打印...: 打开图像储存和打印窗口，可将工作区或系统界面保存为bmp，jpg文件，也可直接打印界面；

  • 数据管理...: 进行数据下载和商品属性，数据的管理；

  • 系统设置...: 对系统的界面，工作区管理，服务器连接，交易参数等进行综合设置；

  • 导入和导出: 对系统工作区、超级图表、行情报价和跑马灯等数据进行导入和导出，方便在不同机器或不同用户之间进行交流；

  • 当前打开的工作区: 当前打开的工作区列表；

  • 最近打开的工作区: 最近打开的工作区列表，在系统设置中可设置保存最近打开工作区的数目。

在有工作区打开的情况下，文件菜单还会增加如下子菜单：

  • 关闭工作区: 关闭当前工作区；

  • 保存工作区: 保存当前工作区；

  • 另存工作区为...: 将当前工作区重新命名保存；

  • 保存所有工作区: 保存当前打开的所有工作区；

  • 保存所有工作区为工作室...: 将当前打开的所有工作区保存为工作室文件；

  • 发送工作区...: 将当前工作区作为邮件附件进行发送；

  • 另存子窗口到桌面...: 将当前打开的视窗模块数据保存到桌面，以后可通过桌面进行快捷调用。

视图菜单

  • 桌面: 显示或隐藏桌面；

  • 面板: 显示或隐藏面板；

  • 跑马灯: 显示或隐藏跑马灯；

  • 帐户管理: 显示或隐藏帐户管理；

  • 消息中心: 显示或隐藏消息中心；

  • 工具栏: 显示或隐藏工具栏；

  • 状态栏: 显示或隐藏状态栏。

帮助菜单

  • 索引...: 打开帮助文件的索引页；

  • 查找...: 打开帮助文件的查找页；

  • 帮助指南: 打开帮助文件的目录页；

  • 常见问题解答: 打开网站的常见问题解答；

  • 联系我们: 打开网站的联系我们页面；

  • 操作小技巧...: 打开操作小技巧窗口，了解一些常用的操作技巧；

  • 关于TradeBlazer: 打开关于TradeBlazer窗口，了解版本和版权等信息。

窗口菜单

  • 横向拆分: 将当前窗口拆分为两个并列的窗口，拆分时需选择新建窗口的类型；

  • 纵向拆分: 将当前窗口拆分为两个并排的窗口，拆分时需选择新建窗口的类型；

  • 关闭窗口: 关闭当前的窗口；

  • 最大化/还原: 对当前选中的窗口进行最大化或还原操作；

  • 关闭所有窗口: 关闭当前工作区所有的窗口。


工具栏

系统工具栏主要有以下和视窗模块无关的按钮，其他和视窗模块相关的按钮使用放到相关章节：

  • 新建: 新建视窗模块和TB公式；

  • 打开工作区: 打开保存的工作区文件；

  • 保存工作区: 保存当前工作区；

  • 保存所有工作区: 保存当前打开的所有工作区；

  • 打印: 直接打印当前系统界面；

  • 面板: 显示或隐藏面板；

  • 桌面: 显示或隐藏桌面；

  • 我的键盘: 显示或隐藏我的键盘；

  • 帐户管理: 显示或隐藏帐户管理；

  • 横向拆分: 将当前窗口拆分为两个并列的窗口，拆分时需选择新建窗口的类型；

  • 纵向拆分: 将当前窗口拆分为两个并排的窗口，拆分时需选择新建窗口的类型；

相关链接:

工作区

窗口特性

我的键盘

帐户管理


工作室

工作室是交易开拓者特有的一种管理用户界面方式，您可以将一些关联类型的工作区保存为工作室。比如，您可将和铜相关的图表、报价和网页等保存为铜的工作室，您也可将燃油相关的工作区保存为燃油的工作室；当您登录系统时，您可以直接选择打开一个工作室即可快捷的调入包含的所有工作区。

当您在系统设置界面中选中了[启动时选定工作室]复选框，在登录系统时，将会弹出以下窗口：

您可以选中窗口左边的工作室列表，右边列表将会出现该工作室包含的所有工作区；点击[打开]按钮，即可调入该工作室。

您也对该工作室进行修改、重命名、删除等管理。

选中[启动时显示]，将会在每次登录交易开拓者时出现该界面。此选项和系统设置界面中[启动时选定工作室]复选框功能一样。


工作区

交易开拓者支持多工作区(支持无限多个)操作，您可以通过多种途径来新建或打开工作区:

    1. 通过菜单[文件]-[新建]，可以新建各种工作区；

    2. 在面板中点击或拖放模块按钮，可以新建各种工作区；

    3. 在相关的模块中，通过右键菜单或工具栏可快捷的新建各种工作区；

    4. 通过菜单[文件]-[打开工作区]，可以打开保存的工作区；

    5. 在我的桌面点击保存的工作区文件和模块文件，可以打开保存的工作区；

    6. 通过打开工作室，可以打开保存的工作区。

多个工作区，通过鼠标单击工作区标签 工作区标签 进行切换显示。右键点击工作区标签会弹出菜单，可进行各项工作区的操作。

单个工作区下又可以包含多个模块窗口，您可以通过鼠标拖拉边框任意切分窗口的位置。

通过[另存子窗口到桌面]操作的保存的文件，在打开的时候，会自动生成一个默认的工作区。但其本身并不是工作区文件，其文件保存在桌面下对应的模块目录。

注意: 默认的工作区文件保存在[主程序目录]\User\[帐号]\Desktop\我的工作区。


面板

面板是另一个交易开拓者特有的功能，通过面板您可以方便快捷的进行模块和功能操作。面板包括分组、按钮两部分，对于不同类的按钮可以归于不同的组里面。面板还支持边界拖拉、按钮拖拉、大小图标切换、字体和背景颜色定制等，并可选择显示或隐藏。

全局操作

  • 显示/隐藏面板: 点击系统菜单[视图]-[面板]子菜单；或直接按F3；也可点击工具栏的面板按钮；在面板显示的情况下，还可以右键菜单中选择[隐藏面板]菜单项；

  • 改变字体颜色: 在面板显示的情况下，在右键菜单中选择[改变字体颜色]菜单项；

  • 改变背景颜色: 在面板显示的情况下，在右键菜单中选择[改变背景颜色]菜单项；

  • 恢复默认颜色: 在面板显示的情况下，在右键菜单中选择[恢复默认颜色]菜单项；

  • 大/小图标显示: 在面板显示的情况下，在右键菜单中选择[大图标]或[小图标]菜单项。

分组操作

  • 展开组: 鼠标点击分组标题，该分组即可展开，其他分组将会关闭；

  • 添加新组: 在任意分组标题上右键菜单，选择[添加新组]菜单项；

  • 删除组: 在用户自建分组标题上右键菜单，选择[删除组]菜单项；

  • 重命名组: 在用户自建分组标题上右键菜单，选择[重命名组]菜单项。

注意: 删除组和重命名组的操作只能对新添加的组有效，请慎用删除功能。

按钮操作

  • 点击: 鼠标点击某个按钮，该会执行该模块的功能，如果是视窗模块，将会在当前工作区嵌入当前类型的窗口；

  • 拖拉: 在该分组类拖拉按钮，可以改变按钮的顺序，如果将视窗模块按钮拖放到工作区区域内，将会替换原窗体或新建当前类型的窗口；

  • 添加: 在用户自建分组下，右键菜单，选择[新建]菜单项；将会弹出添加快捷方式的对话框，可选择文件，设置图标和参数，并可在系统中调用。

注意: 添加按钮的文件必须按照交易开拓者的规范开发，此项功能只提供给专业用户和第三方厂商使用，普通用户请慎用。


桌面

桌面是交易开拓者集中管理用户资源的一个模块，桌面将各种程序文件(如我的工作区、我的超级图表、我的行情报价等)及所有公式分门别类显示出来，在桌面上即可进行打开、修改、增加、删除等操作，使用户的资源和个性化管理变得条理分明、简单快捷。

您可以通过快捷键F2、点击菜单项或工具栏的按钮来显示和隐藏桌面，桌面的基本操作和示意图如下：

某些桌面类下包含一些快捷方式，您可以通过点击快捷方式执行相应的操作。

您可以点击桌面类列表，切换显示不同的桌面类。您还可以通过右键菜单执行新建、修改、删除、排序及切换显示风格等操作。

点击不同的桌面项，可以打开该桌面项文件，在桌面类区域通过右键菜单可以执行修改，删除，排序及切换显示风格等操作。


窗口特性

交易开拓者的窗口不同于一般的Windows窗口，在工作区区域内，窗口是可以任意切割。初次使用，您也许会不习惯这种方式，请不要着急，在仔细看过本节之后，您一定会喜欢上这种风格。

窗口是工作区之下的一个单元，窗口的操作包含以下几部分：

新建窗口

您可以通过以下几种方式来新建窗口:

  • 点击面板中的视窗模块按钮，如果当前没有打开工作区，将先新建一个工作区，并在工作区内新建一个当前模块；

  • 点击面板中的视窗模块按钮，如果当前已经打开工作区，将在工作区内新建一个当前模块，并自动和选中窗口进行并排或并列显示；

  • 如果觉得自动生成的位置不合您意，您可先将焦点移到工作区的需要切分窗口内，点击工具栏或系统子菜单[窗口]的横向/纵向拆分；

  • 您还可以通过拖拉工作区区域的四个边框，来新建窗口。

系统自动拆分窗口原则: 以当前窗口为基础，一分为二，即总是以当前窗口较长的两条对边的中点的连线为分割线，拆分窗口。

改变窗口大小

窗口大小可以通过简单的鼠标拖动来改变，具体的操作方法如下：

  • 将鼠标移到想要拖动的窗口的边框上，鼠标的形状变为单向箭头或双向箭头，此时表示可以开始朝箭头方向改变窗口大小;

  • 若鼠标的形状是双向箭头，按住鼠标左键向着箭头方向拖动窗口此边，则当前窗口增大或减小，相邻的窗口的大小随之调整；

  • 若鼠标的形状是单向箭头，按住鼠标左键向着箭头方向拖动窗口此边，该窗口的大小会随之变小，同时会弹出[新建视窗]对话框，即上面的新建窗口第四条；

  • 另外，您还可以通过点击窗口标题位置的按钮：最大化，还原和关闭来进行窗口大小改变。

替换窗口

将鼠标移至面板中的视窗模块快捷按钮的上方，按下鼠标左键，拖动该按钮图标至工作区中已经存在的功能窗口的上面，松开鼠标左键，就会在该窗口中替换显示该快捷按钮对应的视窗模块窗口内容，工作区中窗口数量保持不变。

关闭窗口

  • 关闭当前窗口：要关闭一个窗口，首先将鼠标移至要关闭的窗口内，单击鼠标左键，激活该窗口，打开系统子菜单[窗口]，选择"关闭窗口"菜单项；或者单击要关闭窗口右上角的关闭按钮；

  • 关闭所有窗口：鼠标单击系统子菜单[窗口]中的"关闭所有窗口"选项。

相关链接:

工具栏

系统菜单

面板

主界面介绍


我的键盘

我的键盘是交易开拓者中提供商品代码选择和技术分析输入的工具，您可以在超级图表，交易师及其他设置窗口中调入我的键盘。

我的键盘可以通过点击工具栏或窗口中的按钮调入，我的键盘显示之后，您可以在输入框中输入任意数字和字母，我的键盘会根据输入字符自动过滤代码。您可以继续输入直接定位到某个代码，也可以通过上下箭头进行定位，定位到想要选择的代码后，回车即可完成代码的输入。

您也可以通过鼠标点击我的键盘中的按钮来进行字符输入，用鼠标单击来进行代码选择。


跑马灯

跑马灯是交易开拓者报价系统的一个组成部分，它提供简洁直观的报价信息，让您可以对关注的商品报价进行动态监控。

跑马灯嵌入主窗口，可以在顶部和底部显示，您可以通过快捷键F4或系统菜单[视图]-[跑马灯]显示或隐藏跑马灯。跑马灯可包含多个滚动条(最多8条，至少1条)。跑马灯的基本信息如下图所示：

您可以通过通过跑马灯管理器来设置商品代码，还可以通过右键菜单和拖拉跑马灯报价条来进行各项设置。

鼠标双击跑马灯报价单元，将会弹出关于该商品的图表窗口，您可以通过该图表查看行情走势。

注意: 跑马灯的涨跌平标志是指最新价和上一个报价相比。


状态栏

状态栏位于交易开拓者主界面窗口的底部，包含两部分功能：报价栏和按钮栏。

您可以通过系统菜单[视图]-[状态栏]显示或隐藏状态栏，状态栏的基本信息如下图所示：

报价栏

报价栏类似于跑马灯，提供简单报价揭示。详细操作可参见跑马灯。

按钮栏

  • 交易师: 点击该按钮将打开交易师窗口，您可以通过交易师进行各项交易操作；

  • 批量下单: 点击该按钮将打开批量下单窗口，您可以通过批量下单进行多帐户的批量交易；

  • 套利宝: 点击该按钮将打开套利宝窗口，您可以通过套利宝进行自动套利的交易；

  • 价差下单: 点击该按钮将打开价差下单窗口，您可以通过价差下单进行手动套利的交易；

  • 本地触发单: 点击该按钮将打开本地触发单窗口，您可以通过本地触发单在本地设置触发单；

  • 策略易: 点击该按钮将打开策略易窗口，您可以通过策略易进行简单的程序化交易；

  • 监控器: 点击该按钮将打开监控器窗口，您可以通过监控器进行交易头寸管理；

  • 组合报告: 您可以对不同图表多个策略通过进行测试；

  • 交易助手: 点击该按钮将打开交易助手窗口，您可以通过交易助手进行未成交单的自动监控及后续处理操作；

  • 交易帐户: 点击该按钮将打开交易帐户登录窗口，要进行交易操作，必须先登录交易帐户；

  • 服务器状态: 该按钮显示行情服务器的连接状态，绿色表示服务器联机，红色表示服务器断开，按钮上有联机/脱机信息显示。点击该按钮只是刷新服务器状态，无其他操作；

  • 系统设置: 点击该按钮将打开系统设置窗口，您可以在此进行系统基本设置。


消息中心

消息中心是交易开拓者的提供消息提示和消息管理的模块，主要功能是处理报警消息和交易消息。

您可以通过系统菜单[视图]-[消息中心]显示或隐藏消息中心，也可以通过双击Windows任务栏图标打开。消息中心的基本信息如下图所示：

消息中心界面包括以下内容：

  • 菜单: 显示消息中心的菜单项，可通过菜单项进行所有消息中心相关操作；

  • 工具栏: 显示常用的操作按钮，可进行页面设置、消息设置、字段设置及字体放大缩小等；

  • 消息内容区: 用列表方式显示当前分类的所有消息；

  • 消息Tab页: 可通过点击消息Tab页进行消息内容区的切换；

  • 状态栏: 显示操作的一些提示信息。

页面设置

通过菜单或工具栏，可以打开页面设置对话框，页面设置对话框主要进行颜色和字体的设置。

字段设置

通过菜单或工具栏，可以打开字段设置对话框，报警消息页和交易消息页分别有自己的字段设置对话框。在此可进行字段选择和顺序的设置。

消息设置

通过菜单或工具栏，可以打开报警设置/交易设置对话框，报警消息页和交易消息页分别有自己的消息设置对话框。

消息设置页面包括以下内容：

  • 消息保留设置: 可按日期或条数保存消息，并可设置相关参数；

  • 新消息到达: 可选择是否弹出信使；

  • 信使风格: 选择信使风格及停留时间，共有三种信使风格。

以下是其中一个信使显示的示意图：

在消息内容区显示的消息中，列表的第一列显示了一个图标，该图标表达了以下含义：

  • 新到消息: 新消息标志，新消息到达，明显的红色感叹号；

  • 未读消息: 未读消息标志，消息中心中还有未看过的消息；

  • 已读消息: 已读消息标志，阅读后标志已读。

默认报警设置

在报警页面的报警设置中，包含了一个报警默认设置页面。该页面是交易开拓者的默认报警设置，在此设置的信息，可在字段报警，技术分析报警和画线工具报警等地方调用。


系统设置

系统设置是对交易开拓者使用过程中的一些基本参数进行设置的窗口，您可以通过快捷键Ctrl+P、系统菜单[文件]-[系统设置]及状态栏的快捷按钮打开。

系统设置包括以下三个页面：常规，交易和安全。

常规

常规页面包含以下内容：启动、文件和声音三部分，分别对启动选项、文件保存和声音等进行设置。

启动

  • 启动时选定工作室: 系统登录后打开工作室选择窗口，您可以在此选定打开的工作室。

    1. 进入桌面: 系统登录后，不打开任何工作室和工作区，直接打开桌面。

    2. 打开最后保存的工作室(工作区): 系统登录后，自动打开最后保存过的工作室或最后保存的工作区。

    3. 打开最后一个活动的工作区: 系统登录后，自动打开最后活动的一个工作区。

  • 窗口模式: 设置工作区窗口的标题显示风格。

    1. 缺省模式: 只有激活的窗口才有标题；

    2. 无标题模式: 所有窗口都没有标题；

    3. 有标题模式: 所有窗口都有标题。

文件

设置是否自动保存工作区文件，当选中该复选框之后，系统将定时自动保存工作区，工作区命名方式为"工作区"+"计数值"。下面的选项设置自动保存的时间间隔及保存最近使用工作区列表个数。最近使用工作区列表个数会影响系统菜单[文件]-[最近打开的工作区]所显示工作区的个数。

声音

通过点击[设置]按钮打开声音设置对话框，在此可对各种事件设置声音。

交易

    1. 默认帐户: 多交易帐户的情况下，交易师打开时的默认选择帐户；

    2. 自动保存交易师最后使用商品: 选中该复选框，交易师关闭时将保存最后使用过的商品信息，下次打开将会自动调入原商品；

    3. 默认使用叫买/卖价下单: 选中该复选框，交易师下普通单将选择叫买或叫卖价，买入选择叫卖价，卖出选择叫买价；

    4. 默认显示交易师图表窗: 选中该复选框，交易师打开时将显示图表窗；

    5. 默认显示普通单确认页面: 选中该复选框，交易师下普通单将弹出确认页面；

    6. 默认显示触发单确认页面：选中该复选框，交易师下触发单将弹出确认页面；

    7. 默认显示成交回报页面：选中该复选框，有成交信息时，将会自动弹出成交回报页面；

  • 数量: 关于交易师下单数量的设置。

    1. 使用默认数量: 交易师打开时的数量为此处设置的默认值；

    2. 保存交易师最后使用数量: 交易师打开时的数量为上次关闭时的数量；

  • 风控: 关于交易下单时的风险设置。

    1. 单笔上限设置: 控制单笔交易上限开仓数量；

    2. 开仓时限设置: 控制开仓时间、风险限制；

安全

  • 密码保护: 对延时锁屏的选项及时间进行设置，当指定时间内系统无操作将会锁住软件界面，您需要重新输入登录密码才能回到原操作界面；

  • 交易帐户设置: 点击该按钮打开帐户设置窗口，您可以在此选择自动登录帐户，此时需要输入选中的交易帐户密码，点击[保存密码]将交易帐户密码保存。如果该交易帐户已经登录，您还可以在此修改交易帐户密码。点击[确认]按钮，即可将设置内容保存。

注意: 某些期货公司使用上期技术的CTP柜台，在盘后会关闭交易前置机，如果使用自动登录，可能出现因不能登录交易帐户导致程序死锁的情况，请不要对这些CTP交易帐户设置自动登录。


数据管理

数据管理是交易开拓者进行历史数据下载、合约代码维护、自定义合约及数据管理的功能模块。您可以通过快捷键Ctrl+M、系统菜单[文件]-[数据管理]打开。

数据管理包括以下三个页面：合约管理、数据维护和配置工具。

数据管理界面如下图所示：

合约管理

合约管理页面主要功能是给用户提供自定义合约，修改用户合约的属性，以及删除到期的合约数据等。

合约管理界面包括以下几部分：

  • 交易所: 选择系统合约的交易所，进行合约列表的合约切换；

  • 合约列表: 列出当前选择交易所的所有合约，包括服务器中的合约，到期合约及用户自定义合约。列表中的类型列显示了合约的类型：分为系统和用户，到期合约和用户自定义合约都属于用户类型，用户类型不可以交易，只可在超级图表中使用；

  • 自定义商品: 点击该按钮，弹出新建用户合约的对话框，您可以在此对话框设置合约属性；

    • 商品代码: 当前商品的代码，新建之后不能修改，是系统识别商品的标识之一；

    • 商品名称: 当前商品的中文名称，最好控制在5个中文字符(10个英文字符)以内，否则可能在某些模块会出现显示不全的问题；

    • 商品品种: 当前商品的品种类型。目前包括以下几类：证券、期货、外汇、债券、基金和期权；

    • 交易市场: 当前商品所属的交易市场，新建之后不能修改，是系统识别商品的标识之一。目前自定义商品只能选择在现存的几个市场内添加；

    • 商品描述: 对当前商品的详细描述信息；

    • 小数位数: 当前商品报价的小数点位数；

    • 货币类型: 当前商品的货币类型，目前包括以下几类：人民币、美元和港币；

    • 报价精度: 当前商品报价的小数精度。比如18980的报价精度为1；3.12的报价精度为0.01；1.1823的报价精度为0.0001；

    • 交易单位: 当前商品的交易单位。对期货来说是每张合约包含的报价单位数量，比如1张沪铜合约的交易单位为5。对股票来说是每手的股数，对外汇来说为1；

    • 最小变动: 当前商品报价相对于报价精度来说，每次最小变动的值。比如沪铜的最小变动为10，连豆的最小变动为1；

    • 保证金比率: 当前商品交易的保证金比率，证券等品种可设置为1；

    • 每点价值: 当前商品每一整数点的价值，该属性主要针对指数期货，其他品种为1；

    • 保证金模式: 当前商品保证金的计算模式。目前包括以下几类：外汇1(EURUSD)、外汇2(USDJPY)、外汇3(GBPJPY)、期货和证券。

  • 属性维护: 当有合约选中时，可以点击[属性维护]按钮，系统合约不能修改属性，用户合约可以对属性进行修改；

  • 删除商品: 当有合约选中时，可以点击[删除商品]按钮，系统合约不能删除，删除商品将删除该合约及所有相关的数据；

数据维护

数据维护页面主要功能是给用户提供导入数据到交易开拓者进行技术分析和交易系统优化测试。方便用户使用交易开拓者强大的公式平台和图表分析功能来对其他商品进行投资分析。您也可以在该页面导出和查询数据。

  • 导入、导出数据: 导入、导出单个合约数据；

  • 批量导入、导出数据： 导入、导出多个合约数据；

  • 矩阵导出： 导出合约数据格式为逗号分隔型取值格式（csv)；

配置工具

配置工具页面主要功能是给用户提供TBProfile数据库进行添加、删除和修改。方便用户使用TBProfile实现公式应用功能。


导入和导出

对系统工作区、超级图表、行情报价和跑马灯等数据进行导入和导出，方便在不同机器或不同用户之间进行交流。您可以通过快捷键Ctrl+W或系统菜单[文件]-[导入和导出]打开。

导入和导出分为导入和导出两部分功能：

导出

可以将桌面所有桌面类中的文件、系统设置、跑马灯设置、状态栏设置等，导出并以文件形式存储在计算机中，此操作可以在导入导出向导窗口中，按照提示步骤完成。

  1. 在操作列表中选择[导出到一个文件]，并点击[下一步]按钮；

  2. 在出现的导出项选择列表中选择需要导出的部分，并点击[下一步]按钮；

  3. 点击[浏览]按钮，设置导出文件的路径和文件名，然后点击[完成]按钮，此时，将会出现导出文件的进度条，进度条消失后，整个导出操作完成。

导入

同样，既然可以以文件形式导出平台某些信息，反过来就可以将这些信息通过导入信息文件，在平台上重新反映出来，这就需要进行导入操作。可以在导入导出向导窗口中，按照提示步骤完成。

  1. 在操作列表中选择导[入一个文件]，并点击[下一步]按钮；

  2. 选择对同名文件的处理方式，并点击[下一步]按钮；

  3. 点击[浏览]按钮，选择要导入的文件，然后点击[完成]按钮，此时，将会出现导入文件的进度条，进度条消失后，整个导入操作完成。

注意: 导入时将会即时调入跑马灯和状态栏的设置内容，并将导入的工作区和其他桌面文件保存到指定目录；


图像存储和打印

交易开拓者支持将系统部分内容以图片文件的形式保存(bmp,jpg)，并提供打印图片的功能。您可以通过快捷键Ctrl+I或系统菜单[文件]-[图像存储和打印]打开。

图像存储和打印可以对3种界面进行保存，打印和复制到剪贴板操作：

  • 将当前的整个交易开拓者界面存为图片或直接打印；

  • 将当前的整个工作区存为图片或直接打印；

  • 将当前活动的窗口存为图片或直接打印。


操作小技巧

操作小技巧提供一些使用交易开拓者的操作提示，在这里您也许可以有意想不到的收获。您可以通过系统菜单[文件]-[操作小技巧]打开。

点击[下一条]可显示下一条操作提示。


快捷键

快捷键 | 所属模块 | 描述
F1 | 全局 | 打开联机帮助。
F2 | 全局 | 显示或隐藏桌面。
F3 | 全局 | 显示或隐藏面板。
F4 | 全局 | 显示或隐藏跑马灯。
F6 | 全局 | 显示或隐藏帐户管理。
F7 | 全局 | 显示或隐藏消息中心。
F9 | 全局 | 调入交易师界面。
F10 | 全局 | 调入交易帐户登录界面。
F12 | 全局 | 锁定程序。
Esc | 全局 | 退出某些操作对话框。
Enter | 全局 | 执行选中的动作或进行项目选择。
Alt+F4 | 全局 | 关闭交易开拓者。
Alt+F | 全局 | 打开系统菜单[文件]。
Alt+H | 全局 | 打开系统菜单[帮助]。
Alt+V | 全局 | 打开系统菜单[视图]。
Alt+W | 全局 | 打开系统菜单[窗口]。
Ctrl+D | 全局 | 将当前打开的视窗模块数据保存到桌面，以后可通过桌面进行快捷调用。
Ctrl+I | 全局 | 打开图像储存和打印窗口，可将工作区或系统界面保存为bmp，jpg文件，也可直接打印界面。
Ctrl+L | 全局 | 将当前窗口拆分为两个并排的窗口，拆分时需选择新建窗口的类型。
Ctrl+M | 全局 | 进行数据下载和商品属性，数据的管理。
Ctrl+N | 全局 | 新建视窗模块和TB公式。
Ctrl+O | 全局 | 打开保存的工作区文件。
Ctrl+P | 全局 | 对系统的界面，工作区管理，服务器连接，交易参数等进行综合设置。
Ctrl+R | 全局 | 打开工作室选择窗口，调入工作室文件。
Ctrl+S | 全局 | 保存当前工作区。
Ctrl+T | 全局 | 将当前窗口拆分为两个并列的窗口，拆分时需选择新建窗口的类型。
Ctrl+W | 全局 | 对系统工作区、超级图表、行情报价和跑马灯等数据进行导入和导出，方便在不同机器或不同用户之间进行交流。
Ctrl+F4 | 全局 | 关闭当前工作区。
Ctrl+Tab | 全局 | 切换当前工作区。
上箭头 | 行情报价 | 选中上一行，如果到第一条则选中最后一条。
下箭头 | 行情报价 | 选中下一行，如果到最后一条则选中第一条。
左箭头 | 行情报价 | 除固定字段之外，其他列向右移一格。
右箭头 | 行情报价 | 除固定字段之外，其他列向左移一格。
F5 | 行情报价 | 切换到分时图。
Enter | 行情报价 | 切换到分时图。
Delete | 行情报价 | 删除选中行。
Home | 行情报价 | 选中第一行。
End | 行情报价 | 选中最后一行。
PageUp | 行情报价 | 向上翻一页。
PageDown | 行情报价 | 向下翻一页。
F8 | 超级图表 | 切换图表周期。
上箭头 | 超级图表 | 增加图表Bar之间的间距。
下箭头 | 超级图表 | 减少图表Bar之间的间距。
左箭头 | 超级图表 | 显示前一个Bar的标注。
右箭头 | 超级图表 | 显示后一个Bar的标注。
Ctrl+左箭头 | 超级图表 | 图表向左平移。
Ctrl+右箭头 | 超级图表 | 图表向右平移。
F5 | 超级图表 | 切换到分时图。
Esc | 超级图表 | 切换到分时图。
Insert | 超级图表 | 插入叠加的商品，周期为Tick时无效。
Delete | 超级图表 | 删除选中的对象。
Home | 超级图表 | 平移到图表第一个Bar。
End | 超级图表 | 平移到图表最后一个Bar。
PageUp | 超级图表 | 切换到上一个商品。
PageDown | 超级图表 | 切换到下一个商品。
Ctrl+PageUp | 超级图表 | 向前翻一页。
Ctrl+PageDown | 超级图表 | 向后翻一页。
Space | 超级图表 | 取消十字标注显示。
Shift+A | 超级图表 | 打开添加公式应用对话框。
Shift+B | 超级图表 | 切换图表主图显示类型。
Shift+C | 超级图表 | 打开头寸计算对话框。
Shift+D | 超级图表 | 显示或隐藏数据窗口。
Shift+E | 超级图表 | 打开公式应用设置对话框。
Shift+F | 超级图表 | 打开画线管理对话框。
Shift+G | 超级图表 | 显示半对数图。
Shift+H | 超级图表 | 显示或隐藏最高最低价标注。
Shift+I | 超级图表 | 显示倒置图。
Shift+J | 超级图表 | 显示或隐藏开多仓线。
Shift+K | 超级图表 | 显示或隐藏开空仓线。
Shift+L | 超级图表 | 打开自动交易安全锁。
Shift+M | 超级图表 | 打开页面设置对话框。
Shift+N | 超级图表 | 打开模板选择对话框。
Shift+O | 超级图表 | 打开交易策略参数优化报告。
Shift+P | 超级图表 | 打开投资组合性能测试报告。
Shift+Q | 超级图表 | 停止滚动。
Shift+R | 超级图表 | 打开数据回放功能。
Shift+S | 超级图表 | 打开商品设置对话框。
Shift+T | 超级图表 | 显示或隐藏提示窗。
Shift+U | 超级图表 | 恢复正常坐标。
Shift+V | 超级图表 | 显示或隐藏子图分割线。
Shift+W | 超级图表 | 显示或隐藏收盘线。
Shift+X | 超级图表 | 显示或隐藏时间网格线。
Shift+Y | 超级图表 | 显示或隐藏价格网格线。
Shift+Z | 超级图表 | 启用区间放大功能。
F7 | 公式编辑器 | 仅校验保存当前公式。
Ctrl+F7 | 公式编辑器 | 校验保存公式。


主界面

行情报价是交易开拓者专为显示动态行情设计的行情揭示系统，拥有强大的行情订阅和检索功能。

您可以通过以下几个方式新建行情报价窗口：

    1. 点击系统菜单[文件]-[新建]-[行情报价]菜单项；

    2. 直接按快捷键Ctrl+N，在新建窗口中选择行情报价模块，点击确定；

    3. 点击工具栏中的新建按钮，在新建窗口中选择行情报价模块，点击确定；

    4. 点击或拖拽面板中的行情报价按钮，将会新建或替换一个行情报价窗口。

行情报价主界面如下图所示：

您可以点击标题栏的某一个字段进行排序，再次点击，将会切换升序/降序。

您可以拖拽一条报价记录，改变排列顺序，如果拖拽到超级图表窗口，将会替换原商品代码为当前代码。

您可以选中一条报价记录，右键菜单进行相关操作。

您可以按照快捷键进行快捷操作，还可以试试鼠标滚轮。


工具栏

行情报价窗口被激活之后，将会在系统工具栏之后添加自己的按钮，如下图所示：

  • 保存子窗口到桌面: 将当前打开的行情报价数据保存到桌面，以后可通过桌面进行快捷调用；

  • 保存到文件: 将当前打开的行情报价数据保存到csv文件，可以通过Excel进行打开；

  • 商品选择: 打开商品选择对话框，设置当前显示的商品列表；

  • 字段选择: 打开字段选择对话框，设置当前显示的字段列表；

  • 实时排序: 当点击某个字段进行排序时，并不会在行情更新后重新排序。只有按下该按钮，才会进行实时排序；

  • 字体加粗: 将当前显示界面的字体变粗；

  • 新建超级图表: 用当前选中商品新建一个超级图表窗口，新建时需选择横向或纵向排列。

  • 打开交易师: 用当前选中商品打开交易师；

  • 打开批量下单: 用当前选中商品打开批量下单。


右键菜单

在行情报价中右键单击，将会弹出右键菜单，包括以下几部分：

  • 模板: 行情报价的显示风格模板，目前包括以下几种风格：黑色风格、经典白色、现代黑色、现代蓝色、现代绿色和现代卡其；

  • 字体大小: 行情报价的显示字体大小，目前包括以下几种：最大、较大、中、较小和最小，还可以选择字体粗细；

  • 新建: 选中一条报价记录时有效，目前只包括新建超级图表；

  • 网站资讯: 选中一条报价记录时有效，相关的链接和品种及市场相关，可在程序目录下WebLink.ini中设置；

  • 头寸计算: 根据计算杠杆率计算手数；或者根据手数计算杠杆率；

  • 交易师: 选中一条报价记录时有效，用当前商品打开交易师；

  • 批量下单: 选中一条报价记录时有效，用当前商品打开批量下单；

  • 删除: 按Delete键可直接删除当前选中的行；

  • 帮助: 打开行情报价的联机帮助。


商品选择

商品选择对话框为行情报价模块提供商品选择的功能，通过点击行情报价工具栏的商品选择按钮可打开。

在商品选择对话框的左边树形列表中，勾选商品代码，点击[确认]按钮，即可完成商品的选择。

您可以通过勾选根节点快速选择代码。


字段选择

字段选择对话框为行情报价模块提供字段选择的功能，通过点击行情报价工具栏的字段选择按钮可打开。

字段选择对话框分为两个列表，左边为可选项列表，右边为应用项列表，您可以通过点击中间的按钮进行操作，也可以直接双击项目进行添加和删除。

在字段选择界面右上角还可以设置每个字段的宽度及固定字段的个数。

在完成操作之后，点击[确认]按钮，即可将选择的字段应用到行情报价中。


主界面

分时图是交易开拓者专门显示分时图表、盘口明细及分笔成交的模块，拥有更加直观的行情揭示功能。

您可以通过以下几个方式新建分时图窗口：

    1. 点击系统菜单[文件]-[新建]-[分时图]菜单项；

    2. 直接按快捷键Ctrl+N，在新建窗口中选择分时图模块，点击确定；

    3. 点击工具栏中的新建按钮，在新建窗口中选择分时图模块，点击确定；

    4. 点击或拖拽面板中的分时图按钮，将会新建或替换一个行情报价窗口。

分时图主界面如下图所示：

分时图分为三部分显示区域，分时图表，盘口明细及分笔成交。

分时图表

分时图表采取固定1分钟时间坐标的方式，并以昨结算价为纵坐标基准，比较直观的表现出当日行情的走势。

分时图表用收盘线的显示方式，白线是1分钟的收盘连线(包括无成交量及休息时段)，黄线为实时结算价的连线。

分时图表下部用涨红跌率的柱状线显示成交量，用黄线显示持仓量，可以单击鼠标右键切换成交量和持仓量的显示模式


盘口明细

盘口明细通过列表的方式，直观的显示出22项实时行情字段，列表如下：

  • 卖价: 实时行情的委卖价；

  • 卖量: 实时行情的委卖量；

  • 买价: 实时行情的委买价；

  • 买量: 实时行情的委买量；

  • 委比: 用以衡量一段时间内买卖盘相对强度的字段，等于(买量-卖量)/(买量+卖量)*100%；

  • 委差: 反映买卖双方的力量对比，正数为买方较强，负数为抛压较重，等于买量-卖量；

  • 最新: 实时行情的最新价；

  • 均价: 实时行情的均价，即实时结算价；

  • 涨跌: 实时行情的涨跌幅度，等于(最新-昨结)；

  • 昨结: 实时行情的昨日结算价；

  • 总手: 实时行情的当日成交量总数；

  • 开盘: 实时行情的当日开盘价；

  • 现手: 实时行情的最新成交数量

  • 最高: 实时行情的当日最高价；

  • 持仓: 实时行情的最新持仓量；

  • 最低: 实时行情的当日最低价；

  • 昨仓: 实时行情的昨日最后持仓量；

  • 仓差: 反映当日的持仓变化，等于持仓-昨仓；

  • 今开: 实时行情的今日开仓量，为每笔成交的开仓量累计之和，每笔成交的开仓量等于(当笔现手+当笔持仓增量)/2；

  • 今平: 实时行情的今日平仓量，为每笔成交的平仓量累计之和，每笔成交的平仓量等于(当笔现手-当笔持仓增量)/2；

  • 外盘: 实时行情的当日外盘，为每笔成交的外盘累计之和；

  • 内盘: 实时行情的当日内盘，为每笔成交的内盘累计之和。

注意: 内外盘的计算方式为：每笔成交中，以委买价成交，成交量计入内盘，以委卖价成交的，成交量计入外盘，如果当笔最新价既不等于委卖价，也不等于委卖价，则各计一半。


分笔成交

分笔成交以列表的形式显示出当日开盘以来所有的成交记录，最新的记录排在最上面。

分笔成交显示如下字段：

  • 时间: 当笔成交的产生时间；

  • 价格: 当笔成交的成交价格；

  • 现手: 当笔成交的成交数量；

  • 增仓: 当笔成交的持仓变化量；

  • 性质: 当笔成交的开平仓性质，分为九种类型，详细参见下节的开平仓性质。

    • 双开: 双向开仓的简称；

    • 双平: 双向平仓的简称；

    • 多换: 多头换手的简称；

    • 空换: 空头换手的简称；

    • 多开: 多头开仓的简称；

    • 多平: 多头平仓的简称；

    • 空开: 空头开仓的简称；

    • 空平: 空头平仓的简称；

    • 未知: 其他的情况，主要是在合笔及内外盘不确定的情况下产生。

开平仓性质

与股票不同，国内期货的成交量都是双边计算，因此成交量中即包含了买入量，也包含了卖出量，是单边计算的两倍。每笔成交都伴随着成交量的增加，但持仓量却有可能出现增加、不变和减少三种情况。在没有合笔的情况下，我们定义了双向开仓、双向平仓、多头换手、空头换手四种基本状态。

双向开仓是指某笔成交中，开仓量等于现量，平仓量为零，持仓量增加，差值等于现量，表明多空双方均增仓；双向平仓是指某笔成交中，开仓量等于零，平仓量为现量，持仓量减少，差值等于现量，表明多空双方均减仓；若某笔成交中，开仓量和平仓量均等于现量的一半，持仓量不变，则表明多头仓位和空头仓位都未发生变化，只是部分仓位在多头之间或空头之间发生了转移，结合内外盘的状态，我们定义外盘时该笔成交的状态为多头换手，内盘时为空头换手。

若交易所数据有合笔情况，由于该笔成交有可能是以上四种基本状态的一个组合，持仓量的变化与成交量的变化将会出现不一致。结合内外盘状态，我们又定义了多头开仓、多头平仓、空头开仓、空头平仓四种开平仓状态。多头开仓指持仓量增加，但持仓量的增加值小于现量，且为主动买盘；空头开仓指持仓量增加，但持仓量的增加值小于现量，且为主动卖盘；多头平仓指持仓量减少，但持仓量的增加值小于现量，且为主动卖盘；空头平仓指持仓量减少，但持仓量的增加值小于现量，且为主动买盘。

每笔成交是多空双方力量相互作用的结果，分析每笔成交的开平仓状态，读懂市场语言，是每个短线投资人必修的功课。例如，价格上升，持仓量增加，表明多空双方对后市有分歧，空头并未有认输之意；而价格上升，持仓量却减少，则表明价格上涨是由于空头主动平仓造成。反之，价格下跌，持仓量增加，表明多空双方对后市有分歧，多头并未有认输之意；而价格下跌，持仓量却减少，则表明价格上涨是由于多头主动平仓造成。当然，单笔成交中偶然性因素很多，一定时间周期内的多空头开平仓量统计值将会更有助于投资人进行研判。


主界面

超级图表是交易开拓者的一个重要模块，它提供了商品数据的多种图形察看方式，提供了画线分析、公式应用优化测试及自动交易等功能。

您可以通过以下几个方式新建超级图表窗口：

    1. 点击系统菜单[文件]-[新建]-[超级图表]菜单项；

    2. 直接按快捷键Ctrl+N，在新建窗口中选择超级图表模块，点击确定；

    3. 点击工具栏中的新建按钮，在新建窗口中选择超级图表模块，点击确定；

    4. 点击或拖拽面板中的行情报价按钮，将会新建或替换一个超级图表窗口。

超级图表主界面如下图所示：

每次新建超级图表，系统会根据最后关闭的超级图表的商品和周期来新建窗口，在窗口显示并激活为当前窗口之后，您可以点击通过工具栏的[我的键盘]按钮；或者直接输入商品代码，调入我的键盘；进行代码切换。

超级图表的主图、技术分析和画线工具都支持鼠标操作，并支持多项快捷键。鼠标配合键盘操作，您会很快掌握使用超级图表的技巧。

接下来，您想做什么？

  • 切换不同的周期；

  • 切换不同的商品；

  • 叠加其他的商品；

  • 切换主图显示模式；

  • 修改窗体显示风格；

  • 修改数据订阅设置；

  • 插入公式应用；

  • 进行画线分析；

  • 投资组合性能测试；

  • 进行自动交易；


工具栏

超级图表窗口被激活之后，将会在系统工具栏之后添加自己的按钮，如下图所示：

  • 投资组合性能测试: 打开性能测试窗口，只有当前窗体已经存在公式的情况才有效；

  • 数据窗口: 显示或隐藏数据窗口;

  • 主图线型: 点击按钮的向下箭头，在弹出菜单中选择不同的主图线型进行切换；

  • 合约连续图: 按下该“CC”按钮，订阅数据会包括连续图数据；

  • 切换周期: 点击按钮，切换对应的周期，您也可以通过F8进行切换；

  • 插入公式应用: 打开公式应用选择窗口，选择想要插入的公式，可多选，点击调用按钮，即可在图表中插入公式。您也可以通过我的键盘来调入公式；

  • 画线工具: 点击按钮的向下箭头，在弹出菜单中选择不同的画线工具，然后再图表中进行操作，即可画线分析；

  • 图中有宝: 选择买入/卖出按钮，将鼠标移动到图表中，选择合适的价位，点击鼠标，将会调入交易师，您可以通过交易师进行快捷的交易；

  • 停止滚动: 如果您想要看图表左侧的数据，但是又不想因为行情更新导致图表自动移到最后，可以按下该按钮，此时图表不会因为行情更新而滚动；

  • 区间放大: 如果您想要仔细察看某小范围的图表数据，可以按下该按钮，然后在图表中框选自定区域，此时将会把该区域放大到整个图表窗口；

  • 显示提示框: 如果您想要在鼠标移动(双击左键)的时候可以清晰地看到价位，可以按下该按钮，此时将会显示十字线，并显示对应价位；

  • 图形平移: 当您按下该按钮，可以对主图图表进行拖放；

  • 恢复正常坐标: 在图行平移，或坐标变化之后，您可以按下该按钮，使图表恢复正常的坐标显示；

  • 更新数据: 如果出现明显的数据问题，您可以试试该按钮，此时将会清除该商品该周期的本地数据，从服务器获取新数据。

另外，您可以通过点击系统工具栏的[我的键盘]按钮；或者直接输入商品代码，调入我的键盘，进行商品代码切换。


菜单

超级图表被激活之后，系统菜单中将会增加几项子菜单，包括以下几部分：插入、格式、周期、绘图和工具；在图表中右键还会弹出不同的右键菜单，现将常用的菜单列举如下：

插入

  • 插入商品: 在当前的图表基础上叠加新的数据，新数据周期和当前周期一致，叠加时按原数据和叠加数据的时间轴并集为新的时间轴；

  • 插入公式应用: 打开公式应用选择窗口，选择想要插入的公式，可多选，点击调用按钮，即可在图表中插入公式。您也可以通过我的键盘来调入公式；

  • 网站资讯: 根据当前商品打开相关的网络链接。

格式

  • 页面设置: 对图表的显示内容，坐标，颜色，风格等进行设置，详细情况参见页面设置；

  • 商品设置: 对商品的数据订阅，显示风格等进行设置，详细情况参加商品设置；

  • 公式应用设置: 对公式的属性、显示、风格、自动交易、参数等进行设置，详细情况参考公式应用设置；

  • 应用模板: 将当前图表的技术分析和公式应用组合替换为已存在的某个模板；

  • 另存为模板：将当前图表的技术分析和公式应用组合等信息保存为模板；

  • 坐标: 对当前图表的坐标显示及叠加基期进行选择；

  • 线型: 对当前图表主图线型进行设置，有蜡烛线，中空蜡烛线，美国线和收盘线四种可供选择；

  • 合约连续图: 选择该菜单项，订阅数据会包括连续图数据；

  • 半对数图: 选择该菜单项，主图会按半对数坐标显示，叠加商品时不能选择该项；

  • 倒置图: 选择该菜单项，主图会倒置显示；

  • 前复权: 选择该菜单项，主图会将K线复权显示；

周期

  • 1Tick: 数据按每个成交进行统计；

  • 1分钟: 数据按1分钟进行统计；

  • 5分钟: 数据按5分钟进行统计；

  • 15分钟: 数据按15分钟进行统计；

  • 30分钟: 数据按30分钟进行统计；

  • 1小时: 数据按1小时进行统计；

  • 4小时: 数据按4小时进行统计；

  • N分钟: 数据按N分钟进行统计，用户可自定义N值；

  • 1日线 数据按1日进行统计；

  • 1周线: 数据按1周钟进行统计；

  • 1月线: 数据按1月进行统计。

绘图

  • 画线管理: 对当前图表已有的画线工具进行设置，删除等操作；

  • 水平线: 水平线是在价格形态中具有强烈的支撑和压力意义，支撑线和压力线的往后延伸位置对未来的价格走势具有一定的制约作用；

  • 十字线: 用于图表的辅助定位；

  • 趋势线: 趋势线是依据商品价格、成交量等数据所绘制的直线。趋势线可用于跟踪市场方向，是一种分析型画线工具，反映价格的波动方向、商品市场的运动方向；

  • 安氏金叉: 安氏金叉通过绘制三条平行的趋势线，需要三个绘制点。第一条趋势线（中线）通过最左边的一个绘制点，该趋势线通过右边两个绘制点的中心，构成音叉的“把”；另两条趋势线通过右边的两个绘制点且和第一条趋势线平行，构成音叉的“叉”。通常最左边的绘制点都是价格走势中一个主要的波峰或波谷，另两个绘制点也是比较明显峰谷位置。安氏金叉主要遵循趋势线的支持和压力原则，Andrews博士的规定是, 市场在接近中线时, 将做两件事中的一个：市场将在中线处反转；市场将通过中线, 朝上方平行线前进, 然后反转；

  • 线性回归通道: 线性回归通道用来描述股价未来的趋势及波动区间，价值理论认为商品价格围绕着价值波动，线性回归线是某一选定时段的价值中枢，而这一选定时段的价格围绕线性回归线（价值中枢）波动的幅度是最小的。绘制线性回归通道需要确定一时间段，通常该时间段的起始点为一个趋势的起点，结束点为该趋势的最高点（上升趋势）或最低点（下跌趋势）。线性回归通道由三条平行线组成，中间的一条线是根据一元回归分析的最小二乘法求出的该选定时间段K线的线性回归线，第二条平行线为通过该时间段内价格的最高或最低价格（视最低价格和最高价格偏离线性回线的程度大小来定），第三条平行线距线性回归线的距离与第二条平行线相等；

  • 同心圆: 通常以K线走势形态的相对低点和相对高点作为选定的起始点和终点，同时绘制两个菲波拉契弧线及生成的各个圆弧，可用以确定未来股价的支撑及阻力位，且圆弧的相交部分是更强的支撑及阻力位；

  • 百分比线: 百分比线又名摩里斯奇异线，俗名筷子线。利用百分比率进行的切线画法，以近期走势中重要的高点和低点之间的涨跌幅作为计量的基数，将原涨跌幅按1/8、2/8、1/3、3/8、4/8、5/8、2/3、6/8、7/8、8/8的比例10等分,生成百分比线，百分比线可使股价的涨跌幅度更加直观，往往能形成重要的阻力位与支撑位。百分比线事实上属江恩理论，江恩用简单的大数法则，将空间分成10等分，如用百分比来表示，即1/8=12.5%、2/8=25%、1/3=33.3%、3/8=37.5%、4/8=50%、5/8=62.5%、2/3=66.6%、6/8=75%、7/8=87.5%8/8=100%。上述各比率中，50%最为重要，因为万物都是一分为二的，此外1/3=33.3%、3/8=37.5%及5/8=62.5%、2/3=66.6%这四条距离较近的比率也十分重要，往往起到重要的支撑与压力位作用；

  • 黄金分割线: 黄金分割线是引用数学中的黄金分割比率，来分析商品市场与期货市场上价格上涨或下跌波动的高低点，及其对应的回档低点或反弹高点。由于其准确性较高，因此得以延用至今。黄金分割比率一般特指：0.382、0.5、0.618和1.382、1.618，该比率往往会反映在波浪理论的对未来的预测目标上，价格极容易在这几个数字产生的黄金分割处获得支撑和阻力；

  • 标准周期线: 标准周期线用于预测下一个波动周期中可能出现高低点，或者涨跌加速的时间；

  • 费氏周期线: 费波那奇数列与黄金分割率不谋而合：它相邻两个数据的比值都接近于0.618；间割两个数据的比值都接近0.382；并且任意两个数据的比值都是黄金分割率的关联数据。菲波纳奇时间周期线即是利用该数列来预测价格发展的时间目标；

  • 江恩角度线: 江恩角度线是由时间单位和价格单位定义价格的运动，每一角度线由时间和价格的关系所决定，从重要的高点或低点延伸并画出的，分为上升角度线与下跌角度线，一般有九条角度线，提供支撑压力作用，其符号由“T×P”来表示，即“时间×价格”。江恩角度线的意义在于时间与价位的完美结合，依据时间与价位的比率关系制作出各种角度线。在上升角度线中，斜率越大的角度线，说明股价上升得越强，在下降趋势线中，斜率越大则证明跌势越猛。事实上时间与价位的比率就是波动率在起作用，江恩认为：“商品有其独特的波动率，这个波动率决定市场的波动及趋势。分析者只要掌握个别商品的正确波动率，便可以决定该市场在什么水平会出现强大的支持及阻力”；

  • 速度阻力扇形线: 速度阻力扇形线的原理与江恩角度线较相似，也是通过一些特殊的角度来确定价格的变化方向。当价格上升或下跌的第一波形态完成后，利用第一波的展开幅度和这些特殊角度可推出后市发展的几条速度线，作为支撑和阻力位置；

  • 箱形: 用于标注图表的特定区域，辅助判断市场趋势；

  • 椭圆: 椭圆是建立在时间和价格上，会随着市场变化而自动更新的一种工具。点击一个基准点，然后点击另一个，您将看到椭圆向上或向下分割市场。一旦椭圆分割市场，它将停止更新，且趋势应该在那个点改变。根据趋势的长短, 椭圆有3种不同的长度；

  • 回吐百分比: 回吐百分比用于测量主要价格趋势可能的回撤比例，在相应的回撤价位是可能的支撑或压力；

  • 箭头: 在历史上的关键卖出点和未来走势上的预备卖出点，用向下箭头做标记；在历史上的关键买入点和未来走势上的预备买入点，用向上箭头做标记；

  • 文字标注: 用于在图表上作笔记，可标明特定的市场环境和走势。切换到技术分析K线界面后，有保存的历史文字和图线标示文本记录，便于回忆起历史的分析记录和对未来指导操作的记录提示；

  • 区域统计: 通过对某一时间段的交易信息的综合统计，投资人可以掌握更详尽的信息。统计字段包括起始日期、截止日期、价格下限、价格上限、统计周期、上涨周期、下跌周期、平盘周期、最高成交、最低成交、平均成交、区域涨跌、波动范围、区域振幅、总成交量等；

  • 新增: 选中某个画线工具时有效，新建一个相同的图形；

  • 删除: 删除选中的画线工具；

  • 自动定位: 自动定位是指使用画线工具时，绘制点自动与K线的开盘价、收盘价、最低价或者最高价重合，这种重合使得画线工具的绘制更加精确。费氏周期线和标准周期线没有自动定位功能。

工具

  • 数据窗口: 显示或隐藏数据窗口。

  • 投资组合性能测试报告: 打开投资组合性能测试报告窗口，只有当前窗体已经存在交易策略的情况才有效。

  • 交易策略参数优化报告: 打开交易策略参数优化报告窗口，只有当前窗体已经存在交易策略的情况才有效。

公式右键菜单

当选中公式应用之后，点击右键，会弹出右键菜单，有些选项只有交易策略才有效，主要的菜单项如下：

  • 属性设置: 打开选中公式的属性设置页面，具体参见公式属性；

  • 公式编辑: 打开公式编辑器，调入选中公式的脚本；

  • 性能测试: 对交易策略进行性能测试，详细参见交易策略性能测试；

  • 参数优化: 对交易策略进行参数优化，详细参见交易策略参数优化；

  • 全局交易设置: 打开交易策略的全局交易设置；

  • 启动报警: 打开选中公式的报警设置页，进行报警设置；

  • 删除: 从图表中删除选中公式；

  • 帮助: 调入该右键菜单的联机帮助。


页面设置

在超级图表窗口被激活之后，点击菜单-[格式]下[页面设置]，或在窗口内右键菜单，选择[页面设置]，可打开页面设置对话框。

页面设置包括以下四个页面:常规、坐标、标注和风格。

常规

  • 显示价格网格线: 在主图中显示价格网格线，在子图中显示纵坐标分割线，该线条是根据纵坐标值自动划分。

  • 显示时间网格线: 在主图中显示时间网格线，该线条是根据周期自动划分；

  • 显示百分比基线: 当左坐标，右坐标中同时存在价格坐标和百分比坐标时，将会显示百分比基线；

  • 显示商品叠加基线: 当图表中存在叠加商品时，会根据叠加基期值，在图表中显示一条水平线。商品叠加基期分为三种类型：以起始K线为基期、以最后K线为基期和以当前K线为基期，其基本含义如下：

    1. 以起始K线为基期: 按主图第一个数据源的第一个Bar数据收盘价为参照，对齐叠加数据；

    2. 以最后K线为基期: 按主图第一个数据源的最后一个Bar数据收盘价为参照，对齐叠加数据；

    3. 以当前K线为基期: 按主图第一个数据源的当前窗口屏幕显示的第一个Bar数据收盘价为参照，对齐叠加数据；

  • 显示子图分割线: 显示技术分析和主图的分割线；

  • 显示收盘价线: 在主图第一个数据源的最后收盘价位置画一条水平线；

  • 显示开多仓线: 显示当前已登录交易帐户的所有开空仓水平线，按持仓的买入均价画线；

  • 显示开空仓线: 显示当前已登录交易帐户的所有开多仓水平线，按持仓的卖出均价画线；

  • 显示信息提示窗: 显示主图K线数据信息提示窗；

  • 透明信息提示窗: 显示背景透明的主图K线数据信息提示窗；

  • 显示水平滚动条: 显示主图k线数据水平滚动条；

  • 标记最高最低价格: 在图表中显示每个数据源在当前窗口屏幕的最高和最低价格；

坐标

  • 左右坐标: 选择左右坐标的显示方式，有三种方式可供选择：禁用，价格坐标，百分比坐标；

  • 取值范围: 屏幕显示的纵坐标取值范围，有三种方式可供选择：当前屏幕数据及全部数据或者自定义；

  • 轴类型: 屏幕显示的纵坐标显示类型，有两种方式可供选择：线型和半对数；

  • 坐标宽度: 设置左右坐标显示区域的宽度，有效范围为(0-200)；

  • 右边留空: 设置图表最后一个Bar离边框的距离，有效范围为(0-200)；

标注

该页设置主图标题区的显示内容及字体，颜色等。

风格

该页设置图表中个中线条和文字的显示风格。

注意: 在每个页面，都有[设为默认]按钮，点击该按钮将该页面的设置保存到配置文件中，以后每次新建超级图表，将会使用该默认配置。


商品设置

在超级图表窗口被激活之后，点击菜单-[格式]下[商品设置]，或在超级图表内双击行情数据，可打商品设置对话框。

  • 属性：打开选中商品的商品属性设置；

  • 费率：打开选中商品的商品费率设置；

  • 删除：从图表中删除选中商品，第一个数据源不能被删除；

  • 关闭：关闭当前对话框；

  • 帮助：调用当前对话框的联机帮助；

点击[属性]，打开商品属性设置，会弹出如下窗口：

您也可以通过双击主图来打开商品设置对话框。

商品设置包括以下三个页面:常规、风格和属性。

常规

  • 周期: 选择当前商品的数据周期，共有1Tick到1月共十种周期可供选择；

  • 范围: 数据订阅的长度范围，可按照以下三种方式设置：

    1. 最后N个Bar的数据，N的取值范围为(1-20000)；

    2. N天/周/月/年以来的数据，累计的Bar值不能超过20000；

    3. 从某个时间以来的数据。

风格

可在此页面选择当前商品的主图线型及设置显示的颜色，选中某一线型，点击[确认]按钮即可。

  • 蜡烛线: 蜡烛线又名K线图，原来是日本米市商人用来记录米市当中的行情波动，后因其标画方法具有独到之处，因而在股市及期市中被广泛引用。K线将买卖双方力量的增减与转变过程及实战结果用图形表示出来。经过近百年来的使用与改进，K线理论被投资人广泛接受；

  • 中空蜡烛线: 中空蜡烛线是在蜡烛线的基础上，用中空蜡烛线表示上涨，此举是为了满足黑白打印图表的需求；

  • 美国线: 美国线的构造则较K线简单。美国线的直线部分，表示了当天行情的最高价与最低价间的波动幅度。左侧横线代表开盘价，右侧横线侧代表收盘价；

  • 收盘线: 收盘线是将收盘价相连形成的折线，收盘线只关心每日的收盘价格，可简明地展现价格变化趋势。

属性

该页显示和当前商品相关的属性，具体解释可参见数据管理的商品属性设置。

叠加商品设置

当前图表如果有叠加商品时，从菜单中点击[商品设置]，会弹出如下窗口：

在图表有叠加商品时，不能通过商品设置进行周期切换，此时可以通过工具栏进行周期切换。

注意: 在常规和风格页面，都有[设为默认]按钮，点击该按钮将该页面的设置保存到配置文件中，以后每次新建超级图表，将会使用该默认配置。

商品交易设置

商品交易设置如下图：

  • 保证金利率：设置为您的交易帐户的保证金比率，不同的商品有不同的保证金比率，系统通过初始资金和保证金率来计算交易的默认数量；

  • 手续费：如图所示，有三种计算手续费的方式可供选择，根据交易商收取佣金的方式分别设置；

  • 滑点：暂不支持，将在以后版本不断完善。


公式应用设置

在超级图表窗口被激活之后，点击菜单-[格式]下[公式应用设置]，或在窗口内右键菜单，选择[公式应用设置]，可打开公式应用设置对话框。

公式应用设置对话框列表中包含当前图表中的所有公式，您可以在这里对各项公式进行属性设置，删除及隐藏等操作。

您还可以在该对话框进行自动交易的各项设置，详细参见自动交易和帐户设置。

公式应用设置的对话框如下图所示：

  • 设置: 打开选中公式应用的属性设置页面，详细属性设置参见公式属性；

  • 删除: 删除选中的公式；

  • 显示/关闭讯号: 显示或隐藏选中公式应用的讯号显示，此操作不影响公式应用的计算，只对讯号的显示产生影响。

  • 上移: 将当前选中公式应用上移，此操作会对公式应用的计算产生影响，请确认知道您所做的真正意义。

  • 下移: 将当前选中公式应用下移，此操作会对公式应用的计算产生影响，请确认知道您所做的真正意义。

  • 下单不需要确认: 仅对委托函数Buy、SellShort、Sell、BuyToCover有效。

  • 帐户设置: 自动化交易针对多帐户的设置，详情参见帐户设置；

  • 全局交易设置: 公式应用的交易参数设置，详细参见全局交易设置，此操作会对公式应用的计算产生重要影响，操作前请详细阅读相关文档。

  • 委托映射: 将信号数据映射到指定商品进行委托交易，可以实现多种映射关系：

    1. 一对一，D0、D1分别代表Data0和Data1，详情参见叠加数据；

    2. 一对多，选择“D0->指定商品”，并点击[购物车按钮]设置指定商品；

自动交易

自动交易是将交易策略测试引擎产生的交易操作应用到真实交易中，它可以帮您快速捕捉瞬间的机会，也可忠实的执行您的风险控制指令，合理有效的利用计算机来帮助交易是您使用交易开拓者的最大收获。

要想使用自动交易，您必须选中上图的[启动自动策略交易系统]复选框，选中之后，将会弹出如下对话框：

请自习阅读风险提示内容，如果同意上述内容，点击[同意]按钮，如果不同意，点击[取消]按钮。只有在同意上述风险提示说明之后，您才可以进行自动交易。

在同意自动交易风险提示之后，您可以在交易帐户的下拉选择框中选取要进行交易的帐户，如果发现该下拉选择框为空，请先连接交易帐户。

在选中交易帐户之后，点击[确定]按钮，您就已经启动了自动交易。如果您希望计算机自动帮您发单，不需要确认，还可以选中[下单不需要用户确认]复选框。选中该复选框之后，就真正意义上实现了自动交易，计算机会按照您设置的公式应用帮您盯盘，监控风险并自动发单。您可以试着出去喝喝咖啡，看看报纸，抑或是去看足球直播。

注意: 根据交易策略测试引擎产生的交易动作如果出现和真实帐户的情况不匹配时（比如：自动交易要平1手多仓，但当前帐户并无持仓），将自动取消该操作。
注意: 在您尚未熟练使用TradeBlazer公式和自动交易之前，请不要忽略用户确认。否则，一个错误的操作会导致很严重的后果。在进行自动交易的时候，必须要明确知道您每一步操作的真正意义。多看看帮助文档对于了解和掌握使用交易开拓者会带来很大帮助，不要吝惜花在这方面的时间。

帐户设置

启动多帐户自动交易，您可以在[帐户设置]中对多个帐户进行下单设置，点击[帐户设置]将会弹出如下对话框：

勾选参与自动化交易的资金帐户，并且每个的资金帐户可以分别设置交易倍数，也可以针对对多个的交易系统设置交易倍数。

  • 对多个资金帐户设置交易倍数：直接修改每个帐户的默认倍数。

  • 对多个交易系统设置交易倍数：选中需要进行设置的帐户，点击[多系统倍数]，在这里分别对的交易系统进行交易倍数设置。

多系统倍数设置界面，如下图：

注意: 默认倍数和策略倍数同时都设置了的前提下，将优先使用策略倍数进行下单。


全局交易设置

在图表中加入公式应用之后，您可以通过选中讯号标记，右键菜单中点击[全局交易设置]，或者在公式应用设置对话框中点击[全局交易设置]按钮来打开全局交易设置对话框，全局交易设置的界面如下图所示：

全局交易设置对话框包括以下设置内容：

  • 初始资金: 设置交易策略执行的初始资金，该值最好设置为您期初的可用资金。如果该数目设置过小，会导致无交易记录产生；

  • 默认数量: 当Buy/Sell等交易函数参数为获取默认值时，该选项将作为计算默认值的参数，有以下三种类型可供选择：按固定合约数、按资金比例和按固定资金。通过数量设置来计算出具体的交易数量；

  • 连续建仓: 设定连续建仓的数量及公式应用之间连续建仓的规则；

  • 最大持仓限制: 设定最大的持仓数量；

  • 最大资产回撤基准线: 在交易策略参数优化时，计算超过设定值的最大资产回撤，并求这些值得平均值，通过这个平均值可以得到计算出调整收益风险比；

  • 是否计算标准差: 在交易系统进行参数优化时，如果选择计算标准差，会占用较多的时间。在不关注标准差的情况下可以勾选该选项，会大幅提升优化效率。

可通过点击[设为默认值]按钮将当前对话框的各项设置保存为系统默认值，之后您可以在其他地方使用该默认设置。

您也可通过点击[恢复默认值]按钮将当前对话框的各项设置修改为系统默认值。


讯号设置

在图表中加入公式应用之后，您可以通过选中讯号标记，右键菜单中点击[属性设置],选择[讯号]选项卡，讯号设置的界面如下图所示：

讯号是公式系统在历史数据中应用产生的买卖指令，在图表中显示为向上或向下的箭头，并在买卖价位处用侧向箭头进行标记。

对话框左边设置四种类型公式应用讯号的显示风格，右边价位标记风格设置。

对于四种公式应用，可分别设置是否显示公式应用名称，是否显示交易数量，以及讯号箭头和价位箭头的类型和颜色。

开仓、平仓之间的连线可清楚地表示出一次交易是盈利还是亏损，我们通过两种不同的颜色将连线区分为获利线和亏损线，您还可以对线条的风格，粗细和颜色进行设置。

点击[连线]选项卡，如下图：

可通过点击[设为默认值]按钮将当前对话框的各项设置保存为系统默认值，之后您可以在其他地方使用该默认设置。

您也可通过点击[恢复默认值]按钮将当前对话框的各项设置修改为系统默认值。

修改完讯号设置之后，点击[确定]按钮将当前的设置传递给调用窗口，或者点击[取消]放弃所有修改。


交易师

交易师是交易开拓者的主要交易工具，它提供了普通单，触发单，止损获利以及快速平仓等功能。

您可以通过以下几个方式打开交易师：

    1. 点击[状态栏]的[交易师]按钮；

    2. 在超级图表工具栏中点击图中有宝按钮，然后将鼠标移到图表中，选择合适的价位，单击即可打开交易师；

    3. 在行情报价、跑马灯和状态栏的报价栏中通过鼠标右键菜单可打开交易师；

    4. 在帐户管理某些页面双击或右键菜单，可快捷调入交易师。

交易师主界面如下图所示：

交易师的窗口包含以下内容，交易师的一些参数设置可参见系统设置-交易：

  • 帐户：帐户下拉选择框，选择当前的交易帐户；

  • 商品：要进行交易的商品，先选择交易所，在选择商品代码，也直接点击我的键盘；

  • 图表：可通过按钮显示或隐藏嵌入的图表，该图表显示当前页面选中的商品，可通过F8切换不同的周期，也可通过右键菜单进行更多设置；

  • 开平：选择当前交易操作是开仓还是平仓，有的交易所支持平今仓，请根据实际情况选择；

  • 投机：选择当前交易操作是投机还是保值；

  • 数量：设置当前交易的数量；

  • 止损：选中止损复选框，可设置该笔交易的止损价，只有开仓交易才能设置（上期柜台不支持此功能），详细情况参见止损获利；

  • 获利：选中获利复选框，可设置该笔交易的获利价，只有开仓交易才能设置（上期柜台不支持此功能），详细情况参见止损获利；

  • 持仓：显示当前商品的持仓数量，总持仓按持多仓为正值，空仓为负值进行统计，显示方式为：总持仓(持多仓/持空仓)；

  • 操作：选择当前要进行的操作，共有五种方式可供选择：

    1. 即时执行：即时执行即发送普通委托，会即时将委托提交到交易所，页面如上图所示；

    2. 触发单交易：触发单交易为产生一个触发委托单，该委托单放在交易服务器上，等待合适的时机才会发送到交易所，详细情况参见触发单；

    3. 撤销订单：当前商品有未成交的委托记录时，该选项会出现，您可以在该页进行撤单操作；

    4. 修改或删除触发单：如果您对当前商品设置了触发单，该选项会出现，您可以在该页对触发单进行修改和删除，详细情况参见触发单；

    5. 平仓(市价)：如果您有当前商品的持仓，该选项会出现，您可以在该页面进行快速平仓的，详细情况参见快速平仓。

即时执行

如上图窗口左下部分即时执行区域所示，即时执行操作包括以下内容：

  • 价格：设置此次交易的委托价格，当选中[使用叫买/卖价]复选框，可使用叫买/卖价格做为委托价格，应用原则为：买入使用叫卖价，卖出使用叫买价；

  • 叫买/卖价：显示当前商品的最新叫买/卖价；

  • 交易按钮：点击交易按钮，即可发送委托。

如果您想改变委托价格的默认选择方式，可在系统设置-交易中设置。

下单确认

在即时执行单或触发单发送时，将会弹出下单确认窗口，您可以在此对您的交易设置进行确认，保证没有误操作。

如果您不想显示下单确认窗口，可在系统设置-交易中设置。

成交提示

当有委托单成交之后，会弹出成交提示窗口，您可以在此查看成交信息。

如果您不想显示成交提示窗口，可在系统设置-交易中设置。


触发单

触发单是交易开拓者特有的交易方式，触发单是指用户设置条件，将触发单提交到交易开拓者的交易服务器，当设定条件满足情况，交易服务器会自动发送委托到交易所。触发单可以帮助解决用户盯盘的辛苦，及手动发单的速度问题。

触发单分为以下四种类型：吊买、吊卖、追买、追卖。

每个触发单在发送时需要输入以下参数：

  • 触发价格：触发单设定的条件价格，通过比较现价和触发价格确定是否下单。下单之后，该触发单会从交易服务器中删除；

  • 执行价格：条件满足之后，发送委托的价格，设定为0可自动获取当时的叫买/卖价；

  • 过期时间：设定触发单的过期时间，到这个时间还没有触发的订单会被设为过期，不再进行监控。

吊买

吊买是指当现价向下跌破触发价格，即按执行价格产生一个即时买入委托单，如下图所示：

吊卖

吊卖是指当现价向上突破触发价格，即按执行价格产生一个即时卖出委托单，如下图所示：

追买

追买是指当现价向上突破触发价格，即按执行价格产生一个即时买入委托单，如下图所示：

追卖

追卖是指当现价向下跌破触发价格，即按执行价格产生一个即时卖出委托单，如下图所示：

修改或删除触发单

当存在某个商品的触发单，可通过双击帐户管理的触发单页面的项目，打开交易师，进行修改或删除操作。您可以修改数量、触发单类型、触发价格、执行价格、过期时间及止损获利等，完成修改之后，点击[修改]按钮即可完成修改；您可以直接点击[删除]按钮将该触发单删除。

注意: 触发单在发送之后将会生效，该委托单在服务器上运行，此时您关闭程序或电脑不会影响触发单的执行。


本地触发单

提供本地触发单的功能，更多触发单设置请看[触发单]。

您可以通过以下三种方式使用本地触发单:

  • 点击[状态栏]的[交易师]按钮，操作选择[触发单交易],勾选最后一项[本地触发]；

  • 点击[状态栏]的[批量触发单]按钮，操作选择[触发单交易],勾选最后一项[本地触发]；

  • 在帐户管理中选择要追加平仓触发单的持仓，右键，选择相应方向的[平仓触发单]，勾选最后一项[本地触发]。

交易师的本地触发单界面如下图所示：

注意: 本地触发单最长时效为当日有效，只有本程序运行时有效，关闭软件时自动删除，可以在本地触发单中心查看触发单。

本地触发单中心用于显示当前所有本地触发单状态信息，界面如下图所示：

本地触发单中心的窗口包含以下内容：

  • 帐户：触发单交易帐户信息；

  • 商品: 触发单交易的商品合约信息；

  • 数量：触发交易的商品数量；

  • 状态：触发单当前状态；

  • 触发价：触发单设定的条件价格，通过比较现价和触发价格确定是否下单；

  • 执行价：条件满足之后，发送委托的价格，设定为0可自动获取当时的叫买/卖价；

  • 触发时间：触发单生效时间；

  • 状态信息：当前触发单交易状态信息。


平仓触发单

平仓触发单是交易开拓者特有的交易方式，平仓触发单是指用户对当前持仓追加平仓触发单，平仓触发单可以帮助解决用户盯盘的辛苦，及手动发单的速度问题。

平仓触发单分为多头平仓触发单和空头平仓触发单。

多头平仓触发单界面如下图所示：

空头平仓触发单界面如下图所示：

触发单参数设置请看[触发单]。


快速平仓

当您有持仓的情况下，可通过双击帐户管理的持仓统计页面的项目，进行快速平仓。

快速平仓页面如下图所示：

一键全平

当您有多个帐户，并且有不同商品持仓的情况下，可通过点击帐户管理的[一键全平]菜单项按一定的比例进行快速平仓。

一键全平页面如下图所示：

可通过点击帐户列表和商品列表中的选项进行持仓选择，设置平多平空选项和委托价格之后，点击平仓按钮，即对多个帐户的多个商品持仓进行快速平仓。


快速撤单

当您有未成交单的情况下，可通过双击帐户管理的当日交易页面的项目，进行快速撤单。

您可以通过以下几个方式调入快速撤单：

    1. 双击帐户管理的当日交易页面的项目，或者右键菜单，选择撤单；

    2. 直接打开交易师，在操作下拉框中选择[撤销订单]，进行快速撤单。

可通过点击钱袋图标按钮，切换到多帐户撤单的界面，在此界面，可对多个帐户的当前商品的未成交单进行选择，统一进行撤单。

一键全撤

当您有多个帐户，并且有不同商品委托单的情况下，可通过点击帐户管理的[一键全撤]菜单项进行快速撤单。

快速撤触发单和止损获利单

当您有运行中的触发单或止损获利单的情况下，可通过双击帐户管理的触发单或帐户管理的止损获利单页面的项目，进行快速撤单。

多帐户撤触发单和止损获利单

当您多个帐户都有触发单或止损获利单，您可以在帐户管理的触发单或帐户管理的止损获利单页面下右键，在右键菜单中选择多帐户撤单，如果当前选中了项目，则是撤当前商品，否则撤所有商品。


止损获利

止损获利是交易开拓者特有的为用户锁定风险和利润的功能，通过使用该功能，您可以在不盯盘的情况下，实时控制您的资产的风险。

要想使用止损获利功能，您必须按以下步骤进行操作：

    1. 在使用交易师进行即时执行交易时选择[止损]和[获利]复选框，并设置相应价位；

    2. 设置其他交易参数，点击[买入]或[卖出]按钮，发送该委托；

    3. 当该委托成交之后，您可以在帐户管理的止损获利单页面查看或修改止损获利参数；

    4. 当设定的止损价或获利价到达时，系统会自动帮您平仓。

止损获利在委托成交之后才会启动，此时可通过双击帐户管理的止损获利单页面的项目进行修改或删除

您也可以在触发单中设置止损获利信息，等到触发单满足条件，发送并成交之后，止损获利单将会启动；

注意: 止损获利单在委托成交之后将会生效，该委托单在服务器上运行，此时您关闭程序或电脑不会影响止损获利单的执行。止损获利单是按照当时的涨跌停价执行，在交易不活跃品种执行止损获利单存在不可预知的风险。
注意: 如果您手动平掉已经设置有止损获利关联单的持仓时，该止损获利单不会删除。此时，需要您手动删除止损获利单，否则，当设置的价位到达时，仍然会发送平仓单。


批量下单

提供多帐户批量下单的功能，提高多帐户交易的效率。

您可以通过点击[状态栏]的[批量下单]按钮打开批量下单对话框。

批量下单主界面如下图所示：

批量下单的窗口包含以下内容：

  • 帐户选择树：从列表中选择要进行交易的帐户；

  • 商品选择：要进行交易的商品，先选择交易所，再选择商品代码；

  • 其他设置：设置交易的开平仓和投机保值参数，以及止损获利设置；

  • 数量设置：交易的数量设置，先选择数量设置类型，包括以下五种：按自定义数量，按自定义倍数，按指定手数，按指定资金数，按资金比例。然后再根据参数计算出每个帐户的交易数量；

  • 操作类型：可以选择即时发送和触发单交易，即时发送的界面如上图，触发单交易的界面类似于交易师中的触发单交易。

  • 价格设置：设置此次交易的委托价格，当选中[使用叫买/卖价]复选框，可使用叫买/卖价格做为委托价格，并可以在加上N个点的偏移值，尽可能的保证成交。应用原则为：买入使用叫卖价+N个点偏移，卖出使用叫买价-N个点偏移；

  • 下单确认：选择该复选框，交易时会弹出下单确认框。需要快速下单时可取消选择该复选框，此时将会直接发送委托；

  • 交易按钮：点击买入/卖出按钮，即可发送委托。

自定义数量

当数量设置选择按自定义数量类型，将会出现[自定义...]按钮，可单击该按钮打开自定义数量设置界面，如下图所示：

自定义数量设置的窗口包含以下内容：

  • 名称：当前数量设置的名称；

  • 帐户：要进行数量设置的帐户，从下拉列表中选择；

  • 商品：要进行数量设置的商品，先选择交易所，再选择商品代码；

  • 数量：上述帐户及商品默认的交易数量，单位为手；

  • 列表：显示当前状态下保存的的设置项,可通过点击[全部设置]/[当前商品]按钮对内容进行切换；

  • 添加：在填写好上述信息之后，点击[添加]按钮，即可将该默认设置加入列表中。如果存在相同的记录，则修改原记录的数量为当前设置数量；

  • 删除：先在列表中选择要删除的项目，然后点击[删除]按钮，即可将该项设置删除；

  • 内容切换：通过点击[全部设置]/[当前商品]按钮对内容进行切换，分别显示当前传入商品的设置项或所有设置项。


套利宝

提供两个商品或三个商品的自动价差交易，可实现跨期套利，跨市套利，蝶式套利及跨月换仓等。

您可以通过点击[状态栏]的[套利宝]按钮打开套利宝对话框。

套利宝主界面如下图所示：

价差下单的窗口包含以下内容：

  • 帐户：帐户下拉选择框，选择当前的交易帐户；

  • 模板管理：点击该按钮显示模板管理的菜单；

  • 蝶式套利：点击该按钮将切换到蝶式套利；

  • 跨月换仓：点击该按钮将切换到跨月换仓；

  • 商品选择：要进行交易的商品，先选择交易所，再选择商品代码；

  • 商品数量：对要进行交易的商品设定数量，将根据该比例计算价差；

  • 单笔数量：每次行情触发时交易的数量，实际对每个商品的交易数量会根据比例和单位自动设置；

  • 最大仓位：对价差进行多头或空头交易的最大持仓限制；

  • 多头仓位和空头仓位：把价差作为一个单独的价格来看待，我们可以对它进行做多和做空两种交易，做多即买入商品A，卖出商品B，做空即卖出商品A，买入商品B。 这里的仓位应该要填入帐户的真实套利仓位，初次交易填入0，在交易的过程中退出该模块再次进入时，需手工输入当前的实际仓位。该参数应为单笔数量的整数倍，并小于等于最大仓位；

  • 下单价格偏移值：买入使用叫卖价，卖出使用叫买价，在这个基础上，为了保证成交，可增加一定的偏移值；

  • 分步建仓：设定分步建仓的间距，以及每步开仓的头寸；

  • 下单确认：选择该复选框，交易时会弹出下单确认框。需要快速下单时可取消选择该复选框，此时将会直接发送委托；

  • 启动按钮：点击该按钮，即可启动价差下单的监控，您可在中途暂停并进行参数修改。

跨月换仓模式下，只能选择平仓，此时需在多空头寸处填入已有的头寸，然后设定平仓位置，多空都是相对于商品A而言。按照图上的商品举例，多头平仓即对a1001卖出平仓，对a0909买入开仓。

注意: 价差下单都是按照投机类型，同时发出两到三笔委托，发送的委托并不能确保成交，如果配合使用价位偏移值和交易助手，可实现绝大部分委托的成交，避免单边头寸的出现。


价差下单

提供两个商品或三个商品的手动价差交易，可实现跨期套利，跨市套利，蝶式套利及跨月换仓等。

您可以通过点击[状态栏]的[价差下单]按钮打开价差下单对话框。

价差下单主界面如下图所示：

价差下单的窗口包含以下内容：

  • 帐户：多帐户选择树，选择需要进行交易的交易帐户；

  • 模板管理：点击该按钮显示模板管理的菜单；

  • 蝶式套利：点击该按钮将切换到蝶式套利；

  • 跨月换仓：点击该按钮将切换到跨月换仓；

  • 商品选择：要进行交易的商品，先选择交易所，再选择商品代码；

  • 商品数量：对要进行交易的商品设定数量，将根据该比例计算价差；

  • 交易数量：每次交易时发送委托的数量，实际对每个商品的交易数量会根据比例和单位自动设置；

  • 下单价格偏移值：买入使用叫卖价，卖出使用叫买价，在这个基础上，为了保证成交，可增加一定的偏移值；

  • 下单确认：选择该复选框，交易时会弹出下单确认框。需要快速下单时可取消选择该复选框，此时将会直接发送委托；

  • 买入，卖出按钮：点击按钮，发送套利单到交易所。

价差的买卖盘量是根据原商品买卖盘量的最小值计算而得到，比值则按照设定商品的权重（数量×最新价）相除。

跨月换仓模式下，多空都是相对于商品A而言。按照图上的商品举例，多头平仓即对al0904卖出平仓，对al0905买入开仓。

注意: 价差下单都是按照投机类型，同时发出两到三笔委托，发送的委托并不能确保成交，如果配合使用价位偏移值和交易助手，可实现绝大部分委托的成交，避免单边头寸的出现。


交易助手

提供未成交单的自动监控及后续处理功能。

您可以通过点击[状态栏]的[交易助手]按钮打开交易助手设置对话框。

交易助手主界面如下图所示：

交易助手的窗口包含以下内容：（分别包括监控开仓单和监控平仓单设置页面）

  • 启用设置：分别启动开仓单或者平仓单的监控。

  • 重发次数设置：设置撤单重发的次数。

  • 撤单设置：对撤单的时机进行设置。

  • 撤单成功后需处理设置: 对撤单成功后，是否重发，如何重发等信息进行设置。

  • 监控帐户: 对交易助手的监控帐户范围进行限定。

  • 监控范围: 对交易助手的作用合约品种范围进行限定。

  • 启动/关闭监控：是否启动未成交单处理，启动/关闭监控后，状态栏的交易助手图标会显示当前的状态。

  • 保存设置：对上面的各项设置修改后，点击[保存设置]保存设置信息。

注意:

  1. 一个点指一个最小变动单位；

  2. 交易助手在客户端运行，并只能对交易开拓者已经收到的委托单进行监控；

  3. 当使用多台计算机进行交易时，不要同时对某个帐户下的某个商品在两台机器上启动交易助手，这样会导致撤单后重复发单的问题。


快车道

快车道是交易开拓者专业版独有的功能，提供单键交易的功能。

您可以通过点击交易开拓者专业版工具栏的快车道按钮显示快车道界面，还可以通过拖拽的方法切换显示的位置，可以放到行情报价的左边或右边。

快车道主界面如下图所示：

快车道的窗口包含以下内容：

  • 帐户选择树：从列表中选择要进行交易的帐户；

  • 自动单选：勾选此项后，在帐户管理中双击选择下单帐户，在快车道上将自动选择该单一帐户进行下单交易；

  • 买入，卖出按钮：点击按钮，发送委托单到交易所；

  • 撤单按钮：点击按钮，就会撤销当前商品快车道下的委托单；

  • 数量：可以选择自定义或输入数量，自定义情况下可详细设置多帐户每个商品的交易数量；

  • 价格：下单价格偏移值：买入使用叫卖价，卖出使用叫买价，在这个基础上，为了保证成交，可增加一定的偏移值；

  • 自动止赢：开仓委托单成交后，将会按照设置自动生成止赢单；

  • 自动开平：选择自动开平，将会根据实时的持仓自动选择开仓还是平仓；

  • 一键下单：选择一键下单后，将会启动0，1，2，3，4数字键快速交易；

  • 下单确认：选择该复选框，交易时会弹出下单确认框。需要快速下单时可取消选择该复选框，此时将会直接发送委托。

注意: 启动一键下单，并取消下单确认的情况下，委托会非常迅速，也容易造成误操作，请只在必需的时候才这样设置。


帐户管理

帐户管理是对用户的交易帐户信息进行管理，包括资金，持仓，委托等信息。可对多帐户进行集中管理，并在页面中提供了快速交易的通道。

您可以通过以下几个方式打开帐户管理：

    1. 点击系统菜单[视图]-[帐户管理]菜单项；

    2. 直接按快捷键F6，会显示或隐藏帐户管理；

帐户管理的主界面请参见主界面介绍。

帐户管理包括以下几个页面，可通过点击标签页进行切换。

帐户汇总

该页面显示当前登录所有帐户的汇总信息，每个帐户项目的第一列显示了如下的图标：

  • ：显示当前选中帐户（联机）；

  • ：显示其他帐户（联机）；

  • ：显示当前选中帐户（断线）；

  • ：显示其他帐户（断线）。

通过双击列表中的项目，可将当前帐户项设定为选中帐户，此时其他五个页面显示的信息都是和选中帐户相关。

帐户汇总页面的右键菜单项如下：

  • 交易师：直接打开交易师；

  • 批量下单：直接打开批量下单；

  • 一键全平：对所有帐户，所有持仓进行快速平仓；

  • 一键全撤：对所有帐户，所有委托单进行快速撤单；

  • 自动排列：对列表字段根据长度进行自动排列；

  • 显示网格：显示列表中的网格；

  • 显示出入金信息：在列表中显示出入金信息；

  • 显示风险信息：在列表中显示风险信息；

  • 刷新：刷新帐户信息和持仓信息；

  • 保存到文件：将列表的内容保存到文件中。

持仓统计

该页面显示选中帐户的持仓信息，选中持仓项目，右键菜单包括如下菜单项：

  • 当前帐户：设定当前帐户，在多帐户情况下，可选择不同帐户切换当前帐户，其功能等同于在帐户汇总页面双击帐户项；

  • 交易师：用当前商品打开交易师，如果无选中商品，则直接打开交易师；

  • 批量下单：用当前商品打开批量下单，如果无选中商品，则直接打开批量下单；

  • 一键平仓：对当前选中商品进行快速平仓；

  • 多帐户平仓：对当前选中商品进行多帐户快速平仓；

  • 一键全平：对所有帐户，所有持仓进行快速平仓；

  • 多头平仓触发单：对当前所选中商品增加一个多头平仓触发单；

  • 空头平仓触发单：对当前所选中商品增加一个空头平仓触发单；

  • 自动排列：对列表字段根据长度进行自动排列；

  • 显示网格：显示列表中的网格；

  • 显示帐户：在列表中显示帐户字段；

  • 显示多仓信息：在列表中显示多仓信息；

  • 显示空仓信息：在列表中显示空仓信息；

  • 刷新：刷新帐户信息和持仓信息；

  • 保存到文件：将列表的内容保存到文件中。

您也可以直接双击持仓项目进行快速平仓。

当日交易

该页面显示选中帐户的当日交易情况，包括所有的委托，成交，撤单，废单等信息，选中委托项目，右键菜单包括如下菜单项：

  • 当前帐户：设定当前帐户，在多帐户情况下，可选择不同帐户切换当前帐户，其功能等同于在帐户汇总页面双击帐户项；

  • 交易师：用当前商品打开交易师，如果无选中商品，则直接打开交易师；

  • 批量下单：用当前商品打开批量下单，如果无选中商品，则直接打开批量下单；

  • 撤单：对当前选中商品进行撤单，只有当状态为未成交时有效；

  • 一键全撤：对所有帐户，所有委托单进行快速撤单；

  • 显示类型：设置当前列表显示内容的类型，可选择以下类型：全部、委托单、成交单、已撤单；

  • 自动排列：对列表字段根据长度进行自动排列；

  • 显示网格：显示列表中的网格；

  • 显示帐户：在列表中显示帐户字段；

  • 显示成交信息：在列表中显示当前委托的成交信息；

  • 显示止损获利：在列表中显示止损获利信息；

  • 显示开平标志：在列表中显示开平标志信息；

  • 显示投机保值：在列表中显示投机保值信息；

  • 显示注释信息：在列表中显示委托单的注释信息；

  • 成交统计：对所有帐户，所有成交单的信息进行统计；

  • 保存到文件：将列表的内容保存到文件中。

您也可以直接双击委托项目进行撤单或交易。

触发单

该页面显示选中帐户的触发单情况，选中触发单项目，右键菜单包括如下菜单项：

  • 当前帐户：设定当前帐户，在多帐户情况下，可选择不同帐户切换当前帐户，其功能等同于在帐户汇总页面双击帐户项；

  • 交易师：用当前商品打开交易师，如果无选中商品，则直接打开交易师；

  • 批量下单：用当前商品打开批量下单，如果无选中商品，则直接打开批量下单；

  • 修改或删除触发单：对当前选中商品的触发单进行修改或删除；

  • 多帐户撤单：对当前选中商品或所有商品的触发单进行删除；

  • 自动排列：对列表字段根据长度进行自动排列；

  • 显示网格：显示列表中的网格；

  • 显示帐户：在列表中显示帐户字段；

  • 显示过期时间：在列表中显示触发单的过期信息；

  • 显示止损获利：在列表中显示止损获利信息；

  • 显示开平标志：在列表中显示开平标志信息；

  • 显示投机保值：在列表中显示投机保值信息；

  • 显示注释信息：在列表中显示触发单的注释信息；

  • 保存到文件：将列表的内容保存到文件中。

您也可以直接双击触发单项目进行修改或删除触发单。

止损获利单

该页面显示选中帐户的止损获利单情况，选中止损获利单项目，右键菜单包括如下菜单项：

  • 当前帐户：设定当前帐户，在多帐户情况下，可选择不同帐户切换当前帐户，其功能等同于在帐户汇总页面双击帐户项；

  • 交易师：用当前商品打开交易师，如果无选中商品，则直接打开交易师；

  • 批量下单：用当前商品打开批量下单，如果无选中商品，则直接打开批量下单；

  • 修改或删除止损获利单：对当前选中商品的止损获利单进行修改或删除；

  • 多帐户撤单：对当前选中商品或所有商品的止损获利单进行删除；

  • 自动排列：对列表字段根据长度进行自动排列；

  • 显示网格：显示列表中的网格；

  • 显示帐户：在列表中显示帐户字段；

  • 显示委托信息：在列表中显示和该止损获利单相关的委托单信息；

  • 显示投机保值：在列表中显示投机保值信息；

  • 显示注释信息：在列表中显示止损获利单的注释信息；

  • 保存到文件：将列表的内容保存到文件中。

您也可以直接双击止损获利单项目进行修改或删除触发单。

历史明细

该页面显示选中帐户的历史明细，包括资金明细，持仓明细和成交明细，每个项目的第一列显示了如下的图标：

  • ：当天的资金明细，无成交记录和持仓记录；

  • ：当天的资金明细，无成交记录，有持仓记录；

  • ：当天的资金明细，有成交记录，无持仓记录；

  • ：当天的资金明细，有成交记录，有持仓记录；

  • ：资金明细合计。

选中项目，右键菜单包括如下菜单项：

  • 当前帐户：设定当前帐户，在多帐户情况下，可选择不同帐户切换当前帐户，其功能等同于在帐户汇总页面双击帐户项；

  • 明细时间设置：设置历史明细的时间区间，可以选择当月，近三个月，近六个月；近一年等选项；

  • 当月记录：在列表中显当月的交易明细；

  • 近三个月记录：在列表中显最近三个月的交易明细；

  • 自动排列：对列表字段根据长度进行自动排列；

  • 显示网格：显示列表中的网格；

  • 显示帐户：在列表中显示帐户字段；

  • 显示交易费用：在列表中显示交易费用信息；

  • 显示出入金：在列表中显示历史出入金信息；

  • 保存到文件：将列表的内容保存到文件中。


策略易

通过界面输入参数，不需要编写复杂繁琐的公式代码就可以轻松实现自动化交易。

您可以通过点击[状态栏]的[策略易]按钮打开策略易对话框。

策略易主界面如下图所示：

策略易的窗口包含以下五部分内容：

通用设置

  • 交易帐户：帐户下拉选择框，选择当前的交易帐户；

  • 商品选择：要进行交易的商品，先选择交易所，再选择商品代码，也可以通过点击键盘按钮进行快速设置，还可以直接从行情报价拖拉商品到本窗体上进行商品切换；

  • 模板管理：点击该按钮显示模板管理的菜单，可以进行模板管理，模板选择等操作；

  • 多空设置：点击多空字样按钮，进行多空选择；

  • 单笔数量：每次行情触发时对该商品交易的数量；

  • 最大仓位：最大的持仓数量；

  • 委托间隔：设定分步开平仓的时间间距；

  • 下单偏移：买入使用叫卖价，卖出使用叫买价，在这个基础上，为了保证成交，可增加一定的偏移值。

开仓设置

  • 价格触发：类似于触发单，设定触发价格，但价格达到条件即进行交易；

  • 区间限定：价格触发时为了降低成本，设定一个范围，只有当触发价格在这个范围内才进行交易；

  • 盘口量限定：条件满足时，判断对应的买卖盘数量是否足够，只有当盘口数量大于等于设定值才进行交易；

  • 开仓公式条件：一到三个开仓公式条件满足时，进行交易，关于公式条件的详细说明参见：公式条件。

风险控制

  • 平仓基准价格：选择以什么价格作为平仓计算的基准价，可选择第一笔开仓价，或者所有开仓单的委托均价；

  • 止损：设定止损跳数，当亏损大于等于设定值，即进行止损平仓；

  • 止赢：设定止赢跳数，当盈利大于等于设定值，即进行止赢平仓；

  • 跟踪止损：当盈利大于设定跳数时，启动跟踪止损，跟踪止损可以按照百分比或固定跳数进行设置。当盈利缩小到设定值，即进行平仓操作。

平仓设置

  • 价格触发：类似于触发单，设定触发价格，但价格达到条件即进行交易；

  • 定时平仓：当时间达到设定值，进行平仓操作；

  • 盘口量限定：条件满足时，判断对应的买卖盘数量是否足够，只有当盘口数量大于等于设定值才进行交易；

  • 平仓公式条件：一到三个平仓公式条件满足时，进行交易，关于公式条件的详细说明参见：公式条件。

状态监控

  • 当前头寸：当前的持仓头寸；

  • 盈利峰值价：开仓后盈利最大位置的价格，用于计算跟踪止损；

  • 开仓均价：所有开仓单的委托均价；

  • 第一笔开仓价：第一笔开仓单的委托价；

  • 统计信息：累计的平仓次数，关闭窗体后清零；

  • 更新：如果需要手工更改当前头寸，盈利峰值价，开仓均价或第一笔开仓价，修改后须点击更新按钮使设置生效；

  • 重置开仓标志：在产生任何平仓动作之后，该按钮将会变为有效，如果不清除该标志，将不会再进行任何开仓动作；

  • 启动、暂停：点击该按钮，即可启动策略易的监控，您可在中途暂停并进行参数修改。

公式条件

策略易的开仓和平仓各有三个条件，三个条件之间的关系可以设置为[条件相与]或者[条件相或]，表示并且与或者的逻辑关系。

每一个条件由以下三部分组成：

  • 左表达式：该表达式为一个字符串，我们称之为：条件关键字，通过该条件关键字和商品代码，可以唯一确定一个值；

  • 逻辑关系：左右表达式进行条件判断的逻辑关系，有六种类型；>,>=,<,<=,==,<>；

  • 右表达式：右表达式可以和左表达式一样，设置为一个条件关键字，还可以设置为一个数值，通过点击选择"V"和"K"图样的图标进行状态切换，当图标为"K"图样，表示右表达式为条件关键字，此时应该在编辑框输入一个字符串，当图标为"V"图样，表示右表达式为数值，此时需要在编辑框输入一个数字。

如上图的第一个公式开仓条件，表达的意思是当[M1_MA1]条件关键字的值大于[M1_MA2]条件关键字的值时，进行买入操作。即当1分钟周期的MA1均线大于MA2均线时，进行买入操作。

为了更直观的进行条件关键字的设置和公式编写，我们约定条件关键字的格式如下：周期_关键字，周期的值分别为T1,T10,M1,M5,M15,M30,M60,M240,D1,W1,MON1。表示从Tick到月线的各种周期。关键字为公式中取值的名字，您也可以根据自己的需求建立对应的编码规则。

为了配合策略易开仓条件功能的执行，我们需要配套的公式进行执行，对于上面的例子，我们需要将均线指标进行一些简单的修改，我们打开系统内置的MA指标，复制出其中的代码，新建一个新的指标为MAEx，粘贴MA的代码，增加一些新的代码，完整的代码如下：

Params
    Numeric Length1(5);
    Numeric Length2(10);
    Numeric Length3(20);
    Numeric Length4(30);
Vars
    Numeric MA1;
    Numeric MA2;
    Numeric MA3;
    Numeric MA4;
    String strKey1;
    String strKey2;
    String strKey3;
    String strKey4;
Begin
    MA1 = AverageFC(Close,Length1);
    MA2 = AverageFC(Close,Length2);
    MA3 = AverageFC(Close,Length3);
    MA4 = AverageFC(Close,Length4);
    PlotNumeric("MA1",MA1);
    PlotNumeric("MA2",MA2);
    PlotNumeric("MA3",MA3);
    PlotNumeric("MA4",MA4);

    // 下面代码将均线值写入数据库，供策略易使用
    strKey1 = BarTypeStr()+"_MA1";
    strKey2 = BarTypeStr()+"_MA2";
    strKey3 = BarTypeStr()+"_MA3";
    strKey4 = BarTypeStr()+"_MA4";

    SetTBProfileString(Symbol,strKey1,Text(MA1));
    SetTBProfileString(Symbol,strKey2,Text(MA2));
    SetTBProfileString(Symbol,strKey3,Text(MA3));
    SetTBProfileString(Symbol,strKey4,Text(MA4));
End

上面公式用到了一个用户函数BarTypeStr，该函数按照前面我们叙述的规则自动获取当前的周期的字符串表达式。您可以自行建立该用户函数，返回值为字符串类型，详细代码如下：

Vars
    String strKey;
    String str1;
    String str2;
Begin
    if(BarType == 0)
    {
        str1 = "D";
    }else if(BarType==1)
    {
        str1 = "M";
    }Else if(BarType==2)
    {
        str1 = "T";
    }else if(BarType==3)
    {
        str1 = "V";
    }else if(BarType==4)
    {
        str1 = "W";
    }else if(BarType==5)
    {
        str1 = "MON";
    }
    str2 = Text(BarInterval);
    strKey=str1+str2;
    Return strKey;
End

将上面的两个公式都编译成功之后，打开超级图表，选择对应的商品，设置为1分钟周期，插入MAEx指标，即可通过公式驱动策略易进行自动交易。

如果需要进行多个周期的公式计算并驱动策略易交易，您需要同时打开不同周期的超级图表，插入公式应用。


监控器

通过界面监控系统交易头寸，可以轻松实现对自动化交易头寸的监控与维护。

您可以通过点击[状态栏]的[监控器]按钮打开自动交易头寸监控器对话框。

监控器主界面如下图所示：

监控器的窗口包含以下内容：

  • 查询：主动刷新帐户头寸信息；

  • 一键同步：首先会撤掉列表中帐号和商品的未成交单，然后按（系统持仓+手工持仓）同步帐户的持仓；

  • 同步比例：设置按（系统持仓+手工持仓）的百分比去同步帐户持仓；

  • 导入：从表格导入头寸信息；

  • 导出：导出当前头寸信息到表格；

  • 检查点：将当前理论仓差（帐户持仓-系统持仓）设置为手工头寸。

  • 交易日志：打开交易日志目录，TradeBlazerV4\AutoTrade\；

查询条件

  • 交易帐户：帐户下拉选择框，选择监控的交易帐户，勾选[全部帐户]，则对全部帐户监控；

  • 商品选择：选择要进行监控的商品；

  • 多仓信息：只监控多仓信息；

  • 空仓信息：只监控空仓信息；

  • 自动刷新：根据设定间隔时间，自动刷新头寸信息；

  • 只显示不匹配：只显示不匹配头寸信息。

字段名信息

  • 帐户仓：通过帐户信息获取当前帐户头寸；

  • 系统仓：通过图上信号获取当前自动交易公式信号头寸；

  • 理论仓差：帐户仓减系统仓的差值，成为理论仓差；

  • 手工仓：手动开仓的头寸。

监控器的使用技巧

该功能主要帐对两类客户：全自动交易、半自动半手工交易。

  • 全自动交易：通过点击[查询]，读取持仓和图上开仓信息，通过[一键同步]，将帐户头寸与系统交易信号头寸进行同步；

  • 半自动半手工交易：通过[导入]、[导出]修改或者保存头寸信息，使用[检查点]确认当前手工头寸并保存；通过[一键同步]，将帐户仓、系统仓与手工仓进行同步。


公式简介

概述

本章节内容是TradeBlazer公式的全面参考手册，详细介绍了TradeBlazer公式的结构、语法、特点、使用方法及功能等。

通过阅读该参考手册，您能够了解TradeBlazer公式的基本语法、操作符、表达式及控制语句等，通过手册提供的各种示例程序，掌握各种TradeBlazer公式的编写要领，最终达到能够熟练将自己的思想转化为TradeBlazer公式，并在交易开拓者中应用。

什么是TradeBlazer公式？

TradeBlazer公式是一种专为分析金融数据-时间序列而设计的高级语言，它提供直接、强大的框架将交易思想转化为用户函数、公式应用等计算机能够识别的代码。

TradeBlazer公式是一门语法简单但是功能强大的语言，它能帮助您创建自己的交易和技术分析工具。通过组合普通的公式应用和简单的语句，TradeBlazer公式使您能够很容易并且直接的用简单语句表达自己的交易规则和行为。

交易开拓者能够读取您开发的TradeBlazer公式，在历史价格数据基础上进行评估，并能自动执行特定的交易动作，将您的交易思想转化为实际的交易操作。

TradeBlazer公式能做什么？

通过TradeBlazer公式，您能够创建自己的公式应用和用户函数。您也可以拷贝，修改并使用系统内建的几百个函数、公式应用。

TradeBlazer公式包含的公式类型如下：

  • 用户函数：用户函数是能够通过函数名称进行引用的指令集，它执行一系列操作并返回一个值。您可以在其他用户函数或公式应用中调用用户函数进行计算；

  • 公式应用：公式应用除了可以实现技术分析功能之外，还可以实现交易策略的功能，您可以把分析功能和交易功能进行有机的组合，更方便快捷的进行分析和自动交易。

通过调用公式应用，您可以在交易开拓者中进行技术分析、交易策略优化测试、公式报警、自动交易等操作。


Bar数据

在介绍Bar数据之前，首先，我们需要讨论一下TradeBlazer公式的计算方法，针对上面介绍的各种公式类型，包含公式应用，在公式进行计算时，都是建立在基本数据源(Bar数据)之上，我们这里所谓的Bar数据，是指商品在不同周期下形成的序列数据，在单独的每个Bar上面包含开盘价、收盘价、最高价、最低价、成交量及时间。期货等品种还有持仓量等数据。

所有的Bar按照不同周期组合，并按照时间从先到后进行排列，由此形成为序列数据，整个序列称之为Bar数据。

以下列出所有的Bar数据系统函数：

函数名 | 简写 | 描述
Date | D | 当前Bar的日期。
Time | T | 当前Bar的时间。
Open | O | 当前Bar的开盘价。
High | H | 当前Bar的最高价，Tick时为当时的委卖价。
Low | L | 当前Bar的最低价，Tick时为当时的委买价。
Close | C | 当前Bar的收盘价。
Vol | V | 当前Bar的成交量。
OpenInt | 无 | 当前Bar的持仓量。
CurrentBar | 无 | 当前Bar的索引值，从0开始计数。
BarStatus | 无 | 当前Bar的状态值，0表示为第一个Bar，1表示为中间的普通Bar，2表示最后一个Bar。

计算方法

TradeBlazer公式在计算时按照Bar数据的Bar数目，从第一个Bar到最后一个Bar，依次进行计算，如果公式中出现了调用Bar数据函数的，则取出当前Bar的相应值，进行运算。如下图箭头所示，公式执行从上至下，Bar从左到右执行。

例如，现在有如下语句需要执行，Bar数据如下表所示：

Value1 = Close - Open;

CurrentBar | Date | Time | Open | High | Low | Close | Vol | OpenInt | Value1
0 | 2005/04/04 | 15:00 | 2970 | 2979 | 2951 | 2974 | 18 | 78 | 4
1 | 2005/04/05 | 15:00 | 2960 | 2960 | 2946 | 2960 | 14 | 76 | 0
2 | 2005/04/06 | 15:00 | 2951 | 2980 | 2951 | 2963 | 30 | 74 | 12
3 | 2005/04/07 | 15:00 | 3048 | 3048 | 2968 | 2995 | 120 | 84 | -53
4 | 2005/04/08 | 15:00 | 2985 | 2987 | 2985 | 2987 | 10 | 80 | 2
... | ... | ... | ... | ... | ... | ... | ... | ... | ...

如上表所示，从CurrentBar = 0 开始，依次计算每个Bar进行计算;

在公式的编写中，经常会遇到当前Bar的数据和上一个Bar，上N个Bar数据进行比较，计算的情况，针对这种情况，TradeBlazer公式提供了一种处理机制：回溯。即对数据的向前引用，比如，获取上一个Bar的收盘价：Close[1]，获取10天前的成交量：Vol[10]。以下提供一个简单的例子来说明如何进行回溯处理。

假定有如下语句：

If (Close > Close[1])
{
    Buy(1,Close);
}

以上公式执行一个简单的操作，当前Bar的收盘价大于上一个Bar的收盘价，即执行按照当前收盘价买入1手的动作。根据上表的数据，公式将在CurrentBar为2和3的时候调用Buy指令。

如果您足够仔细的话，您会发现：对于上面的一段公式的执行，有一个小小的问题，当第一次计算公式时，即CurrentBar = 0时，这个时候需要获取上一个Bar的数据，但是当前Bar已经是第一个Bar，这个时候就存在着问题，如何来获取此时的Close[1]呢，TradeBlazer公式将默认Close[1]为无效值，即系统函数中的InvalidNumeric，Close > Close[1]的表达式计算结果是一个Bool值，其结果也是一个无效值，对于Bool值，我们将False作为其无效值。因此，第一个Bar计算时，Buy指令不会被执行。

对于技术分析这类公式来说，假定Bar数据的总数共有100，相同的代码将从CurrentBar = 0到CurrentBar = 99 共执行100遍，分别输出公式中的结果值。

注意: 在执行TradeBlazer公式时，可能出现数据不存在的情况，可通过系统函数HistoryDataExist进行判断，如果该函数返回True，即为Bar数据有效。


叠加数据

交易开拓者的超级图表支持商品叠加的显示，当叠加的图表调用各项公式时，可能有需要使用叠加的商品对应的基础数据，针对这样的需求，TradeBlazer公式提供了叠加数据的支持。

假定，我们新建一个超级图表模块，其主数据对应的商品为：cu0503，在此基础上，我们叠加了cu0504和cu0505。此时，根据叠加操作的先后顺序，cu0503为Data0，cu0504为Data1，cu0505为Data2，在TradeBlazer公式中，我们可以通过Data1.Close()，Data2.Vol()类似方法调用叠加Bar数据，叠加Bar数据的函数和Bar数据一样，只是需要在调用的时候加上数据源。

我们也可以使用Data0.Open()来调用Bar数据，默认情况下，可以省略对主数据源的指定，为了方便，一般直接使用Open()来代替Data0.Open()。


行情数据

除了Bar数据之外，TradeBlazer公式还可以支持实时行情数据的调用，行情数据是指当前商品最新的报价数据，该数据和Bar无关，行情数据的回溯没有意义。

行情数据只在最后Bar是有意义的，其他Bar会返回无效值。因此，在调用行情数据函数时，为了提高效率，最好按照以下方法：

If(BarStatus()==2)
{
    //调用行情数据函数
}

行情数据函数都按照以下格式命名Q_XXXXX，比如Q_Close，Q_BidPrice。在调用行情数据的时候，需要判断当前行情数据是否有效，系统提供函数QuoteDataExist来对有效性进行判断。如果行情数据已经准备好，返回True,否则，返回False。


帐户数据

TradeBlazer公式可以支持实时帐户数据的调用，帐户数据是指当前交易帐户最新的帐户数据，该数据和Bar无关。

帐户数据只在最后Bar是有意义的，其他Bar会返回无效值。因此，在调用帐户数据函数时，为了提高效率，最好按照以下方法：

If(BarStatus()==2)
{
    //调用帐户数据函数
}

帐户数据函数都按照以下格式命名A_XXXXX，比如A_BuyPosition，A_OpenOrderContractNo。在调用行情数据的时候，需要判断当前是否已经启动自动化交易，系统提供函数A_AccountID来对有效性进行判断。如果帐户数据已经准备好，返回交易帐户ID,否则，返回空的字符串。


属性数据

除了以上的各项数据之外，TradeBlazer公式还提供一组重要的属性数据，反映了该商品的一些基本信息，比如当前数据周期，买卖盘个数、保证金设置等信息。在所有的Bar上面获取的市场属性数据都是一样的，属性数据的回溯没有意义。

关于属性数据的详细说明参见附录。


数据类型

TradeBlazer公式支持有三种基本数据类型：数值型、字符串、布尔型。

为了通过用户函数返回多个值，我们对三种数据类型进行了扩展，增加了引用数据类型。另外，为了对变量，参数进行回溯，我们增加了序列数据类型。因此，我们的数据类型共有九种，如下表所示：

名称 | 说明
Bool | 布尔型。
BoolRef | 布尔型引用。
BoolSeries | 和周期长度一致的Bool型序列值。
Numeric | 数值型。
NumericRef | 数值型引用。
NumericSeries | 和周期长度一致的Numeric型序列值。
String | 字符串。
StringRef | 字符串引用。
StringSeries | 和周期长度一致的String型序列值。


命名规则

公式名称规则：

  • 不区分大小写；

  • 不能超过32个英文字符；

  • 每一类公式不能出现相同的名称；

  • 公式名称不能出现字母、数字、下划线以外的其他字符；

  • 公式名称不能和系统保留字，系统函数等重名。

变量，参数规则：

  • 不区分大小写；

  • 不能超过32个英文字符；

  • 每一个公式内部不能重复命名；

  • 名称不能出现字母、数字、下划线以外的其他字符；

  • 名称不能和系统保留字，系统函数等重名；

  • 不能使用已定义的用户函数名。

注意: 建议采取匈牙利命名规则命名变量，匈牙利命名规则是 Charles Simonyi 发明的一种给变量取名字的方式。他在变量前加上变量的类型，这样，看看变量的名字就知道变量的类型了。


语句

一个语句代表一个完全的指示或描述，语句中包含有保留字、操作符、符号。并且语句总是以"；"作为语句结束的标志。

以下为语句的一些例子：

  1. This is one statement;

  2. This is another statement;

  3. This is
    one statement;

  4. This is
    another
    statement
    ;

  5. This is yet another;

  6. This is one statement;This is another;


赋值语句

赋值语句用于给公式变量指定一个具体的值的语句，赋值语句使用赋值操作符(=)进行处理。

以下为赋值语句的一些例子：

Vars
    Bool b;
Begin
    B = true;
    ...
End

Vars
    Numeric Value1;
Begin
    Value1 = (Close + Open)/2;
    ...
End

Vars
    String str;
Begin
    str ="It Is A Test!";
    ...
End

变量在赋值的时候忽略其扩展数据类型，只考虑其基本数据类型，即NumericSeries，NumericRef，Numeric之间可以相互赋值。此时序列数据类型只是对当前Bar的值进行操作。

以下的写法是错误的：

Vars
    NumericSeries Value2;
Begin
    Value2[1] = (Close + Open)/2;
    ...
End


保留字

保留字都有自己独特的意思或用途，主要是一些功能关键字，系统函数，以及数据类型等。

下面分类列举出系统主要的保留字。

数据类型

包含3种基本类型，共9种数据类型能够，详细说明参见数据类型。

运算符

类型 | 保留字
算术运算符 | + - * / % ^
关系运算符 | > >= < <= == != <>
逻辑运算符 | AND/&& OR/|| NOT/！
括号 | (){} []
其它 | . ,

功能关键字

保留字 | 说明
Params | 用该关键字宣告参数定义的起始，参数必须填写默认值。
Vars | 用该关键字宣告变量定义的起始(可以赋初值), 变量不填写初值时,系统将自动为其填充初值。
If | 条件语句。
Else | 条件语句。
Begin | 用该关键字宣告程序主体的起始。
End | 用该关键字宣告程序主体的结束。
For | 循环语句。
To | 循环语句。
DownTo | 循环语句。
While | 循环语句。
Break | 循环语句。
Continue | 循环语句。
True | 真。
False | 假。

数据源

保留字 | 说明
Data0-Data49 | 支持50个数据源。

数据输出

保留字 | 说明
PlotBool | 输出布尔型值。
PlotNumeric | 输出数值型值。
PlotString | 输出字符串值。
UnPlot | 取消指定位置的输出。
Alert | 报警输出。
Buy | 多头建仓操作。
Sell | 多头平仓操作。
SellShort | 空头建仓操作。
BuyToCover | 空头平仓操作。
... | 其他系统函数。


操作符

操作符是一些象征具体操作运算行为的符号，例如操作符"+"代表对两个数求和，这些操作符适用于数值型、字符串、布尔型的数据。

TradeBlazer公式为您提供了多种操作运算符，便于您对保留字的操作和生成更复杂的数据类型、逻辑型、字符串类型的值。下面有四种不同类型的操作符可用于逻辑表达式、数值表达式、字符串表达式中。

数学操作符

数值型表达式的操作符有几种，如下表所示：

操作符 | 说明
+ | 加
- | 减
* | 乘
/ | 除
% | 求模
() | 括号

这些数学操作按其特定的优先级来进行计算，"*"(乘法)最先，其次是"/"(除法)和"%"(求模)，加和减最后，如果有多个乘法/除法(或者是加法或减法)，那么计算顺序是从左边到右边。

例如，在数值型的表达式中：

High+2*range/2;

它首先计算的是range(此处range是指High-Low)与2的积，接着计算与2的商(除法)，最后求2*range/2与最高价(High)的和。

如果要找到一个Bar的中间位置，可以尝试写成如下语句：

High+Low/2;

然而在上面语句中，首先运算的是以最低价(Low)除于2，然后再与最高价求和。最后的值不是我们所需要的，并且和原来预想中的值是不一致的。

为了处理上述这样的情况，我们在运算符号中引入了括号"()"，可以用括号来操作和控制运算的规则，先计算括号里面的表达式，不考虑外面的操作符和常量。因此，获取某一个Bar上的中间位置(MidPoint)的语句可如下：

(High+Low)/2;

该语句就是返回最高价和最低价之和的1/2，即Bar的中间位置。

对于除法，有一些特别的提示，众所周知，0不能作为除数，否则将会导致系统溢出。TradeBlazer公式在对脚本进行执行时，碰到除法符号时，都需要对除数进行是否为0的检查，以保证脚本能够正确的执行下去，当遇到除数为0的情况下，我们将会返回一个无效值。

上面描述到求中间位置(MidPoint)的表达式，其实我们可以用另外一种形式来代替它：

(High+Low)*0.5;

对于A/B这样的一个表达式，因为不知道B是否为0，所以总是需要对其进行有效性验证，计算的速度会受到一定的影响，因此，对于除法表达式，我们强烈建议使用时尽可能转换为乘法处理，即提高执行速度，也可以避免未知的错误发生。

字符串操作符

"+"是唯一的可以应用于控制字符串表达式的数学操作符，它可用于连接两个文本字符串为一个字符串。如下：

"这是一个字符串表达式，"+"返回值为数值型。";

"This is expression A"+" and this is expression B.";

上面字符串表达式的输出值，应该是"这是一个字符串表达式，返回值为数值型。"和"This is expression A and this is expression B."。

关系操作符

逻辑运算符使用下列标准的比较符号，大于、小于、等于、小于等于、大于等于和不等于。

下列的关系操作符号都可以应用到逻辑表达式中。

操作符 | 说明
< | 小于
> | 大于
<= | 小于等于
>= | 大于等于
<>或!= | 不等于
== | 等于

应用上述的关系运算符，我们可以对两个数值或字符串表达式进行对比，在下列的语句中，我们就是找到一个Bar，它的当前Bar收盘价要高于前一个Bar最高价：

Close>High[1];

在字符串的比较运算中，首先是把每一个字符用它的ASCII来代替，其次对两个表达式中的字符逐一比较其ASCII值，从第一个开始，直到两个表达式中的所有字符都已经被计算完为止。例如：

"abcd" < "zyxw";

在这个例子中，我们对把第一个字符串表达式中的字符和第二个表达式中的字符进行比较运算，字母"a"的ASCII值是小于"z"的，同样其它的字符也是一样，所有该表达式的值为True。

逻辑操作符

逻辑运算符常常用于比较两个True/False的表达式，共有三个逻辑操作符：AND(&&)，OR(||)，NOT(!)。

下表列出AND逻辑操作符的应用情况：

表达式1 | 表达式2 | 表达式1 AND 表达式2
True | True | True
True | False | False
False | True | False
False | False | False

下表列出OR逻辑操作符的应用情况：

表达式1 | 表达式2 | 表达式1 OR 表达式2
True | True | True
True | False | True
False | True | True
False | False | False

下表列出NOT逻辑操作符的应用情况：

表达式1 | NOT表达式1
True | False
False | True

在上面的表格中，应用OR可以增加表达式的值为True的可能性，仅仅只要两个表达式中，只要有一个的值为True，那么整个表达式的值就为True。

其实在应用的过程中，还包含有一些复杂的组合运算。为了获得一个的关键反转Bar，可以使用如下的表达式：

Low < Low[1] AND Close > High[1];

在上面的表达式中，我们使用了AND逻辑运算符，因而要表达式的值为True，那么当前Bar的最低价一定要小于前一个Bar的最低价，而且当前Bar的收盘价还必须高于前一个Bar的最高价。只有当这两个条件都满足的时候，表达式的值才为True。

再看下面一个例子：

High > 10 OR Vol > 5000;

在上面的表达式中，如果要其值为True，那么只需要任意一个条件满足即值为True，那么表达式的值便为True，如果当前bar的最高价大于10，或者成交量大于5000，那么表达式的值便为True。而如果需要表达式的值为False时，则两个条件都必须为False，表达式的值才为False。

逻辑操作符的优先级低于数学操作符和关系操作符。逻辑操作符也遵循先括号的原则，如果没有括号，那么其运算顺序也是从左边到右边。

对于逻辑表达式中不同条件的先后顺序，可能会产生不同的运算逻辑，执行的效率也会有所不同。

以Con1 AND Con2这样的表达式举例，系统从左到右进行逻辑判断，当Con1为True时，需要继续判断Con2是否为True，只有当Con1，Con2都为True时，整个表达式才为True。但是只要当Con1为False时，就不再需要判断Con2的值，而是直接返回False。

因此，以下的两个表达式在执行效率方面是有差异的：

5 < 4 AND Close > Open;
Close > Open AND 5 < 4;

第一条语句的执行速度大部分情况下都比第二条要快。

对于Con1 OR Con2表达式，情况也比较类似，当Con1为False时，需要继续判断Con2是否为False，只有当Con1，Con2都为False时，整个表达式才为False。但是只要当Con1为True时，就不再需要判断Con2的值，而是直接返回True。

以下两条语句的执行效率也是不一样的：

5 > 4 OR Close > Open;
Close > Open OR 5 > 4;

通过上述的说明，我们应该知道，逻辑表达式的组合时，应该尽可能的把容易判别整个表达式逻辑的条件放在前面，以减少整个表达式的计算时间。


表达式

表达式是操作符和保留字的有机组合，任意表达式都代表了一个值，表达式的值只能是以下的三种类型：

  • 数值型: 即Numeric，NumericRef，NumericSeries三种数据类型。

  • 布尔型: 即Bool，BoolRef，BoolSeries三种数据类型。

  • 字符串: 即String，StringRef，StringSeries三种数据类型。

当您使用TradeBlazer公式的过程中，便可应用三种广泛数据类型的表达式，来完成您自己的程序。

数值型的表达式可以是一个数字，当然，他们也可以是一个数值型的保留字，例如：保留字"Close"。或者是通过运算符号组合的一个计算表达式，该表达式的结果是数值型。下文中的例子都是数值型的表达式。

154;
Vol;
(High+Low)/2;

布尔型的表达式能够返回一个值True/False，或者说它可以对表达式的值进行评估，然后返回其值，要么为True，要么为False。逻辑表达式永远要涉及到比较运算，下面我们有一些逻辑表达式，它也就是对一个表达式的值是True还是False进行判断。

Close > Open;
5 < 2;

字符串的表达式可以是单个字符串，也可以字符串的组合，或者返回值为字符串的系统函数，如下，就是一个字符串的表达式：

"This is a test string expression" ;
"Hello"+"World" ;
Trim(" I Love This Game! ");


使用注释

注释可以标注解释语句，公式在编译执行时会忽略注释语句。

注释分为单行注释和多行注释。

单行注释

在单行中对需要注释部分之前通过添加//，使//之后的语句形成注释。以下是注释的例子：

//这是一个注释语句；

多行注释

在需要注释的部分之前添加/*,之后添加*/，形成注释。以下是注释的例子：

/*这是一个多行
注释的
语句;
*/


系统函数

TradeBlazer公式的系统函数，可根据使用范围在相应类型的公式中直接调用，计算后返回结果值。

目前的系统函数支持四种数据类型，除了TradeBlazer公式中定义的三种基本数据类型：Bool，Numeric，String之外，新加入Long（长整型）类型，使系统函数能够更加快捷的进行计算，TradeBlazer公式在处理的时候自动将Numeric和Long进行转化，用户无需进行特别的处理。

TradeBlazer公式现有的系统函数主要分为：数据函数、时间函数、数学函数、其它函数、交易函数、属性函数、帐户函数、颜色函数、字符串函数等。每个系统函数都有自己的适用范围和使用规范，详细说明参见附录。


标点符号

通常，在写语句的过程中，会用到很多的标点符号。可用来定义参数、定义变量、创建规则的优先权。

例如，TradeBlazer公式用"；"来标注一个语句结束。标点符号也是一个保留字，因为符号也是语言结构的一部分，在下表中列出了TradeBlazer公式中所用到的标点符号，和该标点符号所表达的意思：

符号 | 名称 | 说明
; | 分号 | 语句结束的标志。
, | 逗号 | 当函数带有多个参数时，用于分隔多个参数。
() | 小括号 | 括号之内的表达式有计算的优先权。
"" | 双引号 | 字符串常量。
[] | 中括号 | 回溯数据，引用以前的数据，或者数组中的元素。
{} | 大括号 | 控制语句的起始。
. | 点 | 扩展数据源的数据调用。


控制语句

TradeBlazer公式支持两大类的控制语句：条件语句和循环语句。

条件语句

条件语句包括以下四类表达方式：

If

If语句是一个条件语句，当特定的条件满足后执行一部分操作。

语法如下：

If (Condition)
{
    TradeBlazer公式语句;
}

Condition是一个逻辑表达式，当Condition为True的时候，TradeBlazer公式语句将会被执行，Condition可以是多个条件表达式的逻辑组合，Condition必须用()括起来。

TradeBlazer公式语句是一些语句的组合，如果TradeBlazer公式语句是单条，您可以省略{}，二条或者二条以上的语句必须使用{}。

例如，您可以计算图表中上升缺口（当前Bar的开盘价高于上一个Bar的最高价）出现了多少次，只要在图表中使用If语句，当找到一个满足条件的Bar时，即条件为真时，变量加1，脚本如下：

Vars
    NumericSeries Counter(0);
Begin
    If ( Open > High[1])
    {
        Counter = Counter[1] + 1;
        ...
    }
    ...
End

在TradeBlazer公式中，If语句被广泛使用，当条件满足的时候，在满足条件的Bar上面进行标记。例如，下面的语句就是公式应用的例子：

If(High > High[1] AND Low < Low[1])
{
    PlotNumeric("Outside Bar",High);
}

If语句在不是用括号的情况，只执行下面的第一条语句，如下的语句，Alert不会只在条件为True时执行，而是每次都执行。

If(High > High[1] AND Low < Low[1])
    PlotNumeric("Outside Bar",High);
Alert("Outside Bar");

要想Alert只在条件为True时执行，您需要按照下面的格式编写：

If(High > High[1] AND Low < Low[1])
{
    PlotNumeric("Outside Bar",High);
    Alert("Outside Bar");
}

If-Else

If-Else语句是对指定条件进行判断，如果条件满足执行If后的语句。否则执行Else后面的语句。

语法如下：

If (Condition)
{
    TradeBlazer公式语句1;
}Else
{
    TradeBlazer公式语句2;
}

Condition是一个逻辑表达式，当Condition为True的时候，TradeBlazer公式语句1将会被执行；Condition为False时，TradeBlazer公式语句2将会被执行。Condition可以是多个条件表达式的逻辑组合，Condition必须用()括起来。

TradeBlazer公式语句是一些语句的组合，如果TradeBlazer公式语句是单条，您可以省略{}，二条或者二条以上的语句必须使用{}。

例如，比较当前Bar和上一个Bar的收盘价，如果Close > Close[1]，Value1 = Value1 + Vol；否则Value1 = Value1 - Vol，脚本如下：

If (Colse > Close[1])
    Value1 = Value1 + Vol;
Else
    Value1 = Value1 - Vol;

If-Else-If

If-Else-If是在If-Else的基础上进行扩展，支持条件的多重分支。

语法如下：

If (Condition1)
{
    TradeBlazer公式语句1;
}Else If(Condition2)
{
    TradeBlazer公式语句2;
}Else
{
    TradeBlazer公式语句3;
}

Condition1是一个逻辑表达式，当Condition1为True的时候，TradeBlazer公式语句1将会被执行，Condition1为False时，将会继续判断Condition2的值，当Condition2为True时，TradeBlazer公式语句2将会被执行。Condition2为False时，TradeBlazer公式语句3将会被执行。Condition1，Condition2可以是多个条件表达式的逻辑组合，条件表达式必须用()括起来。

TradeBlazer公式语句是一些语句的组合，如果TradeBlazer公式语句是单条，您可以省略{}，二条或者二条以上的语句必须使用{}。

If-Else-If的语句可以根据需要一直扩展，在最后的Else之后再加If(Condition)和新的执行代码即可。当然您也可以省略最后的Else分支，语法如下：

If (Condition1)
{
    TradeBlazer公式语句1;
}Else If(Condition2)
{
    TradeBlazer公式语句2;
}

If-Else的嵌套

If-Else的嵌套是在If-Else的执行语句中包含新的条件语句，即一个条件被包含在另一个条件中。

语法如下：

If (Condition1)
{
    If (Condition2)
    {
        TradeBlazer公式语句1;
    }Else
    {
        TradeBlazer公式语句2;
    }
}Else
{
    If (Condition3)
    {
        TradeBlazer公式语句3;
    }Else
    {
        TradeBlazer公式语句4;
    }
}

Condition1是一个逻辑表达式，当Condition1为True的时候，将会继续判断Condition2的值，当Condition2为True时，TradeBlazer公式语句1将会被执行。Condition2为False时，TradeBlazer公式语句2将会被执行。当Condition1为False的时候，将会继续判断Condition3的值，当Condition3为True时，TradeBlazer公式语句3将会被执行。Condition3为False时，TradeBlazer公式语句4将会被执行。Condition1，Condition2，Condition3可以是多个条件表达式的逻辑组合，条件表达式必须用()括起来。

TradeBlazer公式语句是一些语句的组合，如果TradeBlazer公式语句是单条，您可以省略{}，二条或者二条以上的语句必须使用{}。

例如，在一个公式应用中，条件设置如下：当前行情上涨的时候，如果收盘价高于开盘价时，则产生一个以收盘价买入1张合约；否则产生一个以开盘价买入1张合约。当前行情没有上涨的时候，如果收盘价高于开盘价，则产生一个以收盘价卖出1张合约；否则产生一个以开盘价卖出1张合约。脚本如下：

If (Open > High[1])
{
    If (Close>Open)
    {
        Buy(1,Close);
    }Else
    {
        Buy(1,Open);
    }
}Else
{
    If (Close>Open)
    {
        Sell(1,Close);
    }Else
    {
        Sell(1,Open);
    }
}

循环语句

循环语句包括两种表达方式：For和While。

For

For语句是一个循环语句，重复执行某项操作，直到循环结束。

语法如下：

For 循环变量 = 初始值 To 结束值
{
    TradeBlazer公式语句;
}

循环变量为在之前已经定义的一个数值型变量，For循环的执行是从循环变量从初始值到结束值，按照步长为1递增，依次执行TradeBlazer公式语句。结束值必须大于或等于初始值才有意义，初始值和结束值可以使用浮点数，但是在执行过程中会被直接取整。只计算其整数部分。

TradeBlazer公式语句是一些语句的组合，如果TradeBlazer公式语句是单条，您可以省略{}，二条或者二条以上的语句必须使用{}。

第一次执行时，首先将循环变量赋值为初始值，然后判断循环变量是否小于等于结束值，如果满足条件，则执行TradeBlazer公式语句，同时循环变量加1。接着重新判断循环变量是否小于等于结束值，一直到条件为False，退出循环。

例如，以下的用户计算Price最近Length周期的和。

Params
    NumericSeries Price(1);
    Numeric Length(10);
Vars
    Numeric SumValue(0);
    Numeric i;
Begin
    for i = 0 to Length - 1
    {
        SumValue = SumValue + Price[i];
    }
    Return SumValue;
End

如果希望For语句从大到小进行循环，可以使用以下的语法：

For 循环变量 = 初始值 DownTo 结束值
{
    TradeBlazer公式语句;
}

For-DownTo让循环变量从结束值每次递减1直到等于结束值，依次调用TradeBlazer公式语句执行，初始值必须大于或等于结束值才有意义。

For语句是比较常用的一种循环控制语句，它应用于知道循环次数的地方，很多内建用户函数中都使用For语句来完成相应的功能，比如Summation，Highest，Lowest，LinearReg等。

While

While语句在条件为真的时候重复执行某一项操作。即，只要条件表达式的值为真(True)时，就重复执行某个动作。直到行情信息改变以致条件为假(False)时，循环才结束。

语法如下：

While (Condition)
{
    TradeBlazer公式语句;
}

Condition是一个逻辑表达式，当Condition为True的时候，TradeBlazer公式语句将会被循环执行，Condition可以是多个条件表达式的逻辑组合，Condition必须用()括起来。

TradeBlazer公式语句是一些语句的组合，如果TradeBlazer公式语句是单条，您可以省略{}，二条或者二条以上的语句必须使用{}。

例如，以下的公式用来计算要产生大于100000成交量需要最近Bar的个数：

Vars
    Numeric	SumVolume(0);
    Numeric	Counter (0);
Begin
    While (SumVolume < 100000)
    {
        SumVolume = SumVolume + Vol[Counter]
        Counter = Counter + 1;
    }
End

首先，我们定义两个变量SumVolume和Counter，并将其默认值设为0。当SumVolume <100000这个表达式为True时，While内的TradeBlazer公式语句一直被调用，将前Counter个Bar的Vol加到SumVolume中，当SumVolume大于等于100000时，退出循环。

在使用While循环的时候，有可能会遇到循环一直执行，永远不能退出的情况，这种情况我们称之为死循环，比如下面的语句；

While (True)
{
    TradeBlazer公式语句;
}

在这种情况下，循环将一直执行，导致程序不能继续工作，在这种情况，我们可以使用Break来跳出循环，详细情况参加下节。

Break

针对上节的例子，要想从死循环中跳出，我们可以在循环之中添加Break语句，如下：

While (True)
{
    TradeBlazer公式语句;
    If (Condition)
        Break;
}

循环在每次执行后，都将判断Condition的值，当Condition为True时，则执行Break语句，跳出整个循环。

Continue

有的时候在循环中，我们可能希望跳过后面的代码，进入下一次循环，在这种情况下，可以使用Continue语句来达到目的，如下：

While (Condition1)
{
    TradeBlazer公式语句1;
    If (Condition2)
        Continue;
    TradeBlazer公式语句2;
}

当Condition1满足时，循环被执行，在执行完TradeBlazer公式语句1后，将判断Condition2的值，当Condition2为True，将跳过TradeBlazer公式语句2，重新判断Condition1的值，进入下一次循环。否则将继续执行TradeBlazer公式语句2。


参数

参数是一个预先声明的地址，用来存放输入参数的值，在声明之后，您就可以在接下来的公式中使用该参数的名称来引用其值。

参数的值在公式的内部是不能够被修改，在整个程序中一直保持不变，不能对参数进行赋值操作(引用参数是个特例)。参数的好处在于您可以在调用公式应用的时候才指定相应的参数，而不需要重新编译。

例如，我们常用的移动平均线指标，就是通过不同的Length来控制移动平均线的周期，在调用指标时可以随意修改各个Length的值，使之能够计算出相对应的移动平均线。您可以指定4个参数为5,10,20,30计算出这4条移动平均线，也可以修改4个参数为10，22，100，250计算出另外的4条移动平均线。

参数的修改很简单，在超级图表调用指标的过程中，您可以打开指标的属性设置框，切换到参数页面，手动修改各项参数的值，然后应用即可，交易开拓者将根据新的参数设置计算出新的结果，在超级图表中反映出来。

另外，参数的一个额外的优点是，我们可以通过修改公式应用不同的参数，测试交易策略的性能优劣，达到优化参数的目的。

参数类型

在介绍参数类型之前，我们需要对于TradeBlazer公式的公式类型作一些说明，用户函数是公式中比较特殊的类型，它自身不能被超级图表，行情报价这样的模块调用，只能被公式应用或者用户函数调用，因此它的参数类型也和公式应用不一样。

用户函数的参数类型可以包含TradeBlazer公式的九种类型，而公式应用只能使用三种简单的基本类型。

三种简单类型参数通过传值的方式将参数值传入公式，公式内部通过使用参数名称，将参数值用来进行计算或赋值。

引用参数是在调用的时候传入一个变量的地址，在用户函数内部会修改参数的值，在函数执行完毕，上层调用的公式会通过变量获得修改后的值，引用参数对于需要通过用户函数返回多个值的情况非常有用。

序列参数可以通过回溯获取以前Bar的值，具体介绍可参见参数回溯。

参数声明

在使用参数之前，必须对参数进行声明，TradeBlazer公式使用关键字"Params"来进行参数宣告，并指定参数类型。可以选择赋默认值，也可以不赋默认值。如果某个参数没有赋予默认值，则这个参数之前的其他参数的默认值都将被忽略。

参数定义的语法如下：

Params
    参数类型 参数名1(初值);
    参数类型 参数名2(初值);
    参数类型 参数名3(初值);

下面是一些参数定义的例子：

Params
    Bool            bTest(False);       //定义布尔型参数bTest，默认值为False;
    Numberic        Length(10);         //定义数值型参数Length，默认值为10；
    NumericSeries   Price(0);           //定义数值型序列参数Price，默认值为0；
    NumericRef      output(0);          //定义数值型引用参数output，默认值为0；
    String          strTmp("Hello");    //定义字符串参数strTmp,默认值为Hello;

参数名称的命名规范详细说明参见命名规则。

整个公式中只能出现一个Params宣告，并且要放到公式的开始部分，在变量定义之前。

参数的默认值

在声明参数时，通常会赋给参数一个默认值。例如上例中的False，10，0等就是参数的默认值。用户函数的默认值是在当用户函数被其他公式调用，省略参数时作为参数的输入值，其他五种公式的默认值是用于图表，报价等模块调用公式时默认的输入值。

参数的默认值的类型在定义的时候指定，默认值在公式调用的时候传入作为参数进行计算。只能够对排列在后面的那些参数提供默认参数，例如：

Params
    Numeric	MyVal1;
    Numeric	MyVal2(0);
    Numeric	MyVal3(0);

您不能够使用以下方式对参数的默认值进行设定：

Params
    Numeric	MyVal1(0);
    Numeric	MyVal2(0);
    Numeric	MyVal3;

参数使用

在声明参数之后，我们可以在脚本正文中通过参数名称使用该参数，在使用的过程中要注意保持数据类型的匹配，示例如下：

Params
    NumericSeries Price(1);
Vars
    NumericSeries CumValue(0);
Begin
    CumValue = CumValue[1] + Price;
    Return CumValue;
End

在以上的公式中，首先定义了一个数值型序列参数Price，并将其默认值设置为1。接着定义了一个变量CumValue。脚本正文中，将CumValue的上一个Bar值加上Price，并将值赋给CumValue，最后返回CumValue。

通过上述的公式可以看到，我们只需要调用参数名，就可以使用参数的值进行计算了，如果要对序列参数进行回溯，请参见参数回溯。

引用参数

TradeBlazer公式的用户函数可以通过返回值，返回函数的计算结果，返回值只能是三种简单类型。当我们需要通过函数进行计算，返回多个值的时候，单个的返回值就不能满足需求了。在这种情况下，我们提出了引用参数的概念，引用参数是在调用的时候传入一个变量的地址，在用户函数内部会修改参数的值，在函数执行完毕，上层调用的公式会通过变量获得修改后的值。因为引用参数的使用是没有个数限制，因此，我们可以通过引用参数返回任意多个值。

例如，用户函数MyFunc如下：

Params
    NumericSeries   Price(0);
    NumericRef      oHigher(0);
    NumericRef      oLower(0);
Vars
    Numeric         Tmp(0);
Begin
    Tmp = Average(Price,10);
    oHigher = IIf(Tmp > High,Tmp,High);
    oLower = IIf(Tmp < Low,Tmp,Low);
    Return Tmp;
End

以上代码通过两个数值型引用参数返回10个周期的Price平均值和最高价的较大值oHigher，以及10个周期的Price平均值和最低价的较小值oLower，并且通过函数返回值输出10个周期的Price平均值。在调用该用户函数的公式中，可以通过调用该函数获得3个计算返回值，示例如下：

Vars
    Numeric AvgValue;
    Numeric	HigherValue;
    Numeric LowerValue;
Begin
    AvgValue = MyFunc(Close,HigherValue,LowerValue);
    ...
End


变量

变量是一个存储值的地址，当变量被声明之后，就可以在脚本中使用变量，可以对其赋值，也可以在其他地方引用变量的值进行计算，要对变量进行操作，直接使用变量名称即可。

变量的主要用处在于它可以存放计算或比较的结果，以方便在之后的脚本中直接引用运算的值，而无需重现计算过程。

例如，我们定义一个变量Y，我们把一个收盘价(Close)乘上8％的所得的值存储在Y中，即Y = Close *8%。那么一旦计算出Close * 8%的值，便赋给变量Y。而无需在公式中输入计算过程，只需调用变量名称即可引用变量的值。

变量有助于程序的优化，这是TradeBlazer公式必须重复调用一些数据，这些数据可能是某些函数（如：Bar数据），或通过表达式执行计算和比较的值。因此，在表达式频繁使用的地方使用变量可提高程序的运行速度和节约内存空间。

使用变量也可以避免输入错误，使程序的可读性提高，示例如下：

If(Close > High[1] + Average(Close,10)*0.5)
{
    Buy(100, High[1] + Average(Close,10)*0.5);
}

如果使用变量，则整个代码变得简洁：

Value1 = High[1] + Average(Close,10)*0.5;
If (Close > Value1)
{
    Buy(100,Value1);
}

如果一些表达式的组合经常在不同的公式中被调用，这个时候变量就不能实现功能，变量只能在单个公式的内部使用，这个时候我们需要建立用户函数来完成这些功能，详细说明参见用户函数。

变量类型

TradeBlazer公式支持九种数据类型，但对于变量定义，引用类型是无效的，剩余六种数据类型中分为简单和序列两大类，简单类型变量是单个的值，不能对其进行回溯，序列类型变量是和Bar长度一致的数据排列，我们可以通过回溯来获取当前Bar以前的任意值。

变量声明

在使用变量之前，必须对变量进行声明，TradeBlazer公式使用关键字"Vars"来进行变量宣告，并指定变量类型。可以选择赋默认值，也可以不赋默认值。

变量定义的语法如下：

Vars
    变量类型 变量名1(初值);
    变量类型 变量名2(初值);
    变量类型 变量名3(初值);

下面是一些变量定义的例子：

Vars
    NumericSeries   MyVal1(0);              //定义数值型序列变量MyVal1，默认值为0；
    Numeric         MyVal2(0);              //定义数值型变量MyVal2，默认值为0；
    Bool            MyVal3(False);          //定义布尔型变量MyVal3，默认值为False;
    String          MyVal4("Test");         //定义字符串变量MyVal4，默认值为Test。

变量定义的个数没有限制，变量名称的命名规范详细说明参见命名规则。

整个公式中只能出现一个Vars宣告，并且要放到公式的开始部分，在参数定义之后，正文之前。

变量的默认值

在声明变量时，通常会赋给变量一个默认值。例如上例中的0，False，"Test"等就是变量的默认值。如果某个变量没有赋予默认值，系统将会自动给该变量赋予默认值。数值型变量的默认值为0，布尔型变量的默认值为False，字符串的默认值为空串。

变量的默认值是在当公式在执行时，给该变量赋予的初值，使该变量在引用时存在着有效的值。在该公式每个Bar的执行过程中，改变量的默认值都会被重新赋值。

变量赋值

变量声明完成之后，您可以在脚本正文中给变量指定一个值。

语法如下：

Name = Expression;

"Name"是变量的名称，表达式的类型可以是数值型、布尔型、字符串中的任何一种。不过表达式的类型一定要和变量的数据类型相匹配。如果变量被指定为是数值型的，那么表达式一定要是数值型的表达式。

例如：下面的语句将Close的10周期平均值赋值给变量Value1：

Value1 = Average(Close , 10);

在下面这个语句中，声明了一个名为"KeyReversal"的逻辑型变量，然后又把计算的值赋给它。

Vars
    Bool        KeyReversal(False);
Begin
    KeyReversal = Low < Low[1] AND Close > High[1];
    ...
End

变量使用

变量定义、赋值之后，在表达式中直接使用变量名就可以引用变量的值。例如在下面的语句中计算了买入价格后，把值赋给数值型变量EntryPrc，在买入指令中便可直接应用变量名，通过变量名便可引用变量的值：

Vars
    Numeric EntryPrc(0);
Begin
    EntryPrc = Highest(High,10);
    If (MarkerPosition <> 1)
    {
        Buy(1,EntryPrc);
    }
End

接下来的例子，我们计算最近10个Bar最高价中的最大值（不包括当前Bar），对比当前High，然后通过If语句，产生报警信息。

Vars
    Bool    Con1(False);
Begin
    Con1 = High > Highest(High,10)[1];
    If(Con1)
    {
        Alert("New 10-bar high");
    }
End

其实我们并不一定都要应用条件为True的情况，有时候我们需要判断条件为False的时候执行某些代码，如下的例子：

Vars
    Bool    Con1(False);
Begin
    Con1 = High < Highest(High,10)[1] AND Low > Lowest(Low,10)[1];
    If(Con1==False)
    {
        Alert("New high or low");
    }
End

序列变量

序列变量是变量中的一种，可以对序列变量进行回溯获取以前Bar的变量数据。序列变量的声明和简单变量一样，只是定义的数据类型不同，您必须选择以下的3种类型来定义序列变量：NumericSeries/BoolSeries/StringSeries。例如：

Vars
    NumericSeries  MyNumSVal(0);
    BoolSeries	  MyBoolVal(False);
    StringSeries	  MyStrVal("");

序列变量和简单变量一样，可以对其赋予默认值。

序列变量定义之后，您可以象简单变量一样的对其使用，不会有任何的不同。除了支持全部简单变量的功能之外，序列变量还可以通过"[nOffset]"来回溯以前的变量值，详细说明参见变量回溯。

对于序列变量，TradeBlazer公式在内部针对其回溯的特性作了很多的特殊处理，也需要为序列变量保存相应的历史数据，因此，和简单变量相比，执行的速度和占用内存空间方面都作了一些牺牲。因此，尽管您可以定义一个序列变量，把它当作简单变量来使用，但是，我们强烈建议您只将需要进行回溯的变量定义为序列变量。


数据回溯

在TradeBlazer公式中有三种类型的数据回溯：变量回溯、参数回溯和函数回溯。

MaxBarsBack

在讨论回溯之前，我们需要了解公式中一个和数据回溯相关的系统函数MaxBarsBack，该函数返回公式应用执行所需的最大回溯Bar数目，该函数初始值为0，在公式应用从左到右每个Bar执行的过程中，会随着代码中对系统函数，序列变量等值的回溯调用而增加，所有Bar索引小于MaxBarsBack的输出都是不准确的，会被忽略掉。

变量回溯

TradeBlazer公式共支持九种数据类型，但对于变量定义，引用类型是无效的，剩余六种数据类型中分为简单和序列两大类，简单类型变量是单个的值，不能对其进行回溯，序列类型变量是和Bar长度一致的数据排列，我们可以通过回溯来获取当前Bar以前的任意值。

要使用变量回溯，需要在变量的后面，使用中括号"[nOffset]"，nOffset是要回溯引用的Bar相对于当前Bar的偏移值，该值必须大于等于0，当nOffset = 0时，即为获取当前Bar的变量值。

例如，我们定义如下公式应用：

Vars
    NumericSeries MyVal;
Begin
    MyVal = Average(Close,10);
    PlotNumeric("MyVal",MyVal[3]);
End

以上公式定义数值型序列变量MyVal，MyVal等于收盘价的10个周期的平均值，然后将序列变量MyVal的前3个Bar数据输出。

以上公式MyVal的前9个数据因为需要计算的Bar数据不足，返回的值无效，从第10个Bar开始，MyVal获取到正确的平均值，但是我们需要输出的数据是MyVal[3]，即前3个Bar的数据，因此，直到第13个Bar，有效的数据才会被输出。以上公式的13是该公式需要的最少引用周期数，如果将输出信息画到超级图表中，前12个Bar是没有图形显示的。

当nOffset>CurrentBar时，对于变量的回溯发生越界，这种情况下，将返回该变量的第一个Bar的值。

参数回溯

TradeBlazer公式支持的九种基本类型，在用户函数的参数定义中全部支持，在其他的公式中参数定义只支持三种简单类型。因此，关于参数的回溯问题，只对用户函数有效，以下我们举例说明用户函数序列参数的使用。

要使用参数回溯，需要在参数的后面，使用中括号"[nOffset]"，nOffset是要回溯引用的Bar相对于当前Bar的偏移值，该值必须大于等于0，当nOffset = 0时，即为获取当前Bar的参数值。

例如，我们定义一个用户函数MyFunc，脚本如下：

Params
    NumericSeries   Price(0);
    Numeric         Length(10);
Vars
    Numeric         MyAvg;
    Numeric         MyDeviation;
Begin
    MyAvg = Summation(Price,Length)/Length;
    MyDeviation = MyAvg - Price[Length];
    Return MyDeviation;
End

以上的例子，对输入的Price我们求其10个周期的平均值，然后求出该平均值和Price的前Length个Bar的值之间的差值，将其返回。 对于Price[Length]这样的参数回溯引用，其实现原理和上节所描述的变量回溯引用基本一致。

函数回溯

函数回溯分为系统函数的回溯和用户函数的回溯。

系统函数中回溯的使用主要是针对Bar数据。比如我们需要获取上2个Bar的收盘价，脚本为Close[2]；又或者我们需要获取10个Bar前的成交量，脚本为Vol[10]。对于Bar数据的回溯是系统函数中最常用的，虽然也可以对行情数据和交易数据等进行回溯，但是大部分并无实质的意义，返回的结果和不回溯是一样的，因此，不推荐如此使用。

要对系统函数回溯引用，我们可以通过在函数名称后面添加"[nOffset]"获取其回溯值，nOffset是要回溯引用的Bar相对于当前Bar的偏移值，该值必须大于等于0，当nOffset = 0时，即为获取当前Bar的参数值。

带有参数的函数回溯，需要将"[nOffset]"放到参数之后，另外，无参数和使用默认参数的情况下，函数调用的括号可以省略。例如:Close[2]等同于Close()[2]。

用户函数的回溯和系统函数原理基本一致，但考虑到系统的执行速度和效率等因素，目前，TradeBlazer公式不支持对用户函数的回溯，如果您想要获取用户函数的回溯值，建议您将函数返回值赋值给一个序列变量，通过对序列变量的回溯来达到相同的目的。

如下面的脚本所示，取Close的10个Bar平均值的4个周期前的回溯值:

Vars
    NumericSeries AvgValue;
    Numeric       TmpValue;
Begin
    AvgValue = Average(Close,10);
    TmpValue = AvgValue[4]；
    ...
End


用户函数

用户函数是可以通过名称进行调用的一组语句的集合，用户函数返回一个值，这个值可以是Numeric，Bool，String三种类型中的任何一种。您可以在需要的任何地方调用用户函数来完成相应的功能。

例如，在TradeBlazer公式中经常使用的一个用户函数Summation，Summation通过输入Price序列数据，以及Length统计周期数，计算Price最近Length周期的和，每次用户需要进行求和计算的时候，都可以调用Summation代替冗长的求和代码，输入参数并获取返回值。

Summation是TradeBlazer公式中一个比较简单的用户函数，TradeBlazer公式提供了上百个内建用户函数，当然，您也可以编写您自己的用户函数。

用户函数通过参数传递输入数据，通过引用参数或返回值传递输出数据，以上例子中的Summation函数，在被调用的时候格式如下：

Value1 = Summation(Close,10);

在调用Summation的时候，需要根据定义时候的参数列表和顺序，输入相应的输入参数，有默认值的参数可以省略输入参数。

用户函数在交易开拓者中使用有如下规则：

  • 支持九种类型的参数定义，支持指定参数默认值；

  • 支持使用引用参数，可通过引用参数返回多个数据；

  • 支持六种类型的变量定义，支持指定变量的默认值；

  • 可以访问Data0-Data49个数据源的Bar数据；

  • 可以访问行情数据、属性数据；

  • 必须通过Return返回数据，返回数据类型为三种基本类型之一；

  • 脚本中的返回数据类型必须和属性界面设置中一致；

  • 用户函数之间可以相互调用，用户函数自身也可以递归调用；

  • 用户函数可以调用所有的系统函数，包括交易动作和技术分析输出。

用户函数的类型

  1. 用户函数按照返回值类型不同可以分为数值型(Numeric)，布尔型(Bool)，字符串(String)三种基本类型，三种类型用户函数在调用时需要将返回值赋予类型相同的变量。

  2. 按照用户函数属性不同，用户函数可以分为内建用户函数和其他用户函数两种，内建用户函数是交易开拓者提供的，用于支持公式系统运行的预置公式，您可以查看和调用内建用户函数，但是不能删除和修改内建公式。

  3. 按照用户函数的实现机制不同，用户函数可分为普通函数和序列函数。普通函数和其他语言的函数类似，输入参数，执行一段程序代码，返回需要的值。序列函数是输入参数或变量中有序列数据类型的用户函数。

序列函数

序列函数是一种特殊的用户函数，当它的参数或变量中使用了序列数据，我们就称之为序列函数，序列数据作为普通计算机语言和TB语言的重要区别，是进行金融序列数据计算的核心。为了保证序列数据的正确计算，序列函数需要每个Bar都被调用，如果有些Bar没有调用序列函数，序列函数中的序列数据则是上一个Bar的值。除非是您的算法需要，否则建议不要在条件语句，条件语句的判断表达式，循环语句中使用序列函数。

使用内建用户函数

TradeBlazer公式中提供上百个内建用户函数，一部分用户函数提供类似于求和，求平均，求线性回归等算法方面的功能，另外一些函数提供技术分析的一些算法，比如：AvgTrueRange，Momentum等,这些用户函数用户辅助完成技术分析。

在创建自己的技术分析和交易系统时，如果需要自己写一些算法，您可以首先在用户函数中查找是否有相应的内建用户函数，尽可能的多使用内建用户函数，减少出错的可能。您也可以编写自己的算法，以供在技术分析和交易系统中使用。

用户函数的参数

大部分用户函数都需要接受输入的信息进行计算，这些输入的信息，我们称之为参数。关于用户函数参数的使用详细说明参见参数。

如何编写用户函数

一个用户函数由三部分组成，参数定义，变量定义，脚本正文。

语法如下：

Params
    参数定义语句;
Vars
    变量定义语句;
Begin
    脚本正文;
End

参数定义和变量定义部分在前面已经详细叙述过，脚本的正文部分将输入参数进行计算，得出函数的返回值，并通过Return返回。

例如，我们以Average为例，Average计算Price在Length周期内的平均值。Average调用Summation求和，并计算平均值，然后返回结果，脚本如下：

Params
    NumericSeries Price(1);
    Numeric Length(10);
Vars
    Numeric AvgValue;
Begin
    AvgValue = Summation(Price, Length) / Length;
    Return AvgValue;
End

对于使用多个输出的情况，即使用引用参数的情况，我们以求N周期最大值为例进行描述，假定我们需要编写一个用户函数，该函数需要求出序列变量Price在最近Length周期内的最大值，并且要求出最大值出现的Bar和当前Bar的偏移值。脚本如下：

Params
    NumericSeries Price(1);
    Numeric Length(10);
    NumericRef HighestBar;
Vars
    Numeric MyVal;
    Numeric MyBar;
    Numeric i;
Begin
    MyVal = Price;
    MyBar = 0;
    For i = 1 to Length - 1
    {
        If ( Price[i] > MyVal)
        {
            MyVal = Price[i];
            MyBar = i;
        }
    }
    HighestBar = MyBar;
    Return MyVal;
End

用户函数的调用

用户函数成功创建之后（编译/保存成功），您可以在其他的用户函数、公式应用中调用用户函数，调用用户函数时需要注意保持参数类型的匹配，即用户函数参数的声明数据类型需和调用时传入参数的数据匹配，这是所指的匹配是指基本数据类型：数值型，布尔型，字符串三种类型匹配，并且保持序列参数和传入变量类型的对应。我们可以对用户函数定义为Numeric或者NumericRef的参数使用Numeric类型的变量作为传入参数；但不能将在定义为NumericRef类型的参数时传入NumericSeries。具体的对应关系如下表：

函数参数声明类型 | 可传入的变量类型
Numeric | Numeric，NumericRef，NumericSeries
NumericRef | Numeric，NumericRef
NumericSeries | Numeric，NumericRef，NumericSeries
Bool | Bool，BoolRef，BoolSeries
BoolRef | Bool，BoolRef
BoolSeries | Bool，BoolRef，BoolSeries
String | String，StringRef，StringSeries
StringRef | String，StringRef
StringSeries | String，StringRef，StringSeries

对于函数的返回值，您也可以将用户函数的Numeric返回值赋值给NumericSeries或NumericRef变量。即在用户函数的返回值使用时，忽略其扩展数据类型。比如我们在调用Average求平均值时，可以这样调用：

Vars
    Numeric Value1;
Begin
    Value1 = Average(Close,10);
    ...
End

我们也可以按照以下方式进行调用：

Vars
    NumericSeries Value1;
Begin
    Value1 = Average(CloseTmp,10);
    ...
End

A用户函数调用自身，我们称之为直接递归；A用户函数可以调用B用户函数，同时B用户函数也可以调用A用户函数，对于这种的情况，我们称之为间接递归；

不管是直接递归还是间接递归，用户函数在执行的时候，都可能遇到递归调用没有出口，导致死循环的情况。因此，我们在编写公式的时候，要注意避免使用递归算法，如果一定需要使用递归算法，要注意保证递归算法都有出口。

用默认参数调用用户函数

用户函数在被调用的时候，如果传入的参数和参数的默认值一样，可以省略输出参数，使用默认值来调用用户参数。只能够对排列在后面的那些参数使用默认参数，默认参数的定义参见参数。


公式应用

TradeBlazer公式通过公式应用来实现技术分析输出和交易策略的执行，根据使用目的的不同，我们将公式应用分为两类(技术分析和交易策略)进行单独描述。

技术分析

技术分析是公式应用最常用的功能，它通过计算一系列的数学公式，在每个Bar都返回值，这些值在图表模块中输出为线条、柱状图、点等表现形式，通过分析图形特点、趋势和曲线帮助客户分析行情走势，得出合理的交易判断。

当技术分析应用在图表中时，您可以设置各输出值的表现形式，以及颜色、粗细等，如下图的点，线，柱状图所示：

示例，公式应用输出技术分析RSI，脚本如下：

Params
    Numeric Length(14);
    Numeric OverSold(20);
    Numeric OverBought (80);
Vars
    Numeric RSIValue(0);
    Numeric RSIColor(-1);
Begin
    RSIValue = RSI(Close,Length);
    If (RSIValue > OverBought)
    {
        RSIColor = RED;
    }Else If (RSIValue < OverSold)
    {
        RSIColor = CYAN;
    }
    PlotNumeric("RSI1", RSIValue, RSIColor);
    PlotNumeric("超卖", OverSold);
    PlotNumeric("超买", OverBought);

    If(CrossOver(RSIValue,OverSold))
    {
        Alert("Indicator exiting oversold zone");
    }
    If(CrossUnder(RSIValue, OverBought))
    {
        Alert("Indicator exiting overbought zone");
    }
End

公式应用RSI调用RSI内建用户函数计算出结果，然后判断其返回值和超买，超卖的关系，设置显示颜色，并产生报警信息。

公式应用在输出数据时，我们是通过输出值的名称来进行识别，名称相同则认为是一个数据，如下的代码，后面语句的输出数据将会覆盖前面语句的输出数据。

PlotNumeric("Test",10);
PlotNumeric("Test",20);

最后"Test"输出的数据为20，而不是10。

PlotNumeric

参见PlotNumeric。

PlotBool

参见PlotBool。

PlotString

参见PlotString。

UnPlot

参见UnPlot。

Alert

参见Alert。

交易策略

当我们在公式应用中编写了完整的开平仓规则以及、头寸控制、风险控制等代码，我们称之为交易策略，交易策略是我们一个独立交易思想的完整体现。

TradeBlazer公式提供四个交易函数和现实中的四种交易动作进行对应，列表如下：

函数名 | 描述
Buy | 平掉所有空头持仓，开多头仓位。
Sell | 平掉指定的多头持仓。
SellShort | 平掉所有多头持仓，开空头仓位。
BuyToCover | 平掉指定的空头持仓。

示例，以下是一个双均线交易策略的代码：

Params
    Numeric FastLength(5);
    Numeric SlowLength(20);
    Numeric BuyLots(1);
Vars
    NumericSeries AvgValue1;
    NumericSeries AvgValue2;
Begin
    AvgValue1 = AverageFC(Close,FastLength);
    AvgValue2 = AverageFC(Close,SlowLength);
    If(MarketPosition!=1 And (AvgValue1[1] > AvgValue2[2]))
    {
        Buy(BuyLots,Open);
    }

    If(MarketPosition!=-1 And (AvgValue1[1] < AvgValue2[2]))
    {
        SellShort(BuyLots,Open);
    }
End

为了在上面交易策略在超级图表中执行同时看到两条均线的数值，我们也可以在交易策略中输出指标线条，只需要增加以下两行代码：

    PlotNumeric("MA1",AvgValue1);
    PlotNumeric("MA2",AvgValue2);

除了希望看到两条均线值之外，我们还希望能够在超级图表中看到交易策略的盈亏曲线，这时我们需要再增加一条指标线:

    PlotNumeric("OpenEquity",Portfolio_TotalProfit);

关于交易策略的更多使用参见交易策略进阶


公式报警

TradeBlazer公式提供报警功能，您可以在公式应用中通过Alert函数来实现报警。

您可以在用户函数或公式应用中按照以下方式来编写自己的报警:

Vars
    Bool    Condition1;
Begin
    Condition1 = 您设定的条件表达式;
    If(AlertEnabled AND Condition1)
    {
        Alert("报警信息...");
    }
End

当公式编译保存成功之后，您可以将其应用在超级图表中，通过报警属性页启动报警。当条件满足之后，将会产生报警信息，并发送到消息中心。

AlertEnabled

参见AlertEnabled。

Alert

参见Alert。


公式管理器

公式管理器是对交易开拓者两类公式进行集中管理的模块，您可以在公式管理器中打开，修改和删除公式。点击面板[TB公式]分组中[公式管理器]按钮，即可打开公式管理器。

公式管理器分页显示各类公式，通过点击标签页进行切换。公式管理器包含以下功能：

  • 打开：选择列表中一个或多个公式，点击[打开]按钮，可以对所选公式进行编辑；

  • 删除：选择列表中一个或多个公式，点击[删除]按钮，可以删除所选公式，系统公式不能被删除；

  • 属性：选择列表中一个公式，点击[属性]按钮，可以打开公式属性，对其修改；

  • 关闭：关闭公式管理器；

  • 帮助：打开公式管理器帮助页。

公式管理器同时支持按公式名称、简称、分类或修改时间等属性进行排序。


新建公式

点击面板[TB公式]中[新建XXXX]即可打开新建公式向导。

新建公式页面包括以下内容：

  • 简称：在此输入公式的简称，此简称是公式的唯一标识，新建之后不能修改，命名规则参见公式命名；

  • 名称：名称是对公式的简单描述，不能超过64个英文字符；

  • 模板：选择新建之后打开的公式模板；

  • 分类：选择公式的分类；

  • 注释：输入公式的注释信息，包括公式的算法、参数变量含义，用法等。

输入完整信息之后，点击按钮[确定]即可进入公式编辑器。


公式编辑器

公式编辑器是对TradeBlazer进行编辑、编译的模块，公式编辑器的界面如下：

公式编辑器的功能列表如下(按工具栏按钮顺序)：

  • 显示或隐藏输出窗：显示或隐藏信息输出区；

  • 新建公式：新建6种类型的公式，打开新建向导；

  • 打开公式：打开公式管理器，调入要打开的公式；

  • 校验保存公式：编译保存当前公式，系统公式不能修改，也不能对其进行编译保存；

  • 仅校验保存当前公式：该按钮仅对用户函数有效，编译保存当前公式，系统公式不能修改，也不能对其进行编译保存；

  • 剪切：如标准的Windows操作，剪切选中的文本；

  • 复制：如标准的Windows操作，复制剪贴板中的文本；

  • 删除：如标准的Windows操作，删除选中的文本；

  • 撤销：如标准的Windows操作，撤销上一部操作；

  • 重复：如标准的Windows操作，重复撤销的操作；

  • 属性设置：打开该公式的属性设置对话框，详细情况参见公式属性；

  • 打开该用户函数：如果选中的字符串是已经存在的用户函数，该按钮会变成有效，通过点击该按钮可打开该用户函数；

  • 系统函数：打开系统函数字典；

  • 查找：在当前公式中查找；

  • 替换：替换当前公式的某些内容；

  • 全文搜索：在全部公式中查找；

  • 帮助：打开公式编辑器帮助；

  • 退出：退出公式编辑器

双击信息输出区列表项，可直接定位到对应公式的指定行。

另外，您还可以通过菜单或快捷键实现更多的功能，具体操作参见菜单项。


公式属性

根据公式类型不同，每种公式具有不同的属性页面，详细情况参见下表：

公式类型 | 属性页面
用户函数 | 常规，参数，返回类型。
公式应用 | 常规，参数，线型，讯号，连线，报警。

界面如下图所示：

常规

该页面显示公式的基本信息，包括简称、名称、密码信息、分类和注释，所有公式都有这些基本信息。

参数

该页面显示公式的参数信息，在公式调用的时候，您可以直接通过修改列表框的参数值进行参数变更。还可以点击[设为默认]将该参数保存到公式内部，供其他地方调用。

返回类型

该页面显示用户函数的返回值类型，该信息必须要脚本中返回值类型保持一致，否则不能成功编译。

讯号

该页面显示公式的讯号显示设置，更多请查看讯号设置。

连线

该页面显示公式的讯号连线设置。

报警

该页面显示公式的报警设置，要使公式能够报警，必须勾选[启动报警]复选框，还可选择全局报警设置或用户报警设置，以及是否只报警一次。全局报警设置即消息中心的默认报警设置。

线型

该页面是针对技术分析在超级图表中的表现形式进行设置的页面，界面如下：

对于公式应用，要设置一条输出线的显示风格，首先在线列表中选中该线，然后设置线型，再设置线的风格，最后设置粗细和颜色。如果不想某条线显示，还可以选择线型为隐藏。

您还可以点击[设为默认]将当前的设置保存到公式内部，供其他地方调用。


公式导入导出

公式导入导出功能提供将TradeBlazer公式打包成文件，并可在此还原；通过该功能，可实现用户之间公式的交互。

公式导入导出界面如下图所示：

公式导入/导出支持以下两种模式：

  • 有源码模式：可以导入导出用户函数和公式应用，导入导出时包含源码，该公式包后缀名为(.fbk)。

  • 无源码模式：只能导入导出公式应用代码，导入导出时不带源码，该公式包后缀名为(.bsf)。

操作方法：

标单击面板[TB公式]组中的“公式导入/导出”按钮 ，即可打开公式导入/导出向导窗口： 按照提示步骤有选择的分别完成：公式的导入（从备份文件中导入公式）/导出（将系统公式备份到文件）的操作：

公式导出

  1. 鼠标单击选择要进行的操作：将系统公式备份到文件，然后按照向导提示进行下一步；

  2. 从公式类型下拉列表中选择公式类型，有源码模式（所有公式/用户函数/公式应用），无源码模式（只能导出公式应用），通过鼠标单击选择，任选其一；

  3. 从可选公式列表中选择要导出的公式添加到已选公式列表中，其中[>]按钮表示：将可选公式列表中被鼠标单击选中的公式添加到已选公式列表中，准备导出；[>>]按钮表示：将可选公式列表中的所有公式全部添加到已选公式列表中，准备导出；[<]按钮表示：将已选公式列表中被鼠标单击选中的公式放回到可选公式列表中，取消导出该公式；[<<]按钮表示：将已选公式列表中的所有公式全部放回到已选公式列表中，取消导出这些公式；您还可以通过双击列表项进行操作；

  4. 选择公式文件的保存路径，通过鼠标单击[浏览]按钮打开浏览对话框，选择好公式文件的保存路径，输入公式文件名后单击[确定]按钮即可导出公式。

公式导入

  1. 鼠标单击选择要进行的操作：从备份文件中导入公式，然后进行按照向导提示进行下一步；

  2. 选择公式文件的保存路径，通过鼠标单击[浏览]按钮打开浏览对话框，选择要导入的文件，单击[下一步]按钮；

  3. 选择要导入的公式分类，单击[下一步]按钮；

  4. 选择要导入的公式列表，单击[完成]按钮，将会进行导入操作，该操作完成之后，整个导入过程完成。

注意: 使用有源码导入导出时请将将关联的用户函数一起选择，否则会导致导入不成功。使用无源码模式导入导出公式应用时，无需依赖用户函数，直接导入导出公式应用即可使用。


交易策略进阶

交易策略的代码写法会因为交易思想及编程习惯因人而异，在此按常用的功能点列出代码示例，用户可根据自己的需要选择对应的代码进行组合。

  1. 止赢止损

  2. 跟踪止损

  3. 加仓减仓

  4. 多品种交易

  5. 集合竞价数据过滤

  6. 收盘平仓

  7. A函数下单撤单和全局变量操作

  8. 数据库读写

止赢止损

模板以止赢30跳，止损20跳为例，也可以转换为开仓价格的百分比值，或其任何设置的变量进行处理。

Vars
    Numeric MinPoint;           // 一个最小变动单位，也就是一跳
    Numeric MyEntryPrice;       // 开仓价格，本例是开仓均价，也可根据需要设置为某次入场的价格
    Numeric TakeProfitSet(30);  // 止赢设置
    Numeric StopLossSet(20);    // 止损设置
    Numeric MyExitPrice;        // 平仓价格
Begin
    ...
    MinPoint = MinMove*PriceScale;
    MyEntryPrice = AvgEntryPrice;
    If(MarketPosition==1) // 有多仓的情况
    {
        If(High >= MyEntryPrice + TakeProfitSet*MinPoint)   // 止赢条件表达式
        {
            MyExitPrice = MyEntryPrice + TakeProfitSet*MinPoint;
            If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
            Sell(0,MyExitPrice);
        }else if(Low <= MyEntryPrice - StopLossSet*MinPoint)// 止损条件表达式
        {
            MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
            If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
            Sell(0,MyExitPrice);
        }
    }else if(MarketPosition==-1) // 有空仓的情况
    {
        If(Low <= MyEntryPrice - TakeProfitSet*MinPoint)    // 止赢条件表达式
        {
            MyExitPrice = MyEntryPrice - TakeProfitSet*MinPoint;
            If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
            BuyToCover(0,MyExitPrice);
        }else if(High >= MyEntryPrice + StopLossSet*MinPoint)// 止损条件表达式
        {
            MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
            If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
            BuyToCover(0,MyExitPrice);
        }
    }
    ...
End

注意事项：

  1. 因无法确认开仓Bar最高/低价和开仓价的先后顺序，因此以上写法一般忽略开仓Bar的处理。

  2. 如果某个Bar最高/低价相差很大，可能出现止赢止损同时满足的情况，这种情况下需要切换到更小的周期进行交易，或者扩大止赢/损幅度。

跟踪止损

跟踪止损有很多种方式，本模板的规则如下：当盈利达到50跳之后启动第一级跟踪止损，止损的回撤值为30跳，当盈利达到80跳之后启动第二级的跟踪止损，止损的回撤值为20跳。您也可以将这些固定的设置修改为盈利百分比，或者是某个价格的百分比。

Vars
    Numeric MinPoint;           // 一个最小变动单位，也就是一跳
    Numeric MyEntryPrice;       // 开仓价格，本例是开仓均价，也可根据需要设置为某次入场的价格
    Numeric TrailingStart1(50); // 跟踪止损启动设置1
    Numeric TrailingStart2(80); // 跟踪止损启动设置2
    Numeric TrailingStop1(30);  // 跟踪止损设置1
    Numeric TrailingStop2(20);  // 跟踪止损设置2
    Numeric StopLossSet(50);    // 止损设置
    Numeric MyExitPrice;        // 平仓价格

    NumericSeries HighestAfterEntry;        // 开仓后出现的最高价
    NumericSeries LowestAfterEntry;         // 开仓后出现的最低价
Begin
    ...
    If(BarsSinceentry == 0)
    {
        HighestAfterEntry = Close;
        LowestAfterEntry = Close;
        If(MarketPosition <> 0)
        {
            HighestAfterEntry = Max(HighestAfterEntry,AvgEntryPrice);   // 开仓的Bar，将开仓价和当时的收盘价的较大值保留到HighestAfterEntry
            LowestAfterEntry = Min(LowestAfterEntry,AvgEntryPrice);     // 开仓的Bar，将开仓价和当时的收盘价的较小值保留到LowestAfterEntry
        }
    }else
    {
        HighestAfterEntry = Max(HighestAfterEntry,High); // 记录下当前Bar的最高点，用于下一个Bar的跟踪止损判断
        LowestAfterEntry = Min(LowestAfterEntry,Low);    // 记录下当前Bar的最低点，用于下一个Bar的跟踪止损判断
    }

    Commentary("HighestAfterEntry="+Text(HighestAfterEntry));
    Commentary("LowestAfterEntry="+Text(LowestAfterEntry));

    MinPoint = MinMove*PriceScale;
    MyEntryPrice = AvgEntryPrice;
    If(MarketPosition==1) // 有多仓的情况
    {
        If(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart2*MinPoint)   // 第二级跟踪止损的条件表达式
        {
            If(Low <= HighestAfterEntry[1] - TrailingStop2*MinPoint)
            {
                MyExitPrice = HighestAfterEntry[1] - TrailingStop2*MinPoint;
                If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
                Sell(0,MyExitPrice);
            }
        }else if(HighestAfterEntry[1] >= MyEntryPrice + TrailingStart1*MinPoint)// 第一级跟踪止损的条件表达式
        {
            If(Low <= HighestAfterEntry[1] - TrailingStop1*MinPoint)
            {
                MyExitPrice = HighestAfterEntry[1] - TrailingStop1*MinPoint;
                If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
                Sell(0,MyExitPrice);
            }
        }else if(Low <= MyEntryPrice - StopLossSet*MinPoint)//可以在这里写上初始的止损处理
        {
            MyExitPrice = MyEntryPrice - StopLossSet*MinPoint;
            If(Open < MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
            Sell(0,MyExitPrice);
        }
    }else if(MarketPosition==-1) // 有空仓的情况
    {
        If(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart2*MinPoint)   // 第二级跟踪止损的条件表达式
        {
            If(High >= LowestAfterEntry[1] + TrailingStop2*MinPoint)
            {
                MyExitPrice = LowestAfterEntry[1] + TrailingStop2*MinPoint;
                If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
                BuyToCover(0,MyExitPrice);
            }
        }else if(LowestAfterEntry[1] <= MyEntryPrice - TrailingStart1*MinPoint)// 第一级跟踪止损的条件表达式
        {
            If(High >= LowestAfterEntry[1] + TrailingStop1*MinPoint)
            {
                MyExitPrice = LowestAfterEntry[1] + TrailingStop1*MinPoint;
                If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
                BuyToCover(0,MyExitPrice);
            }
        }else If(High >= MyEntryPrice + StopLossSet*MinPoint)//可以在这里写上初始的止损处理
        {
            MyExitPrice = MyEntryPrice + StopLossSet*MinPoint;
            If(Open > MyExitPrice) MyExitPrice = Open;      // 如果该Bar开盘价有跳空触发，则用开盘价代替
            BuyToCover(0,MyExitPrice);
        }
    }
    ...
End

注意事项：

  1. 因无法确认开仓Bar最高/低价和开仓价的先后顺序，因此以上写法一般忽略开仓Bar的处理。

  2. 如果某个Bar最高/低价相差很大，可能出现创新高之后跟踪止损的情况，但系统无法确认最高价和最低价的先后顺序，因此本模板只用前一个Bar的最高/低价计算最大赢利位置。

加仓减仓

本例仅以做多为例，做空类似。模板以首次开仓2手后每赢利30跳加仓一次，每次1手，最多加仓3次；开仓后每亏损30跳减仓1手。也可以转换为开仓价格的百分比值，或波动率的百分比等其任何设置的变量进行处理。

Vars
    Numeric MinPoint;           // 一个最小变动单位，也就是一跳
    NumericSeries firstPrice;   // 第一次开仓价格
    NumericSeries LastPrice;    // 最后一次开仓价格
    Numeric AddSet(30);         // 加仓设置
    Numeric SubSet(30);         // 减仓设置
    Bool FirstEntryCon;         // 首次开仓条件
Begin
    FirstEntryCon = ...
    MinPoint = MinMove*PriceScale;

    If(MarketPosition==0)
    {
        If(FirstEntryCon)
        {
            firstPrice = Open;
            LastPrice = firstPrice;
            Buy(2,firstPrice);
        }
    }else If(MarketPosition==1) // 有多仓的情况
    {
        While(CurrentEntries < 4 && High >= LastPrice + AddSet*MinPoint) // 加仓
        {
            LastPrice = LastPrice + AddSet*MinPoint;
            if(Open > LastPrice) LastPrice = Open;
            Buy(1,LastPrice);
        }

        While(CurrentEntries > 0 && Low <= firstPrice - SubSet*MinPoint) // 减仓
        {
            firstPrice = firstPrice - SubSet*MinPoint;
            if(Open < firstPrice) firstPrice = Open;
            Sell(1,firstPrice);
        }
    }
    ...
End

注意事项：

  1. 因无法确认开仓Bar最高/低价和开仓价的先后顺序，忽略开仓Bar的加减仓处理。

  2. 如果某个Bar最高/低价相差很大，可能出现加仓减仓同时满足的情况，这种情况下需要切换到更小的周期进行交易，或者扩大加仓/减仓幅度设置。

多品种交易

模板以常用的双均线系统为例，对主图商品和叠加商品分别进行交易。

Params
    Numeric FastLength1(5);         // Data0的短周期参数
    Numeric SlowLength1(20);        // Data0的长周期参数
    Numeric FastLength2(5);         // Data1的短周期参数
    Numeric SlowLength2(20);        // Data1的长周期参数
Vars
    NumericSeries AvgValue11;
    NumericSeries AvgValue12;
    NumericSeries AvgValue21;
    NumericSeries AvgValue22;
Begin
    AvgValue11 = AverageFC(Data0.Close,FastLength1);
    AvgValue12 = AverageFC(Data0.Close,SlowLength1);
    AvgValue21 = AverageFC(Data1.Close,FastLength2);
    AvgValue22 = AverageFC(Data1.Close,SlowLength2);

    If(Data0.MarketPosition <>1 && AvgValue11[1] > AvgValue12[1])
    {
        Data0.Buy(1,Data0.Open);
    }

    If(Data0.MarketPosition <>-1 && AvgValue11[1] < AvgValue12[1])
    {
        Data0.SellShort(1,Data0.Open);
    }

    If(Data1.MarketPosition <>1 && AvgValue21[1] > AvgValue22[1])
    {
        Data1.Buy(1,Data1.Open);
    }

    If(Data1.MarketPosition <>-1 && AvgValue21[1] < AvgValue22[1])
    {
        Data1.SellShort(1,Data1.Open);
    }
End

注意事项：

  1. 针对不同的商品的数据进行计算或交易，需通过Data#这样的方式添加前缀，Data0可与省略不写。

  2. Data#的顺序和超级图表中商品设置界面的顺序相同，必须要叠加足够的商品才能保证代码正常执行。

集合竞价数据过滤

集合竞价时，会产生一个Tick，这个Tick会驱动超级图表计算交易策略，如果条件满足，则会马上发送委托单，但此时交易所并未开市，就会产生废单，为了处理这种情况，可以采取下面方法：

Begin
    If(BarStatus==2 && Time==0.090000 && High==Low) return;                 // 第一种写法
    If(BarStatus==2 && Time==0.090000 && CurrentTime <= 0.090000) return;   // 第二种写法
    ...
End

注意事项：

  1. 本例是以国内商品期货交易所开市时间举例，股指期货或其他市场需调整写法。

  2. 若按第一种写法，当商品的高低价不产生变化时，会忽略这些Tick，即使是已经开市；第二种写法需保证本机的时间准确。

收盘平仓

收盘平仓分为两部分，一部分负责处理历史测试，一部分负责处理实时交易。在测试时我们可以以每天的收盘价平仓，在实时交易时我们选择14：59分平仓。

Begin
    ...
    If((Date[-1]!=InvalidInteger && Date!=Date[-1])||(Date[-1]==InvalidInteger && Date < CurrentDate))
    {
        Sell(0,Close);
        BuyToCover(0,Close);
    }Else If(Date==CurrentDate && Time==0.1455 && CurrentTime>=0.1459)
    {
        Sell(0,Close);
        BuyToCover(0,Close);
    }
    ...
End

注意事项：

  1. 本例是以国内商品期货交易所收市时间举例，股指期货或其他市场需调整写法。

  2. 本例是针对5分钟周期的收盘平仓所写，针对不同的周期需改写为合适的最后Bar时间。

A函数下单撤单和全局变量操作

本例在每天收盘前N分钟的时候自动撤掉超级图表中商品的挂单，并全部平仓。通过A_SendOrder进行下单，A_DeleteOrder进行撤单，并使用全局变量记录Tick计数和撤单标志。

Params
    Numeric offSet(1);                    // 委托价格偏移，为了保证成交
    Numeric BeforeMins(5);                // 收盘前几分钟开始操作
Vars
    Numeric tempPos; // 仓位
    Numeric DeleteOrderTickCounter;
    Numeric HasSendOrder(0);
Begin
    If(BarStatus == 0)
    {
        DeleteOrderTickCounter = 9999;
        HasSendOrder = 0;
        SetGlobalVar(0,DeleteOrderTickCounter);
        SetGlobalVar(1,HasSendOrder);
    }Else
    {
        DeleteOrderTickCounter = GetGlobalVar(0);
        HasSendOrder = GetGlobalVar(1);
    }

    If(CurrentTime > (0.1459 - 0.0001*(BeforeMins-1)) && BarStatus == 2 && HasSendOrder == 0)
    {
        If(Data0.Close != InvalidNumeric && Data0.A_GetOpenOrderCount()>0) // 商品0全部撤单
        {
            Data0.A_DeleteOrder();
            DeleteOrderTickCounter = 1;
        }
        If(Data1.Close != InvalidNumeric && Data1.A_GetOpenOrderCount()>0) // 商品1全部撤单
        {
            Data1.A_DeleteOrder();
            DeleteOrderTickCounter = 1;
        }
        If(Data2.Close != InvalidNumeric && Data2.A_GetOpenOrderCount()>0) // 商品2全部撤单
        {
            Data2.A_DeleteOrder();
            DeleteOrderTickCounter = 1;
        }
        DeleteOrderTickCounter = DeleteOrderTickCounter + 1;
        SetGlobalVar(0,DeleteOrderTickCounter);

        If(DeleteOrderTickCounter < 5) Return; // 撤单后需要延迟几个Tick才平仓

        tempPos = Data0.A_BuyPosition();
        If(tempPos > 0) // 平多单
        {
            Data0.A_SendOrder(Enum_Sell,Enum_Exit,tempPos,Data0.Q_BidPrice-offSet*Data0.MinMove*Data0.PriceScale);
        }
        tempPos = Data0.A_SellPosition();
        If(tempPos > 0) //平空单
        {
            Data0.A_SendOrder(Enum_Buy,Enum_Exit,tempPos,Data0.Q_AskPrice+offSet*Data0.MinMove*Data0.PriceScale);
        }

        tempPos = Data1.A_BuyPosition;
        If(tempPos > 0) // 平多单
        {
            Data1.A_SendOrder(Enum_Sell,Enum_Exit,tempPos,Data1.Q_BidPrice-offSet*Data1.MinMove*Data1.PriceScale);
        }
        tempPos = Data1.A_SellPosition;
        If(tempPos > 0) //平空单
        {
            Data1.A_SendOrder(Enum_Buy,Enum_Exit,tempPos,Data1.Q_AskPrice+offSet*Data1.MinMove*Data1.PriceScale);
        }

        tempPos = Data2.A_BuyPosition;
        If(tempPos > 0) // 平多单
        {
            Data2.A_SendOrder(Enum_Sell,Enum_Exit,tempPos,Data2.Q_BidPrice-offSet*Data2.MinMove*Data2.PriceScale);
        }
        tempPos = Data2.A_SellPosition;
        If(tempPos > 0) //平空单
        {
            Data2.A_SendOrder(Enum_Buy,Enum_Exit,tempPos,Data2.Q_AskPrice+offSet*Data2.MinMove*Data2.PriceScale);
        }
        HasSendOrder = 1;
        SetGlobalVar(1,HasSendOrder);
    }
End

注意事项：

  1. 本例是以国内商品期货交易所收市时间举例，股指期货或其他市场需调整写法。

  2. 本例假设撤单后5个Tick委托状态能同步成功，实际情况中因网络延时等原因并不一定能够保证成功。

数据库读写

本例以5分钟周期调用日线指标数据举例讲解具体应用。

操作步骤如下：

  1. 新建一个工作区，包含上下两个图表窗体，上面选择日线周期，下面选择5分钟周期。

  2. 新建一个公式应用，命名为MyDayMA。编译成功后插入日线图表中。详细代码如下：

    3. Params
    Numeric length(10);
Vars
    Numeric MA;
    string strkey;
    string strValue;
Begin
    MA = AverageFC(Close,length);
    strKey = DateToString(Date);
    strValue = Text(MA);
    SetTBProfileString("DayMA",strKey,strValue);
    PlotNumeric("MA",MA);
End

  3. 新建一个公式应用，My5MinMA。编译成功后插入5分钟图表中，详细代码如下：

    4. Vars
    NumericSeries DayMAValue;
    string strKey;
    string strValue;
Begin
    strKey = DateToString(Date);
    strValue = GetTBProfileString("DayMA",strKey);
    If(strValue != InvalidString)
    {
        DayMAValue = Value(strValue);
    }Else
    {
        DayMAValue = DayMAValue[1];
    }
    PlotNumeric("DayMA",DayMAValue);
End

  4. 上面的公式实际使用了未来数据，用来写技术分析是可以的，但用来进行自动交易就会出问题，为了更准确合理的使用跨周期数据，我们应该稍作修改，代码如下：

    5. Vars
    NumericSeries DayMAValue;
    StringSeries strKey;
    string strValue;
Begin
    If(Date!=Date[1])
    {
        strKey = DateToString(Date[1]);
    }Else
    {
        strKey = strKey[1];
    }

    strValue = GetTBProfileString("DayMA",strKey);
    If(strValue != InvalidString)
    {
        DayMAValue = Value(strValue);
    }Else
    {
        DayMAValue = DayMAValue[1];
    }
    PlotNumeric("DayMA",DayMAValue);
End

本例运行时界面如下图所示：


交易策略参数优化

在超级图表中插入一个或一个以上公式应用后，菜单和工具栏中的交易策略参数优化选项将会有效，您可以通过点击菜单项或工具栏使用该功能。

交易策略参数优化模块可对多个公式应用组合的所有参数进行优化，您可以通过参数设置界面对需要优化的参数进行设置，界面如下：

参数优化目标有以下九种选项：

  • 净利润最大: 以优化结果中的净利润最大为目标，保留指定数量的记录数；

  • 交易手数最大: 以优化结果中的交易手数最大为目标，保留指定数量的记录数；

  • 平均净利润最大: 以优化结果中的平均净利润最大为目标，保留指定数量的记录数；

  • 盈利因子最大: 以优化结果中的盈利因子最大为目标，保留指定数量的记录数；

  • 盈利比率最大: 以优化结果中的盈利比率最大为目标，保留指定数量的记录数；

  • 盈亏比率最大: 以优化结果中的盈亏比率最大为目标，保留指定数量的记录数；

  • 收益率最大: 以优化结果中的收益率最大为目标，保留指定数量的记录数；

  • 头寸系数最大: 以优化结果中的头寸系数最大为目标，保留指定数量的记录数；

  • TB系数最大: 以优化结果中的TB系数最大为目标，保留指定数量的记录数。

通过双击参数项或点击参数设置按钮，对选中的参数项进行步长设置，界面如下：

您可以设置参数的最小值，步长及最大值，系统将会根据设置，产生从最小值到最大值之间按步长分布的参数列表。

在各项参数设置完成之后，点击确定按钮，将会进行参数优化的计算，参数优化计算过程中会显示优化的进程，时间，当前参数，最优参数以及优化目标等信息，您可以通过点击取消按钮终止计算。

注意: 根据优化参数设置的多少，优化时间可能长达几小时甚至数天，优化过程中，CPU将会大量被占用，您可以选择空闲的时间进行大量参数优化计算。

参数优化计算完成之后，将会显示出最优的记录，您可以通过工具栏的交易设置按钮修改交易参数，也可以通过重新优化按钮进行重新计算。


性能测试

在超级图表中插入一个或一个以上公式应用后，菜单和工具栏中的[投资组合性能测试报告]选项将会有效，点击选项可以打开投资组合数据汇总，如果只有一个公式应用则直接打开交易策略测试报告。投资组合数据汇总的内容和交易策略参数优化报告类似。您可以双击汇总列表中的某项打开对应的性能测试报告，双击汇总行则可以查看投资组合性能测试报告。您也可以通过点击公式应用设置,选择一个需要测试的交易策略,然后点击按钮[测试报告]或者右键公式应用名称-[性能测试]直接打开某个公式应用对应的性能测试报告。

性能测试报告内容

单个交易策略的测试报告内容和投资组合的测试报告基本一致。投资组合性能测试报表界面如下：

性能测试报表按照八个方面对交易策略或投资组合的报表进行分析，包括交易汇总、交易分析、交易记录、平仓分析、阶段总结、资产变化、图表分析和系统设置。

  • 交易汇总：按照多头交易、空头交易和全部交易列出当前交易策略的交易统计信息。

  • 交易分析：对当前策略的交易情况进行分析，包括交易分析、盈亏分析和连续盈亏分析。

  • 交易记录：按开仓平仓对所有交易进行配对组合，并计算盈亏及累计盈亏。

  • 平仓分析：按平仓记录对交易情况进行分析和汇总。

  • 阶段总结：按年、月对交易盈亏及次数进行统计。

  • 资产变化：列出资产的变化记录及统计信息。

  • 图表分析：按资产图表和盈亏图表两大类共十三小类对帐户进行图表分析。

  • 系统设置：显示交易策略的参数，设置以及数据等内容。


编译错误

基本编译错误

错误代码 | 错误描述
C0001 | 程序体不存在
C0017 | 参数声明的数据类型和初始值的数据类型不一致
C0018 | 变量声明的数据类型和初始值的数据类型不一致

语法语义错误

错误代码 | 错误描述
C0102 | 变量被重复定义
C0103 | 函数被重复定义
C0107 | 变量声明的数据类型错误
C0108 | 参数声明的数据类型错误
C0109 | 公式返回的数据类型错误
C0110 | 命名的第一个字符不能是$
C0111 | 向前引用指示必须是数值型变量或常量
C0112 | 赋值语句左右值必须使用同类数据类型
C0114 | 赋值语句左值必须是变量而不能为常量
C0115 | 赋值语句左值变量不可使用向前引用
C0116 | 逻辑运算语句的左右值的数据类型必须属于Bool类
C0117 | 算术运算语句的左右值的数据类型必须属于Numeric类
C0118 | If条件表达式数据类型必须属于Bool类
C0119 | While条件表达式数据类型必须属于Bool类
C0120 | For语句起步和终止条件表达式数据类型必须属于Numeric类
C0121 | FOR语句的循环变量不能为Numericref类型
C0122 | Return语句的返回值类型与公式定义的返回值类型不符
C0126 | 关系运算语句的左右值的数据类型必须相同
C0127 | 参数缺少初始值
C0128 | 引用参数不应含初始值
C0133 | 赋值语句的左值只能为变量或者为引用类型的参数
C0135 | 本参数无初始值,则要求公式体内的前几个参数也不能有初始值

公式调用错误

错误代码 | 错误描述
L0003 | 函数实现的参数列表和预声明的参数列表不符合
L0004 | 函数调用时的参数数目与声明时不符合（太少的调用参数）
L0005 | 函数调用时的参数数目与声明时不符合（太多的调用参数）
L0006 | 被调用函数的序列参数不能使用默认值
L0007 | 被调用函数的引用参数不能使用默认值
L0008 | 只有序列变量和参数才能使用回溯值
L0013 | 函数的第一个参数必须是字符常量
L0014 | 被调用公式要求引用参数时，该参数只能以普通变量或引用参数方式传入

公式警告

W0201 FOR,WHILE,IF,ELSE中包含序列函数，可能存在潜在的逻辑错误，请确认代码无误


系统函数

附录B - 系统函数

字母索引

A

A_AccountID: 返回当前公式应用的交易帐户ID。

A_BrokerID: 返回当前公式应用的交易帐户对应的交易商ID。

A_BuyAvgPrice: 返回当前公式应用的帐户下当前商品的买入持仓均价。

A_BuyPosition: 返回当前公式应用的帐户下当前商品的买入持仓。

A_BuyProfitLoss: 返回当前公式应用的帐户下当前商品的买入持仓盈亏。

A_CurrentEquity: 返回当前公式应用的交易帐户的动态权益。

A_DeleteOrder: 针对当前公式应用的帐户、商品发送撤单指令。

A_FreeMargin: 返回当前公式应用的交易帐户的可用资金。

A_GetLastOpenOrderIndex: 返回当前公式应用的帐户下当前商品的最后一个未成交委托单索引，按输入参数为条件。

A_GetLastOrderIndex: 返回当前公式应用的帐户下当前商品的最后一个当日委托单索引，按输入参数为条件。

A_GetOpenOrderCount: 返回当前公式应用的帐户下当前商品的未成交委托单数量。

A_GetOrderCount: 返回当前公式应用的帐户下当前商品的当日委托单数量。

A_OpenOrderBuyOrSell: 返回当前公式应用的帐户下当前商品的某个未成交委托单的买卖类型。

A_OpenOrderContractNo: 返回当前公式应用的帐户下当前商品的某个委托单的合同号。

A_OpenOrderEntryOrExit: 返回当前公式应用的帐户下当前商品的某个未成交委托单的开平仓状态。

A_OpenOrderFilledLot: 返回当前公式应用的帐户下当前商品的某个未成交委托单的成交数量。

A_OpenOrderFilledPrice: 返回当前公式应用的帐户下当前商品的某个未成交委托单的成交价格。

A_OpenOrderLot: 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托数量。

A_OpenOrderPrice: 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托价格。

A_OpenOrderStatus: 返回当前公式应用的帐户下当前商品的某个未成交委托单的状态。

A_OpenOrderTime: 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托时间。

A_OrderBuyOrSell: 返回当前公式应用的帐户下当前商品的某个委托单的买卖类型。

A_OrderCanceledLot: 返回当前公式应用的帐户下当前商品的某个委托单的撤单数量。

A_OrderContractNo: 返回当前公式应用的帐户下当前商品的某个委托单的合同号。

A_OrderEntryOrExit: 返回当前公式应用的帐户下当前商品的某个委托单的开平仓状态。

A_OrderFilledLot: 返回当前公式应用的帐户下当前商品的某个委托单的成交数量。

A_OrderFilledPrice: 返回当前公式应用的帐户下当前商品的某个委托单的成交价格。

A_OrderLot: 返回当前公式应用的帐户下当前商品的某个委托单的委托数量。

A_OrderPrice: 返回当前公式应用的帐户下当前商品的某个委托单的委托价格。

A_OrderStatus: 返回当前公式应用的帐户下当前商品的某个委托单的状态。

A_OrderTime: 返回当前公式应用的帐户下当前商品的某个委托单的委托时间。

A_PositionProfitLoss: 返回当前公式应用的帐户下当前商品的持仓盈亏。

A_PreviousEquity: 返回当前公式应用的交易帐户的昨日结存。

A_ProfitLoss: 返回当前公式应用的交易帐户的浮动盈亏。

A_SellAvgPrice: 返回当前公式应用的帐户下当前商品的卖出持仓均价。

A_SellPosition: 返回当前公式应用的帐户下当前商品的卖出持仓。

A_SellProfitLoss: 返回当前公式应用的帐户下当前商品的卖出持仓盈亏。

A_SendOrder: 针对当前公式应用的帐户、商品发送委托单。

A_TodayBuyPosition: 返回当前公式应用的帐户下当前商品的当日买入持仓。

A_TodayDeposit: 返回当前公式应用的交易帐户的当日入金。

A_TodayDrawing: 返回当前公式应用的交易帐户的当日出金。

A_TodaySellPosition: 返回当前公式应用的帐户下当前商品的当日卖出持仓。

A_TotalAvgPrice: 返回当前公式应用的帐户下当前商品的持仓均价。

A_TotalPosition: 返回当前公式应用的帐户下当前商品的总持仓。

Abs: 返回参数的绝对值。

AccountDataExist: 当前公式应用商品的帐户数据是否有效。

Acos: 返回参数的反余弦值。

Acosh: 返回参数的反双曲余弦值。

Alert: 产生一个报警动作。

AlertEnabled: 返回当前公式应用的报警设置。

Asin: 返回参数的反正弦值。

Asinh: 返回参数的反双曲正弦值。

Atan: 返回参数的反正切值。

Atan2: 返回给定的X及Y坐标值的反正切值。

Atanh: 返回参数的反双曲正切值。

AvgBarsEvenTrade: 获得保本交易的平均持仓Bar数。

AvgBarsLosTrade: 获得亏损交易的平均持仓Bar数。

AvgBarsWinTrade: 获得盈利交易的平均持仓Bar数。

AvgEntryPrice: 获得当前持仓的平均建仓价格。

B
回到顶部

BarCount: 当前公式应用商品数据的Bar总数。

BarInterval: 当前公式应用商品数据的周期数值。

BarsSinceEntry: 获得当前持仓的第一个建仓位置到当前位置的Bar计数。

BarsSinceExit: 获得最近平仓位置到当前位置的Bar计数。

BarsSinceLastEntry: 获得当前持仓的最后一个建仓位置到当前位置的Bar计数。

BarStatus: 当前公式应用商品当前Bar的状态值。

BarType: 当前公式应用商品数据的周期类型值。

BidAskSize: 当前公式应用商品数据的买卖盘个数。

BigPointValue: 当前公式应用商品数据的一个整数点的价值。

Black: 返回黑色的RGB值

Blue: 返回蓝色的RGB值

Buy: 产生一个多头建仓操作。

BuyToCover: 产生一个空头平仓操作。

C
回到顶部

C: 当前公式应用商品在当前Bar的收盘价。

CanMarketOrder: 当前公式应用商品是否支持市价委托。

CanShortTrade: 当前公式应用商品是否支持空头交易。

CanStopOrder: 当前公式应用商品是否支持STOP委托。

CanTrade: 当前公式应用商品是否支持交易。

Category: 当前公式应用商品的大类信息。

Ceiling: 将参数 Number 沿绝对值增大的方向，舍入为最接近的整数或基数Significance的最小倍数。

Close: 当前公式应用商品在当前Bar的收盘价。

Combin: 计算从给定数目的对象集合中提取若干对象的组合数。

Commentary: 在超级图表当前Bar添加一行注释信息。

ContractProfit: 获得当前持仓位置的每手浮动盈亏。

ContractSize: 当前商品的合约大小。

ContractUnit: 当前公式应用商品的每张合约包含的基本单位数量。

Cos: 返回给定角度的余弦值。

Cosh: 返回参数的双曲余弦值。

Ctan: 返回给定角度的余切值。

CurrencyName: 当前公式应用商品交易的货币名称。

CurrencySymbol: 当前公式应用商品交易的货币符号。

CurrentBar: 当前公式应用商品在当前Bar的索引值。

CurrentContracts: 获得当前持仓的持仓合约数。

CurrentDate: 获取交易开拓者平台的当前日期。

CurrentEntries: 获得当前持仓的建仓次数。

CurrentTime: 获取交易开拓者平台的当前时间。

Cyan: 返回青色的RGB值。

D
回到顶部

D: 当前公式应用商品在当前Bar的日期。

DarkBrown: 返回茶色的RGB值。

DarkCyan: 返回深青色的RGB值

DarkGray: 返回深灰色的RGB值。

DarkGreen: 返回深绿色的RGB值。

DarkMagenta: 返回深褐色的RGB值。

DarkRed: 返回深红色的RGB值。

DataCount: 当前公式应用图表数据源的总数。

Date: 当前公式应用商品在当前Bar的日期。

DateAdd: 返回已添加指定天数的日期。

DateDiff: 返回两个日期之间的天数间隔。

DateTimeToString: 将日期时间值转化为字符串类型。

DateToString: 将日期值转化为字符串类型。

Day: 获得当前Bar的日信息。

DayFromDateTime: 获取输入日期时间的日信息。

DefaultColor: 返回默认颜色值。

E
回到顶部

EntryDate: 获得当前持仓的第一个建仓位置的日期。

EntryPrice: 获得当前持仓的第一个建仓价格。

EntryTime: 获得当前持仓的第一个建仓位置的时间。

Enum_Buy: 返回买卖状态的买入枚举值。

Enum_Canceled: 返回委托状态的已撤单枚举值。

Enum_Canceling: 返回委托状态的正在撤单枚举值。

Enum_Declare: 返回委托状态的正在申报枚举值。

Enum_Declared: 返回委托状态的已申报枚举值。

Enum_Deleted: 返回委托状态的已废除枚举值。

Enum_Entry: 返回开平仓状态的开仓枚举值。

Enum_Exit: 返回开平仓状态的平仓枚举值。

Enum_ExitToday: 返回开平仓状态的平今仓枚举值。

Enum_Filled: 返回委托状态的全部成交枚举值。

Enum_FillPart: 返回委托状态的部分成交枚举值。

Enum_Sell: 返回委托状态的部分成交枚举值。

Even: 返回沿绝对值增大方向取整后最接近的偶数。

Exact: 该函数测试两个字符串是否完全相同。

ExchangeName: 当前公式应用商品的交易所名称。

ExitDate: 获得最近平仓位置Bar日期。

ExitPrice: 获得最近平仓位置的平仓价格。

ExitTime: 获得最近平仓位置Bar时间。

Exp: 返回e的Number次幂。

ExpiredDate: 当前公式应用商品的最后交易日。

F
回到顶部

Fact: 返回数的阶乘。

FileAppend: 在指定文件中追加一行字符串。

FileDelete: 删除指定文件。

Floor: 将参数 Number 沿绝对值减小的方向去尾舍入，使其等于最接近的 Significance 的倍数。

FormulaName: 获得当前执行的公式名称。

FracPart: 返回实数舍入后的小数值。

Friday: 获得星期五的值。

G
回到顶部

GetGlobalVar: 获取某个索引的全局变量值。

GetTBProfileString: 读取公式信息文件指定块中的键名对应的字符串。

GetTBProfileString2File: 读取公式信息文件指定块中的键名对应的字符串。

GetUserID: 当前登录的用户ID。

Green: 返回绿色的RGB值。

GrossLoss: 获得累计的总亏损。

GrossProfit: 获得累计的总利润。

H
回到顶部

H: 当前公式应用商品在当前Bar的最高价。

High: 当前公式应用商品在当前Bar的最高价。

HistoryDataExist: 当前公式应用商品的历史数据是否有效。

Hour: 获得当前Bar的小时信息。

HourFromDateTime: 获取输入日期时间的小时信息。

I
回到顶部

IIF: 执行真假值判断，根据逻辑测试的真假值返回不同的数值。

IIFString: 执行真假值判断，根据逻辑测试的真假值返回不同的字符串。

InitialMargin: 当前公式应用商品的初始保证金。

IntPart: 返回实数舍入后的整数值。

InvalidInteger: 返回整型的无效值。

InvalidNumeric: 返回数值型的无效值。

InvalidString: 字符串的无效值。

J
回到顶部

K
回到顶部

L
回到顶部

L: 当前公式应用商品在当前Bar的最低价。

LargestLosTrade: 获得最大单次交易亏损数。

LargestWinTrade: 获得最大单次交易盈利数。

LastEntryDate: 获得当前持仓的最后一个建仓位置的日期。

LastEntryPrice: 获得当前持仓的最后一个建仓价格。

LastEntryTime: 获得当前持仓的最后一个建仓位置的时间。

Left: 返回文本串的前lCount位。

Len: 返回文本串中的字符数。

LightGray: 返回浅灰色的RGB值。

Ln: 返回一个数的自然对数。

Log: 按所指定的底数，返回一个数的对数。

Low: 当前公式应用商品在当前Bar的最低价。

Lower: 将一个文字串中的所有大写字母转换为小写字母。

M
回到顶部

Magenta: 返回紫红色的RGB值。

MaintenanceMargin: 当前公式应用商品的维持保证金。

MakeDate: 将参数生成日期值。

MakeDateTime: 将参数生成日期时间值。

MakeTime: 将参数生成时间值。

MarginRatio: 当前公式应用商品的默认保证金比率

MarketPosition: 获得当前持仓状态。

MaxBarsBack: 获得公式应用所需的最大回溯Bar数

MaxConsecLosers: 获得最大连续亏损交易手数。

MaxConsecWinners: 获得最大连续盈利交易手数。

MaxContracts: 获得当前持仓的最大持仓合约数。

MaxContractsHeld: 获得最大的持仓合约数

MaxEntries: 获得最大的建仓次数。

MaxPositionLoss: 获得当前持仓的最大浮动亏损数。

MaxPositionProfit: 获得当前持仓的最大浮动盈利数。

MaxSingleTradeSize: 当前公式应用商品的单笔交易限量。

Mid: 返回文本串的后lCount位。

MilliSecond: 获得当前Bar的毫秒信息。

MilliSecondFromDateTime: 获取输入日期时间的毫秒信息。

MinMove: 当前公式应用商品的最小变动量。

Minute: 获得当前Bar的分钟信息。

MinuteFromDateTime: 获取输入日期时间的分钟信息。

MinuteFromDateTime: 获取输入日期时间的分钟信息。

Mod: 返回两数相除的余数。

Monday: 获得星期一的值。

Month: 获得当前Bar的月信息。

N
回到顶部

Neg: 返回参数的负绝对值。

NetProfit: 获得累计的净利润。

NumEvenTrades: 获得保本交易的总手数。

NumLosTrades: 获得亏损交易的总手数。

NumWinTrades: 获得盈利交易的总手数。

O
回到顶部

O: 当前公式应用商品在当前Bar的开盘价。

Odd: 返回对指定数值进行舍入后的奇数。

Open: 当前公式应用商品在当前Bar的开盘价。

OpenInt: 当前公式应用商品在当前Bar的持仓量。

P
回到顶部

PercentProfit: 获得盈利的成功率。

Pi: 返回数字3.1415926535898。

PlayWavSound: 播放指定路径的Wav声音文件。

PlotBool: 在当前Bar输出一个布尔值。

PlotNumeric: 在当前Bar输出一个数值。

PlotString: 在当前Bar输出一个字符串。

PositionProfit: 获得当前持仓位置的浮动盈亏。

Power: 返回给定数字的乘幂。

PriceScale: 当前公式应用商品的计数单位。

Portfolio_CurrentCapital: 获得按当前Bar开盘价计算的可用资金。

Portfolio_CurrentEntries: 获得投资组合的当前建仓次数。

Portfolio_CurrentEquity: 获得投资组合的动态权益。

Portfolio_GrossLoss: 获得投资组合的毛损。

Portfolio_GrossProfit: 获得投资组合的毛利。

Portfolio_InitCapital: 获得投资组合的初始资金。

Portfolio_MaxDrawDown: 获得投资组合的最大资产回撤。

Portfolio_MaxDrawDownRatio: 获得投资组合的最大资产回撤比率。

Portfolio_NetProfit: 获得投资组合的净利润。

Portfolio_NumLossTrades: 获得投资组合的交易亏损手数。

Portfolio_NumWinTrades: 获得投资组合的交易盈利手数。

Portfolio_PercentProfit: 获得投资组合的交易成功率。

Portfolio_PositionProfit: 获得投资组合的浮动盈亏。

Portfolio_TotalProfit: 获得投资组合的累计交易盈亏。

Portfolio_TotalTrades: 获得投资组合的总交易手数。

Portfolio_UsedMargin: 获得当前的持仓保证金。

Q
回到顶部

Q_AskPrice: 当前公式应用商品的最新卖盘价格。

Q_AskPriceFlag: 当前公式应用商品的卖盘价格变化标志。

Q_AskVol: 当前公式应用商品的最新卖盘量。

Q_AvgPrice: 当前公式应用商品的实时均价。

Q_BidPrice: 当前公式应用商品的最新买盘价格。

Q_BidPriceFlag: 当前公式应用商品的买盘价格变化标志。

Q_BidVol: 当前公式应用商品的最新买盘量。

Q_Close: 当前公式应用商品的当日收盘价。

Q_High: 当前公式应用商品的当日最高价。

Q_HisHigh: 当前公式应用商品的历史最高价。

Q_HisLow: 当前公式应用商品的历史最低价。

Q_InsideVol: 当前公式应用商品的内盘。

Q_Last: 当前公式应用商品的最新价。

Q_LastDate: 当前公式应用商品的最新成交日期。

Q_LastFlag: 当前公式应用商品的最新价变化标志。

Q_LastTime: 当前公式应用商品的最新成交时间。

Q_LastVol: 当前公式应用商品的现手。

Q_Low: 当前公式应用商品的当日最低价。

Q_LowerLimit: 当前公式应用商品的当日跌停板价。

Q_Open: 当前公式应用商品的当日开盘价。

Q_OpenInt: 当前公式应用商品的持仓量。

Q_OpenIntFlag: 当前公式应用商品的持仓量变化标志。

Q_Oscillation: 当前公式应用商品的振幅。

Q_OutsideVol: 当前公式应用商品的外盘。

Q_PreOpenInt: 当前公式应用商品的昨日持仓量。

Q_PreSettlePrice: 当前公式应用商品的昨日结算价。

Q_PriceChg: 当前公式应用商品的当日涨跌。

Q_PriceChgRatio: 当前公式应用商品的当日涨跌幅。

Q_TickChg: 当前公式应用商品的最新笔升跌。

Q_TodayEntryVol: 当前公式应用商品的当日开仓量。

Q_TodayExitVol: 当前公式应用商品的当日平仓量。

Q_TotalVol: 当前公式应用商品的当日成交量。

Q_TurnOver: 当前公式应用商品的成交金额。

Q_UpperLimit: 当前公式应用商品的当日涨停板价。

QuoteDataExist: 当前公式应用商品的行情数据是否有效。

R
回到顶部

Rand: 返回位于两个指定数之间的一个随机数。

Red: 返回红色的RGB值。

Rgb: 返回自定义颜色值。

Right: 返回文本串的从lFirst开始的lCount位。

Round: 返回某个数字按指定位数舍入后的数字。

RoundDown: 靠近零值，向下（绝对值减小的方向）舍入数字。

RoundUp: 远离零值，向上（绝对值增大的方向）舍入数字。

S
回到顶部

Saturday: 获得星期六的值。

Second: 获得当前Bar的秒信息。

SecondFromDateTime: 获取输入日期时间的秒信息。

Sell: 产生一个多头平仓操作。

SellShort: 产生一个空头建仓操作。

SetGlobalVar: 设置某个索引的全局变量值。

SetTBProfileString: 把给定的键名及其值写入到公式信息文件的相应块中。

SetTBProfileString2File: 把给定的键名及其值写入到公式信息文件的相应块中。

Sign: 返回数字的符号。

Sin: 返回给定角度的正弦值。

Sinh: 返回某一数字的双曲正弦值。

Sqr: 返回参数的平方。

Sqrt: 返回参数的正平方根。

StringToDate: 将字符串转化为日期。

StringToDateTime: 将字符串转化为日期时间。

StringToTime: 将字符串转化为时间。

Sunday: 获得星期日的值。

Symbol: 当前公式应用商品的代码。

SymbolName: 当前公式应用商品的名称。

SymbolType: 当前公式应用商品的类型。

SystemDateTime: 获取交易开拓者平台的当前日期时间。

T
回到顶部

T: 当前公式应用商品在当前Bar的时间。

Tan: 返回给定角度的正切值。

Tanh: 返回某一数字的双曲正切值。

Text: 将参数中的数字转化为字符串。

Thursday: 获得星期四的值。

Time: 当前公式应用商品在当前Bar的时间。

TimeDiff: 返回两个时间之间的间隔秒数，忽略日期差异。

TimeToString: 将时间值转化为字符串类型。

TotalBarsEvenTrades: 获得保本交易的总持仓Bar数。

TotalBarsLosTrades: 获得亏损交易的总持仓Bar数。

TotalBarsWinTrades: 获得盈利交易的总持仓Bar数。

TotalTrades: 获得交易的总手数。

Trim: 除了文本两边所有的空格。

Tuesday: 获得星期二的值。

U
回到顶部

Unplot: 删除曾经输出的值。

Upper: 将一个文字串中的所有小写字母转换为大写字母。

V
回到顶部

V: 当前公式应用商品在当前Bar的成交量。

Value: 将代表数字的文字串转换成数字。

Vol: 当前公式应用商品在当前Bar的成交量。

W
回到顶部

Wednesday: 获得星期三的值。

Weekday: 获得当前Bar的周信息。

WeekdayFromDateTime: 获取输入日期时间的周信息。

White: 返回白色的RGB值

X
回到顶部

Y
回到顶部

Year: 获得当前Bar的年信息。

YearFromDateTime: 获取输入日期时间的年信息。

Yellow: 返回黄色的RGB值

Z
回到顶部


系统函数

附录C - 系统函数

分类索引

数学函数, 字符串函数, 颜色函数, 时间函数, 数据函数, 属性函数, 行情函数, 帐户函数, 枚举函数, 交易函数, 其他函数, 策略性能, 策略状态, 组合性能, 组合状态

数学函数

Abs: 返回参数的绝对值。

Acos: 返回参数的反余弦值。

Acosh: 返回参数的反双曲余弦值。

Asin: 返回参数的反正弦值。

Asinh: 返回参数的反双曲正弦值。

Atan: 返回参数的反正切值。

Atan2: 返回给定的X及Y坐标值的反正切值。

Atanh: 返回参数的反双曲正切值。

Ceiling: 将参数 Number 沿绝对值增大的方向，舍入为最接近的整数或基数Significance的最小倍数。

Combin: 计算从给定数目的对象集合中提取若干对象的组合数。

Cos: 返回给定角度的余弦值。

Cosh: 返回参数的双曲余弦值。

Ctan: 返回给定角度的余切值。

Even: 返回沿绝对值增大方向取整后最接近的偶数。

Exp: 返回e的Number次幂。

Fact: 返回数的阶乘。

Floor: 将参数 Number 沿绝对值减小的方向去尾舍入，使其等于最接近的 Significance 的倍数。

FracPart: 返回实数舍入后的小数值。

IntPart: 返回实数舍入后的整数值。

Ln: 返回一个数的自然对数。

Log: 按所指定的底数，返回一个数的对数。

Mod: 返回两数相除的余数。

Neg: 返回参数的负绝对值。

Odd: 返回对指定数值进行舍入后的奇数。

Pi: 返回数字3.1415926535898。

Power: 返回给定数字的乘幂。

Rand: 返回位于两个指定数之间的一个随机数。

Round: 返回某个数字按指定位数舍入后的数字。

RoundDown: 靠近零值，向下（绝对值减小的方向）舍入数字。

RoundUp: 远离零值，向上（绝对值增大的方向）舍入数字。

Sign: 返回数字的符号。

Sin: 返回给定角度的正弦值。

Sinh: 返回某一数字的双曲正弦值。

Sqr: 返回参数的平方。

Sqrt: 返回参数的正平方根。

Tan: 返回给定角度的正切值。

Tanh: 返回某一数字的双曲正切值。

字符串函数
回到顶部

Exact: 该函数测试两个字符串是否完全相同。

Left: 返回文本串的前lCount位。

Len: 返回文本串中的字符数。

Lower: 将一个文字串中的所有大写字母转换为小写字母。

Mid: 返回文本串的后lCount位。

Right: 返回文本串的从lFirst开始的lCount位。

Text: 将参数中的数字转化为字符串。

Trim: 除了文本两边所有的空格。

Upper: 将一个文字串中的所有小写字母转换为大写字母。

Value: 将代表数字的文字串转换成数字。

颜色函数
回到顶部

Black: 返回黑色的RGB值

Blue: 返回蓝色的RGB值

Cyan: 返回青色的RGB值。

DarkBrown: 返回茶色的RGB值。

DarkCyan: 返回深青色的RGB值

DarkGray: 返回深灰色的RGB值。

DarkGreen: 返回深绿色的RGB值。

DarkMagenta: 返回深褐色的RGB值。

DarkRed: 返回深红色的RGB值。

DefaultColor: 返回默认颜色值。

Green: 返回绿色的RGB值。

LightGray: 返回浅灰色的RGB值。

Magenta: 返回紫红色的RGB值。

Red: 返回红色的RGB值。

Rgb: 返回自定义颜色值。

White: 返回白色的RGB值

Yellow: 返回黄色的RGB值

时间函数
回到顶部

CurrentDate: 获取交易开拓者平台的当前日期。

CurrentTime: 获取交易开拓者平台的当前时间。

DateAdd: 返回已添加指定天数的日期。

DateDiff: 返回两个日期之间的天数间隔。

DateTimeToString: 将日期时间值转化为字符串类型。

DateToString: 将日期值转化为字符串类型。

Day: 获得当前Bar的日信息。

Friday: 获得星期五的值。

Hour: 获得当前Bar的小时信息。

HourFromDateTime: 获取输入日期时间的小时信息。

MakeDate: 将参数生成日期值。

MakeDateTime: 将参数生成日期时间值。

MakeTime: 将参数生成时间值。

MilliSecond: 获得当前Bar的毫秒信息。

MilliSecondFromDateTime: 获取输入日期时间的毫秒信息。

Minute: 获得当前Bar的分钟信息。

MinuteFromDateTime: 获取输入日期时间的分钟信息。

Monday: 获得星期一的值。

Month: 获得当前Bar的月信息。

MonthFromDateTime: 获取输入日期时间的月信息。

Saturday: 获得星期六的值。

Second: 获得当前Bar的秒信息。

SecondFromDateTime: 获取输入日期时间的秒信息。

StringToDate: 将字符串转化为日期。

StringToDateTime: 将字符串转化为日期时间。

StringToTime: 将字符串转化为时间。

Sunday: 获得星期日的值。

SystemDateTime: 获取交易开拓者平台的当前日期时间。

Thursday: 获得星期四的值。

TimeDiff: 返回两个时间之间的间隔秒数，忽略日期差异。

TimeToString: 将时间值转化为字符串类型。

Tuesday: 获得星期二的值。

Wednesday: 获得星期三的值。

Weekday: 获得当前Bar的周信息。

WeekdayFromDateTime: 获取输入日期时间的周信息。

Year: 获得当前Bar的年信息。

YearFromDateTime: 获取输入日期时间的年信息。

数据函数
回到顶部

BarCount: 当前公式应用商品数据的Bar总数。

BarStatus: 当前公式应用商品当前Bar的状态值。

C: 当前公式应用商品在当前Bar的收盘价。

Close: 当前公式应用商品在当前Bar的收盘价。

CurrentBar: 当前公式应用商品在当前Bar的索引值。

D: 当前公式应用商品在当前Bar的日期。

Date: 当前公式应用商品在当前Bar的日期。

H: 当前公式应用商品在当前Bar的最高价。

High: 当前公式应用商品在当前Bar的最高价。

HistoryDataExist: 当前公式应用商品的历史数据是否有效。

L: 当前公式应用商品在当前Bar的最低价。

Low: 当前公式应用商品在当前Bar的最低价。

O: 当前公式应用商品在当前Bar的开盘价。

Open: 当前公式应用商品在当前Bar的开盘价。

OpenInt: 当前公式应用商品在当前Bar的持仓量。

T: 当前公式应用商品在当前Bar的时间。

Time: 当前公式应用商品在当前Bar的时间。

V: 当前公式应用商品在当前Bar的成交量。

Vol: 当前公式应用商品在当前Bar的成交量。

属性函数
回到顶部

BarInterval: 当前公式应用商品数据的周期数值。

BarType: 当前公式应用商品数据的周期类型值。

BidAskSize: 当前公式应用商品数据的买卖盘个数。

BigPointValue: 当前公式应用商品数据的一个整数点的价值。

CanMarketOrder: 当前公式应用商品是否支持市价委托。

CanShortTrade: 当前公式应用商品是否支持空头交易。

CanStopOrder: 当前公式应用商品是否支持STOP委托。

CanTrade: 当前公式应用商品是否支持交易。

Category: 当前公式应用商品的大类信息。

ContractSize: 当前商品的合约大小。

ContractUnit: 当前公式应用商品的每张合约包含的基本单位数量。

CurrencyName: 当前公式应用商品交易的货币名称。

CurrencySymbol: 当前公式应用商品交易的货币符号。

DataCount: 当前公式应用图表数据源的总数。

ExchangeName: 当前公式应用商品的交易所名称。

ExpiredDate: 当前公式应用商品的最后交易日。

GetUserID: 当前登录的用户ID。

InitialMargin: 当前公式应用商品的初始保证金。

MaintenanceMargin: 当前公式应用商品的维持保证金。

MarginRatio: 当前公式应用商品的默认保证金比率

MaxBarsBack: 获得公式应用所需的最大回溯Bar数

MaxSingleTradeSize: 当前公式应用商品的单笔交易限量。

MinMove: 当前公式应用商品的最小变动量。

PriceScale: 当前公式应用商品的计数单位。

Symbol: 当前公式应用商品的代码。

SymbolName: 当前公式应用商品的名称。

SymbolType: 当前公式应用商品的类型。

行情函数
回到顶部

Q_AskPrice: 当前公式应用商品的最新卖盘价格。

Q_AskVol: 当前公式应用商品的最新卖盘量。

Q_AvgPrice: 当前公式应用商品的实时均价。

Q_AskPriceFlag: 当前公式应用商品的卖盘价格变化标志。

Q_BidPrice: 当前公式应用商品的最新买盘价格。

Q_BidPriceFlag: 当前公式应用商品的买盘价格变化标志。

Q_BidVol: 当前公式应用商品的最新买盘量。

Q_Close: 当前公式应用商品的当日收盘价。

Q_High: 当前公式应用商品的当日最高价。

Q_HisHigh: 当前公式应用商品的历史最高价。

Q_HisLow: 当前公式应用商品的历史最低价。

Q_InsideVol: 当前公式应用商品的内盘。

Q_Last: 当前公式应用商品的最新价。

Q_LastDate: 当前公式应用商品的最新成交日期。

Q_LastFlag: 当前公式应用商品的最新价变化标志。

Q_LastTime: 当前公式应用商品的最新成交时间。

Q_LastVol: 当前公式应用商品的现手。

Q_Low: 当前公式应用商品的当日最低价。

Q_LowerLimit: 当前公式应用商品的当日跌停板价。

Q_Open: 当前公式应用商品的当日开盘价。

Q_OpenInt: 当前公式应用商品的持仓量。

Q_OpenIntFlag: 当前公式应用商品的持仓量变化标志。

Q_Oscillation: 当前公式应用商品的振幅。

Q_OutsideVol: 当前公式应用商品的外盘。

Q_PreOpenInt: 当前公式应用商品的昨日持仓量。

Q_PreSettlePrice: 当前公式应用商品的昨日结算价。

Q_PriceChg: 当前公式应用商品的当日涨跌。

Q_PriceChgRatio: 当前公式应用商品的当日涨跌幅。

Q_TickChg: 当前公式应用商品的最新笔升跌。

Q_TodayEntryVol: 当前公式应用商品的当日开仓量。

Q_TodayExitVol: 当前公式应用商品的当日平仓量。

Q_TotalVol: 当前公式应用商品的当日成交量。

Q_TurnOver: 当前公式应用商品的成交金额。

Q_UpperLimit: 当前公式应用商品的当日涨停板价。

QuoteDataExist: 当前公式应用商品的行情数据是否有效。

帐户函数
回到顶部

A_AccountID: 返回当前公式应用的交易帐户ID。

A_BrokerID: 返回当前公式应用的交易帐户对应的交易商ID。

A_BuyAvgPrice: 返回当前公式应用的帐户下当前商品的买入持仓均价。

A_BuyPosition: 返回当前公式应用的帐户下当前商品的买入持仓。

A_BuyProfitLoss: 返回当前公式应用的帐户下当前商品的买入持仓盈亏。

A_CurrentEquity: 返回当前公式应用的交易帐户的动态权益。

A_DeleteOrder: 针对当前公式应用的帐户、商品发送撤单指令。

A_FreeMargin: 返回当前公式应用的交易帐户的可用资金。

A_GetLastOpenOrderIndex: 返回当前公式应用的帐户下当前商品的最后一个未成交委托单索引，按输入参数为条件。

A_GetLastOrderIndex: 返回当前公式应用的帐户下当前商品的最后一个当日委托单索引，按输入参数为条件。

A_GetOpenOrderCount: 返回当前公式应用的帐户下当前商品的未成交委托单数量。

A_GetOrderCount: 返回当前公式应用的帐户下当前商品的当日委托单数量。

A_OpenOrderBuyOrSell: 返回当前公式应用的帐户下当前商品的某个未成交委托单的买卖类型。

A_OpenOrderContractNo: 返回当前公式应用的帐户下当前商品的某个委托单的合同号。

A_OpenOrderEntryOrExit: 返回当前公式应用的帐户下当前商品的某个未成交委托单的开平仓状态。

A_OpenOrderFilledLot: 返回当前公式应用的帐户下当前商品的某个未成交委托单的成交数量。

A_OpenOrderFilledPrice: 返回当前公式应用的帐户下当前商品的某个未成交委托单的成交价格。

A_OpenOrderLot: 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托数量。

A_OpenOrderPrice: 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托价格。

A_OpenOrderStatus: 返回当前公式应用的帐户下当前商品的某个未成交委托单的状态。

A_OpenOrderTime: 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托时间。

A_OrderBuyOrSell: 返回当前公式应用的帐户下当前商品的某个委托单的买卖类型。

A_OrderContractNo: 返回当前公式应用的帐户下当前商品的某个委托单的合同号。

A_OrderCanceledLot: 返回当前公式应用的帐户下当前商品的某个委托单的撤单数量。

A_OrderEntryOrExit: 返回当前公式应用的帐户下当前商品的某个委托单的开平仓状态。

A_OrderFilledLot: 返回当前公式应用的帐户下当前商品的某个委托单的成交数量。

A_OrderFilledPrice: 返回当前公式应用的帐户下当前商品的某个委托单的成交价格。

A_OrderLot: 返回当前公式应用的帐户下当前商品的某个委托单的委托数量。

A_OrderPrice: 返回当前公式应用的帐户下当前商品的某个委托单的委托价格。

A_OrderStatus: 返回当前公式应用的帐户下当前商品的某个委托单的状态。

A_OrderTime: 返回当前公式应用的帐户下当前商品的某个委托单的委托时间。

A_PositionProfitLoss: 返回当前公式应用的帐户下当前商品的持仓盈亏。

A_PreviousEquity: 返回当前公式应用的交易帐户的昨日结存。

A_ProfitLoss: 返回当前公式应用的交易帐户的浮动盈亏。

A_SendOrder: 针对当前公式应用的帐户、商品发送委托单。

A_SellAvgPrice: 返回当前公式应用的帐户下当前商品的卖出持仓均价。

A_SellPosition: 返回当前公式应用的帐户下当前商品的卖出持仓。

A_SellProfitLoss: 返回当前公式应用的帐户下当前商品的卖出持仓盈亏。

A_TodayBuyPosition: 返回当前公式应用的帐户下当前商品的当日买入持仓。

A_TodayDeposit: 返回当前公式应用的交易帐户的当日入金。

A_TodayDrawing: 返回当前公式应用的交易帐户的当日出金。

A_TodaySellPosition: 返回当前公式应用的帐户下当前商品的当日卖出持仓。

A_TotalAvgPrice: 返回当前公式应用的帐户下当前商品的持仓均价。

A_TotalPosition: 返回当前公式应用的帐户下当前商品的总持仓。

AccountDataExist: 当前公式应用商品的帐户数据是否有效。

枚举函数
回到顶部

Enum_Buy: 返回买卖状态的买入枚举值。

Enum_Canceled: 返回委托状态的已撤单枚举值。

Enum_Canceling: 返回委托状态的正在撤单枚举值。

Enum_Declare: 返回委托状态的正在申报枚举值。

Enum_Declared: 返回委托状态的已申报枚举值。

Enum_Deleted: 返回委托状态的已废除枚举值。

Enum_Entry: 返回开平仓状态的开仓枚举值。

Enum_Exit: 返回开平仓状态的平仓枚举值。

Enum_ExitToday: 返回开平仓状态的平今仓枚举值。

Enum_Filled: 返回委托状态的全部成交枚举值。

Enum_FillPart: 返回委托状态的部分成交枚举值。

Enum_Sell: 返回买卖状态的卖出枚举值。

交易函数
回到顶部

Buy: 产生一个多头建仓操作。

BuyToCover: 产生一个空头平仓操作。

Sell: 产生一个多头平仓操作。

SellShort: 产生一个空头建仓操作。

其他函数
回到顶部

Alert: 产生一个报警动作。

AlertEnabled: 返回当前公式应用的报警设置。

Commentary: 在超级图表当前Bar添加一行注释信息。

FileAppend: 在指定文件中追加一行字符串。

FileDelete: 删除指定文件。

FormulaName: 获得当前执行的公式名称。

GetGlobalVar: 获取某个索引的全局变量值。

GetTBProfileString: 读取公式信息文件指定块中的键名对应的字符串。

GetTBProfileString2File: 读取公式信息文件指定块中的键名对应的字符串。

IIF: 执行真假值判断，根据逻辑测试的真假值返回不同的数值。

IIFString: 执行真假值判断，根据逻辑测试的真假值返回不同的字符串。

InvalidInteger: 返回整型的无效值。

InvalidNumeric: 返回数值型的无效值。

InvalidString: 字符串的无效值。

PlayWavSound: 播放指定路径的Wav声音文件。

PlotBool: 在当前Bar输出一个布尔值。

PlotNumeric: 在当前Bar输出一个数值。

PlotString: 在当前Bar输出一个字符串。

SetGlobalVar: 设置某个索引的全局变量值。

SetTBProfileString: 把给定的键名及其值写入到公式信息文件的相应块中。

SetTBProfileString2File: 把给定的键名及其值写入到公式信息文件的相应块中。

Unplot: 删除曾经输出的值。

策略性能
回到顶部

AvgBarsEvenTrade: 获得保本交易的平均持仓Bar数。

AvgBarsLosTrade: 获得亏损交易的平均持仓Bar数。

AvgBarsWinTrade: 获得盈利交易的平均持仓Bar数。

GrossLoss: 获得累计的总亏损。

GrossProfit: 获得累计的总利润。

LargestLosTrade: 获得最大单次交易亏损数。

LargestWinTrade: 获得最大单次交易盈利数。

MaxConsecLosers: 获得最大连续亏损交易手数。

MaxConsecWinners: 获得最大连续盈利交易手数。

MaxContractsHeld: 获得最大的持仓合约数

NetProfit: 获得累计的净利润。

NumEvenTrades: 获得保本交易的总手数。

NumLosTrades: 获得亏损交易的总手数。

NumWinTrades: 获得盈利交易的总手数。

PercentProfit: 获得盈利的成功率。

TotalBarsEvenTrades: 获得保本交易的总持仓Bar数。

TotalBarsLosTrades: 获得亏损交易的总持仓Bar数。

TotalBarsWinTrades: 获得盈利交易的总持仓Bar数。

TotalTrades: 获得交易的总手数。

策略状态
回到顶部

AvgEntryPrice: 获得当前持仓的平均建仓价格。

BarsSinceEntry: 获得当前持仓的第一个建仓位置到当前位置的Bar计数。

BarsSinceExit: 获得最近平仓位置到当前位置的Bar计数。

BarsSinceLastEntry: 获得当前持仓的最后一个建仓位置到当前位置的Bar计数。

ContractProfit: 获得当前持仓位置的每手浮动盈亏。

CurrentContracts: 获得当前持仓的持仓合约数。

CurrentEntries: 获得当前持仓的建仓次数。

EntryDate: 获得当前持仓的第一个建仓位置的日期。

EntryPrice: 获得当前持仓的第一个建仓价格。

EntryTime: 获得当前持仓的第一个建仓位置的时间。

ExitDate: 获得最近平仓位置Bar日期。

ExitPrice: 获得最近平仓位置的平仓价格。

ExitTime: 获得最近平仓位置Bar时间。

LastEntryDate: 获得当前持仓的最后一个建仓位置的日期。

LastEntryPrice: 获得当前持仓的最后一个建仓价格。

LastEntryTime: 获得当前持仓的最后一个建仓位置的时间。

MarketPosition: 获得当前持仓状态。

MaxContracts: 获得当前持仓的最大持仓合约数。

MaxEntries: 获得最大的建仓次数。

MaxPositionLoss: 获得当前持仓的最大浮动亏损数。

MaxPositionProfit: 获得当前持仓的最大浮动盈利数。

PositionProfit: 获得当前持仓位置的浮动盈亏。

组合性能
回到顶部

Portfolio_GrossLoss: 获得投资组合的毛损。

Portfolio_GrossProfit: 获得投资组合的毛利。

Portfolio_MaxDrawDown: 获得投资组合的最大资产回撤。

Portfolio_MaxDrawDownRatio: 获得投资组合的最大资产回撤比率。

Portfolio_NetProfit: 获得投资组合的净利润。

Portfolio_PercentProfit: 获得投资组合的交易成功率。

Portfolio_NumWinTrades: 获得投资组合的交易盈利手数。

Portfolio_NumLossTrades: 获得投资组合的交易亏损手数。

Portfolio_TotalTrades: 获得投资组合的总交易手数。

组合状态
回到顶部

Portfolio_CurrentCapital: 获得按当前Bar开盘价计算的可用资金。

Portfolio_CurrentEntries: 获得投资组合的当前建仓次数。

Portfolio_CurrentEquity: 获得投资组合的动态权益。

Portfolio_InitCapital: 获得投资组合的初始资金。

Portfolio_PositionProfit: 获得投资组合的浮动盈亏。

Portfolio_TotalProfit: 获得投资组合的累计交易盈亏。

Portfolio_UsedMargin: 获得当前的持仓保证金。


用户函数

附录D - 用户函数

 上一页

内建函数

AdaptiveMovAvg：求卡夫曼自适应移动平均。

Average：求平均。

AverageD：求N天以来的价格平均值。

AverageFC：快速计算平均值。

AvgDeviation：求平均背离。

AvgPrice：求平均价格。

AvgTrueRange：求平均真实范围。

BarsSinceToday：求当天的第一个数据到当前的Bar数。

CloseD：求N天前的收盘价。

CoefficientR：求皮尔森相关系数。

Correlation：求相关系数。

CountIf：获取最近N周期条件满足的计数。

Covar：求协方差。

CrossOver：求是否上穿。

CrossUnder：求是否下破。

Cum：求累计值。

DataConvert跨周期数据转换函数。

DEMA：求双指数移动平均。

Detrend：求趋势平滑。

DevSqrd：求偏差均方和。

Extremes：求极值。

Fisher：求Fisher变换。

FisherInv：求反Fisher变换。

HarmonicMean：求调和平均数。

HighD：求N天前的最高价。

Highest：求最高。

HighestBar：求最高值出现的Bar。

HighestBarFC：求最高值出现的Bar(快速计算版本)。

HighestFC：求最高(快速计算版本)。

Kurtosis：求峰度系数。

LinearReg：求线性回归。

LinearRegAngle：求线性回归角度。

LinearRegSlope：求线性回归斜率。

LinearRegValue：求线性回归值。

LowD：求N天前的最低价。

Lowest：求最低。

LowestBar：求最低值出现的Bar。

LowestBarFC：求最低值出现的Bar(快速计算版本)。

LowestFC：求最低(快速计算版本)。

Max：求最大值。

Median：求中位数。

MidPoint：求中点。

Min：求最小值。

Mode：求众数。

Momentum：求动量。

NthCon：第N个满足条件的Bar距当前的Bar数目。

NthExtremes：求N极值。

NthHigher：求第N高。

NthHigherBar：求第N高出现的Bar。

NthLower：求第N低。

NthLowerBar：求第N低出现的Bar。

OpenD：求N天前的开盘价。

OpenIntD：求N天前的持仓量。

ParabolicSAR：求抛物线转向。

PercentChange：求涨跌幅。

PercentR：求威廉指标。

Permutation：求排列。

Pivot：求转折。

PriceOscillator：求振荡。

RateOfChange：求变动率。

SAverage：求平滑平均。

Skewness：求偏度系数。

SMA：求移动平均。

StandardDev：求标准方差。

Summation：求和。

SummationFC：快速求和。

SwingHigh：求波峰点。

SwingHighBar：求波峰点出现的Bar。

SwingLow：求波谷点。

SwingLowBar：求波谷点出现的Bar。

TrueHigh：求真实高点。

TrueLow：求真实低点。

TrueRange：求真实范围。

VariancePS：求估计方差。

VolD：求N天前的成交量。

WAverage：求权重平均。

XAverage：求指数平均。


A_AccountID

说明 | 返回当前公式应用的交易帐户ID。
语法 | String A_AccountID()
参数 | 无
备注 | 返回当前公式应用的交易帐户ID，返回值为字符串，无效时返回空串。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接

  • 系统函数字母索引

  • 系统函数分类索引


A_BrokerID

说明 | 返回当前公式应用的交易帐户对应的交易商ID。
语法 | String A_BrokerID()
参数 | 无
备注 | 返回当前公式应用的交易帐户对应的交易商ID，返回值为字符串，无效时返回空串。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_BuyAvgPrice

说明 | 返回当前公式应用的帐户下当前商品的买入持仓均价。
语法 | Numeric A_BuyAvgPrice()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的买入持仓均价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_BuyPosition

说明 | 返回当前公式应用的帐户下当前商品的买入持仓。
语法 | Numeric A_BuyPosition()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的买入持仓，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 当前持多仓2手，A_BuyPosition返回2。

快速链接


A_BuyProfitLoss

说明 | 返回当前公式应用的帐户下当前商品的买入持仓盈亏。
语法 | Numeric A_BuyProfitLoss()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的买入持仓盈亏，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_CurrentEquity

说明 | 返回当前公式应用的交易帐户的动态权益。
语法 | Numeric A_CurrentEquity()
参数 | 无
备注 | 返回当前公式应用的交易帐户的动态权益，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_DeleteOrder

说明 | 针对当前公式应用的帐户、商品发送撤单指令。
语法 | Bool A_DeleteOrder(String strContractNo = "")
参数 strContractNo 所要撤委托单的合同号。
strContractNo = "" 时撤该帐户，该商品所有未成交委托单。
备注 针对当前公式应用的帐户、商品发送撤单指令，发送成功返回True,发送失败返回False。
该函数可针对叠加商品进行处理，可用Data1.A_DeleteOrder(...)进行调用。
该函数直接发单，不经过任何确认，并会在每次公式计算时发送，一般需要配合着仓位头寸进行条件处理，在不清楚运行机制的情况下，请慎用。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 If (A_GetOpenOrderCount()>0)
{
A_DeleteOrder();
...
}
或者用如下方式撤最后发送的未成交单:
If(A_GetOpenOrderCount()>0) {
A_DeleteOrder(A_OpenOrderContractNo());
...
}

快速链接


A_FreeMargin

说明 | 返回当前公式应用的交易帐户的可用资金。
语法 | Numeric A_FreeMargin()
参数 | 无
备注 | 返回当前公式应用的交易帐户的可用资金，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_GetLastOpenOrderIndex

说明 | 返回当前公式应用的帐户下当前商品的最后一个未成交委托单索引，按输入参数为条件。
语法 | Integer A_GetLastOpenOrderIndex(Integer BuyOrSell,Integer EntryOrExit)
参数 BuyOrSell 发送委托单的买卖类型，取值为Enum_Buy或Enum_Sell之一；
EntryOrExit 发送委托单的开平仓类型，取值为Enum_Entry,Enum_Exit,Enum_ExitToday之一；
备注 返回当前公式应用的帐户下当前商品的最后一个未成交委托单索引，按输入参数为条件，返回值为整型。
如果返回值不等于InvalidInteger，即为有效，可通过该索引获取相关的委托单状态，价格，数量等信息。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 LastIndex = A_GetLastOpenOrderIndex(Enum_Buy,Enum_Entry);
If(LastIndex != InvalidInteger)
{
orderPrice = A_OpenOrderPrice(LastIndex);
...
}

快速链接


A_GetLastOrderIndex

说明 | 返回当前公式应用的帐户下当前商品的最后一个当日委托单索引，按输入参数为条件。
语法 | Integer A_GetLastOrderIndex(Integer BuyOrSell,Integer EntryOrExit)
参数 BuyOrSell 发送委托单的买卖类型，取值为Enum_Buy或Enum_Sell之一；
EntryOrExit 发送委托单的开平仓类型，取值为Enum_Entry,Enum_Exit,Enum_ExitToday之一；
备注 返回当前公式应用的帐户下当前商品的最后一个当日委托单索引，按输入参数为条件，返回值为整型。
如果返回值不等于InvalidInteger，即为有效，可通过该索引获取相关的委托单状态，价格，数量等信息。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 LastIndex = A_GetLastOrderIndex(Enum_Buy,Enum_Entry);
If(LastIndex != InvalidInteger)
{
orderPrice = A_OrderPrice(LastIndex);
...
}

快速链接


A_GetOpenOrderCount

说明 | 返回当前公式应用的帐户下当前商品的未成交委托单数量。
语法 | Integer A_GetOpenOrderCount()
参数 | 无
备注 返回当前公式应用的帐户下当前商品的未成交委托单数量，返回值为整型。
该函数返回委托单数量中只包含未成交的类型：部分成交和已申报。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
nStatus = A_OpenOrderStatus(i);
...
}

快速链接


A_GetOrderCount

说明 | 返回当前公式应用的帐户下当前商品的当日委托单数量。
语法 | Integer A_GetOrderCount()
参数 | 无
备注 返回当前公式应用的帐户下当前商品的当日委托单数量，返回值为整型。
该函数返回委托单数量中包含所有的类型：全部成交，已申报，已撤单，部分成交等。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
nStatus = A_OrderStatus(i);
...
}

快速链接


A_OpenOrderBuyOrSell

说明 | 返回当前公式应用的帐户下当前商品的某个未成交委托单的买卖类型。
语法 | Integer A_OpenOrderBuyOrSell(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个未成交委托单的买卖类型，返回值为整型。
该函数返回值可以与Enum_Buy、Enum_Sell等买卖状态枚举值进行比较，根据类型不同分别处理。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
nBorS = A_OpenOrderBuyOrSell(i);
If (nBorS == Enum_Buy())
...
}

快速链接


A_OpenOrderContractNo

说明 | 返回当前公式应用的帐户下当前商品的某个未成交的委托单的合同号。(本函数范围是所有未成交的委托单的合同号,有区别于A_OrderContractNo)
语法 | String A_OpenOrderContractNo(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的合同号，返回值为字符串。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
strContractNo = A_OpenOrderContractNo(i);
...
}

快速链接


A_OpenOrderEntryOrExit

说明 | 返回当前公式应用的帐户下当前商品的某个未成交委托单的开平仓状态。
语法 | Integer A_OpenOrderEntryOrExit(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个未成交委托单的开平仓状态，返回值为整型。
该函数返回值可以与Enum_Entry、Enum_Exit等开平仓状态枚举值进行比较，根据类型不同分别处理。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
nEntryFlag = A_OpenOrderEntryOrExit(i);
If(nEntryFlag == Enum_ExitToday())
...
}

快速链接


A_OpenOrderFilledLot

说明 | 返回当前公式应用的帐户下当前商品的某个未成交委托单的成交数量。
语法 | Numeric A_OpenOrderFilledLot(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个未成交委托单的成交数量，返回值为浮点数。
只有当前委托单为部分成交时，该函数才会返回有效值。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
OpenOrderFilledLot = A_OpenOrderFilledLot(i);
...
}

快速链接


A_OpenOrderFilledPrice

说明 | 返回当前公式应用的帐户下当前商品的某个未成交委托单的成交价格。
语法 | Numeric A_OpenOrderFilledPrice(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个未成交委托单的成交价格，返回值为浮点数。
只有当前委托单为部分成交时，该函数才会返回有效值。该成交价格可能为多个成交价格的平均值。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
OpenOrderFilledPrice = A_OpenOrderFilledPrice(i);
...
}

快速链接


A_OpenOrderLot

说明 | 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托数量。
语法 | Numeric A_OpenOrderLot(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托数量，返回值为浮点数。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
OpenOrderLot = A_OpenOrderLot(i);
...
}

快速链接


A_OpenOrderPrice

说明 | 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托价格。
语法 | Numeric A_OpenOrderPrice(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托价格，返回值为浮点数。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
OpenOrderPrice = A_OpenOrderPrice(i);
...
}

快速链接


A_OpenOrderStatus

说明 | 返回当前公式应用的帐户下当前商品的某个未成交委托单的状态。
语法 | Integer A_GetOpenOrderStatus(Integer nIndex = 0)
参数 | nIndex 当日委托单数组的索引值，以1为基值递增。 nIndex = 0 时取最后提交的委托单数据。
备注 | 返回当前公式应用的帐户下当前商品的某个未成交委托单的状态，返回值为整型。 该函数返回值可以与Enum_Declared、Enum_FillPart委托状态枚举值进行比较，根据类型不同分别处理。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | nCount = A_GetOpenOrderCount(); For i = 1 To nCount { nStatus = A_OpenOrderStatus(i); If(nStatus == Enum_FillPart) ... }

快速链接


A_OpenOrderTime

说明 | 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托时间。
语法 | Numeric A_OpenOrderTime(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个未成交委托单的委托时间，返回值为浮点数。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOpenOrderCount();
For i = 1 To nCount
{
OpenOrderTime = A_OpenOrderTime(i);
...
}

快速链接


A_OrderBuyOrSell

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的买卖类型。
语法 | Integer A_OrderBuyOrSell(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的买卖类型，返回值为整型。
该函数返回值可以与Enum_Buy、Enum_Sell等买卖状态枚举值进行比较，根据类型不同分别处理。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
nBorS = A_OrderBuyOrSell(i);
If (nBorS == Enum_Buy())
...
}

快速链接


A_OrderCanceledLot

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的撤单数量。
语法 | Numeric A_OrderCanceledLot(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的撤单数量，返回值为浮点数。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
OrderCanceledLot = A_OrderCanceledLot(i);
...
}

快速链接


A_OrderContractNo

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的合同号。(本函数范围是所有的委托单的合同号,有区别于A_OpenOrderContractNo)
语法 | String A_OrderContractNo(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的合同号，返回值为字符串。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
strContractNo = A_OrderContractNo(i);
...
}

快速链接


A_OrderEntryOrExit

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的开平仓状态。
语法 | Integer A_OrderEntryOrExit(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的开平仓状态，返回值为整型。
该函数返回值可以与Enum_Entry、Enum_Exit等开平仓状态枚举值进行比较，根据类型不同分别处理。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
nEntryFlag = A_OrderEntryOrExit(i);
If(nEntryFlag == Enum_ExitToday())
...
}

快速链接


A_OrderFilledLot

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的成交数量。
语法 | Numeric A_OrderFilledLot(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的成交数量，返回值为浮点数。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
OrderFilledLot = A_OrderFilledLot(i);
...
}

快速链接


A_OrderFilledPrice

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的成交价格。
语法 | Numeric A_OrderFilledPrice(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的成交价格，返回值为浮点数。
该成交价格可能为多个成交价格的平均值。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
OrderFilledPrice = A_OrderFilledPrice(i);
...
}

快速链接


A_OrderLot

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的委托数量。
语法 | Numeric A_OrderLot(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的委托数量，返回值为浮点数。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
OrderLot = A_OrderLot(i);
...
}

快速链接


A_OrderPrice

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的委托价格。
语法 | Numeric A_OrderPrice(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的委托价格，返回值为浮点数。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
OrderPrice = A_OrderPrice(i);
...
}

快速链接


A_OrderStatus

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的状态。
语法 | Integer A_OrderStatus(Integer nIndex = 0)
参数 | nIndex 当日委托单数组的索引值，以1为基值递增。 nIndex = 0 时取最后提交的委托单数据。
备注 | 返回当前公式应用的帐户下当前商品的某个委托单的状态，返回值为整型。 该函数返回值可以与Enum_Declare、Enum_Declared、Enum_Filled等委托状态枚举值进行比较，根据类型不同分别处理。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | nCount = A_GetOrderCount(); For i = 1 To nCount { nStatus = A_OrderStatus(i); If(nStatus == Enum_Filled) ... }

快速链接


A_OrderTime

说明 | 返回当前公式应用的帐户下当前商品的某个委托单的委托时间。
语法 | Numeric A_OrderTime(Integer nIndex = 0)
参数 nIndex 当日委托单数组的索引值，以1为基值递增。
nIndex = 0 时取最后提交的委托单数据。
备注 返回当前公式应用的帐户下当前商品的某个委托单的委托时间，返回值为浮点数。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 nCount = A_GetOrderCount();
For i = 1 To nCount
{
OrderTime = A_OrderTime(i);
...
}

快速链接


A_PositionProfitLoss

说明 | 返回当前公式应用的帐户下当前商品的持仓盈亏。
语法 | Numeric A_PositionProfitLoss()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的持仓盈亏，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_PreviousEquity

说明 | 返回当前公式应用的交易帐户的昨日结存。
语法 | Numeric A_PreviousEquity()
参数 | 无
备注 | 返回当前公式应用的交易帐户的昨日结存，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_ProfitLoss

说明 | 返回当前公式应用的交易帐户的浮动盈亏。
语法 | Numeric A_ProfitLoss()
参数 | 无
备注 | 返回当前公式应用的交易帐户的浮动盈亏，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_SellAvgPrice

说明 | 返回当前公式应用的帐户下当前商品的卖出持仓均价。
语法 | Numeric A_SellAvgPrice()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的卖出持仓均价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_SellPosition

说明 | 返回当前公式应用的帐户下当前商品的卖出持仓。
语法 | Numeric A_SellPosition()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的卖出持仓，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 当前持空仓3手，A_SellPosition返回3。

快速链接


A_SellProfitLoss

说明 | 返回当前公式应用的帐户下当前商品的卖出持仓盈亏。
语法 | Numeric A_SellProfitLoss()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的卖出持仓盈亏，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_SendOrder

说明 | 针对当前公式应用的帐户、商品发送委托单。
语法 | Bool A_SendOrder(Integer BuyOrSell,Integer EntryOrExit,Numeric Lot,Numeric Price,Numeric StopPrice,Numeric ProfitPrice)
参数 BuyOrSell 发送委托单的买卖类型，取值为Enum_Buy或Enum_Sell之一；
EntryOrExit 发送委托单的开平仓类型，取值为Enum_Entry,Enum_Exit,Enum_ExitToday之一；
Lot 委托单的交易数量；
Price 委托单的交易价格。
StopPrice 止损触发单触发价格。
ProfitPrice 止盈触发单触发价格。
备注 针对当前公式应用的帐户、商品发送委托单，发送成功返回True,发送失败返回False。
该函数可针对叠加商品进行处理，可用Data1.A_SendOrder(...)进行调用。
该函数直接发单，不经过任何确认，并会在每次公式计算时发送，一般需要配合着仓位头寸进行条件处理，在不清楚运行机制的情况下，请慎用。
注：不能使用于历史测试，仅适用于实时行情交易。
示例 示例1：
If (A_BuyPosition()>0 && A_GetOpenOrderCount()==0)
{
A_SendOrder(Enum_Sell,Enum_Exit,A_BuyPosition(),Q_BidPrice());
...
}
注意:A_SendOrder不同于Buy和Sell指令，A_SendOrder只适用于实时行情中发送委托单，不可以用于测试。

示例2：控制A_SendOrder发单配合全局变量示例(开多仓)
if( /*开仓条件*/ && A_BuyPosition()==0 && GetGlobalVar(0)==0)
{
A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
}

示例3：设置A_SendOrder止损止盈单触发价格(止盈触发价格7000，止损触发价格6000)
A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice,6000,7000);

快速链接


A_TodayBuyPosition

说明 | 返回当前公式应用的帐户下当前商品的当日买入持仓。
语法 | Numeric A_TodayBuyPosition()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的当日买入持仓，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_TodayDeposit

说明 | 返回当前公式应用的交易帐户的当日入金。
语法 | Numeric A_TodayDeposit()
参数 | 无
备注 | 返回当前公式应用的交易帐户的当日入金，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_TodayDrawing

说明 | 返回当前公式应用的交易帐户的当日出金。
语法 | Numeric A_TodayDrawing()
参数 | 无
备注 | 返回当前公式应用的交易帐户的当日出金，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_TodaySellPosition

说明 | 返回当前公式应用的帐户下当前商品的当日卖出持仓。
语法 | Numeric A_TodaySellPosition()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的当日卖出持仓，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_TotalAvgPrice

说明 | 返回当前公式应用的帐户下当前商品的持仓均价。
语法 | Numeric A_TotalAvgPrice()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的持仓均价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_TotalFreeze

说明 | 返回当前公式应用的交易帐户的冻结资金。
语法 | Numeric A_TotalFreeze()
参数 | 无
备注 | 返回当前公式应用的交易帐户的冻结资金，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_TotalMargin

说明 | 返回当前公式应用的交易帐户的保证金。
语法 | Numeric A_TotalMargin()
参数 | 无
备注 | 返回当前公式应用的交易帐户的保证金，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


A_TotalPosition

说明 | 返回当前公式应用的帐户下当前商品的总持仓。
语法 | Numeric A_TotalPosition()
参数 | 无
备注 | 返回当前公式应用的帐户下当前商品的总持仓，返回值为浮点数。 该持仓为所有持仓的合计值，正数表示多仓，负数表示空仓，零为无持仓。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Abs

说明 | 返回参数的绝对值。
语法 | Numeric Abs(Numeric Number)
参数 | Number 需要计算其绝对值的实数。
备注 | 返回参数的绝对值，参数绝对值是参数去掉正负号后的数值。
示例 | Abs (2) = 2； Abs (-2) = 2； Abs (0) = 0； Abs (-5.3) = 5.3； Abs (10.43) = 10.43。

快速链接


AccountDataExist

说明 | 当前公式应用商品的帐户数据是否有效。
语法 | Bool AccountDataExist()
参数 | 无
备注 | 当前公式应用商品的帐户数据是否有效，返回布尔值。如果数据已经准备好，返回True，则返回False。 该函数是否有效取决于是否在超级图表的公式应用设置中选择好要进行交易的帐户。
示例 | If (AccountDataExist) Value1 = A_CurrentEquity;

快速链接


Acos

说明 | 返回参数的反余弦值。
语法 | Numeric Acos(Numeric Number)
参数 | Number 角度的余弦值，必须介于 -1～1 之间。 如果要用度表示反余弦值，需将结果再乘以 180/PI()。
备注 | 返回数字的反余弦值。反余弦值为一个角度，而该角度的余弦值即为该函数的参数。返回的角度值以弧度表示，范围是0到Pi。
示例 | Acos (-0.5) = 2.094395(2* Pi /3 弧度)； Acos (-0.5)*180/ Pi () = 120°(度)。

快速链接


Acosh

说明 | 返回参数的反双曲余弦值。
语法 | Numeric Acosh(Numeric Number)
参数 | Number 大于等于 1 的实数。
备注 | 返回参数的反双曲余弦值。参数 Number 必须大于或等于 1。反双曲余弦值的双曲余弦即为该函数的参数，因此 Acosh (Cosh(Number)) 等于 Number。
示例 | Acosh (1) = 0； Acosh (10) = 2.993223。

快速链接


Alert

说明 | 产生一个报警动作。
语法 | Alert(String AlertInfo)
参数 | AlertInfo 报警提示信息。
备注 | 产生一个报警动作，将AlertInfo信息返回给上层应用模块，该函数无返回值。
示例 | Alert("BBI上穿报警");弹出警报“BBI上穿报警” 。

快速链接


AlertEnabled

说明 | 返回当前公式应用的报警设置。
语法 | Bool AlertEnabled()
参数 | 无
备注 | 返回当前公式应用的报警设置，既公式属性设置报警页面启动报警的复选框状态，返回布尔值，返回值定义如下： True 当前公式启动报警； False 当前公式没有启动报警。
示例 | If (AlertEnabled and close >open) Alert("close>open");

快速链接


Asin

说明 | 返回参数的反正弦值。
语法 | Numeric Asin(Numeric Number)
参数 | Number 角度的正弦值，必须介于 -1～1 之间。
备注 | 返回参数的反正弦值。反正弦值为一个角度，该角度的正弦值即等于此函数的参数。返回角度的单位为弧度，且范围在 - Pi /2 到 Pi /2 之间。
示例 | Asin (-0.5) = -0.5236 ( - Pi /6 弧度)； Asin (-0.5)*180/ Pi () = -30 (度)。

快速链接


Asinh

说明 | 返回参数的反双曲正弦值。
语法 | Numeric Asinh(Numeric Number)
参数 | Number 任意实数。
备注 | 返回参数的反双曲正弦值，反双曲正弦值的双曲正弦即等于此函数的参数值，因此，Asinh (Sinh( Number)) 的值等于 Number。
示例 | Asinh (-2.5) = -1.64723； Asinh (10) = 2.998223。

快速链接


Atan

说明 | 返回参数的反正切值。
语法 | Numeric Atan(Numeric Number)
参数 | Number 角度的正切值。
备注 | 返回参数的反正切值。反正切值为角度，其正切值即等于参数值。返回的角度值将以弧度表示，范围为 -pi/2 到 pi/2。如果要用度表示反正切值，需将结果再乘以 180/π( )。
示例 | Atan (1) = 0.785398(Pi /4 弧度)； Atan (1)*180/π() = 45(度)。

快速链接


Atan2

说明 | 返回给定的 X 及 Y 坐标值的反正切值。
语法 | Numeric Atan2(Numeric X_num,Numeric Y_num)
参数 | X_num 点的 X 坐标。 Y_num 点的 Y 坐标。
备注 | 返回给定的 X 及 Y 坐标值的反正切值。反正切的角度值等于 X 轴与通过原点和给定坐标点（X_num, Y_num）的直线之间的夹角。结果以弧度表示并介于 - Pi到 Pi之间（不包括 - Pi）。结果为正表示从 X 轴逆时针旋转的角度，结果为负表示从X 轴顺时针旋转的角度。Atan2 (a, b) 等于 ATAN(b/a)，除非 Atan2值为零。如果 X_num 和 Y_num 都为零，Atan2返回无效值。如果要用度表示反正切值，需将结果再乘以 180/ Pi()。
示例 | Atan2 (1, 1) = 0.785398 (pi/4弧度)； Atan2 (-1, -1) = -2.35619 (-3* Pi /4 弧度)； Atan2 (-1, -1)*180/ Pi () = -135 (度)。

快速链接


Atanh

说明 | 返回参数的反双曲正切值。
语法 | Numeric Atanh(Numeric Number)
参数 | Number -1～1 之间的任意实数。
备注 | 返回参数的反双曲正切值，参数必须在 -1～1 之间（除去 -1 和 1）。反双曲正切值的双曲正切即为该函数的参数值，因此 Atanh (Tanh(Number)) 等于 Number。
示例 | Atanh (0.76159416) = 1 （近似值）； Atanh (-0.1) = -0.10034。

快速链接


AvgBarsEvenTrade

说明 | 获得保本交易的平均持仓Bar数。
语法 | Integer AvgBarsEvenTrade()
参数 | 无
备注 | 获得保本交易的平均持仓Bar数，返回值为整型。
示例 | 无

快速链接


AvgBarsLosTrade

说明 | 获得亏损交易的平均持仓Bar数。
语法 | Integer AvgBarsLosTrade()
参数 | 无
备注 | 获得亏损交易的平均持仓Bar数，返回值为整型。
示例 | 无

快速链接


AvgBarsWinTrade

说明 | 获得盈利交易的平均持仓Bar数。
语法 | Integer AvgBarsWinTrade()
参数 | 无
备注 | 获得盈利交易的平均持仓Bar数，返回值为整型。
示例 | 无

快速链接


AvgEntryPrice

说明 | 获得当前持仓的平均建仓价格。
语法 | Numeric AvgEntryPrice()
参数 | 无
备注 | 获得当前持仓的平均建仓价格，返回值为浮点数。
示例 | 无

快速链接


BarCount

说明 | 当前公式应用商品数据的Bar总数。
语法 | Integer BarCount()
参数 | 无
备注 | 当前公式应用商品数据的Bar总数，返回值为整型。
示例 | 无

快速链接


BarInterval

说明 | 当前公式应用商品数据的周期数值。
语法 | Integer BarInterval()
参数 | 无
备注 | 当前公式应用商品数据的周期数值，返回值为整型，该值通常和BarType一起使用进行数据周期的判别。
示例 | 当前数据周期为1日线，BarInterval等于1； 当前数据周期为22日线，BarInterval等于22； 当前数据周期为60分钟线，BarInterval等于60； 当前数据周期为1TICK线，BarInterval等于1；br> 当前数据周期为5000量线，BarInterval等于5000。

快速链接


BarsSinceEntry

说明 | 获得当前持仓的第一个建仓位置到当前位置的Bar计数。
语法 | Integer BarsSinceEntry()
参数 | 无
备注 | 获得当前持仓的第一个建仓位置到当前位置的Bar计数，返回值为整型。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。 注意：在开仓Bar上为0。
示例 | 无

快速链接


BarsSinceExit

说明 | 获得最近平仓位置到当前位置的Bar计数。
语法 | Integer BarsSinceExit()
参数 | 无
备注 | 获得最近平仓位置到当前位置的Bar计数，返回值为整型。 只有当MarketPosition = 0时，即没有持仓的状况下，该函数才有意义，否则返回0。 注意：在平仓Bar上为0。
示例 | 无

快速链接


BarsSinceLastEntry

说明 | 获得当前持仓的最后一个建仓位置到当前位置的Bar计数。
语法 | Integer BarsSinceLastEntry()
参数 | 无
备注 | 获得当前持仓的最后一个建仓位置到当前位置的Bar计数，返回值为整型。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


BarStatus

说明 | 当前公式应用商品当前Bar的状态值。
语法 | Integer BarStatus()
参数 | 无
备注 | 当前公式应用商品当前Bar的状态值，返回值0表示为第一个Bar，返回值为1表示为中间的普通Bar，返回值为2表示最后一个Bar。
示例 | BarStatus==0表示第一个Bar BarStatus==2表示最后一个Bar BarStatus==1表示第一个Bar和最后一个Bar之间的所有Bar

快速链接


BarType

说明 | 当前公式应用商品数据的周期类型值。
语法 | Integer BarType()
参数 | 无
备注 | 当前公式应用商品数据的周期类型值，返回值为整型，该值通常和BarInterval一起使用进行数据周期的判别。 返回值如下定义： 0 日线 1 分钟线 2 TICK线 3 量线 4 周线 5 月线
示例 | 当前数据周期为22日线，BarType等于0； 当前数据周期为60分钟线，BarType等于1； 当前数据周期为1TICK线，BarType等于2； 当前数据周期为5000量线，BarType等于4。

快速链接


BidAskSize

说明 | 当前公式应用商品数据的买卖盘个数。
语法 | Integer BidAskSize()
参数 | 无
备注 | 当前公式应用商品数据的买卖盘个数，返回值为整型。
示例 | 上海A股当前的买卖盘个数为5个，因此其BidAskSize等于5； 大连期货当前的买卖盘个数为1个，因此其BidAskSize等于1。

快速链接


BigPointValue

说明 | 当前公式应用商品数据的一个整数点的价值。
语法 | Numeric BigPointValue()
参数 | 无
备注 | 当前公式应用商品数据的一个整数点的价值，默认值为1。
示例 | 深圳证券交易所A股一个点的价值都为1人民币，因此其BigPointValue等于1； 郑州期货交易所期货品种一个点的价值为1人民币，因此其BigPointValue等于1； 香港联交所恒指期货一个点的价值为50港币，因此其BigPointValue等于50； 芝加哥商业交易所E-MINI一个点的价值为50美元，因此其BigPointValue等于50； 上海证券交易所上证指数为不可交易品种，因此其BigPointValue也等于1。

快速链接


Black

说明 | 返回黑色的RGB值。
语法 | Integer Black()
参数 | 无
备注 | 返回黑色的RGB值，即RGB(0,0,0)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


Blue

说明 | 返回蓝色的RGB值。
语法 | Integer Blue()
参数 | 无
备注 | 返回蓝色的RGB值，即RGB(0,0,255)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


Buy

说明 | 产生一个多头建仓操作。
语法 | Bool Buy(Numeric Share=0,Numeric Price=0)
参数 Share 买入数量，为整型值，默认为使用系统设置参数；
Price 买入价格，为浮点数，默认=0时为使用现价(非最后Bar为Close)。
备注 产生一个多头建仓操作，返回值为布尔型，执行成功返回True，否则返回False。
该函数仅用于多头建仓，其处理规则如下：
如果当前持仓状态为持平，即MarketPosition = 0 时，该函数按照参数进行多头建仓。
如果当前持仓状态为空仓，即MarketPosition = -1 时，该函数平掉所有空仓，同时按照参数进行多头建仓，两个动作同时发出。
如果当前持仓状态为多仓，即MarketPosition = 1 时，该函数将继续建仓，但具体是否能够成功建仓要取决于系统中关于连续建仓的设置，以及资金，最大持仓量等限制。
当委托价格超出k线的有效范围，在历史数据上，将会取最接近的有效价格发单；在实盘中，将会按照实际委托价格发单。
例如：当前k线有效价格为50-100，用buy(1,10)发单，委托价将以50发单。
示例 在MarketPosition=0或者在MarketPosition=1的情况下：（当前没有持仓或者持有多头仓位）
Buy(50,10.2) 表示用10.2的价格买入50张合约。
Buy(10,Close) 表示用当前Bar收盘价买入10张合约，马上发送委托。
Buy(5,0) 表示用现价买入5张合约，马上发送委托。
Buy(0,0) 表示用现价按交易设置中设置的手数,马上发送委托。

在MarketPosition=-1的情况下：（当前持有空头仓位）
Buy(10,Close) 表示平掉所有空仓，并用当前Bar收盘价买入10张合约，马上发送委托。

快速链接


BuyToCover

说明 | 产生一个空头平仓操作。
语法 | Bool BuyToCover(Numeric Share=0,Numeric Price=0)
参数 Share 买入数量，为整型值，默认为平掉当前所有持仓；
Price 买入价格，为浮点数，默认=0时为使用现价(非最后Bar为Close)。
备注 产生一个空头平仓操作，返回值为布尔型，执行成功返回True，否则返回False。
该函数仅用于空头平仓，其处理规则如下：
如果当前持仓状态为持平，即MarketPosition = 0 时，该函数不执行任何操作。
如果当前持仓状态为多仓，即MarketPosition = 1 时，该函数不执行任何操作。
如果当前持仓状态为空仓，即MarketPosition = -1 时，如果此时Share使用默认值，该函数将平掉所有空仓，达到持平的状态，否则只平掉参数Share的空仓。
当委托价格超出k线的有效范围，在历史数据上，将会取最接近的有效价格发单；在实盘中，将会按照实际委托价格发单。
例如：当前k线有效价格为50-100，用BuyToCover(1,10)发单，委托价将以50发单。
示例 在MarketPosition = -1的情况下：
BuyToCover(50,10.2) 表示用10.2的价格空头买入50张合约。
BuyToCover(10,Close) 表示用当前Bar收盘价空头买入10张合约，马上发送委托。
BuyToCover(5,0) 表示用现价空头买入5张合约)，马上发送委托。
BuyToCover(0,0) 表示用现价按交易设置中的设置,马上发送委托。

快速链接


C

说明 | 当前公式应用商品在当前Bar的收盘价。
语法 | Numeric C()
参数 | 无
备注 | 当前公式应用商品在当前Bar的收盘价，返回值为浮点数，Close的简写。
示例 | 无

快速链接


CanMarketOrder

说明 | 当前公式应用商品是否支持市价委托。
语法 | Bool CanMarketOrder()
参数 | 无
备注 | 当前公式应用商品是否支持市价委托，返回布尔值，如果支持市价委托返回True，否则返回False。
示例 | 无

快速链接


CanShortTrade

说明 | 当前公式应用商品是否支持空头交易。
语法 | Bool CanShortTrade()
参数 | 无
备注 | 当前公式应用商品是否支持空头交易，返回布尔值，如果支持空头交易返回True，否则返回False。
示例 | 无

快速链接


CanStopOrder

说明 | 当前公式应用商品是否支持STOP委托。
语法 | Bool CanStopOrder()
参数 | 无
备注 | 当前公式应用商品是否支持STOP委托，返回布尔值，如果支持STOP委托返回True，否则返回False。
示例 | 无

快速链接


CanTrade

说明 | 当前公式应用商品是否支持交易。
语法 | Bool CanTrade()
参数 | 无
备注 | 当前公式应用商品是否支持交易，返回布尔值，如果支持交易返回True，否则返回False。
示例 | 无

快速链接


Category

说明 | 当前公式应用商品的大类信息。
语法 | Integer Category()
参数 | 当前公式应用商品的类型，返回值为整型，返回值定义如下： 0 股票 1 期货 2 外汇 3 债券 4 基金 5 期权
备注 | 无
示例 | if(Category==1)表示当前商品类型为期货。

快速链接


Ceiling

说明 | 将参数 Number 沿绝对值增大的方向，舍入为最接近的整数或基数Significance的最小倍数。
语法 | Numeric Ceiling(Numeric Number,Numeric Significance)
参数 | Number 待舍入的数值。 Significance 基数。
备注 | 将参数 Number 沿绝对值增大的方向，舍入为最接近的整数或基数Significance的最小倍数。例如，如果您不愿意使用像"分"这样的零钱，而所要购买的商品价格为 $4.42，可以用公式 = Ceiling (4.42,0.1) 将价格舍入为以"角"表示。 如果参数为非数值型，Ceiling返回无效值。 无论数字符号如何，都按远离 0 点方向舍入。如果数字已经为 Significance 的倍数，则不进行舍入。 如果 Number 和 Significance 符号不同，Ceiling返回无效值。
示例 | Ceiling (2.5, 1) = 3； Ceiling (-2.5, -2) = -4； Ceiling (-2.5, 2) = 无效值； Ceiling (1.5, 0.1) = 1.5； Ceiling (0.234, 0.01) = 0.24。

快速链接


Close

说明 | 当前公式应用商品在当前Bar的收盘价。
语法 | Numeric Close()
参数 | 无
备注 | 当前公式应用商品在当前Bar的收盘价，返回值为浮点数。
示例 | 无

快速链接


Combin

说明 | 计算从给定数目的对象集合中提取若干对象的组合数。
语法 | Integer Combin (Numeric Number,Numeric Number_chosen)
参数 | Number 对象总的数量。 Number_chosen 每一组合中对象的数量。
备注 | 数字参数截尾取整。 如果任一参数为非数值型，Combin返回无效值。 如果 number < 0、number_chosen < 0 或 number < number_chosen，Combin返回无效值。 对象组合是对象整体的任意子集，且不论其内部顺序。组合与排列不同，排列数与对象顺序有关。 假设从 8 名候选者中选出 2 人组成一队，求所有可能的组合数：Combin (8, 2 ) 等于 28 种编队方案。
示例 | Combin(8, 2) = 28。

快速链接


Commentary

说明 | 在超级图表当前Bar添加一行注释信息。
语法 | Commentary(String strTip)
参数 | strTip 提示信息。
备注 | 在超级图表当前Bar添加一行注释信息，该函数无返回值。 作为系统调试的辅助工具，您可以通过在超级图表中选中某一个Bar，按下鼠标左键，察看注释信息。 启动显示提示框按钮，请查看超级图表工具栏。
示例 | Commentary("当前买入10手，价位1345")； Commentary("开仓价格:"+Text(myEntryPrice))。

快速链接


ContractProfit

说明 | 获得当前持仓位置的每手浮动盈亏。
语法 | Numeric ContractProfit()
参数 | 无
备注 | 获得当前持仓位置的每手浮动盈亏，已考虑交易费用，返回值为浮点数。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


ContractSize

说明 | 当前商品的合约大小。
语法 | Numeric ContractSize()
参数 | 无
备注 | 当前商品的合约大小，返回值为浮点数，仅对外汇有效。
示例 | 无

快速链接


ContractUnit

说明 | 当前公式应用商品的每张合约包含的基本单位数量。
语法 | Integer ContractUnit()
参数 | 无
备注 | 当前公式应用商品的每张合约包含的基本单位数量，返回值为整型。对于股票来说，是1手包含多少股，对于铜铝商品期货来说是1张合约包含多少吨标底物。
示例 | 无

快速链接


Cos

说明 | 返回给定角度的余弦值。
语法 | Numeric Cos(Numeric Number)
参数 | Number 为需要求余弦的角度，以弧度表示。如果参数的单位是度，则可以乘以Pi ()/180 将其转换为弧度。
备注 | 返回给定角度的余弦值。
示例 | Cos (1.047) = 0.500171； Cos (60*Pi()/180) = 0.5，即 60 度的余弦值。

快速链接


Cosh

说明 | 返回参数的双曲余弦值。
语法 | Numeric Cosh(Numeric Number)
参数 | Number 表示要为其找到双曲线余弦的任意实数。
备注 | 返回参数的双曲余弦值。
示例 | Cosh (4) = 27.30823； Cosh (Exp(1)) = 7.610125，式中 Exp(1) 等于 e，即自然对数的底数。

快速链接


Ctan

说明 | 返回给定角度的余切值。
语法 | Numeric Ctan(Numeric Number)
参数 | Number 需要计算其反余切值的实数。
备注 | 返回给定角度的余切值。
示例 | Ctan (0.785) = 1.00080； Ctan (45* Pi ()/180) = 1。

快速链接


CurrencyName

说明 | 当前公式应用商品交易的货币名称。
语法 | String CurrencyName()
参数 | 无
备注 | 当前公式应用商品交易的货币名称，返回值为字符串，如果该商品为不可交易品种，返回无效值。
示例 | 深圳证券交易所A股交易货币为人民币，因此其CurrencyName等于"人民币"； 深圳证券交易所B股交易货币为港币，因此其CurrencyName等于"港币"； 芝加哥商业交易所E-MINI交易货币为美元，因此其CurrencyName等于"美元"； 上海证券交易所上证指数为不可交易品种，因此其CurrencyName为无效值。

快速链接


CurrencySymbol

说明 | 当前公式应用商品交易的货币符号。
语法 | String CurrencySymbol()
参数 | 无
备注 | 当前公式应用商品交易的货币符号，返回值为字符串，如果该商品为不可交易品种，返回无效值。
示例 | 深圳证券交易所A股交易货币为人民币，因此其CurrencySymbol等于"￥"； 深圳证券交易所B股交易货币为港币，因此其CurrencySymbol等于"HK$"； 芝加哥商业交易所E-MINI交易货币为美元，因此其CurrencySymbol等于"$"； 上海证券交易所上证指数为不可交易品种，因此其CurrencySymbol为无效值。

快速链接


CurrentBar

说明 | 当前公式应用商品在当前Bar的索引值。
语法 | Integer CurrentBar()
参数 | 无
备注 | 当前公式应用商品当前Bar的索引值，第一个Bar返回值为0，以下其他Bar递增。
示例 | 无

快速链接


CurrentContracts

说明 | 获得当前持仓的持仓合约数。
语法 | Numeric CurrentContracts()
参数 | 无
备注 | 获得当前持仓的持仓合约数，返回值为整型。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。 多头持仓返回正数，空头持仓返回负数。
示例 | 当前空头持仓2手，CurrentContracts则返回-2。

快速链接


CurrentDate

说明 | 获取交易开拓者平台的当前日期。
语法 | Integer CurrentDate()
参数 | 无
备注 | 获取交易开拓者平台的当前日期。格式为YYYYMMDD的整数。
示例 | 如果当前日期为2004-1-24，CurrentDate返回值为20040124。

快速链接


CurrentEntries

说明 | 获得当前持仓的建仓次数。
语法 | Integer CurrentEntries()
参数 | 无
备注 | 获得当前持仓的建仓次数，返回值为整型。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


CurrentTime

说明 | 获取交易开拓者平台(操作系统)的当前时间。
语法 | Numeric CurrentTime()
参数 | 无
备注 | 获取交易开拓者平台(操作系统)的当前时间。格式为0.HHMMSS的浮点数。
示例 | 如果当前时间为11:34:21，CurrentTime返回值为0.113421。

快速链接


Cyan

说明 | 返回青色的RGB值。
语法 | Integer Cyan()
参数 | 无
备注 | 返回青色的RGB值，即RGB(0,255,255)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


D

说明 | 当前公式应用商品在当前Bar的日期。
语法 | Integer D()
参数 | 无
备注 | 当前公式应用商品在当前Bar的日期，格式为YYYYMMDD的整数，Date的简写。
示例 | 如果当前Bar日期为2004-1-24，Date返回值为20040124。

快速链接


DarkBrown

说明 | 返回茶色的RGB值。
语法 | Integer DarkBrown()
参数 | 无
备注 | 返回茶色的RGB值，即RGB(218,11,0)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


DarkCyan

说明 | 返回深青色的RGB值。
语法 | Integer DarkCyan()
参数 | 无
备注 | 返回深青色的RGB值，即RGB(0,139,139)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


DarkGray

说明 | 返回深灰色的RGB值。
语法 | Integer DarkGray()
参数 | 无
备注 | 返回深灰色的RGB值，即RGB(169,169,169)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


DarkGreen

说明 | 返回深绿色的RGB值。
语法 | Integer DarkGreen()
参数 | 无
备注 | 返回深绿色的RGB值，即RGB(0,128,0)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


DarkMagenta

说明 | 返回深褐色的RGB值。
语法 | Integer DarkMagenta()
参数 | 无
备注 | 返回深褐色的RGB值，即RGB(139,0,139)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


DarkRed

说明 | 返回深红色的RGB值。
语法 | Integer DarkRed()
参数 | 无
备注 | 返回深红色的RGB值，即RGB(128,0,0)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


DataCount

说明 | 当前公式应用图表数据源的总数。
语法 | Integer DataCount()
参数 | 无
备注 | 该函数返回当前图表的数据源总数，
示例 |

快速链接


Date

说明 | 当前公式应用商品在当前Bar的日期。
语法 | Integer Date()
参数 | 无
备注 | 当前公式应用商品在当前Bar的日期，格式为YYYYMMDD的整数。
示例 | 如果当前Bar日期为2004-1-24，Date返回值为20040124。

快速链接


DateAdd

说明 | 返回已添加指定天数的日期。
语法 | Integer DateAdd(Integer date,Integer Number)
参数 date 进行时间加减的时间值，必须是正确的时间格式，并大于19700101；
number 要加减的天数，正数为加，负数为减。
备注 | 返回已添加指定天数的日期，返回值为时间格式。
示例 DateAdd(20060203,5); 返回值为20060208;
DateAdd(20060315,-5); 返回值为20060310。

快速链接


DateDiff

说明 | 返回两个日期之间的天数间隔。
语法 | Integer DateDiff(Integer date1,Integer date2)
参数 date1 进行时间比较的时间值，必须是正确的时间格式，并大于19700101；
date2 进行时间比较的时间值，必须是正确的时间格式，并大于19700101。
备注 | 返回两个日期之间的天数间隔，返回值为整数，date1 < date2返回正数，date1 > date2返回负数。
示例 DateDiff(20060203,20060208); 返回值为5;
DateDiff(20060315,20060310); 返回值为-5。

快速链接


DateTimeToString

说明 | 将日期时间值转化为字符串类型。
语法 | String DateTimeToString(Numeric dtDateTime)
参数 | dtDateTime 要进行转化的参数值，为浮点数，整数部分表示日期，小数部分表示 时间值。
备注 | 将日期时间值转化为字符串类型。整数部分和小数部分如果位数超长自动截掉最后的多余位数，整数部分和小数部分位数不足则在分别在后面补零。某位数字如果输入值无效，将自动设置为最小的有效值。
示例 | DateTimeToString (20040612.114323) = "2004-06-12 11:43:23"。 DateTimeToString (195402.1363) = "1954-02-01 13:00:00"。

快速链接


DateToString

说明 | 将日期值转化为字符串类型。
语法 | String DateToString(Integer nDate)
参数 | nDate 要进行转化的参数值，为19000000-99991231之间的整数。
备注 | 将日期值转化为字符串类型。如果位数超长自动截掉最后的多余位数，位数不足在分别在后面补零。某位数字如果输入值无效，将自动设置为最小的有效值。
示例 | DateToString (20031223) 等于 "2003-12-23"。 DateToString (200223) 等于 "2002-01-01"。

快速链接


Day

说明 | 获得当前Bar的日信息。
语法 | Integer Day()
参数 | 无
备注 | 获得当前Bar的日信息，格式为1-31之间的整数。
示例 | 如果当前Bar日期为2004-1-24，Day返回值为24。

快速链接


DayFromDateTime

说明 | 获取输入日期时间的日信息。
语法 | Integer DayFromDateTime(Numeric x)
参数 | x 输入日期时间
备注 | 无
示例 | 用2011年4月12日10:41:32举例，DayFromDateTime(20110412.104132);返回日信息12。

快速链接


DefaultColor

说明 | 返回默认颜色值。
语法 | Integer DefaultColor()
参数 | 无
备注 | 返回默认颜色值：-1。在使用该函数作Plot*的参数时，表示使用公式设置对话框的颜色值。
示例 | 无

快速链接


EntryDate

说明 | 获得当前持仓的第一个建仓位置的日期。
语法 | Integer EntryDate()
参数 | 无
备注 | 获得当前持仓的第一个建仓位置的日期，返回值为Date值。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


EntryPrice

说明 | 获得当前持仓的第一个建仓价格。
语法 | Numeric EntryPrice()
参数 | 无
备注 | 获得当前持仓的第一个建仓价格，返回值为浮点数。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


EntryTime

说明 | 获得当前持仓的第一个建仓位置的时间。
语法 | Numeric EntryTime()
参数 | 无
备注 | 获得当前持仓的第一个建仓位置的时间，返回值为Time值。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


Enum_Buy

说明 | 返回买卖状态的买入枚举值。
语法 | Integer Enum_Buy()
参数 | 无
备注 | 返回买卖状态的买入枚举值，返回值为整型
示例 | 无

快速链接


Enum_Canceled

说明 | 返回委托状态的已撤单枚举值。
语法 | Integer Enum_Canceled()
参数 | 无
备注 | 返回委托状态的已撤单枚举值，返回值为整型
示例 | 无

快速链接


Enum_Canceling

说明 | 返回委托状态的正在撤单枚举值。
语法 | Integer Enum_Canceling()
参数 | 无
备注 | 返回委托状态的正在撤单枚举值，返回值为整型
示例 | 无

快速链接


Enum_Declare

说明 | 返回委托状态的正在申报枚举值。
语法 | Integer Enum_Declare()
参数 | 无
备注 | 返回委托状态的正在申报枚举值，返回值为整型
示例 | 无

快速链接


Enum_Declared

说明 | 返回委托状态的已申报枚举值。
语法 | Integer Enum_Declared()
参数 | 无
备注 | 返回委托状态的已申报枚举值，返回值为整型
示例 | 无

快速链接


Enum_Deleted

说明 | 返回委托状态的已废除枚举值。
语法 | Integer Enum_Deleted()
参数 | 无
备注 | 返回委托状态的已废除枚举值，返回值为整型
示例 | 无

快速链接


Enum_Entry

说明 | 返回开平仓状态的开仓枚举值。
语法 | Integer Enum_Entry()
参数 | 无
备注 | 返回开平仓状态的开仓枚举值，返回值为整型
示例 | 无

快速链接


Enum_Exit

说明 | 返回开平仓状态的平仓枚举值。
语法 | Integer Enum_Exit()
参数 | 无
备注 | 返回开平仓状态的平仓枚举值，返回值为整型
示例 | 无

快速链接


Enum_ExitToday

说明 | 返回开平仓状态的平今仓枚举值。
语法 | Integer Enum_ExitToday()
参数 | 无
备注 | 返回开平仓状态的平今仓枚举值，返回值为整型
示例 | 无

快速链接


Enum_Filled

说明 | 返回委托状态的全部成交枚举值。
语法 | Integer Enum_Filled()
参数 | 无
备注 | 返回委托状态的全部成交枚举值，返回值为整型
示例 | 无

快速链接


Enum_FillPart

说明 | 返回委托状态的部分成交枚举值。
语法 | Integer Enum_FillPart()
参数 | 无
备注 | 返回委托状态的部分成交枚举值，返回值为整型
示例 | 无

快速链接


Enum_Sell

说明 | 返回买卖状态的卖出枚举值。
语法 | Integer Enum_Sell()
参数 | 无
备注 | 返回买卖状态的卖出枚举值，返回值为整型
示例 | 无

快速链接


Even

说明 | 返回沿绝对值增大方向取整后最接近的偶数。
语法 | Integer Even(Numeric Number)
参数 | Number 所要取整的数值。
备注 | 返回沿绝对值增大方向取整后最接近的偶数。使用该函数可以处理那些成对出现的对象。 如果 Number 为非数值参数，则 Even返回无效值。 不论 Number 的正负号如何，函数都向远离零的方向舍入，如果 Number 恰好是偶数，则无需进行任何舍入处理。
示例 | Even (1.5) = 2； Even (3) = 4； Even (2) = 2； Even (-1) = -2。

快速链接


Exact

说明 | 该函数测试两个字符串是否完全相同。
语法 | Bool Exact(String String1,String String2)
参数 | String1 待比较的第一个字符串。 String2 待比较的第二个字符串。
备注 | 该函数测试两个字符串是否完全相同。如果它们完全相同，则返回True；否则，返回False。 函数Exact区分大小写。
示例 | Exact ("word","word") = True； Exact ("Word","word") = False； Exact ("w ord","word") = False。

快速链接


ExchangeName

说明 | 当前公式应用商品的交易所名称。
语法 | String ExchangeName()
参数 | 无
备注 | 当前公式应用商品的交易所名称，返回值为字符串。
示例 | 深圳证券交易所下商品的ExchangeName等于" 深圳证券交易所"； 芝加哥商业交易所下商品的ExchangeName等于" 芝加哥商业交易所"。

快速链接


ExitDate

说明 | 获得最近平仓位置Bar日期。
语法 | Integer ExitDate()
参数 | 无
备注 | 获得最近平仓位置Bar日期，返回值为Date值。 只有当MarketPosition = 0时，即没有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


ExitPrice

说明 | 获得最近平仓位置的平仓价格。
语法 | Numeric ExitPrice()
参数 | 无
备注 | 获得最近平仓位置的平仓价格，返回值为浮点数。 只有当MarketPosition = 0时，即没有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


ExitTime

说明 | 获得最近平仓位置Bar时间。
语法 | Numeric ExitTime()
参数 | 无
备注 | 获得最近平仓位置Bar时间，返回值为Time值。 只有当MarketPosition = 0时，即没有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


Exp

说明 | 返回e的Number次幂。
语法 | Numeric Exp(Numeric Number)
参数 | Number 为底数e的指数。
备注 | 返回e的Number次幂。常数 e 等于 2.71828182845904，是自然对数的底数。 如果要计算以其他常数为底的幂，请用指数操作符（^）。 Exp函数是计算自然对数的 Ln 函数的反函数。
示例 | Exp (1) = 2.718282(e 的近似值)； Exp (2) = e2 或 7.389056； Exp (Ln(3)) = 3。

快速链接


ExpiredDate

说明 | 当前公式应用商品的最后交易日。
语法 | String ExpiredDate()
参数 | 无
备注 | 当前公式应用商品的最后交易日，返回值为字符串。
示例 | 无

快速链接


Fact

说明 | 返回数的阶乘。
语法 | Integer Fact(Numeric Number)
参数 | Number 要计算其阶乘的非负数。如果输入的Number不是整数，则截尾取整。
备注 | 返回数的阶乘。
示例 | Fact (1) = 1； Fact (1.9) = Fact (1) 等于 1； Fact (0) = 1； Fact (-1) = 无效值； Fact (5) = 1*2*3*4*5 等于 120。

快速链接


FileAppend

说明 | 在指定文件中追加一行字符串。
语法 | Bool FileAppend(String strPath,String strText)
参数 | strPath 指定文件的路径，请使用全路径表示，并使用\\做路径分割符，否则会执行失败 strText 输出的字符串内容
备注 | 在指定文件中追加一行字符串，返回值为布尔型。 执行成功返回True，执行失败返回False。
示例 | FileAppend("C:\\Formula.log","Close = "+Text(Close));

快速链接


FileDelete

说明 | 删除指定文件。
语法 | Bool FileDelete(String strPath)
参数 | strPath 指定文件的路径，请使用全路径表示，并使用\\做路径分割符，否则会执行失败
备注 | 删除指定文件，返回值为布尔型。 执行成功返回True，执行失败返回False。
示例 | FileDelete("C:\\Formula.log");

快速链接


Floor

说明 | 将参数 Number 沿绝对值减小的方向去尾舍入，使其等于最接近的 Significance 的倍数。
语法 | Numeric Floor(Numeric Number,Numeric Significance)
参数 | Number 所要舍入的数值。 Significance 基数
备注 | 返将参数 Number 沿绝对值减小的方向去尾舍入，使其等于最接近的 significance 的倍数。 如果任一参数为非数值参数，则Floor将返回错误值无效值。 如果Number和Significance符号相反，则函数Floor将返回错误值无效值。 不论Number的正负号如何，舍入时参数的绝对值都将减小。如果Number 恰好是significance 的倍数，则无需进行任何舍入处理。
示例 | Floor (2.5, 1) = 2； Floor (-2.5, -2) = -2； Floor (-2.5, 2) = 无效值； Floor (1.5, 0.1) = 1.5； Floor (0.234, 0.01) = 0.23。

快速链接


FormulaName

说明 | 获得当前执行的公式名称。
语法 | String FormulaName()
参数 | 无
备注 | 获得当前执行的公式名称，返回值为字符串，该函数不能用于用户函数中。
示例 | 无

快速链接


FracPart

说明 | 返回实数舍入后的小数值。
语法 | Numeric FracPart(Numeric Number)
参数 | Number 需要计算其小数值的实数。
备注 | 返回实数舍入后的小数值。等于 Number - IntPart(Number)。
示例 | FracPart (2.49) = 0.49； FracPart (-8.93) = 0.07。

快速链接


Friday

说明 | 获得星期五的值。
语法 | Integer Friday()
参数 | 无
备注 | 获得星期五的值：5。
示例 | 无

快速链接


GetGlobalVar

说明 | 获取某个索引的全局变量值。
语法 | Numeric GetGlobalVar(Integer nIndex)
参数 | nIndex 要设置全局变量的索引值，该值从0开始计数，不能大于500。
备注 | 获取某个索引的全局变量值，返回值为浮点数。 提示:配合SetGlobalVar使用。
示例 | Val = GetGlobalVar(0); 将第一个全局变量值取出来赋值给Val。

快速链接


GetTBProfileString

说明 | 读取公式信息文件指定块中的键名对应的字符串。
语法 | String GetTBProfileString(String strSection,String strKey)
参数 | strSection 指定的信息块的块名 strKey 指定的信息的键名
备注 | 读取公式信息文件指定块中的键名对应的字符串。 返回值为读取的字符串，不成功则返回InvalidString，读取字符串长度不能超过256字节。 提示:配合SetTBProfileString使用。
示例 | MyStr = GetTBProfileString("MySection","MyKey");

快速链接


GetTBProfileString2File

说明 | 读取公式信息文件指定块中的键名对应的字符串。
语法 | String GetTBProfileString2File(String strPath,String strSection,String strKey)
参数 | strPath 指定文件的路径，请使用全路径表示，并使用\\做路径分割符，否则会执行失败 strSection 指定的信息块的块名 strKey 指定的信息的键名
备注 | 读取某个文件指定块中的键名对应的字符串。 返回值为读取的字符串，不成功则返回InvalidString，读取字符串长度不能超过256字节。 提示:配合SetTBProfileString2File使用。
示例 | MyStr = GetTBProfileString2File("c:\\tradelog.log","MySection","MyKey");

快速链接


GetUserID

说明 | 当前登录的用户ID。
语法 | String GetUserID()
参数 | 无
备注 | 返回当前登录的软件用户名ID。
示例 | 无

快速链接


Green

说明 | 返回绿色的RGB值。
语法 | Integer Green()
参数 | 无
备注 | 返回绿色的RGB值，即RGB(0,255,0)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


GrossLoss

说明 | 获得累计的总亏损。
语法 | Numeric GrossLoss()
参数 | 无
备注 | 获得累计的总亏损，已考虑交易费用，返回值为浮点数。 注：该值为负数。
示例 | 无

快速链接


GrossProfit

说明 | 获得累计的总利润。
语法 | Numeric GrossProfit()
参数 | 无
备注 | 获得累计的总利润，已考虑交易费用，返回值为浮点数。
示例 | 无

快速链接


H

说明 | 当前公式应用商品在当前Bar的最高价。
语法 | Numeric H()
参数 | 无
备注 | 当前公式应用商品在当前Bar的最高价，Tick时为当时的委卖价，返回值为浮点数，High的简写。
示例 | 无

快速链接


High

说明 | 当前公式应用商品在当前Bar的最高价。
语法 | Numeric High()
参数 | 无
备注 | 当前公式应用商品在当前Bar的最高价，Tick时为当时的委卖价，返回值为浮点数。
示例 | 无

快速链接


HistoryDataExist

说明 | 当前公式应用商品的历史数据是否有效。
语法 | Bool HistoryDataExist()
参数 | 无
备注 | 当前公式应用商品的历史数据是否有效，返回布尔值。如果数据已经准备好，返回True，则返回False。
示例 | 无

快速链接


Hour

说明 | 获得当前Bar的小时信息。
语法 | Integer Hour()
参数 | 无
备注 | 获得当前Bar的小时信息，格式为0-23之间的整数。
示例 | 如果当前Bar的时间为11:34:21，Hour返回值为11。

快速链接


HourFromDateTime

说明 | 获取输入日期时间的小时信息。
语法 | Integer HourFromDateTime(Numeric x)
参数 | x 输入日期时间
备注 | 无
示例 | 用2011年4月12日10:41:32举例，HourFromDateTime(20110412.104132);返回小时信息10。

快速链接


IIF

说明 | 执行真假值判断，根据逻辑测试的真假值返回不同的数值。
语法 | Numeric IIF(Bool Conditon,Numeric TrueValue,Numeric FalseValue)
参数 | Conditon 条件表达式； TrueValue 条件为True时的返回值； FalseValue 条件为False时的返回值。
备注 | 执行真假值判断，根据逻辑测试的真假值返回不同的数值，TrueValue/FalseValue都是浮点数，该函数返回值也为浮点数。
示例 | IIF(Close>Open,Close,Open);

快速链接


IIFString

说明 | 执行真假值判断，根据逻辑测试的真假值返回不同的字符串。
语法 | String IIFString(Bool Conditon,String TrueValue,String FalseValue)
参数 | Conditon 条件表达式； TrueValue 条件为True时的返回值； FalseValue 条件为False时的返回值。
备注 | 执行真假值判断，根据逻辑测试的真假值返回不同的符串，TrueValue/FalseValue都是字符串，该函数返回值也为字符串。
示例 | IIFString (Close>Open,"Close","Open");

快速链接


InitialMargin

说明 | 当前公式应用商品的初始保证金。
语法 | Numeric InitialMargin()
参数 | 无
备注 | 当前公式应用商品的初始保证金，返回值为浮点数，仅对外汇有效
示例 | 无

快速链接


IntPart

说明 | 返回实数舍入后的整数值。
语法 | Integer IntPart(Numeric Number)
参数 | Number 需要进行取整处理的实数。
备注 | 返回实数舍入后的整数值。
示例 | IntPart (8.9) = 8； IntPart (-8.9) = -9。

快速链接


InvalidInteger

说明 | 返回整型的无效值。
语法 | Integer InvalidInteger()
参数 | 无
备注 | 返回整型的无效值，该值 = 2147483647L。
示例 | 无

快速链接


InvalidNumeric

说明 | 返回数值型的无效值。
语法 | Numeric InvalidNumeric()
参数 | 无
备注 | 返回数值型的无效值，该值 = 3.402823466e+38F。
示例 | 无

快速链接


InvalidString

说明 | 字符串的无效值。
语法 | String InvalidString()
参数 | 无
备注 | 返回字符串的无效值，该值 = "N/A"。
示例 | 无

快速链接


L

说明 | 当前公式应用商品在当前Bar的最低价。
语法 | Numeric L()
参数 | 无
备注 | 当前公式应用商品在当前Bar的最低价，Tick时为当时的委买价，返回值为浮点数，Low的简写。
示例 | 无

快速链接


LargestLosTrade

说明 | 获得最大单次交易亏损数。
语法 | Integer LargestLosTrade()
参数 | 无
备注 | 获得最大单次交易亏损数，已考虑交易费用，返回值为浮点数。 注：该值为负数。
示例 | 无

快速链接


LargestWinTrade

说明 | 获得最大单次交易盈利数。
语法 | Integer LargestWinTrade()
参数 | 无
备注 | 获得最大单次交易盈利数，已考虑交易费用，返回值为浮点数。
示例 | 无

快速链接


LastEntryDate

说明 | 获得当前持仓的最后一个建仓位置的日期。
语法 | Integer LastEntryDate()
参数 | 无
备注 | 获得当前持仓的最后一个建仓位置的日期，返回值为Date值。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


LastEntryPrice

说明 | 获得当前持仓的最后一个建仓价格。
语法 | Numeric LastEntryPrice()
参数 | 无
备注 | 获得当前持仓的最后一个建仓价格，返回值为浮点数。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


LastEntryTime

说明 | 获得当前持仓的最后一个建仓位置的时间。
语法 | Numeric LastEntryTime()
参数 | 无
备注 | 获得当前持仓的最后一个建仓位置的时间，返回值为Time值。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


Left

说明 | 返回文本串的前lCount位。
语法 | String Left(String str,Integer lCount)
参数 | str 是要进行截取的文本。 lCount 从左开始截取的文本位数。
备注 | 返回文本串的前lCount位。
示例 | Left("abcdeftj",3) = "abc" Left ("Hello World",6) = "Hello "；

快速链接


Len

说明 | 返回文本串中的字符数。
语法 | Integer Len(String str)
参数 | str 是要查找其长度的文本。空格将作为字符进行计数。
备注 | 返回文本串中的字符数。
示例 | Len ("Phoenix, AZ") = 11； Len ("") = 0； Len ("中文字符") = 8。

快速链接


LightGray

说明 | 返回浅灰色的RGB值。
语法 | Integer LightGray()
参数 | 无
备注 | 返回浅灰色的RGB值，即RGB(211,211,211)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


Ln

说明 | 返回一个数的自然对数。
语法 | Numeric Ln(Numeric Number)
参数 | Number 所要取整的数值。
备注 | 返回一个数的自然对数。自然对数以常数项 e（2.71828182845904）为底。Ln函数是Exp函数的反函数。
示例 | Ln (86) = 4.45437； Ln (2.7182818) = 1； Ln (Exp (3)) = 3； Exp (Ln (4)) = 4。

快速链接


Log

说明 | 按所指定的底数，返回一个数的对数。
语法 | Numeric Log(Numeric Number,Numeric Base)
参数 | Number 为用于计算对数的正实数。 Base 为对数的底数。
备注 | 按所指定的底数，返回一个数的对数。
示例 | Log (10，10) = 1； Log (8, 2) = 3； Log (86, 2.7182818) = 4.454347。

快速链接


Low

说明 | 当前公式应用商品在当前Bar的最低价。
语法 | Numeric Low()
参数 | 无
备注 | 当前公式应用商品在当前Bar的最低价，Tick时为当时的委买价，返回值为浮点数。
示例 | 无

快速链接


Lower

说明 | 将一个文字串中的所有大写字母转换为小写字母。
语法 | String Lower(String str)
参数 | str 是要转换为小写字母的文字串。函数Lower不改变文字串中的非字母的字符。
备注 | 将一个文字串中的所有大写字母转换为小写字母。
示例 | Lower ("E. E. Cummings") = "e. e. cummings"； Lower ("Apt. 2B") = "apt. 2b"。

快速链接


Magenta

说明 | 返回紫红色的RGB值。
语法 | Integer Magenta()
参数 | 无
备注 | 返回紫红色的RGB值，即RGB(255,0,255)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


MaintenanceMargin

说明 | 当前公式应用商品的维持保证金。
语法 | Numeric MaintenanceMargin()
参数 | 无
备注 | 当前公式应用商品的维持保证金，返回值为浮点数，仅对外汇有效。
示例 | 无

快速链接


MakeDate

说明 | 将参数生成日期值。
语法 | Integer MakeDate(Integer nYear,Integer nMonth,Integer nDay)
参数 | nYear 要进行转化的年信息，为1900-9999的整数。 nMonth 要进行转化的月信息，为1-12的整数。 nDay 要进行转化的日信息，为1-31的整数。
备注 | 将参数生成日期值。如果参数值无效，自动转化为最小的有效值。
示例 | MakeDate (2004,4,23) = 20040423； MakeDate (343,23,25) = 19000125。

快速链接


MakeDateTime

说明 | 将参数生成日期时间值。
语法 | Numeric MakeDateTime(Integer nDate,Numeric fTime)
参数 | nDate 要进行转化的日期信息，为19000101-99991231之间的整数。 fTime 要进行转化的时间信息，为0.0-0.235959之间的浮点数。
备注 | 将参数生成日期时间值。如果参数值无效，自动转化为最小的有效值。
示例 | MakeDateTime (20030323,0.123456) = 20030323.123456； MakeDateTime (30323, 0.1456) = 30320101.145600。

快速链接


MakeTime

说明 | 将参数生成时间值。
语法 | Numeric MakeTime(Integer nHour,Integer nMinute,Integer nSecond)
参数 | nHour 要进行转化的小时信息，为0-23的整数。 nMinute 要进行转化的分钟信息，为0-59的整数。 nSecond 要进行转化的秒信息，为0-59的整数。
备注 | 将参数生成时间值，如果参数值无效，自动转化为最小的有效值。
示例 | MakeTime (12,1,56) 等于 0.120156； MakeTime (30,14,56) 等于0.001456。

快速链接


MarginRatio

说明 | 当前公式应用商品的默认保证金比率
语法 | Numeric MarginRatio()
参数 | 无
备注 | 当前公式应用商品的默认保证金比率，返回值为浮点数，仅对期货有效。
示例 | 无

快速链接


MarketPosition

说明 | 获得当前持仓状态。
语法 | Integer MarketPosition()
参数 | 无
备注 获得当前持仓状态，返回值为整型。
返回值定义如下：
-1 当前位置为持空仓
0 当前位置为持平
1 当前位置为持多仓
示例 if(MarketPosition==1)判断当前是否持多仓
if(MarketPosition!=0)判断当前是否有持仓，无论持空仓或多仓

快速链接


MaxBarsBack

说明 | 获得当前公式应用所需的最大回溯Bar数。
语法 | Numeric MaxBarsBack()
参数 | 无
备注 | 获得当前公式应用所需的最大回溯Bar数。
示例 | 无

快速链接


MaxConsecLosers

说明 | 获得最大连续亏损交易手数。
语法 | Integer MaxConsecLosers()
参数 | 无
备注 | 获得最大连续亏损交易手数，已考虑交易费用，返回值为整型。
示例 | 无

快速链接


MaxConsecWinners

说明 | 获得最大连续盈利交易手数。
语法 | Integer MaxConsecWinners()
参数 | 无
备注 | 获得最大连续盈利交易手数，已考虑交易费用，返回值为整型。
示例 | 无

快速链接


MaxContracts

说明 | 获得当前持仓的最大持仓合约数。
语法 | Numeric MaxContracts()
参数 | 无
备注 | 获得当前持仓的最大持仓合约数，返回值为浮点数。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


MaxContractsHeld

说明 | 获得最大的持仓合约数
语法 | Numeric MaxContractsHeld()
参数 | 无
备注 | 获得最大的持仓合约数，返回值为浮点数。
示例 | 无

快速链接


MaxEntries

说明 | 获得最大的建仓次数。
语法 | Integer MaxEntries()
参数 | 无
备注 | 获得最大的建仓次数，返回值为整型。
示例 | 无

快速链接


MaxPositionLoss

说明 | 获得当前持仓的最大浮动亏损数。
语法 | Numeric MaxPositionLoss()
参数 | 无
备注 | 获得当前持仓的最大浮动亏损数，已考虑交易费用，返回值为浮点数。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


MaxPositionProfit

说明 | 获得当前持仓的最大浮动盈利数。
语法 | Numeric MaxPositionProfit()
参数 | 无
备注 | 获得当前持仓的最大浮动盈利数，已考虑交易费用，返回值为浮点数。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


MaxSingleTradeSize

说明 | 当前公式应用商品的单笔交易限量。
语法 | Integer MaxSingleTradeSize()
参数 | 无
备注 | 当前公式应用商品的单笔交易限量，对于不能交易的商品，返回无效值，对于无限量的商品，返回0。
示例 | 无

快速链接


Mid

说明 | 返回文本串的从lFirst开始的lCount位。
语法 | String Mid(String str,Integer lFirst,Integer lCount)
参数 str 是要进行截取的文本。
lFirst 截取的起始位置。
lCount 截取的文本位数。
备注 | 返回文本串的从lFirst开始的lCount位。
示例 Mid("abcdeftj",2,3)等于"cde"
Mid("Hello World",2,6)等于"llo Wo"；

快速链接


MilliSecond

说明 | 获得当前Bar的毫秒信息。
语法 | Integer MilliSecond()
参数 | 无
备注 | 无
示例 | 无

快速链接


MilliSecondFromDateTime

说明 | 获取输入日期时间的毫秒信息。
语法 | Integer MilliSecondFromDateTime(Numeric x)
参数 | x 输入日期时间
备注 | 无
示例 | 此函数暂时无法正常使用，我们将在今后完善并更新此函数。

快速链接


MinMove

说明 | 当前公式应用商品的最小变动量。
语法 | Integer MinMove()
参数 | 无
备注 | 当前公式应用商品的最小变动量，返回值为整型。 MinMove = 最小变动值/ PriceScale。
示例 | 上海A股的最小变动值0.01元，其PriceScale =0.01，因此其MinMove等于1； 沪铝的最小变动值为5，其PriceScale =1，因此其MinMove等于5。

快速链接


Minute

说明 | 获得当前Bar的分钟信息。
语法 | Integer Minute()
参数 | 无
备注 | 获得当前Bar的分钟信息，格式为0-59之间的整数。
示例 | 如果当前Bar的时间为11:34:21，Minute返回值为34。

快速链接


MinuteFromDateTime

说明 | 获取输入日期时间的分钟信息。
语法 | Integer MinuteFromDateTime(Numeric x)
参数 | x 输入日期时间
备注 | 无
示例 | 用2011年4月12日10:41:32举例，MinuteFromDateTime(20110412.104132);返回分钟信息41。

快速链接


Mod

说明 | 返回两数相除的余数。
语法 | Integer Mod(Integer Number,Integer Divisor)
参数 | Number 为被除数。 Divisor 为除数。如果Divisor为零，函数Mod返回无效值。
备注 | 返回两数相除的余数。结果的正负号与除数相同。 函数Mod可以借用函数IntPart来表示：Mod (n, d) = n - d*IntPart(n/d)。
示例 | Mod (3, 2) = 1； Mod (-3, 2) = 1； Mod (3, -2) = -1； Mod (-3, -2) = -1。

快速链接


Monday

说明 | 获得星期一的值。
语法 | Integer Monday()
参数 | 无
备注 | 获得星期一的值：1。
示例 | 无

快速链接


Month

说明 | 获得当前Bar的月信息。
语法 | Integer Month()
参数 | 无
备注 | 获得当前Bar的月信息，格式为1-12之间的整数。
示例 | 如果当前Bar日期为2004-1-24，Month返回值为1。

快速链接


MonthFromDateTime

说明 | 获取输入日期时间的月信息。
语法 | Integer MonthFromDateTime(Numeric x)
参数 | x 输入日期时间
备注 | 无
示例 | 用2011年4月12日10:41:32举例，MonthFromDateTime(20110412.104132);返回月信息4。

快速链接


Neg

说明 | 返回参数的负绝对值。
语法 | Numeric Neg(Numeric Number)
参数 | Number 需要计算其负绝对值的实数。
备注 | 返回参数的负绝对值，参数负绝对值是绝对值加上负号。
示例 | Neg (2) = -2； Neg (-2) = -2； Neg (0) = 0 ； Neg (-5.3) = -5.3； Neg (10.43) = -10.43。

快速链接


NetProfit

说明 | 获得累计的净利润。
语法 | Numeric NetProfit()
参数 | 无
备注 | 获得累计的净利润，已考虑交易费用，返回值为浮点数。 NetProfit = GrossProfit + GrossLoss
示例 | 无

快速链接


NumEvenTrades

说明 | 获得保本交易的总手数。
语法 | Integer NumEvenTrades()
参数 | 无
备注 | 获得保本交易的总手数，已考虑交易费用，返回值为整型。
示例 | 无

快速链接


NumLosTrades

说明 | 获得亏损交易的总手数。
语法 | Integer NumLosTrades()
参数 | 无
备注 | 获得亏损交易的总手数，已考虑交易费用，返回值为整型。
示例 | 无

快速链接


NumWinTrades

说明 | 获得盈利交易的总手数。
语法 | Integer AvgBarsEvenTrade()
参数 | 无
备注 | 获得盈利交易的总手数，已考虑交易费用，返回值为整型。
示例 | 无

快速链接


O

说明 | 当前公式应用商品在当前Bar的开盘价。
语法 | Numeric O()
参数 | 无
备注 | 当前公式应用商品在当前Bar的开盘价，返回值为浮点数，Open的简写。
示例 | 无

快速链接


Odd

说明 | 返回对指定数值进行舍入后的奇数。
语法 | Integer Odd(Numeric Number)
参数 | Number 要舍入求奇数的数值。
备注 | 返回对指定数值进行舍入后的奇数。 如果Number为非数值参数，函数Odd将返回无效值。 不论正负号如何，数值都朝着远离0的方向舍入。如果Number恰好是奇数，则不须进行任何舍入处理。
示例 | Odd (1.5) = 3； Odd (3) = 3； Odd (2) = 3； Odd (-1) = -1； Odd (-2) = -3。

快速链接


Open

说明 | 当前公式应用商品在当前Bar的开盘价。
语法 | Numeric Open()
参数 | 无
备注 | 当前公式应用商品在当前Bar的开盘价，返回值为浮点数。
示例 | 无

快速链接


OpenInt

说明 | 当前公式应用商品在当前Bar的持仓量。
语法 | Numeric OpenInt()
参数 | 无
备注 | 当前公式应用商品在当前Bar的持仓量，返回值为浮点数。
示例 | 无

快速链接


PercentProfit

说明 | 获得盈利的成功率。
语法 | Numeric PercentProfit()
参数 | 无
备注 | 获得盈利的成功率，已考虑交易费用，返回值为浮点数。 PercentProfit = (NumWinTrades / TotalTrades) *100%
示例 | 无

快速链接


Pi

说明 | 返回数字3.1415926535898。
语法 | Numeric Pi()
参数 | 无
备注 | 返回数字3.1415926535898，即数学常数pi，精确到小数点后 13 位。
示例 | 无

快速链接


PlayWavSound

说明 | 播放指定路径的Wav声音文件。
语法 | String PlayWavSound(String strPath)
参数 | strPath 指定播放Wav声音文件的路径
备注 | 该函数只支持播放Wav声音文件。
示例 | PlayWavSound("D:\\myVoice.wav");播放D盘下的myVoice.wav文件。

快速链接


PlotBool

说明 | 在当前Bar输出一个布尔值。
语法 | Bool PlotBool(String Name,Bool bPlot,Numeric Locator=0,Integer Color=-1,Integer BarsBack=0)
参数 | Name 输出值的名称，不区分大小写； bPlot 输出的布尔值； Locator 输出值的定位点； Color 输出值的显示颜色，默认表示使用属性设置框中的颜色 BarsBack 从当前Bar向前回溯的Bar数，默认值为当前Bar。
备注 | 在当前Bar输出一个布尔值，输出的值用于在上层调用模块显示。返回布尔值，即输入的bPlot。
示例 | PlotBool ("con",con,high); 在bar的最高价位置输出条件con的布尔值。 If (PlotBool ("con1",con1)) Alert("con1 is true"); 输出con1的值，并且当con1条件满足时，进行报警。

快速链接


PlotNumeric

说明 | 在当前Bar输出一个数值。
语法 | Numeric PlotNumeric(String Name,Numeric Number,Numeric Locator=0,Integer Color=-1,Integer BarsBack=0)
参数 | Name 输出值的名称，不区分大小写； Number 输出的数值； Locator 输出值的定位点，默认时输出单点，否则输出连接两个值线段，用法请看例3； Color 输出值的显示颜色，默认表示使用属性设置框中的颜色； BarsBack 从当前Bar向前回溯的Bar数，默认值为当前Bar。
备注 | 在当前Bar输出一个数值，输出的值用于在上层调用模块显示。返回数值型，即输入的Number。
示例 | 例1：PlotNumeric ("RSI",RSIValue); 输出RSI的值。 例2：If (PlotNumeric ("AR",ARValue)>180) Alert("AR超买"); 输出AR的值，并且当ARValue>180条件满足时，进行报警。 例3：PlotNumeric ("OpenToClose",open,close); 输出开盘价与收盘价的连线。注意：公式输出线形选择柱状图。

快速链接


PlotString

说明 | 在当前Bar输出一个字符串。
语法 | String PlotString(String Name,String str,Numeric Locator=0,Integer Color=-1,Integer BarsBack=0)
参数 | Name 输出值的名称，不区分大小写； str 输出的字符串； Locator 输出值的定位点； Color 输出值的显示颜色，默认表示使用属性设置框中的颜色； BarsBack 从当前Bar向前回溯的Bar数，默认值为当前Bar。
备注 | 在当前Bar输出一个字符串，输出的值用于在上层调用模块显示。返回字符串，即输入的str。
示例 | PlotString ("Bear Market","Bear Bear",high,blue); 在bar的最高价位置输出一个字符串，并且显示为蓝色。

快速链接


Portfolio_CurrentCapital

说明 | 获得按当前Bar开盘价计算的可用资金。
语法 | Numeric Portfolio_CurrentCapital()
参数 | 无
备注 | 获得当前的可用资金，已考虑交易费用，返回值为浮点数。
示例 | 无

快速链接


Portfolio_CurrentEntries

说明 | 获得投资组合的当前建仓次数。
语法 | Integer Portfolio_CurrentEntries()
参数 | 无
备注 | 获得当前持仓的建仓次数，返回值为整型。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


Portfolio_CurrentEquity

说明 | 获得投资组合的动态权益。
语法 | Numeric Portfolio_CurrentEquity()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_GrossLoss

说明 | 获得投资组合的毛损。
语法 | Numeric Portfolio_GrossLoss()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_GrossProfit

说明 | 获得投资组合的毛利。
语法 | Numeric Portfolio_GrossProfit()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_InitCapital

说明 | 获得投资组合的初始资金。
语法 | Numeric Portfolio_InitCapital()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_MaxDrawDown

说明 | 获得投资组合的最大资产回撤。
语法 | Numeric Portfolio_MaxDrawDown()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_MaxDrawDownRatio

说明 | 获得投资组合的最大资产回撤比率。
语法 | Numeric Portfolio_MaxDrawDownRatio()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_NetProfit

说明 | 获得投资组合的净利润。
语法 | Numeric Portfolio_NetProfit()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_NumLossTrades

说明 | 获得投资组合的交易亏损手数。
语法 | Integer Portfolio_NumLossTrades()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_NumWinTrades

说明 | 获得投资组合的交易盈利手数。
语法 | Integer Portfolio_NumWinTrades()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_PercentProfit

说明 | 获得投资组合的交易成功率。
语法 | Numeric Portfolio_PercentProfit()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_PositionProfit

说明 | 获得投资组合的浮动盈亏。
语法 | Numeric Portfolio_PositionProfit()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_TotalProfit

说明 | 获得投资组合的累计交易盈亏。
语法 | Numeric Portfolio_TotalProfit()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_TotalTrades

说明 | 获得投资组合的总交易手数。
语法 | Integer Portfolio_TotalTrades()
参数 | 无
备注 | 无
示例 | 无

快速链接


Portfolio_UsedMargin

说明 | 获得当前的持仓保证金。
语法 | Integer Portfolio_UsedMargin()
参数 | 无
备注 | 无
示例 | 无

快速链接


PositionProfit

说明 | 获得当前持仓位置的浮动盈亏。
语法 | Numeric PositionProfit()
参数 | 无
备注 | 获得当前持仓位置的浮动盈亏，已考虑交易费用，返回值为浮点数。 只有当MarketPosition != 0时，即有持仓的状况下，该函数才有意义，否则返回0。
示例 | 无

快速链接


Power

说明 | 返回给定数字的乘幂。
语法 | Numeric Power(Numeric Number,Numeric Power)
参数 | Number 底数，可以为任意实数。 Power 指数，Number按该指数次幂乘方。
备注 | 返回给定数字的乘幂。 可以用"^"运算符代替函数 Power来表示对底数乘方的幂次，例如 5^2。
示例 | Power (5,2) = 25； Power (98.6,3.2) = 2401077； Power (4,5/4) = 5.656854。

快速链接


PriceScale

说明 | 当前公式应用商品的计数单位。
语法 | Numeric PriceScale()
参数 | 无
备注 | 当前公式应用商品的计数单位，返回值为浮点数。
示例 | 深圳A股报价精确到小数点2位，因此其PriceScale等于1/100； 上海B股报价精确到小数点3位，因此其PriceScale等于1/1000。

快速链接


Q_AskPrice

说明 | 当前公式应用商品的最新卖盘价格。
语法 | Numeric Q_AskPrice(Integer nIndex=0)
参数 | nIndex 买卖盘数组的索引值，以0为基值递增，默认值为0。
备注 | 当前公式应用商品的最新卖盘价格，返回值为浮点数。如果Index小于0或者大于等于BidAskSize，则返回无效值。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_AskPriceFlag

说明 | 当前公式应用商品的卖盘价格变化标志。
语法 | Integer Q_AskPriceFlag()
参数 | 无
备注 | 当前公式应用商品的卖盘价格变化标志，返回值为整型，1为上涨，-1为下跌，0为不变。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_AskVol

说明 | 当前公式应用商品的最新卖盘量。
语法 | Numeric Q_AskVol(Integer nIndex=0)
参数 | nIndex 买卖盘数组的索引值，以0为基值递增，默认值为0。
备注 | 当前公式应用商品的最新卖盘量，返回值为浮点数。如果Index小于0或者大于等于BidAskSize，则返回无效值。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_AvgPrice

说明 | 当前公式应用商品的实时均价。
语法 | Numeric Q_AvgPrice()
参数 | 无
备注 | 当前公式应用商品的实时均价，即结算价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_BidPrice

说明 | 当前公式应用商品的最新买盘价格。
语法 | Numeric Q_BidPrice(Integer nIndex=0)
参数 | nIndex 买卖盘数组的索引值，以0为基值递增，默认值为0。
备注 | 当前公式应用商品的最新最新买盘价格，返回值为浮点数。如果Index小于0或者大于等于BidAskSize，则返回无效值。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_BidPriceFlag

说明 | 当前公式应用商品的买盘价格变化标志。
语法 | Integer Q_BidPriceFlag()
参数 | 无
备注 | 当前公式应用商品的买盘价格变化标志，返回值为整型，1为上涨，-1为下跌，0为不变。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_BidVol

说明 | 当前公式应用商品的最新买盘量。
语法 | Numeric Q_BidVol(Integer nIndex=0)
参数 | nIndex 买卖盘数组的索引值，以0为基值递增，默认值为0。
备注 | 当前公式应用商品的最新买盘量，返回值为浮点数。如果Index小于0或者大于等于BidAskSize，则返回无效值。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_Close

说明 | 当前公式应用商品的当日收盘价。（当日未收盘则取得昨日收盘价。）
语法 | Numeric Q_Close()
参数 | 无
备注 | 当前公式应用商品的当日收盘价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_High

说明 | 当前公式应用商品的当日最高价。
语法 | Numeric Q_High()
参数 | 无
备注 | 当前公式应用商品的当日最高价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_HisHigh

说明 | 当前公式应用商品的历史最高价。（暂时不可用）
语法 | Numeric Q_HisHigh()
参数 | 无
备注 | 当前公式应用商品的历史最高价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_HisLow

说明 | 当前公式应用商品的历史最低价。（暂时不可用）
语法 | Numeric Q_HisLow()
参数 | 无
备注 | 当前公式应用商品的历史最低价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_InsideVol

说明 | 当前公式应用商品的内盘。
语法 | Numeric Q_InsideVol()
参数 | 无
备注 | 当前公式应用商品的内盘，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_Last

说明 | 当前公式应用商品的最新价。
语法 | Numeric Q_Last()
参数 | 无
备注 | 当前公式应用商品的最新价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_LastDate

说明 | 当前公式应用商品的最新成交日期。
语法 | Integer Q_LastDate()
参数 | 无
备注 | 当前公式应用商品的最新成交日期，返回值为Date类型。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_LastFlag

说明 | 当前公式应用商品的最新价变化标志。
语法 | Integer Q_LastFlag()
参数 | 无
备注 | 当前公式应用商品的最新价变化标志，返回值为整型，1为上涨，-1为下跌，0为不变。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_LastTime

说明 | 当前公式应用商品的最新成交时间。
语法 | Numeric Q_LastTime()
参数 | 无
备注 | 当前公式应用商品的最新成交时间，返回值为Time类型。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_LastVol

说明 | 当前公式应用商品的现手。
语法 | Numeric Q_LastVol()
参数 | 无
备注 | 当前公式应用商品的现手，返回值为浮点数，单位为手。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_Low

说明 | 当前公式应用商品的当日最低价。
语法 | Numeric Q_Low()
参数 | 无
备注 | 当前公式应用商品的当日最低价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_LowerLimit

说明 | 当前公式应用商品的当日跌停板价。
语法 | Numeric Q_LowerLimit()
参数 | 无
备注 | 当前公式应用商品的当日跌停板价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_Open

说明 | 当前公式应用商品的当日开盘价。
语法 | Numeric Q_Open()
参数 | 无
备注 | 当前公式应用商品的当日开盘价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_OpenInt

说明 | 当前公式应用商品的持仓量。
语法 | Numeric Q_OpenInt()
参数 | 无
备注 | 当前公式应用商品的持仓量，返回值为浮点数，单位为手。仅对期货有效，其他商品返回无效值。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_OpenIntFlag

说明 | 当前公式应用商品的持仓量变化标志。
语法 | Integer Q_OpenIntFlag()
参数 | 无
备注 | 当前公式应用商品的持仓量变化标志，返回值为整型，1为增加，-1为下降，0为不变。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_Oscillation

说明 | 当前公式应用商品的振幅。
语法 | Numeric Q_Oscillation()
参数 | 无
备注 | 当前公式应用商品的振幅，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_OutsideVol

说明 | 当前公式应用商品的外盘。
语法 | Numeric Q_OutsideVol()
参数 | 无
备注 | 当前公式应用商品的外盘，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_PreOpenInt

说明 | 当前公式应用商品的昨日持仓量。
语法 | Numeric Q_PreOpenInt()
参数 | 无
备注 | 当前公式应用商品的昨日持仓量，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_PreSettlePrice

说明 | 当前公式应用商品的昨日结算价。
语法 | Numeric Q_PreSettlePrice()
参数 | 无
备注 | 当前公式应用商品的昨日结算价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_PriceChg

说明 | 当前公式应用商品的当日涨跌。
语法 | Numeric Q_PriceChg()
参数 | 无
备注 | 当前公式应用商品的当日涨跌，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_PriceChgRatio

说明 | 当前公式应用商品的当日涨跌幅。
语法 | Numeric Q_PriceChgRatio()
参数 | 无
备注 | 当前公式应用商品的当日涨跌幅，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_TickChg

说明 | 当前公式应用商品的最新笔升跌。
语法 | Numeric Q_TickChg()
参数 | 无
备注 | 当前公式应用商品的最新笔升跌，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_TodayEntryVol

说明 | 当前公式应用商品的当日开仓量。
语法 | Numeric Q_TodayEntryVol()
参数 | 无
备注 | 当前公式应用商品的当日开仓量，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_TodayExitVol

说明 | 当前公式应用商品的当日平仓量。
语法 | Numeric Q_TodayExitVol()
参数 | 无
备注 | 当前公式应用商品的当日平仓量，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_TotalVol

说明 | 当前公式应用商品的当日成交量。
语法 | Numeric Q_TotalVol()
参数 | 无
备注 | 当前公式应用商品的当日成交量，返回值为浮点数，单位为手。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_TurnOver

说明 | 当前公式应用商品的成交金额。
语法 | Numeric Q_TurnOver()
参数 | 无
备注 | 当前公式应用商品的成交金额，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


Q_UpperLimit

说明 | 当前公式应用商品的当日涨停板价。
语法 | Numeric Q_UpperLimit()
参数 | 无
备注 | 当前公式应用商品的当日涨停板价，返回值为浮点数。 注：不能使用于历史测试，仅适用于实时行情交易。
示例 | 无

快速链接


QuoteDataExist

说明 | 当前公式应用商品的行情数据是否有效。
语法 | Bool QuoteDataExist()
参数 | 无
备注 | 当前公式应用商品的行情数据是否有效，返回布尔值。如果数据已经准备好，返回True，则返回False。
示例 | 无

快速链接


Rand

说明 | 返回位于两个指定数之间的一个随机数。
语法 | Numeric Rand(Numeric Bottom,Numeric Top)
参数 | Bottom 函数Rand将返回的最小整数。 Top 函数Rand将返回的最大整数。
备注 | 返回位于两个指定数之间的一个随机数。每次计算都将返回一个新的数值。
示例 | 无

快速链接


Red

说明 | 返回红色的RGB值。
语法 | Integer Red()
参数 | 无
备注 | 返回红色的RGB值，即RGB(255,0,0)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


Rgb

说明 | 返回自定义颜色值。
语法 | Integer Rgb(Integer crRed,Integer crGreen,Integer crBlue)
参数 | crRed 自定义颜色中红色的数量，0-255之间的值。 crGreen 自定义颜色中绿色的数量，0-255之间的值。 crBlue 自定义颜色中蓝色的数量，0-255之间的值。
备注 | 返回自定义颜色值，根据crRed，crGreen，crBlue自定义颜色值组合生成的颜色值。。
示例 | 无

快速链接


Right

说明 | 返回文本串的后lCount位。
语法 | String Right(String str,Integer lCount)
参数 str 是要进行截取的文本。
lCount 从右开始截取的文本位数。
备注 | 返回文本串的后lCount位。
示例 Right("abcdeftj",3) = "ftj"
Right("Hello World",6) = " World"；

快速链接


Round

说明 | 返回某个数字按指定位数舍入后的数字。
语法 | Numeric Round(Numeric Number,Integer Num_digits)
参数 | Number 为需要向上舍入的任意实数。 Num_digits 舍入后的数字的位数。
备注 | 返回某个数字按指定位数舍入后的数字。 如果Num_digits大于0，则舍入到指定的小数位。 如果Num_digits等于0，则舍入到最接近的整数。 如果Num_digits小于0，则在小数点左侧进行舍入。
示例 | Round (2.15, 1) = 2.2； Round (2.149, 1) = 2.1； Round (-1.475, 2) = -1.48； Round (21.5, -1) = 20。

快速链接


RoundDown

说明 | 靠近零值，向下（绝对值减小的方向）舍入数字。
语法 | Numeric RoundDown(Numeric Number,Integer Num_digits)
参数 | Number 为需要向上舍入的任意实数。 Num_digits 舍入后的数字的位数。
备注 | 靠近零值，向下（绝对值减小的方向）舍入数字。 函数 RoundDown和函数 Round功能相似，不同之处在于函数RoundDown总是向下舍入数字。
示例 | RoundDown (3.2, 0) = 3； RoundDown (76.9,0) = 76； RoundDown (3.14159, 3) = 3.141； RoundDown (-3.14159, 1) = -3.1。

快速链接


RoundUp

说明 | 远离零值，向上（绝对值增大的方向）舍入数字。
语法 | Numeric RoundUp(Numeric Number,Integer Num_digits)
参数 | Number 为需要向上舍入的任意实数。 Num_digits 舍入后的数字的位数。
备注 | 远离零值，向上（绝对值增大的方向）舍入数字。 函数 RoundUp和函数 Round功能相似，不同之处在于函数RoundUp总是向上舍入数字。
示例 | RoundUp (3.2,0) = 4； RoundUp (76.9,0) = 77； RoundUp (3.14159, 3) = 3.142； RoundUp (-3.14159, 1) = -3.2； RoundUp (31415.92654, -2) = 31,500。

快速链接


Saturday

说明 | 获得星期六的值。
语法 | Integer Saturday()
参数 | 无
备注 | 获得星期六的值：6。
示例 | 无

快速链接


Second

说明 | 获得当前Bar的秒信息。
语法 | Integer Second()
参数 | 无
备注 | 获得当前Bar的秒信息，格式为0-59之间的整数。
示例 | 如果当前Bar的时间为11:34:21，Second返回值为21。

快速链接


SecondFromDateTime

说明 | 获取输入日期时间的秒信息。
语法 | Integer SecondFromDateTime(Numeric x)
参数 | x 输入日期时间
备注 | 无
示例 | 用2011年4月12日10:41:32举例，SecondFromDateTime(20110412.104132);返回秒信息32。

快速链接


Sell

说明 | 产生一个多头平仓操作。
语法 | Bool Sell(Numeric Share=0,Numeric Price=0)
参数 Share 卖出数量，为整型值，默认为平掉当前所有持仓；
Price 卖出价格，为浮点数，默认=0时为使用现价(非最后Bar为Close)。
备注 产生一个多头平仓操作，返回值为布尔型，执行成功返回True，否则返回False。
该函数仅用于多头平仓，其处理规则如下：
如果当前持仓状态为持平，即MarketPosition = 0 时，该函数不执行任何操作。
如果当前持仓状态为空仓，即MarketPosition = -1 时，该函数不执行任何操作。
如果当前持仓状态为多仓，即MarketPosition = 1 时，如果此时Share使用默认值，该函数将平掉所有多仓，达到持平的状态，否则只平掉参数Share的多仓。
当委托价格超出k线的有效范围，在历史数据上，将会取最接近的有效价格发单；在实盘中，将会按照实际委托价格发单。
例如：当前k线有效价格为50-100，用sell(1,10)发单，委托价将以50发单。
示例 在MarketPosition==1的情况下：
Sell(50,10.2) 表示用10.2的价格卖出50张合约。
Sell(10,Close) 表示用当前Bar收盘价卖出10张合约，马上发送委托。
Sell(5,0) 表示用现价卖出5张合约，马上发送委托。
Sell(0,0) 表示用现价按交易设置中的设置,马上发送委托。

快速链接


SellShort

说明 | 产生一个空头建仓操作。
语法 | Bool SellShort(Numeric Share=0,Numeric Price=0)
参数 Share 卖出数量，为整型值，默认为使用系统设置参数；
Price 卖出价格，为浮点数，默认=0时为使用现价(非最后Bar为Close)。
备注 产生一个空头建仓操作，返回值为布尔型，执行成功返回True，否则返回False。
该函数仅用于空头建仓，其处理规则如下：
如果当前持仓状态为持平，即MarketPosition = 0 时，该函数按照参数进行空头建仓。
如果当前持仓状态为多仓，即MarketPosition = 1 时，，该函数平掉所有多仓，同时按照参数进行空头建仓，两个动作同时发出
如果当前持仓状态为空仓，即MarketPosition = -1 时，该函数将继续建仓，但具体是否能够成功建仓要取决于系统中关于连续建仓的设置，以及资金，最大持仓量等限制。
当委托价格超出k线的有效范围，在历史数据上，将会取最接近的有效价格发单；在实盘中，将会按照实际委托价格发单。
例如：当前k线有效价格为50-100，用SellShort(1,10)发单，委托价将以50发单。
示例 在MarketPosition=0或者MarketPosition=-1的情况下：（当前没有持仓或者持有空头持仓）
SellShort(50,10.2) 表示用10.2的价格空头卖出50张合约。
SellShort(10,Close) 表示用当前Bar收盘价空头卖出10张合约，马上发送委托。
SellShort(5,0) 表示用现价空头卖出5张合约，马上发送委托。
SellShort(0,0) 表示用现价按交易设置中设置的手数,马上发送委托。
在MarketPosition=1的情况下：（当前持有多头持仓）
SellShort(10,Close) 表示平掉所有多头仓位，并用当前Bar收盘价空头卖出10张合约，马上发送委托。

快速链接


SetGlobalVar

说明 | 设置某个索引的全局变量值。
语法 | Bool SetGlobalVar(Integer nIndex,Numeric fVal)
参数 | nIndex 要设置全局变量的索引值，该值从0开始计数，不能大于500。 fVal 要设置变量的值。
备注 | 设置某个索引的全局变量值，返回值为布尔型。 提示:配合GetGlobalVar使用。
示例 | SetGlobalVar(1,123); 将第2个全局变量设置为123。

快速链接


SetTBProfileString

说明 | 把给定的键名及其值写入到公式信息文件的相应块中。
语法 | Bool SetTBProfileString(String strSection,String strKey,String strValue)
参数 strSection 指定的信息块的块名
strKey 指定的信息的键名
strValue 写入的字符串信息
备注 把给定的键名及其值写入到公式信息文件的相应块中。
执行成功返回True，执行失败返回False。写入字符串长度不能超过256字节，否则无法正常读出。
提示:配合GetTBProfileString使用。
示例 SetTBProfileString("MySection","Close",Text(Close));
SetTBProfileString(Symbol,"Close",Text(Close));
建议:配合商品代码（函数Symbol）使用。

快速链接


SetTBProfileString2File

说明 | 把给定的键名及其值写入到公式信息文件的相应块中。
语法 | String SetTBProfileString2File(String strPath,String strSection,String strKey,String strValue)
参数 | strPath 指定文件的路径，请使用全路径表示，并使用\\做路径分割符，否则会执行失败 strSection 指定的信息块的块名 strKey 指定的信息的键名 strValue 写入的字符串信息
备注 | 把给定的键名及其值写入到文件的相应块中。 执行成功返回True，执行失败返回False。写入字符串长度不能超过256字节，否则无法正常读出。 提示:配合GetTBProfileString2File使用。
示例 | SetTBProfileString2File("c:\\test.txt","MySection","Close",Text(Close));

快速链接


Sign

说明 | 返回数字的符号。
语法 | Integer Sign(Numeric Number)
参数 | Number 为任意实数。
备注 | 返回数字的符号。当数字为正数时返回 1，为零时返回 0，为负数时返回 -1。
示例 | Sign (10) = 1； Sign (4-4) = 0； Sign (-0.00001) = -1。

快速链接


Sin

说明 | 返回给定角度的正弦值。
语法 | Numeric Sin(Numeric Number)
参数 | Number 为需要求正弦的角度，以弧度表示。如果参数的单位是度，则可以乘以 Pi ()/180 将其转换为弧度。
备注 | 返回给定角度的正弦值。
示例 | Sin (Pi()) = 1.22E-16，近似于 0。即 pi 的正弦值为 0； Sin (Pi ()/2) = 1； Sin (30* Pi ()/180) = 0.5，即 30 度的正弦值。

快速链接


Sinh

说明 | 返回某一数字的双曲正弦值。
语法 | Numeric Sinh(Numeric Number)
参数 | Number 为任意实数。
备注 | 返回某一数字的双曲正弦值。
示例 | Sinh (1) = 1.175201194； Sinh (-1) = -1.175201194。

快速链接


Sqr

说明 | 返回参数的平方。
语法 | Numeric Sqr(Numeric Number)
参数 | Number 需要计算其平方的实数。
备注 | 返回参数的平方。
示例 | Sqr (2) = 4； Sqr (-2) = 4； Sqr (0) = 0； Sqr (-5.3) = 28.09； Sqr (10.43) = 108.7849。

快速链接


Sqrt

说明 | 返回参数的正平方根。
语法 | Numeric Sqrt(Numeric Number)
参数 | Number 为需要求平方根的数字，如果该数字为负，则函数Sqrt返回无效值。
备注 | 返回参数的正平方根。
示例 | Sqrt (16) = 4； Sqrt (-16) = 无效值； Sqrt (Abs(-16)) = 4。

快速链接


StringToDate

说明 | 将字符串转化为日期。
语法 | Integer StringToDate(String str)
参数 | str 需要转化的字符串。
备注 | 将字符串转化为日期。系统只识别以下格式YYYY-MM-DD，无效的输入返回19000101。
示例 | StringToDate ("2003-02-23") = 20030223。

快速链接


StringToDateTime

说明 | 将字符串转化为日期时间。
语法 | Numeric StringToDateTime(String str)
参数 | str 需要转化的字符串。
备注 | 将字符串转化为日期时间。系统只识别以下格式YYYY-MM-DD HH:MM:SS，无效的输入返回19000101.000000。
示例 | StringToDateTime ("2003-02-23 12:24:55") = 20030223.122455。

快速链接


StringToTime

说明 | 将字符串转化为时间。
语法 | Numeric StringToTime(String str)
参数 | str 需要转化的字符串。
备注 | 将字符串转化为时间。系统只识别以下格式HH:MM:SS，无效的输入返回0。
示例 | StringToTime ("12:24:55") 等于 0.122455。

快速链接


Sunday

说明 | 获得星期日的值。
语法 | Integer Sunday()
参数 | 无
备注 | 获得星期日的值：0。
示例 | 无

快速链接


Symbol

说明 | 当前公式应用商品的代码。
语法 | String Symbol()
参数 | 无
备注 | 当前公式应用商品的代码，返回字符串。
示例 | 例如当前公式插入了ru1101，则Symbol返回字符串“ru1101”。

快速链接


SymbolName

说明 | 当前公式应用商品的名称。
语法 | String SymbolName()
参数 | 无
备注 | 当前公式应用商品的名称，返回字符串。
示例 | 例如当前公式插入m1101，SymbolName返回字符串“豆粕1101”。

快速链接


SymbolType

说明 | 当前公式应用商品的小类信息,例如Cu,Ru,SR等。
语法 | String SymbolType()
参数 | 无
备注 | 返回商品品种代码。
示例 | 沪铜1105，函数返回字符串"Cu"。

快速链接


SystemDateTime

说明 | 获取交易开拓者平台的当前日期时间。
语法 | Numeric SystemDateTime()
参数 | 无
备注 | 获取交易开拓者平台的当前日期时间，格式为YYYYMMDD.HHMMSS的浮点数。
示例 | 如果当前日期为2004-1-24，当前时间为11:34:21，SystemDateTime返回值为20040124.113421。

快速链接


T

说明 | 当前公式应用商品在当前Bar的时间。
语法 | Numeric T()
参数 | 无
备注 | 当前公式应用商品在当前Bar的时间，格式为0.HHMMSS的浮点数，Time的简写。
示例 | 如果当前时间为11:34:21，Time返回值为0.113421。

快速链接


Tan

说明 | 返回给定角度的正切值。
语法 | Numeric Tan(Numeric Number)
参数 | Number 为需要求正切的角度，以弧度表示。如果参数的单位是度，则可以乘以 Pi()/180，将它转换为弧度。
备注 | 返回给定角度的正切值。
示例 | Tan (0.785) = 0.99920； Tan (45*Pi()/180) = 1。

快速链接


Tanh

说明 | 返回某一数字的双曲正切值。
语法 | Numeric Tanh(Numeric Number)
参数 | Number 为任意实数。
备注 | 返回某一数字的双曲正切值。
示例 | Tanh (-2) = -0.96403； Tanh (0) = 0 ； Tanh (0.5) = 0.462117。

快速链接


Text

说明 | 将参数中的数字转化为字符串。
语法 | String Text(Numeric value)
参数 | value 需要转化的数字。
备注 | 将参数中的数字转化为字符串。
示例 Text(3) 返回值为 "3"；
Text(1.2345) 返回值为 "1.2345"。

快速链接


Thursday

说明 | 获得星期四的值。
语法 | Integer Thursday()
参数 | 无
备注 | 获得星期四的值：4。
示例 | 无

快速链接


Time

说明 | 当前公式应用商品在当前Bar的时间。
语法 | Numeric Time()
参数 | 无
备注 | 当前公式应用商品在当前Bar的时间，格式为0.HHMMSSmmm的浮点数。
示例 | 如果当前时间为11:34:21.356，Time返回值为0.113421356。

快速链接


TimeDiff

说明 | 返回两个时间之间的间隔秒数，忽略日期差异。
语法 | Integer TimeDiff(Numeric Time1,Numeric Time2)
参数 Time1 输入较早时间
Time2 输入较晚个时间
备注 | 无
示例 TimeDiff(20110404.104110,20110404.104120);返回两时间相差10秒；
TimeDiff(20110404.1041,20110404.1043);返回两时间相差2分钟，即120秒。

快速链接


TimeToString

说明 | 将时间值转化为字符串类型。
语法 | String TimeToString(Numeric fTime)
参数 | fTime 要进行转化的参数值，为0.0-0.235959的浮点数。
备注 | 将时间值转化为字符串类型。如果位数超长自动截掉最后的多余位数，位数不足在分别在后面补零。某位数字如果输入值无效，将自动设置为最小的有效值。
示例 | TimeToString (0.114323) 等于 "11:43:23"； TimeToString (0.1363) 等于 "13:00:00"。

快速链接


TotalBarsEvenTrades

说明 | 获得保本交易的总持仓Bar数。
语法 | Integer TotalBarsEvenTrades()
参数 | 无
备注 | 获得保本交易的总持仓Bar数，已考虑交易费用，返回值为整型。
示例 | 无

快速链接


TotalBarsLosTrades

说明 | 获得亏损交易的总持仓Bar数。
语法 | Integer TotalBarsLosTrades()
参数 | 无
备注 | 获得亏损交易的总持仓Bar数，已考虑交易费用，返回值为整型。
示例 | 无

快速链接


TotalBarsWinTrades

说明 | 获得盈利交易的总持仓Bar数。
语法 | Integer TotalBarsWinTrades()
参数 | 无
备注 | 获得盈利交易的总持仓Bar数，已考虑交易费用，返回值为整型。
示例 | 无

快速链接


TotalTrades

说明 | 获得交易的总手数。
语法 | Integer TotalTrades()
参数 | 无
备注 | 获得交易的总手数，返回值为整型。
示例 | 无

快速链接


Trim

说明 | 除了文本两边所有的空格。
语法 | String Trim(String str)
参数 | str 需要清除文本中头尾的空格。
备注 | 除掉文本两边所有的空格，保留其中的空格。
示例 | Trim (" First Quarter Earnings ") 等于 "First Quarter Earnings"。

快速链接


Tuesday

说明 | 获得星期二的值。
语法 | Integer Tuesday()
参数 | 无
备注 | 获得星期二的值：2。
示例 | 无

快速链接


Unplot

说明 | 删除曾经输出的值。
语法 | Bool Unplot(String Name,Integer BarsBack =0)
参数 Name 要删除输出值的名称，不区分大小写；
BarsBack 从当前Bar向前回溯的Bar数，默认值为删除当前Bar曾经输出的值。
备注 | 删除曾经输出的值，删除从当前Bar回溯BarsBack个Bar上曾经用PlotBool、PlotNumeric和PlotString输出的所有值，设置该Bar上Name对应的所有值无效。返回布尔值，设置成功返回True，如果BarsBack小于0或者大于CurrentBar，该函数返回False。
示例 PlotNumeric ("Line1",Close);
If (Close > Open) Unplot("Line1",1); 当 Close > Open ，将上一个Bar输出的数据删除。

快速链接


Upper

说明 | 将一个文字串中的所有小写字母转换为大写字母。
语法 | String Upper(String str)
参数 | str 是要转换为大写字母的文字串。函数Upper不改变文字串中的非字母的字符。
备注 | 将一个文字串中的所有小写字母转换为大写字母。
示例 | Upper ("total") = "TOTAL"。

快速链接


V

说明 | 当前公式应用商品在当前Bar的成交量。
语法 | Numeric V()
参数 | 无
备注 | 当前公式应用商品在当前Bar的成交量，返回值为浮点数，Vol的简写。
示例 | 无

快速链接


Value

说明 | 将代表数字的文字串转换成数字。
语法 | Numeric Value(String str)
参数 | str 为需要进行格式转换的文本字符串。
备注 | 将代表数字的文字串转换成数字。
示例 | Value ("1,000") = 1,000； Value ("-30540fdfde") = -30540。

快速链接


Vol

说明 | 当前公式应用商品在当前Bar的成交量。
语法 | Numeric Vol()
参数 | 无
备注 | 当前公式应用商品在当前Bar的成交量，返回值为浮点数。
示例 | 无

快速链接


Wednesday

说明 | 获得星期三的值。
语法 | Integer Wednesday()
参数 | 无
备注 | 获得星期三的值：3。
示例 | 无

快速链接


Weekday

说明 | 获得当前Bar的周信息。
语法 | Integer Weekday()
参数 | 无
备注 | 获得当前Bar的周信息，格式为0-6的整数。
示例 | 如果当前Bar日期为2004-1-24，Weekday返回值为6，即为周六。

快速链接


WeekdayFromDateTime

说明 | 获取输入日期时间的周信息。
语法 | Integer WeekdayFromDateTime(Numeric x)
参数 | x 输入日期时间
备注 | 无
示例 | 用2011年4月12日10:41:32举例，WeekdayFromDateTime(20110412.104132);返回星期信息2，即周二（星期二）。

快速链接


White

说明 | 返回白色的RGB值。
语法 | Integer White()
参数 | 无
备注 | 返回白色的RGB值，即RGB(255,255,255)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接

>


Year

说明 | 获得当前Bar的年信息。
语法 | Integer Year()
参数 | 无
备注 | 获得当前Bar的年信息，格式为1900-9999的整数。
示例 | 如果当前Bar日期为2004-1-24，Year返回值为2004。

快速链接


YearFromDateTime

说明 | 获取输入日期时间的年信息。
语法 | Integer YearFromDateTime(Numeric x)
参数 | x 输入日期时间
备注 | 无
示例 | 用2011年4月12日10:41:32举例，YearFromDateTime(20110412.104132);返回年信息2011。

快速链接


Yellow

说明 | 返回黄色的RGB值。
语法 | Integer Yellow()
参数 | 无
备注 | 返回黄色的RGB值，即RGB(255,255,0)。
示例 | 可用于以下函数的Color参数中： PlotNumeric、PlotString等等。

快速链接


AdaptiveMovAvg

说明 | 求卡夫曼自适应移动平均
语法 | Numeric AdaptiveMovAvg(NumericSeries Price,Numeric EffRatioLength,Numeric FastAvgLength,Numeric SlowAvgLength)
参数 Price 需要进行移动平均计算的值，必须是数值型序列值;
EffRatioLength 用于计算效率比的值，为数值型;
FastAvgLength 是快速平均需要的周期数，为整型;
SlowAvgLength 是慢速平均需要的周期数，为整型。
备注 | 该函数计算指定参数的数值型序列值的卡夫曼自适应移动平均值，返回值为浮点数。
示例 | AdaptiveMovAvg(Close, 10, 2, 30); 计算收盘价的卡夫曼自适应移动平均值。

快速链接

  • 用户函数索引


Average

说明 | 求平均
语法 | Numeric Average(NumericSeries Price,Numeric Length)
参数 | Price 用于求和的值，必须是数值型序列值； Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的平均值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | Average (Close, 12); 计算12周期以来的收盘价的平均值; Average ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的平均值。

快速链接

  • 用户函数索引


AverageD

说明 | 求N天以来的价格平均值
语法 | Numeric AverageD(Numeric DataType,Numeric Length)
参数 DataType 用于求平均的类型，1 - 收盘价，2 - 开盘价，3 - 最高价，4 - 最低价，5 - 成交量，6 - 持仓量；
Length 是需要计算的周期数，为整型。
备注 该函数计算N天以来的价格平均值，返回值为浮点数;
当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 AverageD(1, 12); 计算12天以来的收盘价的平均值;
AverageD(3, 10); 计算10天以来最高价的平均值。

快速链接

  • 用户函数索引


AverageFC

说明 | 快速计算平均值
语法 | Numeric AverageFC(NumericSeries Price,Numeric Length)
参数 Price 用于求和的值，必须是数值型序列值;
Length 是需要计算的周期数，为整型.
备注 该函数计算指定周期内的数值型序列值的平均值，返回值为浮点数;
当序列值的CurrentBar小于Length时，该函数返回无效值;
使用该函数时,第二个参数不能使用变量.如果第二个参数需要使用到变量,请使用Average函数.
示例 AverageFC(Close, 12); 计算12周期以来的收盘价的平均值;
AverageFC((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的平均值。

快速链接

  • 用户函数索引


AvgDeviation

说明 | 求平均背离
语法 | Numeric AvgDeviation(NumericSeries Price,Numeric Length)
参数 | Price 用于计算平均背离的值，必须是数值型序列值; Length 是需要计算的周期数，为整型.
备注 | 该函数计算指定周期内的数值型序列值的平均背离值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | AvgDeviation (Close, 12); 计算12周期以来的收盘价的平均背离值; AvgDeviation ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的平均背离值.

快速链接

  • 用户函数索引


AvgPrice

说明 | 求平均价格
语法 | Numeric AvgPrice()
参数 | 无
备注 | 该函数计算当前周期的平均价格，返回值为浮点数
示例 | AvgPrice();计算当前bar开高低收盘价的平均值.

快速链接

  • 用户函数索引


AvgTrueRange

说明 | 求平均真实范围
语法 | Numeric AvgTrueRange(Numeric Length)
参数 | Length 是需要计算的周期数，为整型。
备注 | 该函数计算当前周期的真实高点和真实低点的Length周期的平均差值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | AvgTrueRange(10);计算10周期以来的真实高点和真实低点的平均差值。

快速链接

  • 用户函数索引


BarsSinceToday

说明 | 求当天的第一个数据到当前的Bar数
语法 | Numeric BarsSinceToday()
参数 | 无
备注 | 该函数计算当天的第一个数据到当前的Bar数，返回值为整数。
示例 | 无

快速链接

  • 用户函数索引


CloseD

说明 | 求N天前的收盘价
语法 | Numeric CloseD(Numeric daysAgo)
参数 | daysAgo 最近N天，0为当天，1为昨天，依次类推。
备注 | 该函数计算N天前的收盘价，返回值为浮点数。
示例 CloseD(3);得到3天前的收盘价。
CloseD(1);得到昨日收盘价。
CloseD(0);得到当天最新的收盘价。

快速链接

  • 用户函数索引


CoefficientR

说明 | 求皮尔森相关系数
语法 | Numeric CoefficientR(NumericSeries Price1,NumericSeries Price2,Numeric Length)
参数 Price1 求相关系统的数据源1，必须是数值型序列值;
Price2 求相关系统的数据源2，必须是数值型序列值;
Length 是需要的周期数，为整型.
备注 该函数计算指定周期内的两组数值型序列值的皮尔森相关系数，返回值为浮点数.
当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | CoefficientR(Data1.Close, Data2.Close, 12 );计算12周期以来的Data1收盘价和Data2收盘价的皮尔森相关系数。

快速链接

  • 用户函数索引


Correlation

说明 | 求相关系数
语法 | Numeric Correlation(NumericSeries Price1,NumericSeries Price2,Numeric Length)
参数 Price1 求相关系统的数据源1，必须是数值型序列值;
Price2 求相关系统的数据源2，必须是数值型序列值;
Length 是需要的周期数，为整型.
备注 该函数计算指定周期内的两组数值型序列值的相关系数，返回值为浮点数.
当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | Correlation(Data1.Close, Data2.Close, 12 );计算12周期以来的Data1收盘价和Data2收盘价的相关系数。

快速链接

  • 用户函数索引


CountIf

说明 | 获取最近N周期条件满足的计数
语法 | Numeric CountIf(Bool TestCondition, Numeric Length)
参数 | TestCondition 传入的条件表达式； Length 计算条件的周期数。
备注 | 获取最近N周期条件满足的计数，返回值为浮点数。
示例 | CountIf(Close > Open , 10); 最近10周期出现Close>Open的周期总数。

快速链接

  • 用户函数索引


Covar

说明 | 求协方差
语法 | Numeric Covar(NumericSeries Price1,NumericSeries Price2,Numeric Length)
参数 Price1 求协方差的数据源1，必须是数值型序列值;
Price2 求协方差的数据源2，必须是数值型序列值;
Length 是需要的周期数，为整型.
备注 该函数计算指定周期内的两组数值型序列值的协方差，返回值为浮点数。
当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | Covar(Data1.Close, Data2.Close, 12); 计算12周期以来的Data1收盘价和Data2收盘价的协方差。

快速链接

  • 用户函数索引


CrossOver

说明 | 求是否上穿
语法 | Bool CrossOver(NumericSeries Price1,NumericSeries Price2)
参数 | Price1 求交叉的数据源1; Price2 求交叉的数据源2。
备注 | 该函数返回Price1数值型序列值是否上穿Price2数值型序列值，返回值为布尔型。
示例 | CrossOver(Close[1], AvgPrice); 判断上一个Bar的收盘价Close是否上穿AvgPrice. 注意：在使用判断穿越的函数时，要尽量避免使用例如close等不确定的元素，否则会导致信号消失，一般情况下，Close可以改用High和Low分别判断向上突破（函数CrossOver）和向下突破（函数CrossUnder）。

快速链接

  • 用户函数索引


CrossUnder

说明 | 求是否下穿
语法 | Bool CrossUnder(NumericSeries Price1,NumericSeries Price2)
参数 | Price1 求交叉的数据源1; Price2 求交叉的数据源2。
备注 | 该函数返回Price1数值型序列值是否下破Price2数值型序列值，返回值为布尔型;
示例 | CrossUnder(Close[1], AvgPrice); 判断上一个Bar的收盘价Close是否下破AvgPrice. 注意：在使用判断穿越的函数时，要尽量避免使用例如close等不确定的元素，否则会导致信号消失，一般情况下，Close可以改用High和Low分别判断向上突破（函数CrossOver）和向下突破（函数CrossUnder）。

快速链接

  • 用户函数索引


Cum

说明 | 求累计值
语法 | Numeric Cum(NumericSeries Price)
参数 | Price 用于求累计值的值，必须是数值型序列值。
备注 | 该函数计算从第一个Bar以来数值型序列值的累计值，返回值为浮点数。
示例 | Cum (Close); 计算从第一个Bar以来收盘价的累计值； Cum (Volume) ; 计算从第一个Bar以来成交量的累计值。

快速链接

  • 用户函数索引


DataConvert

说明 | 跨周期数据转换函数
语法 | Numeric DataConvert(NumericSeries Price,String strPeriodType,Numeric nPeriodNums,String strDataType)
参数 Price 用于进行转换的值，必须是数值型序列值;
strPeriodType 转换的目标类型，共有四种类型："min","day","week","month";
nPeriodNums 转换的目标周期值，比如5分钟，3天，2周;
strDataType 数据转换的类型，共有6种方式："open","high","low","close","vol","openint"。
备注 | 该函数为跨周期数据转换函数，可通过小周期生成大周期数据，返回值为浮点数。
示例 Value1 = DataConvert(Close,"min",5,"close"); 将close转换为5min周期的数据，按照close计算方式。
Value1 = DataConvert(Close,"day",10,"high"); 将close转换为10day周期的数据，按照high计算方式。

快速链接

  • 用户函数索引


DEMA

说明 | 求双指数平均
语法 | Numeric DEMA(NumericSeries Price,Numeric Length)
参数 | Price 用于求双指数平均的值，必须是数值型序列值; Length 是需要计算的周期数，为整型.
备注 | 该函数计算指定周期内的数值型序列值的双指数平均值，返回值为浮点数； 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | DEMA (Close, 12); 计算12周期以来的收盘价的双指数平均值; DEMA((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的双指数平均值。

快速链接

  • 用户函数索引


Detrend

说明 | 求趋势平滑
语法 | Numeric Detrend(NumericSeries Price,Numeric Length)
参数 | Price 用于求趋势平滑的值，必须是数值型序列值; Length 是需要计算的周期数，为整型.
备注 | 该函数计算指定周期内的数值型序列值的趋势平滑值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | Detrend (Close, 12); 计算12周期以来的收盘价的趋势平滑值; Detrend ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的趋势平滑值。

快速链接

  • 用户函数索引


DevSqrd

说明 | 求偏差均方和
语法 | Numeric DevSqrd(NumericSeries Price,Numeric Length)
参数 | Price 用于求趋势平滑的值，必须是数值型序列值; Length 是需要的周期数，为整型.
备注 | 该函数计算指定周期内的数值型序列值的偏差均方和，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | DevSqrd(Close,12);计算12周期以来的收盘价的偏差均方和; DevSqrd((Close + High + Low)/ 3, 10);计算10周期以来高低收价格的平均值的偏差均方和。

快速链接

  • 用户函数索引


Extremes

说明 | 求极值
语法 | Numeric Extremes(NumericSeries Price,Numeric Length,Bool bMax,NumericRef ExtremeBar)
参数 | Price 用于求极值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型； Max 为计算类型参数，True - 求最大，False - 求最小,返回极值； ExtremeBar 是引用参数，返回极值出现的回溯周期索引。
备注 | 该函数计算指定周期内的数值型序列值的极值和极值出现的回溯周期值，返回值为浮点数。 详细使用可参见Highest，Lowest用户函数。
示例 | Extremes(High, 20, True, oExtremeBar); 计算20周期以来最高价的极值和极值出现的回溯周期索引。

快速链接

  • 用户函数索引


Fisher

说明 | 求Fisher变换
语法 | Numeric Fisher(NumericSeries Price)
参数 | Price 用于求Fisher变换的值，必须是数值型序列值，其有效区间为[-1, 1],如果传入参数不在此区间，返回-999.
备注 | 该函数计算指定周期内的数值型序列值的Fisher变换值，返回值为浮点数.
示例 Value1 = Correlation(Data1.Close, Data2.Close, 20);
Value2 = Fisher(Value1); 计算Data1，Data2收盘价的相关系数的的Fisher变换值.

快速链接

  • 用户函数索引


FisherInv

说明 | 求反Fisher变换
语法 | Numeric FisherInv(NumericSeries Price)
参数 | Price 用于求反Fisher变换的值，必须是数值型序列值。
备注 | 该函数计算指定周期内的数值型序列值的反Fisher变换值，返回值为浮点数。 如果y=Fisher(x), 则FisherInv(y)=x。
示例 | FisherInv (0.9295); 计算0.9295的反Fisher变换值.

快速链接

  • 用户函数索引


HarmonicMean

说明 | 求调和平均数
语法 | Numeric HarmonicMean(NumericSeries Price,Numeric Length)
参数 | Price 用于求调和平均数的值，必须是数值型序列值; Length 是需要计算的周期数，为整型.
备注 | 该函数计算指定周期内的数值型序列值的调和平均数，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | HarmonicMean (Close, 12); 计算12周期以来的收盘价的调和平均数； HarmonicMean ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的调和平均数。

快速链接

  • 用户函数索引


HighD

说明 | 求N天前的最高价
语法 | Numeric HighD(Numeric daysAgo)
参数 | daysAgo 最近N天，0为当天，1为昨天，依次类推。
备注 | 该函数计算N天前的最高价，返回值为浮点数。
示例 | HighD(3)；计算3天前的最高价。

快速链接

  • 用户函数索引


Highest

说明 | 求最高值
语法 | Numeric Highest(NumericSeries Price,Numeric Length)
参数 | Price 用于求最高值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的最高值，返回值为浮点数。
示例 | Highest (Close, 12); 计算12周期以来的收盘价的最高值； Highest ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的最高值。

快速链接

  • 用户函数索引


HighestBar

说明 | 求最高值出现的Bar
语法 | Numeric HighestBar(NumericSeries Price,Numeric Length)
参数 | Price 用于求最高值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值出现最高值的回溯周期索引，返回值为浮点数。
示例 | HighestBar (Close, 12); 计算12周期以来的收盘价出现最高值的回溯周期值； HighestBar ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值出现最高值的回溯周期索引。

快速链接

  • 用户函数索引


HighestBarFC

说明 | 求最高值出现的Bar(快速计算版本)
语法 | Numeric HighestBarFC(NumericSeries Price,Numeric Length)
参数 | Price 用于求最高值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型，必须是常量。
备注 | 该函数计算指定周期内的数值型序列值出现最高值的回溯周期索引，返回值为浮点数。
示例 | HighestBarFC (Close, 12); 计算12周期以来的收盘价出现最高值的回溯周期值； HighestBarFC ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值出现最高值的回溯周期索引。

快速链接

  • 用户函数索引


HighestFC

说明 | 求最高值(快速计算版本)
语法 | Numeric HighestFC(NumericSeries Price,Numeric Length)
参数 | Price 用于求最高值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型，必须是常量。
备注 | 该函数计算指定周期内的数值型序列值的最高值，返回值为浮点数。
示例 | HighestFC (Close, 12); 计算12周期以来的收盘价的最高值； HighestFC ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的最高值。

快速链接

  • 用户函数索引


Kurtosis

说明 | 求峰度系数
语法 | Numeric Kurtosis(NumericSeries Price,Numeric Length)
参数 | Price 用于求峰读系数的值，必须是数值型序列值; Length 是需要计算的周期数，为整型，Length必须大于3.
备注 | 该函数计算指定周期内的数值型序列值的峰度系数，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | Kurtosis (Close, 12); 计算12周期以来的收盘价的峰度系数； Kurtosis ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的峰度系数。

快速链接

  • 用户函数索引


LinearReg

说明 | 求线性回归
语法 | Bool LinearReg(NumericSeries Price,Numeric Length,Numeric TgtBar,NumericRef LRSlope,NumericRef LRAngle,NumericRef LRIntercept,NumericRef LRValue)
参数 Price 用于求线形回归的值，必须是数值型序列值;
Length 是需要计算的周期数，为整型;
TgtBar 计算历史或未来的Bar的线形回归值，为整型，只对LRValue有影响。0为当前Bar，>0为历史的Bar,<0为未来的Bar;
LRSlope 引用参数，返回线形回归的斜率值。
LRAngle 引用参数，返回线形回归的角度;
LRIntercept 引用参数，返回线形回归的Y轴截距;
LRValue 引用参数，返回线形回归的值。
备注 该函数计算指定周期内的数值型序列值的线性回归，返回值为布尔型，表示返回值是否有效;
通过引用参数返回线形回归的各项计算值.
当序列值的CurrentBar小于Length时，该函数无效。
示例 LinearReg (Close, 12, 0, oSlope, oAngle, oIntercept, oValue); 计算12周期以来的收盘价的线性回归，通过4个引用参数返回结果值；
LinearReg ((Close + High + Low)/ 3, 10, 3, oSlope, oAngle, oIntercept, oValue); 计算10周期以来高低收价格的平均值的前3个Bar的线性回归，通过4个引用参数返回结果值.

快速链接

  • 用户函数索引


LinearRegAngle

说明 | 求线性回归的角度
语法 | Numeric LinearRegAngle(NumericSeries Price,Numeric Length)
参数 | Price 用于求线形回归的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的线性回归角度值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | LinearRegAngle (Close, 12); 计算12周期以来的收盘价的线性回归角度值； LinearRegAngle ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的线性回归角度值.

快速链接

  • 用户函数索引


LinearRegSlope

说明 | 求线性回归的斜率
语法 | Numeric LinearRegSlope(NumericSeries Price,Numeric Length)
参数 | Price 用于求线形回归的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的线性回归斜率值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | LinearRegSlope (Close, 12); 计算12周期以来的收盘价的线性回归斜率值； LinearRegSlope ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的线性回归斜率值.

快速链接

  • 用户函数索引


LinearRegValue

说明 | 求线性回归值
语法 | Numeric LinearRegValue(NumericSeries Price,Numeric Length,Numeric TgtBar)
参数 | Price 用于求线形回归的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的线性回归值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | LinearRegValue (Close, 12, 0); 计算12周期以来的收盘价的线性回归值； LinearRegValue ((Close + High + Low)/ 3, 10, 0); 计算10周期以来高低收价格的平均值的线性回归值.

快速链接

  • 用户函数索引


LowD

说明 | 求N天前的最低价
语法 | Numeric LowD(Numeric daysAgo)
参数 | daysAgo 最近N天，0为当天，1为昨天，依次类推。
备注 | 该函数计算N天前的最低价，返回值为浮点数。
示例 | LowD(3)；计算3天前的最低价。

快速链接

  • 用户函数索引


Lowest

说明 | 求最低
语法 | Numeric Lowest(NumericSeries Price,Numeric Length)
参数 | Price 用于求最低值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的最低值，返回值为浮点数。
示例 | Lowest (Close, 12); 计算12周期以来的收盘价的最低值； Lowest ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的最低值。

快速链接

  • 用户函数索引


LowestBar

说明 | 求最低值出现的Bar
语法 | Numeric LowestBar(NumericSeries Price,Numeric Length)
参数 | Price 用于求最低值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值出现最低值的回溯周期索引，返回值为浮点数。
示例 | LowestBar (Close, 12); 计算12周期以来的收盘价出现最低值的回溯周期值； LowestBar ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值出现最低值的回溯周期索引。

快速链接

  • 用户函数索引


LowestBarFC

说明 | 求最低值出现的Bar(快速计算版本)
语法 | Numeric LowestBarFC(NumericSeries Price,Numeric Length)
参数 | Price 用于求最低值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型，必须是常量。
备注 | 该函数计算指定周期内的数值型序列值出现最低值的回溯周期索引，返回值为浮点数。
示例 | LowestBarFC(Close, 12); 计算12周期以来的收盘价出现最低值的回溯周期值； LowestBarFC((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值出现最低值的回溯周期索引。

快速链接

  • 用户函数索引


LowestFC

说明 | 求最低(快速计算版本)
语法 | Numeric LowestFC(NumericSeries Price,Numeric Length)
参数 | Price 用于求最低值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型，必须是常量。
备注 | 该函数计算指定周期内的数值型序列值的最低值，返回值为浮点数。
示例 | LowestFC (Close, 12); 计算12周期以来的收盘价的最低值； LowestFC ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的最低值。

快速链接

  • 用户函数索引


Max

说明 | 求最大值
语法 | Numeric Max(Numeric Value1,Numeric Value2)
参数 | Value1,Value2是数值型值
备注 | 计算两个数之间的最大值
示例 | Max(close,close[1]);计算close和close[1]之间的最大值

快速链接

  • 用户函数索引


Median

说明 | 求中位数
语法 | Numeric Median(NumericSeries Price,Numeric Length)
参数 Price 用于求中位数的值，必须是数值型序列值;
Length 是需要计算的周期数，为整型。
备注 该函数计算指定周期内的数值型序列值的中位数，返回值为浮点数;
当序列值的CurrentBar小于Length时，该函数返回无效值;
如果Length为偶数，返回值为两个中位数的平均值，如果Length为奇数，返回值为中位数。
示例 Median (Close, 12); 计算12周期以来的收盘价的中位数；
Median ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的中位数.

快速链接

  • 用户函数索引


MidPoint

说明 | 求中点
语法 | Numeric MidPoint(NumericSeries Price,Numeric Length)
参数 | 用于求中点的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的中点值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | MidPoint (Close, 12); 计算12周期以来的收盘价的中点值； MidPoint ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的中点值。

快速链接

  • 用户函数索引


Min

说明 | 求最小值
语法 | Numeric Min(Numeric Value1,Numeric Value2)
参数 | Value1,Value2是数值型值。
备注 | 计算两个数之间的最小值。
示例 | Min(open,open[1]);计算open和open[1]之间的最小值。

快速链接

  • 用户函数索引


Mode

说明 | 求众数
语法 | Numeric Mode(NumericSeries Price, Numerice Length)
参数 | Price 用于求众数的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的众数，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | Mode(Close,50); 求50个周期以来出现最频繁的收盘价值。

快速链接

  • 用户函数索引


Momentum

说明 | 求动量
语法 | Numeric Momentum(NumericSeries Price,Numeric Length)
参数 | Price 用于求动量的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的动量值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | Momentum (Close, 12); 计算12周期以来的收盘价的动量值； Momentum ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的动量值。

快速链接

  • 用户函数索引


NthCon

说明 | 第N个满足条件的Bar距当前的Bar数目
语法 | Numeric NthCon(Bool Con, Numeric N)
参数 Con 传入的条件表达式；
N 求第N个满足条件中的N值，N = 1　表示最近的一个，N = 2 为倒数第二个。
备注 | 第N个满足条件的Bar距当前的Bar数目，返回值为浮点数。即满足条件的Bar和当前Bar的偏移值。
示例 NthCon(Close > Open , 1); 从当前Bar开始，最近出现Close>Open的Bar到当前Bar的偏移值。如果为0，即当前Bar为最近的满足条件的Bar。
Nth(High==Highest(High,10),2); 倒数第二个最高价为最近10个Bar的最高价的Bar到当前Bar的偏移值。

快速链接

  • 用户函数索引


NthExtremes

说明 | 求N极值
语法 | Numeric NthExtremes(NumericSeries Price,Numeric Length,Numeric N,Bool bMax,NumericRef NthExtremeBar)
参数 | Price 用于求第N个极值的值，必须是数值型序列值; Length是需要计算的周期数，为整型;当N>Length或者N,Length为非正数时，返回值为-1； Max为计算类型参数，True - 求最大，False - 求最小； ExtremeBar是引用参数，返回极值出现的回溯周期索引。
备注 | 该函数计算指定周期内的数值型序列值的N极值和N极值出现的回溯周期索引，返回值为浮点数。
示例 | Extremes(High, 20, 5,True, oExtremeBar); 计算20周期以来最高价的第5大值和第5大值出现的回溯周期索引。

快速链接

  • 用户函数索引


NthHigher

说明 | 求第N高
语法 | Numeric NthHigher(NumericSeries Price,Numeric Length,Numeric N)
参数 | Price 用于求第N高值的值，必须是数值型序列值; Length 是需要计算的周期数，为整型;当N>Length或者N,Length为非正数时，返回值为-1。 N 为求第N高值；N=1为求最高值，N=2为求第二高值
备注 | 该函数计算指定周期内的数值型序列值的第N高值，返回值为浮点数。
示例 | NthHigher (Close, 12, 5); 计算12周期以来的收盘价的第5高值； NthHigher ((Close + High + Low)/ 3, 10, 3); 计算10周期以来高低收价格的平均值的第3高值。

快速链接

  • 用户函数索引


NthHigherBar

说明 | 求第N高出现的Bar
语法 | Numeric NthHigherBar(NumericSeries Price,Numeric Length,Numeric N)
参数 Price 用于求第N高值的值，需要求第N高值序列变量；
Length 计算指定的周期数;
N 求第N高的N值,1为求最大值，2位求第二大的值。
备注 | 求第N高出现的Bar，返回数值型变量。
示例 NthHigherBar(High,10,2); 求最近10个Bar的最高价的第二高值出现的Bar距当前Bar的回溯周期索引。
NthHigherBar(Close,8,1); 求最近8个Bar的收盘价最大值出现的Bar据当前Bar的偏离数，假定Close的最大值出现在前面第4个Bar，则返回4。

快速链接

  • 用户函数索引


NthLower

说明 | 求第N低值
语法 | Numeric NthLower(NumericSeries Price,Numeric Length,Numeric N)
参数 | Price 用于求第N低值的值，必须是数值型序列值； Length 是需要计算的周期数，为整型,当N>Length或者N,Length为非正数时，返回值为-1; N 求第N低的N值,1为求最小值，2位求第二小的值。
备注 | 该函数计算指定周期内的数值型序列值的第N低值，返回值为浮点数。
示例 | NthLower (Close, 12, 5); 计算12周期以来的收盘价的第5低值； NthLower ((Close + High + Low)/ 3, 10, 3); 计算10周期以来高低收价格的平均值的第3低值。

快速链接

  • 用户函数索引


NthLowerBar

说明 | 求第N低出现的Bar
语法 | Numeric NthLowerBar(NumericSeries Price,Numeric Length,Numeric N)
参数 | Price 用于求第N低值的值，必须是数值型序列值； Length 是需要计算的周期数，为整型,当N>Length或者N,Length为非正数时，返回值为-1; N 求第N低的N值,1为求最小值，2位求第二小的值。
备注 | 该函数计算指定周期内的数值型序列值出现第N低值的回溯周期索引，返回值为浮点数。
示例 | NthLowerBar (Close, 12, 5); 计算12周期以来的收盘价出现第5低值的回溯周期索引; NthLowerBar ((Close + High + Low)/ 3, 10, 3); 计算10周期以来高低收价格的平均值出现第3低值的回溯周期索引。

快速链接

  • 用户函数索引


OpenD

说明 | 求N天前的开盘价
语法 | Numeric OpenD(Numeric daysAgo)
参数 | daysAgo 最近N天，0为当天，1为昨天，依次类推。
备注 | 该函数计算N天前的开盘价，返回值为浮点数。
示例 | OpenD(3)；计算3天前的开盘价。

快速链接

  • 用户函数索引


OpenIntD

说明 | 求N天前的持仓量
语法 | Numeric OpenIntD(Numeric daysAgo)
参数 | daysAgo 最近N天，0为当天，1为昨天，依次类推。
备注 | 该函数计算N天前的持仓量，返回值为浮点数。
示例 | OpenIntD(3)；计算3天前的持仓量。

快速链接

  • 用户函数索引


ParabolicSAR

说明 | 求抛物线转向
语法 | Bool ParabolicSAR(Numeric AfStep,Numeric AfLimit,NumericRef oParClose,NumericRef oParOpen,NumericRef oPosition,NumericRef oTransition)
参数 | AfStep 加速因子; AfLimit 加速因子的限量； oParClose 引用参数，输出当前Bar的停损值； oParOpen 引用参数，输出下一个Bar的停损值； oPosition 引用参数，输出建议的持仓状态，1 - 多头，-1 - 空头； oTransition 引用参数，输出当前Bar的状态是否发生反转，1 或 -1 为反转，0 为保持不变。
备注 | 求抛物线转向，通过引用参数返回数据。
示例 | ParabolicSAR( 0.02, 0.2, oParCl, oParOp, oPosition, oTransition ) ; 求出当前Bar的抛物线转向值。

快速链接

  • 用户函数索引


PercentChange

说明 | 求涨跌幅
语法 | Numeric PercentChange(NumericSeries Price,Numeric Length)
参数 | Price 用于求涨跌幅的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的涨跌幅，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | PercentChange (Close, 12); 计算12周期以来的收盘价的涨跌幅； PercentChange ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的涨跌幅。

快速链接

  • 用户函数索引


PercentR

说明 | 求威廉指标
语法 | Numeric PercentR(Numeric Length)
参数 | Length是需要计算的周期数，为整型。
备注 该函数计算指定周期内的数值型序列值的威廉指标值，返回值为浮点数;
当序列值的CurrentBar小于Length时，该函数返回无效值。
公式应用中%R=100-PercentR()。
示例 | PercentR (12); 计算12周期以来的威廉指标值。

快速链接

  • 用户函数索引


Permutation

说明 | 求排列
语法 | Numeric Permutation(Numeric Num,Numeric NumChosen)
参数 | Num 为总的个数； NumChosen 为所选的计算排列的个数。
备注 | 该函数计算Num个数中取NumChosen个数进行排列的个数，返回值为浮点数。
示例 | Permutation(10，3)= 720; 10个数中取3个进行排列，共有720种排列

快速链接

  • 用户函数索引


Pivot

说明 | 求转折
语法 | Bool Pivot(NumericSeries Price,Numeric Length,Numeric LeftStrength,Numeric RightStrength,Numeric Instance,Numeric HiLo,NumericRef PivotPrice,NumericRef PivotBar)
参数 Price 用于求转折的值，必须是数值型序列值;
Length 是需要计算的周期数，为整型;
LeftStrength 转折点左边需要的Bar数目，必须小于Length;
RightStrength 转折点右边需要的Bar数目，必须小于Length;
Instance 设置返回哪一个波峰点，1 - 最近的波峰点，2 - 倒数第二个，以此类推;
HiLo 设置求转折的计算类型，1 - 求高点, -1 - 求低点;
PivotPrice 引用参数，转折点的Price值;
PivotBar 引用参数，转折点出现的Bar到当前Bar的回溯周期索引。
备注 该函数计算指定周期内的数值型序列值的转折点，返回值为布尔型，找到转折点返回True,无转折点返回False;
当序列值的CurrentBar小于Length时，该函数的引用参数返回无效值。
示例 | Pivot (Close,10,1,1,1,1,PivotPrice, PivotBar);计算Close最近10个周期的波峰点。

快速链接

  • 用户函数索引


PriceOscillator

说明 | 求振荡
语法 | Numeric PriceOscillator(NumericSeries Price,Numeric FastLength,Numeric SlowLength)
参数 | Price 用于求振荡的值，必须是数值型序列值; FastLength 是需要计算的快线周期数，为整型； SlowLength 是需要计算的慢线周期数，为整型。
备注 | 该函数计算快慢速周期的数值型序列值的振荡值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | PriceOscillator(Close, 9,18); 计算9,18周期的收盘价的快慢周期振荡值； PriceOscillator ((Close + High + Low)/ 3, 10, 20); 计算10，20周期的高低收价格的平均值的快慢周期振荡值。

快速链接

  • 用户函数索引


RateOfChange

说明 | 求变动率
语法 | Numeric RateOfChange(NumericSeries Price,Numeric Length)
参数 | Price 用于求变动率的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的变动率，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | RateOfChange (Close, 12); 计算12周期以来的收盘价的变动率； RateOfChange ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的变动率。

快速链接

  • 用户函数索引


SAverage

说明 | 求平滑平均
语法 | Numeric SAverage(NumericSeries Price,Numeric Length)
参数 | Price 用于求平滑平均的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的平滑平均值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | SAverage (Close, 12); 计算12周期以来的收盘价的平滑平均值； SAverage ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的平滑平均值。

快速链接

  • 用户函数索引


Skewness

说明 | 求偏度系数
语法 | Numeric Skewness(NumericSeries Price,Numeric Length)
参数 | Price 用于求偏度系数的值，必须是数值型序列值; Length 是需要计算的周期数,为整型。
备注 | 该函数计算指定周期内的数值型序列值的偏度系数，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | Skewness (Close, 12); 计算12周期以来的收盘价的偏度系数； Skewness ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的偏度系数。

快速链接

  • 用户函数索引


SMA

说明 | 求移动平均
语法 | Numeric SMA(NumericSeries Price,Numeric Length,Numeric Weight)
参数 Price 用于求移动平均的值，必须是数值型序列值;
Length 是需要计算的周期数，为整型;
Weight 计算所需设置的权重。
备注 该函数计算指定周期内的数值型序列值的移动平均值，返回值为浮点数;
该函数为兼容其它公式的SMA而设计。
示例 | 无

快速链接

  • 用户函数索引


StandardDev

说明 | 求标准差
语法 | Numeric StandardDev(NumericSeries Price,Numeric Length,Numeric DataType)
参数 | Price 用于求标准差的值，必须是数值型序列值; Length 是需要计算的周期数，为整型； DataType 求估计方差的类型，1 – 求总体方差，2 – 求样本方差。
备注 | 该函数计算指定周期内的数值型序列值的标准差，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | StandardDev (Close, 14, 1); 计算14周期以来收盘价的总体标准差； StandardDev (High, 21, 2) ; 计算21周期以来最高价的样本标准差。

快速链接

  • 用户函数索引


Summation

说明 | 求和
语法 | Numeric Summation(NumericSeries Price,Numeric Length)
参数 | Price 用于求和的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值之和，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | Summation(Close, 12); 计算12周期以来的收盘价的和； Summation((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的和。

快速链接

  • 用户函数索引


SummationFC

说明 | 快速求和
语法 | Numeric SummationFC(NumericSeries Price,Numeric Length)
参数 Price 用于求和的值，必须是数值型序列值;
Length 是需要计算的周期数，为整型。
备注 该函数计算指定周期内的数值型序列值之和，返回值为浮点数;
当序列值的CurrentBar小于Length时，该函数返回无效值;
使用该函数时,第二个参数不能使用变量。如果第二个参数需要使用到变量,请使用Summation函数
示例 SummationFC(Close, 12); 计算12周期以来的收盘价的和；
SummationFC((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的和。

快速链接

  • 用户函数索引


SwingHigh

说明 | 求波峰点
语法 | Numeric SwingHigh(Numeric Instance,NumericSeries Price,Numeric Strength,Numeric Length)
参数 | Instance 设置返回哪一个波峰点，1 - 最近的波峰点，2 - 倒数第二个，以此类推。 Price 用于求波峰点的值，必须是数值型序列值; Strength 设置转折点两边的需要的周期数，必须小于Length； Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的波峰点，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数的引用参数返回无效值。
示例 | SwingHigh(1,Close,2,10);计算Close在最近10个周期的波峰点的值，最高点两侧每侧至少需要2个Bar。

快速链接

  • 用户函数索引


SwingHighBar

说明 | 求波峰点出现的Bar
语法 | Numeric SwingHighBar(Numeric Instance,NumericSeries Price,Numeric Strength,Numeric Length)
参数 | Instance 设置返回哪一个波峰点，1 - 最近的波峰点，2 - 倒数第二个，以此类推; Price 用于求波峰点的值，必须是数值型序列值; Strength 设置转折点两边的需要的周期数，必须小于Length； Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的波峰点出现的Bar到当前Bar的回溯周期索引值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数的引用参数返回无效值。
示例 | SwingHighBar(1,Close,2,8);计算Close在最近8个周期的波峰点出现的Bar到当前Bar的回溯周期索引值，最高点两侧需要至少2个Bar。

快速链接

  • 用户函数索引


SwingLow

说明 | 求波谷点
语法 | Numeric SwingLow(Numeric Instance,NumericSeries Price,Numeric Strength,Numeric Length)
参数 | Instance 设置返回哪一个波谷点，1 - 最近的波谷点，2 - 倒数第二个，以此类推; Price 用于求波谷点的值，必须是数值型序列值; Strength 设置转折点两边的需要的周期数，必须小于Length； Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的波谷点，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数的引用参数返回无效值。
示例 | SwingLow(1,Close,2,10);计算Close在最近10个周期的波谷点的值，最低点两侧需要至少2个Bar。

快速链接

  • 用户函数索引


SwingLowBar

说明 | 求波谷点出现的Bar
语法 | Numeric SwingLowBar(Numeric Instance,NumericSeries Price,Numeric Strength,Numeric Length)
参数 | Instance 设置返回哪一个波谷点，1 - 最近的波谷点，2 - 倒数第二个，以此类推; Price 用于求波谷点的值，必须是数值型序列值; Strength 设置转折点两边的需要的周期数，必须小于Length； Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的波谷点出现的Bar到当前Bar的回溯周期索引值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数的引用参数返回无效值。
示例 | SwingLowBar(1,Close,2,8);计算Close在最近8个周期的波谷点出现的Bar到当前Bar的回溯周期索引值，最低点两侧需要至少2个Bar。

快速链接

  • 用户函数索引


TrueHigh

说明 | 求真实高点
语法 | Numeric TrueHigh()
参数 | 无
备注 | 该函数计算当前周期的最高价和昨收盘价的较高值，返回值为浮点数.
示例 | TrueHigh();如果当前周期的最高价大于等于昨收盘价，返回值为当前周期的最高价，否则为昨收盘价。

快速链接

  • 用户函数索引


TrueLow

说明 | 求真实低点
语法 | Numeric TrueLow()
参数 | 无
备注 | 该函数计算当前周期的最低值和昨收盘价的较低值，返回值为浮点数。
示例 | TrueLow();如果当前周期的最低价小于等于昨收盘价，返回值为当前周期的最低价，否则为昨收盘价。

快速链接

  • 用户函数索引


TrueRange

说明 | 求真实范围
语法 | Numeric TrueRange()
参数 | 无
备注 | 该函数计算当前周期的真实高点和真实低点的差值，返回值为浮点数。
示例 | TrueRange()；计算当前周期的真实高点和真实低点的差值。

快速链接

  • 用户函数索引


VariancePS

说明 | 求估计方差
语法 | Numeric VariancePS(NumericSeries Price,Numeric Length,Numeric DataType)
参数 Price 用于求估算方差的值，必须是数值型序列值;
Length 是需要计算的周期数，为整型;
DataType 求估计方差的类型，1 – 求总体方差，2 – 求样本方差.
备注 该函数计算指定周期内的数值型序列值的估计方差，返回值为浮点数;
当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 VariancePS(Close, 14, 1); 计算14周期以来收盘价的总体方差；
VariancePS(High, 21, 2) ; 计算21周期以来最高价的样本方差。

快速链接

  • 用户函数索引


VolD

说明 | 求N天前的成交量
语法 | Numeric VolD(Numeric daysAgo)
参数 | daysAgo 最近N天，0为当天，1为昨天，依次类推。
备注 | 该函数计算N天前的成交量，返回值为浮点数。
示例 | VolD(3)；计算3天前的成交量。

快速链接

  • 用户函数索引


WAverage

说明 | 求权重平均
语法 | Numeric WAverage(NumericSeries Price,Numeric Length)
参数 | Price 用于求权重平均的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的权重平均值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | WAverage ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的权重平均值; WAverage ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的权重平均值。

快速链接

  • 用户函数索引


XAverage

说明 | 求指数平均
语法 | Numeric XAverage(NumericSeries Price,Numeric Length)
参数 | Price 用于求指数平均的值，必须是数值型序列值; Length 是需要计算的周期数，为整型。
备注 | 该函数计算指定周期内的数值型序列值的指数平均值，返回值为浮点数; 当序列值的CurrentBar小于Length时，该函数返回无效值。
示例 | XAverage (Close, 12); 计算12周期以来的收盘价的指数平均值; XAverage ((Close + High + Low)/ 3, 10); 计算10周期以来高低收价格的平均值的指数平均值。

快速链接

  • 用户函数索引