自定义指标学习
博易大师自定义指标编写教程

博易大师自定义指标编写教程一、技术指标公式基础技术指标公式编辑器是澎博软件公式系统的第一类编辑器,是最基础的编辑器,通过该编辑器将单调的数据行情转换成为有形的图形世界,转换成为易观察,视觉效果强烈的曲线,或者其它的图形,方便我们获取有益的信息。
公式系统有以下特点:用户只需要描述一个数据是如何计算的,公式系统就能将所有数据计算出来,并以曲线的形式显示出来。
公式系统以时间序列为基础,其计算对象是一组沿时间递增的数据序列,每一个时间周期包含一组数据,公式系统能对其中的任何数据进行操作。
1、技术指标公式界面内容A:每一个指标公式必须有一个名称,这个名称由字母和数字组成,公式名称在公式中必须是唯一的,公式名称最多15个字符。
B:公式描述是一段文字,用来简单描述该公式的含义,在公式列表时显示这段文字,这段文字不宜过长。
C:主图叠加和副图选项定义了指标显示的位置,是在主图上与K线叠加还是显示在副图上。
D:参数定义区:每一个公式可以设计所需的参数,参数用来替代公式中所需要的常数,在使用时可以方便地调节参数,不必修改公式就可以对计算方法进行调节。
参数包括参数名称、最小值、最大值、缺省值、步进值五个部分,参数名称用于标识参数,计算公式时采用缺省值计算,而最小值和最大值是参数的调整范围,步进值一般取1。
E:密码,选中该栏目为指标公式加密。
F:指标公式,为公式编辑的文本区。
G:用法说明,主要用来描述一个公式如何使用、注意事项、计算方法、判断方法等等。
2、技术指标公式编写格式和法则所有的公式系统都是遵守统一的运算法则,统一的格式进行函数之间的计算,只要我们掌握了技术指标公式的基本原理,其他的指标公式百变不离其中。
例如我们在指标公式系统内写下公式:A:=X+Y; B:=A/Z; C:=B*0.618;分析以上公式,我们可以引出以下相关的格式和法则的结论:A、数据引用:a、数据来源公式中的基本数据来源于接收的每日行情数据,这些数据有行情函数从数据库中按照一定的方式提取,例如,高开低收,成交量,成交额等等。
ponentstock 自定义指标

ponentstock 自定义指标自定义指标是投资者根据自己的需求和投资策略,基于已有的市场指标或经济指标,通过一定的算法或计算方式得出的一种独特的指标。
它能够更好地反映出投资者关注的因素,帮助投资者更准确地判断市场走势和制定投资策略。
在股票投资中,自定义指标被广泛应用于技术分析中。
技术分析是通过研究股票价格的历史数据和交易量等信息,来预测未来的价格走势。
自定义指标可以补充和完善现有的指标体系,让投资者能够更好地理解市场趋势和价位水平。
在编写自定义指标时,需要关注以下几个方面:1. 数据源:自定义指标的计算需要基于可靠的数据源。
投资者可以使用各种数据源,如股票交易数据、财务数据、宏观经济数据等。
合理选择数据源是确保指标准确性和可靠性的重要因素。
2. 算法设计:自定义指标的算法设计决定了指标的计算方式和表达形式。
可以基于统计学原理、数学模型、市场理论等进行算法设计。
需要注意的是,算法设计应尽量简单明了,避免过于复杂而导致计算困难或计算结果不可靠。
3. 参数设置:自定义指标大多数需要设置一些参数,以根据投资者的需求进行调整。
参数的设置应基于市场特征和投资者的交易策略。
设置合理的参数可以使指标更符合投资者的预期,并提高其预测能力。
4. 综合应用:自定义指标的最终目的是辅助投资者进行决策。
因此,在编写指标时,需要考虑如何将指标与其他指标和策略进行综合应用。
此外,不同的自定义指标之间也可以进行相互参考,以提高综合分析的准确性。
自定义指标的应用范围广泛,可以用于股票的买卖时机判断、周期性趋势分析、超买超卖区域判断等。
以下是几个常见的自定义指标示例:1. 相对强弱指数(RSI):RSI指标是一种衡量市场超买超卖状态的指标。
其计算基于股票的涨跌情况,通过计算一段时间内股价平均涨幅和平均跌幅的比率,判断市场是处于超买还是超卖状态。
2. 移动平均线:移动平均线通过计算一定时间内的股价平均值,来反映市场的趋势。
可以设置不同的时间周期,如5日、10日、20日等,以适应不同的投资者需求。
自定义指标公式编写教程

自定义指标公式编写教程下面是一份关于如何编写自定义指标公式的教程,可以帮助你了解如何设计和实现适合自己需求的指标。
第一步:确定指标的目标和定义在开始编写自定义指标公式之前,首先需要明确指标的目标以及定义。
指标的目标是描述你希望通过指标衡量和反映的是什么方面的情况。
指标的定义则是对指标的具体说明和解释。
例如,如果你的目标是衡量一个产品的市场竞争力,那么你可以定义一个指标叫做“市场份额增长率”,它可以表示产品在市场上的市场份额增长情况。
第二步:选择合适的数据源和变量指标的公式通常需要使用到特定的数据源和变量。
在这一步中,你需要选择合适的数据源和变量,以便于计算所需的指标。
例如,如果你想计算一个产品的市场份额增长率,你需要选择包含产品市场份额和时间的数据源。
第三步:设计指标计算公式在这一步中,你需要设计一个可以计算指标的公式。
这个公式可以包括数学运算、比较和逻辑运算等。
例如,对于市场份额增长率,一个简单的公式可以是:市场份额增长率=(当前市场份额-过去市场份额)/过去市场份额在这个公式中,当前市场份额和过去市场份额是两个变量,用来表示不同时间段的市场份额。
第四步:实现指标计算公式在这一步中,你需要将设计好的公式实现为实际的计算代码。
具体的实现方式会根据你使用的编程语言或工具而有所不同。
例如,如果你使用的是Python,你可以编写一个函数来计算市场份额增长率:```def market_share_growth(current_share, past_share):return (current_share - past_share) / past_share```在这个例子中,`current_share`和`past_share`是函数的输入参数,表示当前市场份额和过去市场份额。
函数返回计算所得的市场份额增长率。
第五步:测试和验证指标计算公式在编写完成指标计算公式后,你需要进行测试和验证,确保公式能够正确地计算指标。
choice自定义指标

choice自定义指标在众多指标中,自定义指标日益受到关注。
它是一种根据企业、个人或特定场景的需求,自行设定和计算的指标。
自定义指标既能满足个性化需求,又能更好地评估和指导实际工作。
下面我们将详细介绍自定义指标的含义、分类、选择原则以及构建方法,并举例说明其在各个领域的应用。
一、了解自定义指标的含义和作用自定义指标是针对特定场景和需求,通过选取有代表性的指标因子,采用一定的计算方法得出的个性化评价指标。
它可以帮助企业和个人更好地评估绩效、优化管理、提高工作效率。
自定义指标具有以下几个作用:1.提高评估的针对性和准确性:自定义指标是根据具体需求量身定制的,因此更能反映实际情况,有助于评估和改进工作。
2.激发创新和竞争力:通过设立独特的自定义指标,激励员工积极创新,提高企业整体竞争力。
3.促进组织内部沟通与协作:自定义指标有助于统一组织内部的目标和价值观,促进部门之间、员工之间的沟通与协作。
二、自定义指标的分类与选择原则自定义指标可以根据以下几个方面进行分类:1.按性质分:可分为过程指标、结果指标、效率指标等。
2.按层次分:可分为公司级、部门级、个人级等。
3.按业务领域分:如销售指标、研发指标、生产指标等。
在选择自定义指标时,应遵循以下原则:1.相关性:指标应与企业和个人的核心业务和目标紧密相关。
2.代表性:指标应能反映业务的关键环节和成果。
3.易于理解:指标应简洁明了,便于员工理解和接受。
4.动态调整:根据业务发展和需求变化,定期调整和完善指标。
三、如何构建自定义指标体系1.明确目标和需求:首先明确企业和个人的目标,分析现有指标的不足,明确自定义指标的目的和作用。
2.划分层次和领域:根据企业和个人的组织结构,将自定义指标划分为不同层次和领域,确保全面覆盖。
3.选取关键指标:根据业务特点和需求,选取具有代表性、可量化的关键指标。
4.设定权重和目标值:根据指标的重要性,设定权重;同时设定具体、可行的目标值,作为评估依据。
面向初学者的MQL4语言。自定义指标(第2部分)

面向初学者的MQL4语言。
自定义指标(第2部分)简介这是“面向初学者的MQL4 语言”系列的第五篇文章。
今天我们将学习使用图形对象,这是个非常强大的开发工具,可以大幅拓宽指标的应用范围。
此外,它们可以用于脚本和Expert Advisor。
我们将学习创建对象,更改其参数以及检查错误。
当然,我不可能详细地描述所有对象,那也太多了。
但你会获得让你能够自主学习这些对象的所有必要知识。
本文还包含一个逐步引导你创建复杂信号指标的示例。
于此基础上,你可以创建任意信号指标,为多个指标显示所有周期上的交易信号。
在这里示例中,很多参数都是可调整的,这样就能轻松更改指标的外观。
关于图形对象使用 MetaTrader 4 终端时,你经常会和它们打交道。
图形对象有很多用途。
交易者可以设置支撑位和阻力位、枢轴点、斐波纳契位等。
我们来看一个简单的对象用例:四个图形对象连接到此图表:•两条水平线•一个文本对象•一个对象符号(箭头)今天我们要学习使用MQL4 连接此类对象。
想象一下,有多少手动操作可以通过使用对象实现自动化!举个例子,你曾手动计算过枢轴点、支撑位和阻力位,然后再手动绘制它们吗?好吧,这个工作量并不算多,但如果在MQL4 中自动化这个流程,终端会自动计算并绘制对应的价位。
你要做的就是双击脚本名称,然后坐等结果。
此外,你可以使用图形对象编写非常有用的信号指标。
处理对象的概念在 MQL4 中处理所有图形对象的算法如下:•创建对象•修改其参数(移动、更改颜色、板框等)•删除对象这就是一个特定的“生命周期”。
现在我们来详细说明各个阶段。
创建图形对象要绘制任何图形对象,都会用到通用函数ObjectCreate()。
以下是其原型:bool ObjectCreate(string name, int type, int window, datetime time1, double price1, datetime time2=0,double price2=0, datetime time3=0, double price3=0)如果一切正常,此函数返回true,如果无法创建对象或出现错误,则返回false要找出错误代码,使用函数GetLastError():if(ObjectCreate(/* arguments */)==false){// an error occurred, its code should be recorded into a journalPrint('Error of calling ObjectCreate():',GetLastError());}我们要错误代码做什么?它会帮助你找到错误说明,或可消除错误。
charting_library 自定义指标

"Charting_library" 通常指的是用于创建和显示图表的库或工具。
当涉及到自定义指标时,这意味着您可以使用该库来创建和显示自定义的图表指标。
要自定义指标,您通常需要进行以下步骤:
1.确定指标的计算公式和逻辑:首先,您需要明确您想要创建的自定义指标的计算公
式和逻辑。
这可以是基于特定算法的数学计算,或者是根据特定数据点的统计分析。
2.编写指标计算代码:使用您选择的编程语言,编写计算自定义指标的代码。
这可以
是一个独立的脚本或函数,它接受原始数据作为输入,并返回计算后的指标值。
3.集成到图表库中:将您的自定义指标计算代码集成到您使用的图表库中。
这通常涉
及将计算代码与图表库的API或数据模型进行交互,以便将指标值正确地显示在图表上。
4.自定义图表显示:使用图表库提供的功能和选项,自定义图表的显示方式。
您可以
调整颜色、线条样式、轴标签等,以使图表符合您的需求。
5.测试和验证:在将自定义指标应用于实际数据之前,进行测试和验证是很重要的。
确保您的指标计算正确,并且在图表上正确显示。
请注意,具体的步骤可能因您使用的图表库而有所不同。
不同的图表库可能提供不同的功能和API来支持自定义指标的创建和显示。
因此,在使用特定图表库时,最好查阅相关文档或示例代码,以了解如何自定义指标并将其集成到图表中。
k8s hpa 自定义指标

k8s hpa 自定义指标摘要:1.介绍Kubernetes Horizontal Pod Autoscaler (HPA) 自定义指标2.说明自定义指标的重要性3.讲解如何为Kubernetes HPA 创建自定义指标4.举例说明自定义指标的使用场景5.总结自定义指标在Kubernetes HPA 中的作用正文:Kubernetes Horizontal Pod Autoscaler (HPA) 自定义指标是一个非常有用的功能,它允许用户根据实际业务需求,自定义扩展Pod 的依据。
通过使用自定义指标,可以更好地控制和管理集群资源,提高集群的运行效率。
在实际应用中,可能存在一些特定场景,需要根据某些特定指标来调整Pod 数量。
例如,当某个服务的请求量突然增加时,我们可以根据该服务的请求响应时间或者CPU 使用率等指标,动态调整Pod 数量,以保证服务质量。
这时候,就需要使用自定义指标来满足这些特殊需求。
为Kubernetes HPA 创建自定义指标的步骤如下:1.定义自定义指标的类型:首先,需要确定自定义指标的类型。
Kubernetes 提供了多种指标类型,如Node-CPU-Utilization、Container-Memory-Utilization 等。
用户可以根据实际需求选择合适的指标类型。
2.配置自定义指标的值:接下来,需要为自定义指标配置一个或多个值。
这些值可以来自于Kubernetes 内部的资源监控数据,也可以是外部数据源(如Prometheus)提供的数据。
3.编写自定义指标的配置文件:将上述信息编写到一个YAML 文件中,文件名通常为custom-metric-config.yaml。
例如:```yamlapiVersion: v1kind: CustomMetricConfigmetadata:name: my-custom-metricspec:selector:matchLabels:app: my-appmetricType: Node-CPU-Utilizationtarget:type: UtilizationaverageUtilization: 80```这个例子中,我们定义了一个名为"my-custom-metric" 的自定义指标,其指标类型为Node-CPU-Utilization,目标是Pod 中的Node CPU 利用率,阈值为80%。
choice自定义指标

choice自定义指标【原创实用版】目录1.引言2.选择合适的自定义指标的重要性3.自定义指标的定义和分类4.如何选择和应用自定义指标5.自定义指标的优缺点6.结论正文【引言】在当今社会,数据分析已经成为各行各业进行决策的重要工具。
然而,对于许多行业和领域来说,现有的数据指标可能无法满足其特定的需求。
因此,选择合适的自定义指标变得尤为重要。
本文将探讨如何选择和应用自定义指标。
【选择合适的自定义指标的重要性】自定义指标是针对特定问题或目标而设计的,可以帮助我们更好地理解和分析数据。
与通用指标相比,自定义指标更具针对性,可以更准确地反映我们所关心的问题。
因此,选择合适的自定义指标可以帮助我们更有效地进行数据分析,从而为决策提供有力支持。
【自定义指标的定义和分类】自定义指标是基于特定问题或目标而创建的度量标准。
它们可以根据不同的维度进行分类,例如:1.按照应用领域分类,如市场营销指标、人力资源指标等;2.按照指标类型分类,如数量指标、质量指标、时间指标等;3.按照数据来源分类,如内部数据指标、外部数据指标等。
【如何选择和应用自定义指标】在选择和应用自定义指标时,我们需要考虑以下几个方面:1.明确目标:首先,我们需要明确自定义指标要解决的问题或实现的目标;2.了解现有指标:其次,我们需要了解现有的通用指标和行业标准,以便在设计自定义指标时进行参考;3.设计指标:在设计自定义指标时,我们需要确保其具有可度量性、可比较性和实用性;4.数据收集和分析:在确定自定义指标后,我们需要收集相关数据并进行分析,以验证其有效性和准确性;5.持续优化:最后,我们需要根据分析结果对自定义指标进行持续优化,以确保其能够更好地服务于我们的目标。
【自定义指标的优缺点】自定义指标具有以下优点:1.更好地满足特定需求:自定义指标可以针对特定问题或目标进行设计,因此能够更好地满足我们的需求;2.可定制性强:自定义指标可以根据实际情况进行调整和优化,具有很强的可定制性;3.更高的准确性:与通用指标相比,自定义指标更具针对性,因此可以更准确地反映我们所关心的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录公式的组成 (3)式子就是这么简单 (3)为式子命名 (3)使式子不显示 (3)特别注意: (4)函数的意义及运算 (4)函数的运算 (4)四则运算符 (4)比大小 (5)条件的连结 (6)常用数据函数的定义 (6)常用数据的定义 (6)举例 (7)常用的周期数的定义及算法 (8)BARSLAST(条件) (8)BARSSINCE(条件) (9)常用的引用函数 (9)ref(数据,间隔K线数) (9)sum(数据,总周期数) (10)count(条件,总周期数) (10)常用时间函数 (11)DATE (11)YEAR (11)MONTH (12)DAY (12)HOUR (13)MINUTE (13)TIME (13)参数栏的写法 (14)常用平均线的定义及算法 (15)常用的有过滤性质的函数或用法 (16)条件选股 (16)CROSS(A,B) (17)FILTER(条件,K线数) (17)IF(条件,A,B) (18)最高.最低及最大.最小 (19)HHV(x,n) (20)LLV(x,n) (20)MAX(a,b) (20)MIN(a,b) (21)最后一天---最后1个周期 (22)BACKSET未来函数 (22)引用同.不同周期.不同股票.不同指标的数据 (25)大智慧 (26)飞狐 (26)分析家.大智慧L2----此2种软件基本相同 (28)通达信 (28)绘图函数 (29)DRAWICON(条件A,价位B,图标号数N); (30)DRAWTEXT(条件A,价位B,’文字’); (31)STICKLINE(条件A,价位1,价位2,宽度N,实虚柱代号),COLOR***; (颜色代码以后会提) 31 输出控制类函数 (32)颜色显示函数 (32)COLOR+英文名 (32)COLORbbggrr (32)RGB(r,g,b) (33)线的形状 (35)线的粗细(宽度) (36)公式写作 (37)公式写作前的疑问,为何要把较长的公式写成2个以上的式子? (37)公式的写作顺序 (38)公式的组成式子就是这么简单在一个数据或数据运算的后面加上一个(;)号,这就是一个完整的式子了,例如: c; o; (c+o)/ 2; (这里有3个式子,各式意义,以后会教到)则会显示一个数值的曲线.这个(;)号很重要,很多公式通不过,就是缺少(;)号,[例外] 有些软件在最后1个式子,可以不用(;)号,如飞狐.为式子命名有时候为了方便以后引用或显示,我们会为式子命名,命名可以任何名字皆可(除软件的函数名外),只要名字不要太长,或重复,一般皆无问题,命名的方式为在式子的前面加名字及(:)号例如: k1: c; k2:o; k3:(c+o)/ 2;则在显示时会在最上面一行显示k1 k2 k3 名称[例外] 有些软件可以重复命名,如飞狐,但这样比较容易混淆,一般不建议采用使式子不显示如果我们要使式子不显示,则只要在(:)号后面加(=)号即可,例如: k1:=c; k2:=o; k3:=(c+o)/ 2;则不会显示名字及数值特别注意:1.每一个公式,至少须有一个显示的式子例如以下公式通不过k1:=c;k2:=o; { k1, k2皆不显示}必须改成k1:=c;k2:o; {显示k2}或k1:c;k2:=o; {显示k1}或k1:c;k2:o; {显示k1,k2}函数的意义及运算函数的运算函数间可以利用各种运算来取得我们所需要的数据,其重要内容如下四则运算符+ 加例: Close + Open ( 收盘价加开盘价) {Close为收盘价,Open为开盘价,详细以后会提到}- 减例: Close - Open ( 收盘价减开盘价)* 乘例: Close * Open ( 收盘价乘开盘价)/ 除例: Close / Open ( 收盘价除以开盘价) 比大小条件的连结AND 而且and 的前后条件均成立时,输出1,否则输出0.例: Close>Open AND Open>ref(c,1)(当收盘价大于开盘价,而且开盘价大于昨收时,其值等于1,否则为0){ref(c,1)为昨天收盘价,详细以后会提到}OR 或者OR 的前后条件只要有1个条件成立时,就输出1,只有在2个条件均不成立时才输出0.例: Close>Open OR Open>ref(c,1)(当收盘价大于开盘价,或者开盘价大于昨收时,其值等于1,否则为0)注意: AND 及OR 的前后面须加空格.(飞狐可用&&表示”而且”,用||表示”或者”)注:比大小及条件的连结,输出1或0,软件之所以这样规定,是要把判断变成数值,以供将来计算之用常用数据函数的定义常用数据的定义举例在15分周期上OPEN代表该15分钟内的第1笔成交价格, CLOSE代表该15分钟内的最后1笔成交价格,HIGH代表该15分钟内的最高成交价格,LOW代表该15分钟内的最低成交价格,VOL代表该15分钟内的总成交量在日线上OPEN代表当天的第1笔成交价格, CLOSE代表当天的最后1笔成交价格, HIGH 代表当天的最高成交价格,LOW代表当天的最低成交价格, VOL代表当天的总成交量在周线上OPEN代表当周的第1笔成交价格, CLOSE代表当周的最后1笔成交价格, HIGH 代表当周的最高成交价格,LOW代表当周的最低成交价格, VOL代表当周的总成交量在月线上OPEN代表当月的第1笔成交价格, CLOSE代表当月的最后1笔成交价格, HIGH 代表当月的最高成交价格,LOW代表当月的最低成交价格, VOL代表当月的总成交量在任何一段时间上OPEN代表这段时间内的第1笔成交价格, CLOSE代表这段时间内的最后1笔成交价格,HIGH代表这段时间内的最高成交价格,LOW代表这段时间内的最低成交价格, VOL代表这段时间内的总成交量{求法以后会教}以上这些最基本的数据,看似简单,其实有非常多的人因为不了解其真正意义,到用时,才不知如何是好,所以大家务必把这些基本功(基本定义)练好,以后要写式子时,才能得心应手常用的周期数的定义及算法周期数常让人团团转,不过若将周期数的基本定义弄清楚了,就不用再怕它了.周期数分为间隔K线数及总K线数,一般若不特别指示,指的是间隔天数,但最好要用时确认一下比较好,周期函数最常用的是BARSLAST函数,其余周期函数大部分都可由此函数推出,只不过比较繁复,有现成的最好,但平常不用背起来,只要要用的时候,按[插入函数]查一查有没有其他现成的函数可供应用即可.间隔天数不知大家有没有概念,简言之,就日线而言,今天跟昨天的间隔K线数是1,今天跟前天的间隔K线数是2,总K线数就是包含前后2根K线BARSLAST(条件)barslast最后一个符合条件至今的间隔K线数, 当天符合则输出0例如: BARSLAST(CLOSE>OPEN) 其意义为最后一个”收盘大于开盘(收红) ”至今的间隔K线数.符合条件后的总K线数即包含前后2根K线,可用间隔K线数+1即可例如: BARSLAST(CLOSE>OPEN)+1 其意义为最后一个”收盘大于开盘(收红) ”至今的总K线数BARSSINCE(条件)barssince有交易以来的第一个符合条件至今的间隔K线数,刚好与BARSLAST相反例如: BARSSINCE (CLOSE>OPEN) 代表有史以来第一个收红至今的间隔K 线数以上的BARSLAST很重要,请大家务必了解透彻常用的引用函数引用函数可帮助我们取得我们所需的非当周期k线的数据,ref(数据,间隔K线数)取得间隔K线数前的数据(间隔K线数可为数字或周期数函数(如:barslast)),请注意:周期数须为间隔K线数例如: 日线上,ref(c,2); {取得2 K线数前(如:今天不算的前第2天即前天)的收盘}特别注意:{以下1. 2.通用于通达信以外的软件,即通达信不适用}1. Ref(c,0); 取得今日收盘2. ref(c, BARSLAST(CLOSE>OPEN)); {取得最后一个”收盘大于开盘(收红) ”至今的间隔天数前的收盘}3.因为通达信Ref(c,0);值并非当日值,故有必要加以特别定义规范通达信ref(c, BARSLAST(CLOSE>OPEN));的正确写法应改为If(ref(c, BARSLAST(CLOSE>OPEN))=0,c, ref(c, BARSLAST(CLOSE>OPEN))); {此处c若改为其他数据,如h,则”,c,”亦须改为”,h,”, if的写法,以后会提到} sum(数据,总周期数)加总”总周期数”内的”数据”请注意:此处周期数须为总K线数例如: 在日线上sum(c,5)---- 代表5天内的”每天的收盘”的总合注意:数字若为0则代表自数据的第一天开始加总,分笔周期代表自开盘开始加总sum(c, BARSLAST(CLOSE>OPEN)+1)---- 代表自上一次”收盘大于开盘(收红) ”至今的收盘总合请注意: BARSLAST()后面须加1,才是总天数count(条件,总周期数)加总”总周期数”内”符合条件的次数”请注意:此处周期数须为总K线数例如: 在日线上count(close<open,5)---- 代表5天内的”收盘小于开盘”的次数总合count(close<open, BARSLAST(CLOSE>OPEN)+1)---- 代表自上一次”收盘大于开盘(收红) ”至今的收黑次数请注意: BARSLAST()后面须加1,才是总天数注:飞狐count可用sum代替,但为免与其他软件混淆,建议不用为好常用时间函数我们常用到的时间函数包含有下列几个,我试着说详细点:DATE取得该周期最后一笔资料的年月日减去1900年00月00日(即-19000000)的年月日日期(年年年月月日日),例如:今天是2010/03/05,则今天的K线上的DATE值会显示1100305(20100305-19000000).[应用1] 若写K1:DATE<=1080503; 则表示当日期小于等于2008年5月3日的时候(1080503+19000000),则条件成立注:可用于分钟周期YEAR取得该周期最后一笔资料的年(此处不减1900),(显示从1970开始的年)例如: 今天是2010/03/05,则今天的K线上的YEAR值会显示2010[应用] 若写K2: YEAR<=2007; 则表示年小于等于2007年的时候,则条件成立[小技巧] 若在月线以下周期若写YEAR <>REF(YEAR,1) {通达信用!=}则此式代表年始{比较年份若不同时,代表1年的开始}MONTH取得该周期最后一笔资料的月份(1~12),例如: 今天是2010/03/05,则今天的K线上的MONTH值会显示3[应用] 若写K2: DAY<=15; 则表示日小于等于15的时候,则条件成立[小技巧]1. 若在日线以下周期若写MONTH <>REF(MONTH,1) {通达信用!=}则此式代表日始{比较月份若不同时,代表1个月的开始}2. K1:=BARSLAST(MONTH <>REF(MONTH,1)); 表示该月初至今的间隔k线数,所以REF(H,K1) 表示当月第1天的最高价SUM(VOL, K1+1) 表示当月总成交量(月初至今的成交量加总), 注意:K1须加1 DAY取得该周期最后一笔资料的日(1~31),例如: 今天是2010/03/05,则今天的K线上的DAY值会显示5[应用] 若写K2: DAY<=15; 则表示日小于等于15的时候,则条件成立[小技巧] 若分线以下周期DAY<>REF(DAY,1) {通达信用!=}则此式代表日始{比较日期若不同时,代表1天的开始}HOUR取得该周期最后一笔资料的小时数(0~23),例如: 30分钟线,该K线数的时间是15:31~16:00,则该K线上的HOUR值会显示16MINUTE取得该周期最后一笔资料的分钟数(0~60),例如: 15分钟线,该K线数的时间是15:16~15:30,则该K线上的MINUTE值会显示30TIME取得该周期最后一笔资料的时分秒,例如: 15分钟线,该K线数的时间是15:31~15:45,则该K线上的TIME值会显示154500[小技巧]在1分钟周期,设K线数的时间是15:12,若该软件未提供开盘分钟数函数时,则该K 线的已开盘分钟数为:将该K线的离0:00的分钟数-开盘离0:00的分钟数-中场休息的分钟数=(15*60+12) –(9*60+30) –(60+30) = (912)-(570)-(90)=252(分)用公式写法则为--早上的开盘分钟数( HOUR*60+ MINUTE)-570下午的开盘分钟数( HOUR*60+ MINUTE)-570-90补充:整个公式写法如下:已开盘分钟数:if(hour<12,(HOUR*60+ MINUTE)-570,( HOUR*60+ MINUTE)-660);{if的写法,以后会提到}参数栏的写法有些公式或函数,为了让使用者,可以按照自己的意思改变(如日期.天数等),而刻意使用了参数,这给了使用者大大的方便,不必再到公式里改数字,直接调整参数即可那如果我们要设计公式或接到公式源码的时候,要如何在参数表写公式呢?首先我们要知道参数表有[参数名].[缺省](预设).[最小]. [最大].[步数]五大元素,分别介绍如下:例:设公式为{N:3,1,100,1 M:6,0,10,1}K1:CLOSE+N;K2:VOL+M; {随便举例而已,不必深究公式意义^__^}1. 参数名----写公式者所定义的参数名称,例句为N 及M2. 缺省----刚开始时该参数所预设的值,例句为3及63. 最小--- 写公式者定义该参数最小值可为多少,例句为1及04. 最大--- 写公式者定义该参数最大值可为多少,例句为100及105. 步数----步数指的是使用者调整参数时,每点一次跳多少的意思,(若有4个数值,最后1个一定是”步数”)1表示每点一次跳1,例句为1及1注意:1[缺省]一定要大于等于[最小],小于等于[最大],所以看前3个数,不大不小的值即为预设值2 每个软件顺序并不一定一样,[缺省]有的软件会在[最大]的后面,同时,有的软件没有[步数]栏,就不用填{此时软件会预设步数为1}3若公式只写{N=3},则除参数名及缺省外其余可自填,但须注意[最小]须比3小, [最大]须比3大.常用平均线的定义及算法MA是最常用平均线,专业术语叫简单移动平均,采用算数平均,也就是说看要几天的平均值,我们就把这几天的值相加再除以几天,这样就得出平均值,但在这里,我们必须先告诉电脑,我们要算哪一个数据的值?是收盘.开盘.高价.低价.成交量或其他?所以这个MA函数须有两个参数,分别是数据名称及天数,这样电脑就可以据此自动算出我们想要的值.完整的MA函数写为MA(X,N) (X代表数据名称,N代表天数) (N若要可调整,可在上面加入参数栏)例:MA(C,5) 代表最近5天的收盘总合/5 (即收盘价的5日平均线)MA(V,10) 代表最近10天的成交量总合/10 (即成交量的10日平均线)MA(C,M) {M 3,1,100} 代表最近M天的收盘总合/M (即收盘价的M日平均线)注:一般若未特别注明,指的皆是收盘价的平均线.常用的有过滤性质的函数或用法条件选股条件选股的意义,就是要选出输出1条件选股其实说穿了,就一句话:单一输出的条件式,也就是说,不管公式有多长,若要做为条件选股的话就只能有一个式子输出,且须为条件式,此时,当条件成立时,电脑会输出1,然后就会被选出如:K1:=MA(C,5);K2:=MA(C,10);K1>K2;若K1:=MA(C,5);K2:=MA(C,10);K3:=MA(C,15);K1>K2;K2>K3;这样有2个输出值,就不能成为选股公式须去其一CROSS(A,B)CROSS函数本义为由[下]穿[上](线不一定向上), CROSS(A,B)表示A穿过B而上,反之,若要表示A下穿B,则可用B上穿A表示,CROSS(B,A) 表示B穿过A而上,(即A下穿B)重要技巧:我们可以利用CROSS的穿越特性,来过滤条件式,挑选出连续符合条件信号中的第一次符合条件,接下来的不选.因为若符合条件时,电脑会输出1,否则会输出0,所以第一次符合条件时,其值会由前一K线的0,变成该K线的1,因此要选出第一次符合条件,只要我们设该值穿越0.5即可,(不一定要用0.5,0.1~0.9皆可),如:选出每一次的”第一次[收盘]大于[开盘]”,我们就可写成CROSS(CLOSE>OPEN,0.5);CROSS函数是过虑掉第一次符合条件后的连续信号但假如我们只要几日内不显示,则须要应用到FILTER函数FIL TER(条件,K线数)FILTER(filter)本义为若符合条件输出1后,在其后的指定K线数内,不管符合不符合条件,均设为0如:若在[日线] FILTER(CLOSE>OPEN,5);表示符合[收盘]大于[开盘]{收红},输出1(显示)后,其后的5天不管有没有再收红均输出0 (不显示).IF(条件,A,B)IF我们直接翻译成若是比较明白, IF(条件,A,B) 直接翻译就成若符合条件则输出A,否则输出B例如:IF(CLOSE>OPEN,2,3) 若收红则输出2,否则输出3.小技巧:IF可以连环套,至于可套几层,则每个软件均不同例如:IF(CLOSE>OPEN,2, IF(CLOSE>REF(CLOSE),5,0));表示若收红则输出2,其余若收盘大于昨收,则输出5,再其余的则输出0,不过连环套须特别注意括号数目,否则会通不过IF连环套的做法:IF虽然可以做成连环套,但很容易错误,因此我特别再强调说明IF连环套的做法, 例如:若条件1>条件2,则输出5,其余若条件3>条件4,则输出10,其余若条件5>条件6,则输出20,否则输出0,一开始,接到这个题目,会无所适从,不过,只要大家按我的方法去做,人人都可以套得很正确,步骤1. 写出每个IF的完整语句,有几个就写出几个,此句有3个IF要写,分别为:a. 若条件1>条件2,则输出5,其余?----- IF(条件1>条件2,5,X) {因为”其余”的部分,不知道要多少,用X代替}b. 若条件3>条件4,则输出10,其余?--- IF(条件3>条件4,10,X)c. 条件5>条件6,则输出20,否则输出0 ----- IF(条件5>条件6,20,0) {最后一句IF,知道其余部分输出0,故填上0}步骤2. 整合所有IF句子这里有个小技巧,就是不管有几个句子,永远由最后一句往前套,套的时候,将后一句套入前一句的x处,讲简单一点,就是把前一句的X,臵换成下一句,例如此例:1. 先将c套入b,就是将b句的X值,以b句代替,结果得出IF(条件3>条件4,10,C句) =>IF(条件3>条件4,10, IF(条件5>条件6,20,0))2. 套好b.c后,再将此结果,套至a,亦即将a中的X以上式代替,IF(条件1>条件2,5,上式) =>IF(条件1>条件2,5,IF(条件3>条件4,10, IF(条件5>条件6,20,0)));注意:最后不要忘记在最后加”;”号最高.最低及最大.最小这类的函数很多,每种软件也有很多延伸的函数,现以最常用到.最基础的函数说明如下:HHV(x,n)代表找寻在n周期内的最高”x”,若N=0,则在分笔周期,代表从开盘开始找寻,在其他周期则代表从有数据(历史)开始找寻例如:日线HHV(close,8) 表示找寻8天内的最高”收盘价”日线HHV(close,0) 表示找寻有史以来的最高”收盘价”注意:当n为未知时,可用运算式代替例如:要找寻上次”close大于open”以来的最高收盘价,则须用BARSLAST(CLOSE>OPEN)+1(周期数= K线间隔数+1)代替N,故全式=HHV(CLOSE,BARSLAST(CLOSE>OPEN)+1);[注] 以运算式代替N,并非每个软件皆适用,使用前最好先测试LLV(x,n)代表找寻在n周期内的最低”x”与HHV用法相同,只是改为取最低价而已,不再详细说明MAX(a,b)取得A,B的较大值,A.B可为数或运算式例如: MAX(CLOSE,5) 表示取得收盘价及5的较大值,看哪一个较大,就取哪一个 MAX(CLOSE,OPEN) 表示取得收盘价及开盘价的较大值-----此式很重要,常用到[MAX的连环套]那么若有3个以上的数,要比大小,怎么办?很简单,跟IF一样,使用连环套即可例如:有CLOSE,OPEN,MA(C,5),MA(C,10)这4个数要取最高,怎么写?首先跟IF一样,先写出函数,未知的以X代替,等全部写出后,由最下面往上面套入X的地方,第一步.先写出函数,未知的以X代替第一步MAX(CLOSE,X) ------ CLOSE后面还有3个数值,不知要跟谁比,故以X代替MAX(OPEN,X) ------- OPEN后面还有2个数值,不知要跟谁比,故以X代替MAX(MA(C,5),MA(C,10)) ------MA(C,5)后面只有MA(C,10),故知道要跟MA(C,10)比, 第二步. 由最下面往上面套入X的地方A.将MAX(MA(C,5),MA(C,10))带入MAX(OPEN,X)的X的地方,即MAX(OPEN, MAX(MA(C,5),MA(C,10))) -----1式B. B.再将1式带入MAX(CLOSE,X) 的X的地方,即MAX(CLOSE, MAX(OPEN, MAX(MA(C,5),MA(C,10)))); 加上”;”号,即为所求简单吧!再多的数也不怕 ^__^[例外]分析家及大智慧L2不用这么麻烦,直接全部写进去即可,MAX(CLOSE,OPEN,MA(C,5),MA(C,10))MIN(a,b)取得A,B的较小值,A.B可为数或运算式用法与MAX相同,只是意思相反罢了,不再详细说明最后一天---最后1个周期我们在写公式时,常会用到”最后一天”,这是因为有时候由最后1天往前推算较方便,因此,我单独把它拿出来说明,大家在用到时,就比较方便.其实,各软件并无统一函数,有的软件有函数,有的软件没有此函数,只好由众高手集思广益,现将比较普遍的代码写于下面:分析家.大智慧L2------- BARSTATUS=2 (BARSTATUS代表数据位臵,2为最后1个周期)飞狐----BARSTATUS=2 或ISLASTBAR 或BARPOS=SYSPARAM(3) (SYSPARAM(3)为主图可见K线最后位臵,使用时,须打开光标)通达信-------- ISLASTBAR 或CURRBARSCOUNT=1 (CURRBARSCOUNT的意思是到最后1天的周期数(含最后1天),=1即最后1天)大智慧1-------DYNAINFO(8)=v (总手=成交量,此式比较简洁,由知无不言版主提供)同花顺--------我未使用,请高手提供,谢谢!BACKSET未来函数BACKSET(backset)函数是标准未来式,这就奇怪了, 既然是未来式,为什么还去讲呢?其实BACKSET虽然是未来式,但却非常重要,有时候还非它不可呢,现详述如下:函数定义: BACKSET函数的写法为BACKSET(条件,N天)—表示若合于条件时,将N天(含当天)内全部设为1,(N可为数字或运算数)例如: BACKSET(CROSS(CLOSE,MA(CLOSE,5)),5)---表示当收盘上穿5日线时,将5日内全部设为1又如:(飞狐)BACKSET(CROSS(MA(CLOSE,5),CLOSE),BARSLAST(CROSS(CLOSE,MA(CLOSE,5)))+1)表示当收盘下穿5日线时,将”从上次收盘上穿5日线至今”的天数内全部设为1 请注意: 通达信会乱掉,此式n以运算式代替,不一定每种软件皆适用,请小心确认再如:(飞狐.通达信)BACKSET(ISLASTBAR,BARSLAST(CROSS(CLOSE,MA(CLOSE,5)))+1)表示当最后一个周期(最后1天)时,将”从上次收盘上穿5日线至今”的天数内全部设为1[BACKSET崁入到FILTER内作过滤]BACKSET常用FILTER作过滤,以达到选出符合条件的那1天,方法为把BACKSET(a条件,N天数)崁入FILTER(X条件, M天数)中的”X条件”内,注意:通常会将FILTER的过滤天数设为BACKSET天数减1,即(N天数-1), FILTER(BACKSET(a条件,N天数), N天数-1);当BACKSET满足a条件后,会将之前的N天全部设为1后,再由FILTER保留第1个为1外,其后M天皆化为0(即第1天显示外,其后的N-1天皆不显示)如:FILTER(BACKSET(CROSS(CLOSE,MA(CLOSE,5)),6),5);当收盘上穿5日线时, 将6日内全部设为1后,保留第1个为1外,其后5天皆为0.简言之: BACKSET(a条件,N天数)崁入FILTER(X条件, N天数-1),即把显示信号向前推N天显示之意例如:例1.(通达信) 只要显示最后一个”收盘上穿5日线”,公式怎么写?[思路]要只显示最后一个符合条件,只要算出最后符合条件至最后1个周期的周期数,再由最后1个周期,将这几天全部设为1,再用FILTER将其后的天数皆化为0即可. [小技巧]因为是最后,所以FILTER的过滤周期,可以直接写数字较省事,又因为我们不知道”最后符合条件至最后1个周期的周期数”,故FILTER的过滤周期,可设大一点没关系,安全第一,当然也可如一般写法,设为该周期数-1,只是比较长罢了.解答:FILTER(BACKSET(ISLASTBAR, BARSLAST(CROSS(CLOSE,MA(CLOSE,5)))+1), BARSLAST(CROSS(CLOSE,MA(CLOSE,5))));(FILTER的过滤周期设为”最后符合条件至最后1个周期的周期数”-1,此为一般正常写法,不加1即减1)ORK1:= BARSLAST(CROSS(CLOSE,MA(CLOSE,5)))+1;FILTER(BACKSET(ISLASTBAR, K1),K1-1);(若觉得公式太长或不好阅读,可将”最后符合条件至最后1个周期的周期数”先提出,再代入,就比较简洁)ORFILTER(BACKSET(ISLASTBAR,BARSLAST(CROSS(CLOSE,MA(CLOSE,5)))+1),1000);(FILTER的过滤周期设为1000,越大越安全)请注意: FILTER的过滤周期尽可能使用数字,比较不容易造成错乱例2. (通达信日线周期) 每月最后一天或最后1天[小技巧]月末即月初的前1天,故先找出月初MONTH != REF(MONTH,1),再推回去1天FILTER(BACKSET(MONTH != REF(MONTH,1),2),1) OR ISLASTBAR;引用同.不同周期.不同股票.不同指标的数据首先声明,此类函数并非每个软件皆通用,每个软件不尽相同,故特别提出,请特别注意[注意]只能在较短周期引用较长周期数据,如:仅日线能引用周线数据,不能周线能引用日线数据大智慧"指标名称X.指标线名Y "(参数1,参数2,---)--- 引用同周期X指标中的Y线的数据,参数为*,*,---(参数可省略)如:”KDJ.D”(10,4,4)—表示引用同周期KDJ指标中的D线数据,参数为10,4,4 [注]此引用函数大部分软件皆相同.注意:此指标线须显示(即不能加”=”号),才能被引用.如:MA1:=MA(C,5);则此式因不显示,故不能被引用飞狐A. "指标名称X.指标线名Y "(参数1,参数2,---)--- 此函数与大智慧1定义及用法相同,见大智慧1B."指标名称X.指标线名Y##周期类型S"(参数1,参数2,---) -----引用前一周期的X 指标中的Y线S周期的数据指标名称----所要引用的指标名称,如:MACD.KDJ.----等指标线名----该指标内的指标线名称,注意:此指标线须显示(即不能加”=”号),才能被引用.如:MA1:=MA(C,5);则此式因不显示,故不能被引用.“#”号-----“#”号的个数有特别意义,1个“#”代表本周期,2个代表前1个周期,最多只能有2个”#”号.周期类型----- MIN1(1分)、MIN5(5分)、MIN15(15分)、MIN30(30分)、MIN60(60分)、DAY(日)、WEEK(周)、MONTH(月)、YEAR(年)、MULTIDAY(多日线)、MULTIMIN(多分线)、MULTISEC(多秒线)(参数1,参数2,---)----按顺序写出该指标的参数如: "MA.M1##WEEK"(5,10,20,60)表示要引用前1周期MA指标中的M1指标的周线,参数依序为5,10,20,60.[注]如果引用的是本周期的同周期指标,则[##周期类型S]不用写出,参数如全部相同,亦可不用写C. STKINDI('股票代码','指标.指标线(参数1,参数2,参数3,参数4)',指标类型,DATAPERIOD周期类型);---1.股票代码----如为空表示当前股票2.指标类型----范围为(0-2),依次表示技术指标(0)、条件选股(1)、交易系统公式(2).3.DATAPERIOD周期类型----范围为(-1-12),依次表示:当前周期(-1)、分笔成交(0)、1分钟(1)、5分钟(2)、15分钟(3)、30分钟(4)、60分钟(5)、日(6)、周(7)、月(8)、年(9)、多日(10)、多分钟(11)、多秒线(12)[注]如周期类型不写,只写DATAPERIOD代表本周期(当前周期)例如:STKINDI('1A0001','MA.MA1(8,12,26,60)',0,DATAPERIOD);----- 计算1A0001的当前周期技术指标中的MA指标中的MA1指标线,参数为8,12,26,60.D. "股票代码$数据名"----引用其他股票的数据(开.收.高.低.量)如: "SZ000001$CLOSE"代表引用股票代号为SZ000001的收盘价[注意]此处须用全名OPEN.CLOSE.LOW.HIGH.VOL,不能用简写O.C.L.H.V[注]以上是飞狐较常用到的,其他请在编辑公式时,自行按[插入函数]了解分析家.大智慧L2----此2种软件基本相同A. "指标名称X.指标线名Y "(参数1,参数2,---)--- 此函数与大智慧1定义及用法相同,见大智慧1B. "指标名称X.指标线名Y#周期类型S"(参数1,参数2,---) -----引用本周期的X指标中的Y线的S周期数据注意:此函数用法分析家.大智慧L2用法与飞狐稍不同1.#号只能有1个,2.可使用周期类型较少MIN15(15分)、MIN30(30分)、MIN60(60分)、DAY(日)、WEEK(周)、MONTH(月)如: 如: "MA.M1#WEEK"(5,10,20,60)表示要引用本周期MA指标中的M1指标的周线,参数依序为5,10,20,60.C. STKINDI('股票代码','指标X.指标线名称Y',参数1,参数2)--- 引用其他股票的X指标中的Y线数据,参数为*,*[注]参数有几个就写几个D. "股票代码$数据名"---此函数与飞狐定义及用法相同,见飞狐通达信A."指标名称X.指标线名Y "(参数1,参数2,---)--- 此函数与大智慧1定义及用法相同,见大智慧1。