公式平台包含一个C语言编译器,可以通用函数与C语言混写,在创作公式的时候,可以在一个公式中对多个周期的数据、其他股票的数据同时进行操作,具有丰富、全面的内部函数和操盘指令。 所以本软件的公式平台可以支持非常复杂的公式创造,任何想法、思想都可以实现。 希望大家应用C语言这种目前最为成熟强大的编程语言,进入技术分析的高境界。
变量及常量
创作一个公式,也就是将我们的想法表达出来。在这个过程中,我们免不了要记录一些状态,记录这些状态,我们就需要"变量"这个概念。比如,我们要求近十天的收盘价的平均值,需要10个数相加,这时候,我们需要一个计数器,这个计数器,我们就可以用一个整数变量来表示;又需要一个存放累加和的地方,因为累加和可能存在小数,我们就不能再用整形变量表示,就要使用浮点数来表示了。这个过程我们可以表达如下:
float sum = 0.0; //申请一个浮点变量,并赋初值0
for(int i=0; i < 10; i++) //循环10次,i就是计数器, 在这里被表示成一个整形变量。
{
if(i > DataLen) //数据不够了,终止
break;
sum += 收盘价[DataLen-i];
}
float ret = 0; //存放结果的浮点变量,赋初值0
if(i>0)
ret = sum/i;
这个过程现在看不懂,没有关系,在这里,我们只要了解到变量的意义就可以了。每声明一个变量,计算机就会为这个变量申请一个存储空间。更具变量的类型不同,计算机将为他申请不同的空间,并使用不同的存储方法。我们可以总结说:变量就是在计算的过程中用来存放我们一些状态和结果的地方。那么,有哪些变量的类型呢?我们常见的有以下几种:
1.整形:只能记整数,比如-1、-100、0、1、100等。这样的变量计算机将申请4字节(计算机最基本的存储单位)空间,不能表示小数,数的表示范围可以从-2147483648~2147483647。表达方式:int. 比如我们需要声明一个叫做A 的整形变量,可以用下面方式表达:
int A;
最后的':'代表这个声明的结束,在C语言中,';'总是代表一个语句的结束。如果我们希望一下声明多个整形变量,我们在每个变量之间需要用','隔开,比如,零基础学炒股,我们希望声明两个分别加A和B的整形变量,可以用下面方式表达:
int A,B;
注意,','以及';'不能是中文的。
很多时候,我们希望在变量声明的时候付给他初值,这时候,我们可以这样来表达:
int A =1,B=100;
2.浮点型:可以记小数,比如-1.5、-100.123、0.001、1.29、100.667等。这样的变量计算机将申请4字节(计算机最基本的存储单位)空间,数的表示范围可以从3.4x10-38E~3.4x10+38E。表达方式:float. 如果我们需要声明一个叫做A 的整形变量,可以用下面方式表达:
float A;
浮点型在运算过程中和整形相比较慢,但是计数的范围却大大增大了。
数据类型还有很多种,我们列表如下:
名称 描述 所占空间(BYTE) 范围 特点
整形 int 4 -2147483648~2147483647 整数,有符号(可正可负)
浮点型 float 4 3.4x10-38E~3.4x10+38E 可记小数,有符号(可正可负)
双精度浮点型 double 8 小数点后位数更长,有符号(可正可负)
布尔类型 Bool 4 0-1 只有TRUE(1)和FALSE(0)两个值
字符型 char 1 -128~127 整数,有符号(可正可负)
无符号字符型 byte 1 0-255 整数,无符号(无负数)
短整形 short 2 -32768~32767 整数,有符号(可正可负)
无符号短整形 word 2 0-65535 整数,无符号(无负数)
无符号整形 dword 4 0~4294967295 整数,无符号(无负数)
还有很多数据类型, 鉴于简明的需要,不再赘述.
所谓常量,也就是不变的量.这些量和变量一样可以参与运算.比如0、5.5等都叫做常量。常量也有数据类型,比如布尔常量我们就两个: TRUE 或者 FALSE, 前者代表'真',后者代表'假'.不同的常量付给相同类型的变量,比如:
BOOL A = TRUE; //将TRUE付给变量A; (股票学习网 )
常量的表达方式很多,我们简单举例说明两种。
十进制常量, 可以用我们的常用习惯苏书写,比如0.5, 0.8等等,这种常量可以非给int,float,等类型。
十六进制常量,需要在数字前面添加0x,比如0xff00ff, 这在我们平台中表达颜色的时候有用,比如 两点棒线扩展(V1,V2,C,C1,C2,W,F) 这个函数需要我们制定两个颜色,而颜色需要一个三字节的16进制的常量表示,0xAABBCC 的AA,BB,CC分别代表红色的亮度、绿色的亮度、蓝色的亮度。
运算及赋值
我们创造公式,离不开运算。比如 a = b*c+20/d 就表示了将b和c的乘积加上20除以d所得到的商,赋值给变量a.其中*、+、/都是运算符号,告诉计算机进行什么操作。
运算符非常主要分为三大类: 算术运算符, 关系运算符与逻辑运算符, 按位运算符。除此之外, 还有一些用于完成特殊任务的运算符。下面分别进行介绍其中的三类。
1.算术运算符
操作符 作用
+ 加, 一目取正
- 减, 一目取负
* 乘
/ 除
% 取模
-- 减1
++ 加1
一目和二目操作
一目操作是指对一个操作数进行操作。例如: -a是对a进行一目负操作。
二目操作(或多目操作)是指两个操作数(或多个操作数)进行操作。
加、减、乘、除、取模的运算容易理解。需要注意的是除法和取模运算。
例如:
15/2 是15除以2商的整数部分7
15%2 是15除以2的余数部分1
对于取模运算符"%", 不能用于浮点数。
增量运算
有两个很有用的运算符,那就是增1和减1运算符"++"和"--", 运算符"++"是操作数加1, 而"--" 则是操作数减1。
例如:
x=x+1 可写成x++, 或++x
x=x-1 可写成x--, 或--x
x++(x--)与++x(--x)在上例中没有什么区别, 但x=m++和x=++m却有很大差别。
x=m++ 表示将m的值赋给x后, m加1。
x=++m 表示m先加1后, 再将新值赋给x。
2.逻辑运算符
逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。
操作符 作用
&& 逻辑与
|| 逻辑或
! 逻辑非