麦语言基本语法与指令说明

合集下载

麦语言函数手册

麦语言函数手册

文华财经“麦语言”函数手册(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。

麦语言,是国内使用人数最多的程序化模型开发平台。

麦语言倡导的是积木式的编程理念,把复杂算法封装到一个个的函数里,采用“小语法,大函数”的构建模式。

语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。

M语言——精选推荐

M语言——精选推荐

M语⾔开发培训⽂档alertM基础(参考Cache⾯向对象软件开发教程.pdf P489)1.常⽤的特殊的变量这些特殊的变量有指定的含义,它们⼀般以$开头。

有个别特殊变量也同时⽀持缩写1)$HOROLOG ($H)$Horolog 包含了时间和⽇期,它们由逗号分开。

第⼀部分是⽇期的数字,它是从1840 年12 ⽉31 ⽇开始计算⽇期的数字。

第⼆部分是秒的数字,它是从午夜开始计算的。

Global中的⽇期时间都是以数字的形式存储的。

时间⽇期的函数$ZDate 把$Horolog 格式的⽇期值按照指定格式显⽰。

$ZDateH $ZDate 的反函数。

$ZDateTime 把$Horolog 格式的⽇期时间值按照指定格式显⽰。

$ZDateTimeH $ZDateTime 的反函数。

$ZTime 把$Horolog 格式的时间值按照指定格式显⽰。

$ZTimeH $ZTime 的反函数。

2) $JOB ($J)$JOB 包含⼀个正整数,表⽰系统所分配给每⼀个在执⾏中的进程独⼀⽆⼆的编号。

当进程还在的时候,$JOB 的值是不变的2.基本的运算符1)算术运算符+、-、*、/、\、#,**。

其中,+、-、*、/ 是基本的4 个算术运算符。

\ 整数的除法2+5*7 = 49,从左到右依次运算2+(a*b) = 372)算术⽐较运算符<、>3)字符串⽐较运算符=、[、]= ⽐较运算符是⽐较两个字符串的相同与否。

如果需要⽐较两个数字是否⼀样的话,需要在前⾯再加⼀个+ 号。

例如,+number1=+number2。

[运算符检查右边的串是不是包含了左边的串] 运算符检查左边的串是不是在字典顺序上跟着右边的串;它是严格按照ASCII 码来操作的。

例如:2]19,返回是1,因为2 的ASCII 值是50,⽽1的ASCII 值是49。

4) 连接符_ 它是⽤来连接两个字符串的& 与! 或‘= ⾮3.常见的命令变量操作命令:Set, Merge, Kill, New, Lock1)SET (S)给⼀个或者多个变量赋值 ,缩写SSet x=5,n(1)=4,dd=5Set ^FILE=32)MERGE (M)拷贝变量树。

m语言说明

m语言说明
利用冒号运算符创建向量的语法为:
X=J:INC:K
①J表示第一个元素,K表示最后一个元素,INC表示元素递增的步长
②都用:隔开
③如果省略INC,则按默认步长为1
④INC为正,则要求K>J,INC为负,则要求J>K
例:>>x=1:0.01:1.1
第三种方法是使用函数linspace或logspace
linspace是用来产生线性间隔向量的函数,用法:
经常使用的几个常量:
pi圆周率
inf无穷大,负无穷大可以表示为-inf
Nan不定式,代表“非数值量”,通常由0/0或inf/inf运算得出。
eps变量eps是用来确定秩和近似奇异的允差,对大多数pc来说,eps=,大约是,若变量的绝对值小于eps,则可以认为这个量为零。
i和j如果i和j不被定义,则表示纯虚数量i
B=
二.创建向量
向量也就是一维数组,在Matlab中创建向量可以使用不同的方法,最简单的方法就是逐个输入向量元素,如
>>x=[1 3 pi 3+5i]
在逐个元素输入时,每个元素之间可以用空格或逗号“,”作为间隔符。
第二种方法就是利用冒号“:”运算符创建向量,如
>>x=1:10
然后用whos查看内存变量。
表matlab矩阵生成函数函数说明zeros生成全为0的矩阵ones生成全为1的矩阵eye生成单位矩阵rand生成均匀分布的随机数矩阵数值范围01randn生成均值为0方差为1的正态分布随机数矩阵diag获取矩阵的对角线元素也可以生成对角矩阵tril产生下三角矩阵triu产生上三角矩阵compan产生伴随矩阵hilb产生希尔伯特矩阵inhilb希尔伯特逆矩阵pascal产生帕斯卡矩阵即杨辉三角magic产生魔方矩阵vander产生万达摩方阵meshgrid产生三维绘图基底坐标平面例子

“麦语言”的学习步骤和方法

“麦语言”的学习步骤和方法

“麦语言”的学习步骤和方法(一)为什么要学习编程语言:1、别人写的交易策略,你难以调整常听见有人说前一段运行很好的模型,最近却表现不佳,想换一个新的策略。

实际上没有一种策略能够永远适应市场,一般在一个季度左右就需要对策略调整参数或改动某些条件,如果策略不是自己编写的,很难去调整,就只能把大把时间浪费在无穷无尽的找模型中。

2、别人写的交易策略,你很难彻底执行如果是别人写的模型,无论模型测试结果多么完美,一旦市场出现危机情况,你都会坐立不安,总会怀疑策略有问题,然后把程序化扔到一边,又回到凭感觉操作的老路了。

人只会相信自己了解的东西,如果不相信就很难彻底执行,无法完成程序化。

3、编程的过程也是理解的过程有的人通过在市场亏钱、爆仓来理解市场,不仅学费高,成长也慢。

而通过编写策略来理解市场不需要交学费,从历史测试报告里很容易分析出来自己错在哪,也很容易改进,足以带来逼真的实战经验,所以编写和调试策略的过程也是理解市场的过程,是非常宝贵的积累。

(二)麦语言的学习步骤和方法:一提到语言,您可能想到的是复杂的语法,大量的词汇,无穷无尽的困难。

但“麦语言”与您以往学过的语言完全不同,它的语法只有两个部分,函数200多,是目前国内最简单的程序化编写语言,不需要您有任何的c语言c++编程基础,只要您能看懂汉字,外加点学习精神就能轻松学会。

(1)、了解麦语言模型结构,学习函数麦语言的模型结构很简单,只有两部分:1定义需要的变量。

2交易条件+交易指令。

如下图所示就是一个具有变量、条件、指令的完整模型。

更详细的语法可以在“模型开发平台中”的【帮助】菜单下“基本语法”中查看。

麦语言目前有函数240多个,不建议大家从头到尾背函数表,建议大家先从函数列表中大概了解软件中都提供了哪些函数,再在软件中提供的示范模型中学习编写方法和常用的函数,当您有更高的编写需求时在去函数列表里找相应的函数即可。

(2)、试着自己编写简单模型了解了示范模型中编写的交易思路后,试着按照同样思路独立编写模型,编程能力会有大幅提高。

麦语言语法——精选推荐

麦语言语法——精选推荐

麦语⾔语法
1、命名部分:⽀持汉字、字母、数字、划线格式命名,长度控制在
31字符内;命名不能和已存在的公式名称重复。

2、定义变量名称变量名称不能相互重复;不能与参数名重复;不能与函数名重复。

3、半⾓输⼊法的⼤写状态。

4、每个语句应该以分号结束。

5、参数部分:可以设置六个参数;⾸先是参数名称,然后是参数的最⼩值,最⼤值,最后是参数的默认值;在定义参数时要注意的是参数名称不可以重复,12个字符内。

6、注释或者舍去想要在编写后,加⼊⾃⼰的语⾔注释,在结尾处⽤“//”表⽰;或者想舍去某段,在某段在最前端加⼊“//”;
编写训练:
1、定义⼀个变量,名为A,算出开盘价与收盘价和的⼆分之⼀,并显⽰指标线扩展练习:指定指标线颜⾊为黄⾊。

开盘价open收盘价close
2、编写⼀个指标,在最⾼价和最低价上分别加减2%,画出⼀条通道,通道上轨为红⾊,下轨为绿⾊。

3、定义变量A为阳线,查看A的返回值。

麦语言编程教程

麦语言编程教程

麦语言编程教程所有的编程都可以归结为以下三类:第一,表达式问题。

以当前视角,给出变量的计算公式。

所谓的当前视角,就是不考虑位置关系,把那个位置当作是当前位置。

事实上,前面那张表中任何一个方格的数据,都是把这个方格所在列当成当前K线来解读的。

第二,逻辑判断问题。

其实可以归结成表达式问题,但是考虑到逻辑判断比较重要,而且和纯计算数值的表达式略有些不同的,所以独立出来。

第三,定位问题。

只有一个位置不需要确定,那就是当前,这里说的当前,是K线图上最后一根K线,不是前面说的当前视角。

定位的结果是得到历史某个位置到当前的距离。

定位的目的是到那个历史位置去取值,可以是逻辑值,也可以是数据值。

当然定位还有另外一个作用,就是画线,这种情况我们之后再讨论。

表达式问题和逻辑判断问题这两个问题都是比较简单的。

关键点是以当前视角给出计算公式,不需要考虑计算公式之外的位置问题。

*************************************************************** *************先来一个简单的例子:求当前K线最高价和最低价一半的价格。

这是一个和位置完全没有关系的问题,因为当前K线是不需要定位。

所以我们可以直接定义变量名称并给出计算公式。

HL:(H+L)/2;*************************************************************** *************如果在表达式中,某个数据需要通过定位从历史中取,那么可以用定位问题的解决方法取到这个数值,然后再与其他与位置无关的变量组成表达式。

例如,计算最高、最低价,以及前一根K线收盘价的平均。

前一根K线收盘价定义为:ZC:=REF(C,1);//定位问题后面会有详细说明HLC:(H+L+ZC)/3;*************************************************************** *************在一个区间内计算数值,如果有系统函数,则与定位无关。

麦语言函数手册

麦语言函数手册

文华财经“麦语言”函数手册
(2011年10月更新)
文华财经资讯有限公司
“麦语言”源于2004年文华推出的国内第一套程序化函数库,经过6年的发展,吸收几十万用户的意见反馈,一点一点完善起来的,是一套成熟稳定的模型开发平台。

麦语言,是国内使用人数最多的程序化模型开发平台。

建模式。

语法虽然简单,但是配合专门的程序化数据结构,配合丰富的金融统计函数库,同样可以支持逻辑复杂的金融应用。

麦语言的函数库,是经常更新的,根据客户的新要求随时添加新函数,来支持编程者的交易新思想和新应用
一、自编策略模型支持的函数
1.历史数据引用
2.日内高频数据引用
3.行情数据引用
4.金融统计
5.数理统计
6.逻辑判断
7.数学运算
8.时间函数
9.绘图
10.颜色常数
11.头寸函数
二、自编下单组件支持的函数
1.引用数据函数
2.逻辑判断函数
3.辅助函数
4.数学运算函数
5.模型相关函数
6.头寸函数。

麦语言函数手册

麦语言函数手册
L2_PRICE
取Tick图中该笔TICK的成交价。用法:L2_PRICE返回TICK图中该笔TICK的成交价。
L2_VOLUME
取TICK图中该笔TICK的成交量。用法:L2_VOLUME返回TICK图中该笔TICK的成交量。
ASKBIGVOLPRICE
TICK图中该笔Tick盘口中空头满足大单条件的与最新价的最近价格。用法:ASKBIGVOLPRICE返回TICK图中该笔Tick盘口满足大单条件的与最新价的最近价格,注模型中需调用一次CALVOLPRICELIST函数
L2_ASK4
取秒周期末卖4价(K线图)或该笔TICK时刻的卖4价(Tick图)。用法:L2_ASK4K线图时返回当前秒周期最后时刻的卖4价。TICK图时返回该笔TICK时刻的卖4价。
L2_ASK5
取秒周期末卖5价(K线图)或该笔TICK时刻的卖5价(Tick图)。用法:L2_ASK5K线图时返回当前秒周期最后时刻的卖5价。TICK图时返回该笔TICK时刻的卖5价。
DMA(X,A)
返回X的动态移动平均,其中A为常数,并且必须介于0及1之间。计算方法:DMA(N)=DMA(N-1)*(1-A)+X(N)*A其中DMA(N-1)为第(N-1)天的DMA值。
EMA(X,N)
L2_BIDVOL5
取秒周期末买5量(K线图)或该笔TICK时刻的买5量(Tick图)。用法:L2_BID5K线图时返回当前秒周期最后时刻的买5量。TICK图时返回该笔TICK时刻的买5量。
L2_ASKVOL1
取秒周期末卖1量(K线图)或该笔TICK时刻的卖1量(Tick图)。用法:L2_ASK1K线图时返回当前秒周期最后时刻的卖1量。TICK图时返回该笔TICK时刻的卖1量。

AMX语法功能说明

AMX语法功能说明

特别符号{ }大括号多条命令集的结合[ ]中括号设备,通道号[DEVICE,CHANNEL];数组的定义,如:INTEGER VOL[NUMBER];SYSTEM_CALL系统调用,如:SYSTEM_CALL[1] 'COSX'(45) ( )小括号IF条件语句;定义互锁语句(* *)或/* */注释对程序的必要说明,在程序中不起任何作用//注释单句注释运算符号常用关键字ON[DEVICE,CHANNEL] // 开OFF[DEVICE,CHANNEL] // 关PULSE[DEVICE,CHANNEL] // 发送脉冲TO [DEVICE,CHANNEL]// 按住多长时间执行多长SEND_COMMAND DEV, '<command string>'SEND_STRING DEV, '<string>'事件处理:BUTTON_EVENT这个关键字规定了一个按钮事件的处理。

它包括按下、释放、持续三个事件,在一个指定的设备通道上,这三个事件与按下和释放按钮是紧密相连的,按钮事件包含一个可选择的反馈信息处理,它在事件处理完成之后立即运行。

在任何时候主线运行了,这个反馈信息处理也被执行。

定义格式如下:BUTTON_EVENT [<device>,<channel>]{PUSH:{/* 当按钮按下去时执行的动作*/}RELEASE:{/* 当按钮松手时执行的动作*/}HOLD [<time>,[REPEAT]]:{/* 当按钮按住时过了多长时间/或每隔多长时间重复执行的动作*/}}Example:BUTTON_EVENT[TP,1]{PUSH: /* 按下触摸屏第一个通道时执行的动作*/{ON[RELAY,1]}}BUTTON_EVENT特性描述表:DATA_EVENT这个关键字规定了一个数据事件的处理。

麦语言编写基础操作符

麦语言编写基础操作符

麦语言编写基础操作符
麦语言是一种用于编写智能合约的编程语言,它具有丰富的基
础操作符,用于实现各种功能和逻辑。

以下是一些常见的基础操作符:
1. 赋值操作符,用于将数值或变量赋给一个变量。

例如,使用“=”进行赋值操作。

2. 算术操作符,包括加法“+”、减法“-”、乘法“”、除法“/”等,用于进行基本的数学运算。

3. 比较操作符,包括等于“==”、不等于“!=”、大于“>”、小于“<”、大于等于“>=”、小于等于“<=”等,用于比较两个值
的大小关系。

4. 逻辑操作符,包括与“&&”、或“||”、非“!”等,用于
实现逻辑运算,例如逻辑与、逻辑或、逻辑非等。

5. 位操作符,包括按位与“&”、按位或“|”、按位取反“~”等,用于对二进制数进行位运算。

6. 条件操作符,即三元操作符“condition ? expr1 :
expr2”,根据条件的真假返回不同的表达式结果。

7. 逗号操作符,用于连接表达式,多个表达式用逗号“,”分隔,整个表达式的值为最后一个表达式的值。

以上是一些麦语言中常见的基础操作符,它们可以用于实现各种复杂的逻辑和功能。

当然,麦语言还有其他更多的操作符,这些操作符可以帮助开发者更加灵活地编写智能合约。

希望这些信息能够帮助你更好地理解麦语言的基础操作符。

m语言基础语法表

m语言基础语法表

m语言基础语法表M语言基础语法表一、变量与常量在M语言中,我们可以使用变量和常量来存储和操作数据。

1. 变量变量是用于存储数据的容器,可以在程序运行过程中改变其值。

在M语言中,变量的声明格式为:变量类型变量名。

例如:整数 a字符串 name布尔类型 isTrue2. 常量常量是指在程序运行过程中其值不能被改变的数据。

在M语言中,常量的声明格式为:const 常量类型常量名 = 值。

例如:const 整数 MAX_NUM = 100const 字符串 NAME = "M语言"二、数据类型M语言中有多种数据类型,包括整数、浮点数、布尔类型、字符串等。

1. 整数类型在M语言中,整数类型用于表示整数值,包括正整数、负整数和零。

常用的整数类型有:整数:用于表示整数值,例如:10、-5、0等。

2. 浮点数类型浮点数类型用于表示带有小数部分的数值。

常用的浮点数类型有:单精度浮点数:用于表示较小范围的浮点数,例如:3.14、-1.23等。

双精度浮点数:用于表示较大范围的浮点数,例如:2.71828、-0.567等。

3. 布尔类型布尔类型用于表示真或假的值。

常用的布尔类型有:真:表示真值,用true表示。

假:表示假值,用false表示。

4. 字符串类型字符串类型用于表示文本数据。

在M语言中,字符串使用双引号括起来,例如:"Hello, World!"。

三、运算符M语言中支持多种运算符,用于进行数值和逻辑运算。

1. 算术运算符M语言支持常见的算术运算符,包括加法、减法、乘法、除法和取模运算。

例如:加法:用+表示,例如:a + b。

减法:用-表示,例如:a - b。

乘法:用*表示,例如:a * b。

除法:用/表示,例如:a / b。

取模:用%表示,例如:a % b。

2. 关系运算符关系运算符用于比较两个值的大小关系,返回布尔类型的结果。

常用的关系运算符有:等于:用==表示,例如:a == b。

麦语言程序化模型的编写精品文档

麦语言程序化模型的编写精品文档

例 同一合约不同周期的数据调用
要求
30分钟周期上,当前面一根MA5大于MA10,并且5分钟 周期上,MA5上穿MA10,做多。
30分钟周期上,当前面一根MA5大于MA10,并且5分钟 周期上,MA5下穿MA10,做空。
尾盘平仓
先建立一个指标 名称AAA RMA5:=REF(MA(C,5),1); RMA10:=REF(MA(C,10),1);
MACD、KDJ指标模型:
DIFF := EMA(CLOSE,SHORT) - EMA(CLOSE,LONG); DEA := EMA(DIFF,N); MACD:=2*(DIFF-DEA); RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,M1,1); D:=SMA(K,M1,1); J:=3*K-2*D; (CROSS(K,D)&&J<30)||(CROSS(DIFF,DEA)&&MACD>1),BK; (CROSS(D,K)&&REF(J,1)>70)||(CROSS(DEA,DIFF)&&MACD<-1),SP; (CROSS(D,K)&&J>70)||(CROSS(DEA,DIFF)&&MACD<-1),SK; (CROSS(K,D)&&REF(J,1)<30)||(CROSS(DIFF,DEA)&&MACD>1),BP; AUTOFILTER;
模型中跨指标,是将多个指标交易思想结合在一起进行看盘 断势。 关键词:多个交易条件
1:以均线结合KD交叉指标为例: 2:练习编写:MACD、KDJ指标模型。

m语言语法

m语言语法

m语言语法M语言是一种专门为Power Query和Power BI等数据处理工具设计的编程语言。

它具有简洁、灵活和高效的特点,能够对数据进行快速处理和转换。

本文将介绍M语言的语法特点和基本用法,帮助读者更好地理解和使用M语言。

一、基本概念M语言是一种函数式编程语言,它的基本单位是表达式。

每个表达式由一个或多个函数组成,函数之间通过参数和运算符进行连接。

M语言中的函数可以是内置函数,也可以是用户自定义函数。

内置函数包括用于数据处理和转换的各种函数,如过滤、排序、计算和合并等。

用户可以根据自己的需求定义自己的函数,以实现特定的数据处理逻辑。

二、变量和赋值在M语言中,可以使用变量来存储和操作数据。

变量的命名规则与其他编程语言相似,可以使用字母、数字和下划线,但必须以字母开头。

变量的赋值使用等号(=)进行,例如:var = 10。

M语言中的变量是不可变的,即一旦赋值后就不能再次修改。

如果需要修改变量的值,可以使用新的变量来存储。

三、数据类型M语言支持多种数据类型,包括整数、实数、文本、日期时间、逻辑值和表等。

其中最常用的是表数据类型,用于存储和处理数据集。

表由多个列组成,每个列可以有不同的数据类型。

M语言提供了丰富的函数和运算符,用于对表进行操作和转换。

四、列表和记录除了表,M语言还支持列表和记录这两种数据结构。

列表是一组有序的值,可以通过索引访问和修改其中的元素。

记录是一组具有命名字段的值,每个字段可以存储不同类型的数据。

列表和记录可以嵌套使用,形成复杂的数据结构。

五、流程控制M语言提供了一些流程控制语句,用于根据条件执行不同的代码块。

常用的流程控制语句包括if语句、for循环和while循环。

通过这些语句,可以根据不同的情况执行不同的代码逻辑,实现数据处理的灵活性和可扩展性。

六、异常处理M语言支持异常处理机制,可以捕获和处理运行时的异常。

通过try...otherwise...语句,可以编写对异常进行处理的代码块。

麦语言语法

麦语言语法
得到X在N周期内的样本方差
VARP(X,N)
得到X在N周期内的总体样本方差
数理统计举例说明:
设一个数列,数列中数据的总个数为N,以今天(2005-10-14)五天内的A0605收盘价为例,N就为5。数列的内容为:{2766,2805,2814,2886,2885}。
1、算术平均值MA(CLOSE,5):数据总和除以总个数N。(2766+2805+2814+2886+2885)/5=2831.20。可以用公式MA(CLOSE,5),从今天的值上看出。
注意:某些合约(如橡胶指数)查不到最小变动价位,返回0。
VOL
求成交量,也可简写为V。
2.金融统计
BACKSET(X,N)
若X条件成立,则将当前位置到N周期前的数值设为1。『未来函数』
例:BACKSET(CLOSE>OPEN,3);表示当K线收阳时,自当前位置到3周期前的数值设为1
BARSLAST(X)
例:HHV(HIGH,13);求13个周期内的最高价的最大值。
HHVBARS(X,N)
得到X在N周期内的最高值位置到当前的周期数。如果N=0,则从本地数据的第一个有效周期开始算起。
例:HHVBARS(VOL,0);求历史成交量最大的周期到当前的周期数
LLV(X,N)
得到X在N周期内的最小值,如果N=0,则从本地数据的第一个有效周期开始算起。
例:REFX(CLOSE,5);表示引用自当前周期后第5个周期的收盘价
本函数运算量很大,将占用很多的CPU资源,导致行情刷新速度变慢,请谨慎使用!
MINPRICE
返回某品种的最小变动价位。
用法:MINPRICE(CODE);返回CODE所对应合约的最小变动价位。

麦语言函数手册最新版(233页)

麦语言函数手册最新版(233页)

ASKBIGCOUNT 取得TICK图所定义数据区主动卖大单次数
的和。 该函数不支持与指令连用。
注:
1、使用该函数前,必须先调用DEF_TICKDATA函数定义T ICK数据区。
ASKBIGCOU NT
2、使用该函数前,必须使用SETBIGVOL函数定义大单阈 值,否则该函数返回0。 3、该函数必须在TICK图中使用,在K线图上返回空值。
全部函数
函数名 函数说明
ABS(X):取的X的绝对值。
注:
1、正数的绝对值是它本身;
2、负数的绝对值是它的相反数;
3、0的绝对值还是0;
ABS
例1:
ABS(-10);//返回10。
例2:
ABS(CLOSE-10);//返回收盘价和的10价差的绝对值。
例3:
ABS(C-O);//当前K线实体长度
ACCOUNTM ONEY
ACOS(X):返回X的反余弦值。 注: 1、X取值范围[-1,1]。
ACOS ADMA
2、若X不在取值范围,返回值为空值。 例1: ACOS(-1);//求-1的反余弦值; 例2: ACOS(1);//求1的反余弦值;
ADMA(X,N,P,Q) 考夫曼均值 用法:ADMA(X,N,P,Q);求X在N个周期中的,快线频率参 数为P,慢线频率参数为Q的考夫曼自适应均值。 注: 1、X为调用的k线数据(例如高、开、低,收);N为调用 的间隔时间;P为快线频率参数;Q为慢线频率参数。 2、当前的K线数不足N根时,函数返回空值。 3、N为0或空值的情况下,函数返回空值。 算法: ADMA(X,N,P,Q)=REF(EMA(X,N),1)+CONSTANT*(X- REF( EMA(X,N),1)); CONSTANT是平滑系数,用⻨语言函数可以表示为: CONSTANT:=SQUARE((ABS((CLOSE-REF(CLOSE,N))/(SU M(ABS((CLOSE-REF(CLOSE,1))),N))))*(2/(P+1)-2/(Q+1))+2 /(Q+1)); 算法举例:计算C在9周期的,快线频率参数为2,慢线频率 参数为30的考夫曼均值。 1、确定价格方向:价格方向表示整个时间段中的净价格变 化。比如,使用N天的间隔(或N小时),这里N为9 2、计算方向移动:DIRECTION:=ABS(CLOSE-REF(CLOSE ,9)); 3、计算波动性:波动性是市场噪音的总数量,计算了时间 段内价格变化的总和。 VOLATILITY:=SUM(ABS((CLOSE-REF(CLOSE,1))),9); 4、确定效率系数: ER:=DIRECTION/VOLATILITY; 5、计算平滑系数:

麦语言基本语法与指令说明

麦语言基本语法与指令说明
例 2: CROSSUP(C,MA(C,5)),BK('A',MONEY*0.5/(C+0.5*FEE));//A 组做多指令,收盘价向上穿越 5 周期均线,买入数量为变量, 按照理论可用资金 50%买开仓
3、指令指定对应组别,同时指定交易手数,
a.下面例 1 中,BK 后面的括号中“1”位置为下单手数。 b.下单手数为固定手数或者变量。 c.如下单手数为变量且结果包含小数,小数采用向下取整原则。 d.指定交易手数后,模组设置的手数无效。 例 1: CROSSUP(C,MA(C,5)),BK('A',1);//A 组做多指令,收盘价向上穿越 5 周期均线,下单手数为固定手数,1 手
例: CLOSE>MA(CLOSE,5),BK(500);//收盘价大于 5 周期均线,买入 500 股。设置的数量无效
2、指令指定交易数量,买入数量为变量 a.BK 后面括号中的计算公式可任意编写,计算结果为买入数量。 b.小数采用向下取整原则。 c.指定交易数量后,设置的数量无效。 例: CLOSE>MA(CLOSE,5),BK(MONEY*0.5/(C+0.5*FEE));//收盘价大于 5 周期均线,按照理论可用资金 50%买入。
2、指令指定对应组别,不指定交易数量,买入数量为设置的固定数量。 例: CROSSUP(C,MA(C,5)),BK('A');//A 组做多指令,收盘价向上穿越 5 周期均线,买入,买入数量为设置的固定数量
在非过滤模型中的应用
1、指令指定交易数量,买入数量为固定数量
a.BK 后面的括号中为买入数量,可为任意正整数。 b.指定交易数量后,设置的数量无效。
CLOSE>OPEN;当根 k 线的收盘价大于开盘价 (阳线)返回 1,否则返回 0。

s对m的初级指令

s对m的初级指令

s对m的初级指令M是一个强大的编程语言,它可以帮助我们快速开发应用程序、小程序和游戏。

为了让初学者可以更熟练地使用M,这里让我们来学习M的初级指令。

1. 变量定义M语言的变量声明非常简单。

在M语言中,只需要在变量名前加上一个百分号”%“来定义变量。

例如:%a,%b,%c。

2. 数据类型M语言支持多种基本数据类型,包括整型(int)、浮点型(float)、字符串(string)和布尔类型(bool)。

另外还支持数组(array)和引用(reference)类型。

3. 运算符M语言支持大量的运算符,也就是可以用来比较、赋值、运算的符号。

典型的包括算数运算符”+“,”-“,”*“,”/“,逻辑运算符”and“,”or“,”not“;关系运算符”=“,”<“,”>“,”<=“,”>=“;以及赋值运算符”:=“。

4. 条件语句M语言支持多种形式的条件语句,主要有if-else、if-elif-else以及switch-case等。

5. 循环M语言支持while循环、for循环和do-while循环等,主要用于实现需要重复执行的逻辑。

6. 函数M语言可以定义函数来实现一类相似的功能,使用时只需要调用该函数即可完成相应的功能,大大减少了重复的代码。

7. 注释M语言能够支持”//“和”/* */“两种注释语句,”//“后面的内容可以被忽略,而”/* */“可以忽略中间的内容而需要” */”结束标志才能结束忽略。

以上就是M语言中的初级指令介绍,以及它们如何来帮助我们精心构建自己的应用程序或者游戏。

这些技巧将会让我们不断发展出更多的应用程序,真正体现我们的功绩和专业。

语句表指令介绍讲解

语句表指令介绍讲解

JCB
JOVR
//Jump if RLO = 1 to jump label JOVR. Copy the contents of the RLO bit into the
BR bit.
L T JOVR:
IW8 MW22 A
//Program scan continues here if jump is not executed.
打开数据块方式
访问背景数据块时,可以使用DI,也可以使用DB打开数据块。
32
应用
把共享数据块的内容 送到背景数据块内
首先打开共享数据块DBMS; 然后从中读出DBD1176(此 处访问共享数据块,所有使 用DBD***);最后,传送到 DID相应地址中去(此处访问 背景数据块,所有使用 DID***,且不要指定数据块 号,因为在调用FB时已经指 定了数据块 );
指令介绍
1. 位操作指令 2. 比较指令 3. 格式转换指令 4. 计数器 5. 块操作 6. 逻辑控制 7. 算术指令 8. 装载与传送指令 9. 程序控制指令 10. 移位指令 11. 定时器 12.字逻辑操作指令 13. 累加器相关指令
1
1.位操作指令
A AN O ON X XN 与 与非 或 或非
48
如何单步运行
• 1,打开online功能块;(语句表格式) • 2,设置运行模式为test模式; • 3,插入断点,单步运行。
49
可以观察 PLC的寄 存器数值, 查看各个 工作区域 变化值。
50
51
52
53
54
JUO使用:
• 除以0; • 使用非法指令; • 浮点数比较,与无穷大或无穷小比较。
SET RLO置位 CLR RLO复位
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、指令指定对应组别,同时指定交易手数,
a.下面例 1 中,BK 后面的括号中“1”位置为下单手数。 b.下单手数为固定手数或者变量。 c.如下单手数为变量且结果包含小数,小数采用向下取整原则。 d.指定交易手数后,模组设置的手数无效。 例 1: CROSSUP(C,MA(C,5)),BK('A',1);//A 组做多指令,收盘价向上穿越 5 周期均线,下单手数为固定手数,1 手
例 2: CROSSUP(C,MA(C,5)),BK('A',MONEY*0.5/(C+0.5*FEE));//A 组做多指令,收盘价向上穿越 5 周期均线,买入数量为变量, 按照理论可用资金 50%买开仓
BK 指令使用说明:
1、用于期货、外盘合约上为买入开仓 2、用于股票合约上为买入,但和 STOCKT0 或 STOCKT0_PLUS 连用加载在股票合约上不出信号
//后为使用方法的文字解释
在期货、外盘合约中的应用
在过滤模型中的应用
1、指令不指定交易手数,下单手数为模组设置的固定手数。 例: CLOSE>MA(CLOSE,5),BK; //收盘价大于 5 周期均线,买开仓,下单手数为模组设置的固定手数
6、定义全局变量 VARIABLE:VAR1:=X,VAR2:=Y; IF 条件 1 THEN VAR1:=VAR1+1; IF 条件 2 THEN VAR2:=VAR2+1; VARIABLE 表示声明后面的变量名为全局变量
Байду номын сангаас
VAR1 VAR2 全局变量的名字 X Y 为全局变量的初始值 VAR1:=VAR1+1;表示给 VARI 赋值 如果当前 K 线条件满足条件 1,则给 VARI 赋值为 VAR1+1,否则仍旧取值为之前的 VAR1 的值
例: CLOSE>MA(CLOSE,5),BK(5);//收盘价大于 5 周期均线,买开 5 手。模组设置的手数无效
2、指令指定交易手数,下单手数为变量 a.BK 后面括号中的计算公式可任意编写,计算结果为下单手数。 b.小数采用向下取整原则。 c.指定交易手数后,模组设置的手数无效。 例: CLOSE>MA(CLOSE,5),BK(MONEY*0.5/(C*MARGIN*D));//收盘价大于 5 周期均线,按照理论可用资金 50%买开仓。模组 设置的手数无效
3、指令指定对应组别,同时指定交易数量,
a.下面例 1 中,BK 后面的括号中“100”位置为买入数量。 b.买入数量为固定数量或者变量。 c.如买入数量为变量且结果包含小数,小数采用向下取整原则。 d.指定交易数量后,设置的数量无效。 例 1: CROSSUP(C,MA(C,5)),BK('A',100);//A 组做多指令,收盘价向上穿越 5 周期均线,买入数量为固定数量,100 股
CLOSE>OPEN;当根 k 线的收盘价大于开盘价 (阳线)返回 1,否则返回 0。
CLOSE<OPEN;当根 k 线的收盘价小于开盘价(阴线) 返回 1,否则返回 0。
CLOSE>=2000;当根 k 线收盘价大于等于 2000 返回 1,否则返回 0。
CLOSE<=2000;当根 k 线收盘价小于等于 2000 返回 1,否则返回 0。
CLOSE*OPEN;返回收盘价与开盘价的积。 CLOSE/OPEN;返回收盘价与开盘价的商。
CLOSE>OPEN&&REF(CLOSE>OPEN,1);当根 k 线 与前一根 k 线都收阳返回 1,否则返回 0。
CLOSE>OPEN||REF(CLOSE>OPEN,1);当根 k 线收阳或 前一根 k 线收阳返回 1,否则返回 0。
2、指令指定对应组别,不指定交易数量,买入数量为设置的固定数量。 例: CROSSUP(C,MA(C,5)),BK('A');//A 组做多指令,收盘价向上穿越 5 周期均线,买入,买入数量为设置的固定数量
在非过滤模型中的应用
1、指令指定交易数量,买入数量为固定数量
a.BK 后面的括号中为买入数量,可为任意正整数。 b.指定交易数量后,设置的数量无效。
例 2: CROSSUP(C,MA(C,5)),BK('A',MONEY*0.5/(C*MARGIN*D));//A 组做多指令,收盘价向上穿越 5 周期均线,按照理论可用 资金 50%买开仓
在股票模型中的应用
在过滤模型中的应用
1、指令不指定交易数量,买入数量为设置的固定数量。 例: CLOSE>MA(CLOSE,500),BK; //收盘价大于开盘价,买入,买入数量为设置的固定数量
例: CLOSE>MA(CLOSE,5),BK(500);//收盘价大于 5 周期均线,买入 500 股。设置的数量无效
2、指令指定交易数量,买入数量为变量 a.BK 后面括号中的计算公式可任意编写,计算结果为买入数量。 b.小数采用向下取整原则。 c.指定交易数量后,设置的数量无效。 例: CLOSE>MA(CLOSE,5),BK(MONEY*0.5/(C+0.5*FEE));//收盘价大于 5 周期均线,按照理论可用资金 50%买入。
DATE<>REF(DATE,1);当根 k 线的日期与前一 根 k 线的日期不等(当根 k 线为当日第一根 k 线) 返回 1,否则返回 0。
TIME=1459;当根 k 线的时间为 14 点 59 分返 回 1,否则返回 0。
AA:=(OPEN+CLOSE)/2;定义变量 AA,模型加
:=
定义变量(模型加载时不显示线)
AA..(OPEN+CLOSE)/2;//定义变量 AA,主图

定义变量(以独立坐标方式显示) 加载时,无论指标属性如何,AA 以独立坐标方式在
主图显示。
编辑平台的语法
1、编写规则 (1)请使用半角输入,不区分大小写; (2)每一行语句以“;”结束; (3)注释行前用“//”标识; 2、变量命名 “O”“H”“L”“C”为系统关键字,不可以用作变量名。 3、交易指令冲突 过滤模型不支持指令里定义手数,例如:BK(5)。 4、函数冲突 (1)"TRADE_OTHER"的基础数据是一分钟数据,与"CHECKSIG_MIN"、"MULTSIG_MIN"配套,但是不能与"CHECKSIG"、 "MULTSIG"函数一起使用。 (2)"CLOSEKLINE"/"CLOSEKLINE_MIN"只支持收盘价模型,不能再写"CHECKSIG"/"CHECKSIG_MIN"函数、 "MULTSIG"/"MULTSIG_MIN"函数。 (3)"CLOSEKLINE"和"CLOSEKLINE_MIN"函数有冲突,不能一起使用。 (4)"CHECKSIG"/"CHECKSIG_MIN"这类函数,"MULTSIG"/"MULTSIG_MIN"这类函数,二类函数是有冲突的,不能一 起使用。 (5)"CHECKSIG"和"CHECKSIG_MIN"函数有冲突,不能一起使用。 (6)"MULTSIG"和"MULTSIG_MIN"函数有冲突,不能一起使用。 (7)"MULTSIG"/"MULTSIG_MIN"表示一根 k 线多信号,和表示一根 k 线一个信号但是不同 k 线指令行重复生效的 "TRADE_AGAIN"函数有冲突,不能一起使用。 (8)"CLOSEMINUTE/CLOSESEC"只支持收盘价模型,不能再写 CHECK_MIN/CHECKSIG、MULTSIG_MIN/MULTSIG 函数。 (9)"CLOSEMINUTE1/CLOSESEC1"只支持指令价模型,不能与 CLOSEKLINE/CLOSEKLINE_MIN 一起使用。 5、IF ... THEN BEGIN ... END 语法
2、指令指定对应组别,不指定交易手数,下单手数为模组设置的固定手数。 例: CROSSUP(C,MA(C,5)),BK('A');//A 组做多指令,收盘价向上穿越 5 周期均线,买开仓,下单手数为模组设置的固定手数
在非过滤模型中的应用
1、指令指定交易手数,下单手数为固定手数
a.BK 后面的括号中为下单手数,可为任意正整数。 b.指定交易手数后,模组设置的手数无效。
载时 AA 在图表上不显示线。
: 定义变量(模型加载时显示线)
AA:(OPEN+CLOSE)/2;定义变量 AA,模型加载时 AA 在图表上显示线。
AA^^(OPEN+CLOSE)/2;//定义变量 AA,主图
定义变量(以主图附加坐标方式显
^^
加载时,无论指标属性如何,AA 都以主图附加坐标
示)
方式在主图显示。
语法 操作符
自编模型支持的操作符
操作符
意义
举例
+ 加法
- 减法
*
乘法
/
除法
&& 与(并且),也可简写为 AND
|| 或(或者),也可简写为 OR
>
大于
<
小于
>= 大于等于
<= 小于等于
<> 不等于
=
等于操作符
CLOSE+OPEN;返回收盘价与开盘价的和。
CLOSE-OPEN;返回收盘价与开盘价的差。
相关文档
最新文档