繁體中文
首页 学院 股票书籍 股票视频 电子书 股票软件
股票入门炒股技巧选股技巧买入卖出看盘跟庄短线止损解套技术指标成交量K线图平均线趋势线捕黑马股票术语股票公式
视频教程股票入门视频炒股视频K线图视频短线炒股视频股票买卖视频炒股一招先天狼之眼技术分析视频基本面视频波浪理论视频
您现在的位置:首页 >> 公式应用 >> 内容 94zw.com 最易懂的股票入门基础知识网站 牛市赚大钱
股票入门知识
什么是股票?
股票的种类
股票的作用
股票指数定义
投资股票的风险
股票的特征
什么是证券机构
股票清算价格
证券交易所
股票公司种类
什么是股市价
股票的交易市场
股份公司种类
成交 股票术语
股票指数定义
股息红利的来源
红利发放方式
如何选证劵公司
新手开户流程
除权与除息
开户需要的证件
怎样委托买卖
如何开立股东卡
股票怎么过户
怎样清算与交割
基本分析法
图形分析法
K线图知识
股票投资分析
经济周期的影响
道氏波动理论
成交量的变化
分析平均线
掌握主力的动向
选择市场优股
重势不重价
怎样捕捉热点
套牢了怎么办
判断大盘强弱
[ 点击更多 ]
股票入门视频
股票入门视频
炒股视频教程
炒股一招先视频
K线图视频教程
股票买卖视频
技术分析视频
天狼之眼视频
基本面视频教程
波浪理论视频
短线炒股视频
胡立阳炒股视频
杨百万炒股视频
栏目分类
股票入门 股票知识
股票术语 炒股入门
炒股技巧 选股技巧
买入技巧 卖出技巧
短线技巧 看盘技巧
跟庄技巧 炒股经验
解套方法 止损技巧
股票学习 炒股指导
股票分析 基本分析
心理分析 公司财务
股票交易 股票投资
基金知识 股票理论
公式应用 权证新股
投资策略 港股投资
追涨技巧 捕捉黑马
波段操作 涨停研究
股票指标 成 交 量
分 时 图 K 线 图
趋 势 线 MACD WR
KDJ RSI DMI ARBR
平 均 线 OBV BOLL
BIAS SAR ROC PSY
股票书籍教程推荐
股票入门基础知识
轻轻松松炒股票
股民入市基础知识
从炒股新手到高手
世界上最会炒股的人
炒股就这几招
新手炒股快速入门
股票大作手操盘术
炒股实战指南图解
股票必涨买入法则
42种股票投资策略
20种股票买卖方法
股票短线操作技巧
操盘手培训课程
股票大师投资之道
涨停板盘口绝技
翻倍黑马实战教程
花荣职业操盘全集
股票技术分析理论
股市投资高手纪实
如何使用交易系统
巴菲特这样抄底
我的提款机中国股市
股票必涨买入法则
如何编写股票公式
股盲如何成股精
手把手教你学理财
股市赚钱大智慧
编写公式的基础(飞弧用)
时间开始2014/6/29 11:30:56时间结束

公式平台--C语言基础  (李济安)

    公式平台包含一个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的整形变量,可以用下面方式表达: http://www.dzb.com.cn收集整理
int A,B;

注意,','以及';'不能是中文的。

    很多时候,我们希望在变量声明的时候付给他初值,这时候,我们可以这样来表达:
int A =1,B=100;

[yao_page]     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。

[yao_page]     2.逻辑运算符
逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。

    操作符 作用
&& 逻辑与
|| 逻辑或
! 逻辑非

    3.关系运算符
关系运算符是比较两个操作数大小的符号。

操作符 作用
> 大于
> = 大于等于
< 小于
< = 小于等于
== 等于
!= 小不等于

    关系运算符和逻辑运算符的关键是真(true)和假(false)的概念。true可以是不为0的任何值, 而false则为0。 使用关系运算符和逻辑运算符表达式时, 若表达式为真(即true)则返回1, 否则, 表达式为假(即false), 则返回0。
例如:
100>99 返回1
10>(2+10) 返回0
!1&&0 返加0
    对上例中表达式!1&&0, 先求!1和先求1&&0将会等于出不同的结果, 那么何者优先呢? 这在Turbo C中是有规定的。 有关运算符的优先级本节后面将会讲到。

    联合操作
C中有一特殊的简写方式, 它用来简化一种赋值语句, 适用于所有的双目运算符。其一般形式为:
< 变量 >=< 变量 >< 操作数 >< 表达式 >
相当于
< 变量 >< 操作数 >=< 表达式 >
例如:
a=a+b 可写成 a+=b
a=a&b 可写成 a&=b
a=a/(b-c) 可写成 a/=b-c

    C运算符的优先级
C规定了运算符的优先次序即优先级。 当一个表达式中有多个运算符参加运算时, 将按下表所规定的优先级进行运算。表中优先级从上往下逐渐降低, 同一行优先级相同。
例如: http://www.dzb.com.cn收集整理
表达式 10>4&&!(100 < 99)||3 < =5 的值为1
表达式 10>4&&!(100 < 99)&&3 < =5 的值为0

    表达式 优先级 从高到低排列
()(小括号) [](数组下标) .(结构成员) ->(指针型结构成员) 最高
!(逻辑非) .(位取反) -(负号) ++(加1) --(减1) &(变量地址) ↑
*(指针所指内容) type(函数说明) sizeof(长度计算) │
*(乘) /(除) %(取模) │
+(加) -(减) │
<<(位左移) >>(位右移) │
<(小于) <=(小于等于) >(大于) >=(大于等于) │
==(等于) !=(不等于) │
&(位与) │
^(位异或) │
|(位或) │
&&(逻辑与) │
||(逻辑或) │
表达式) │
= += -=(联合操作) │
,(逗号运算符) 最低

[yao_page]  常用语句语法

平台中的C语法可以简单概括为以下几个特点:

代码一般用小写字母书写;
大多数语句结尾必须要用";"作为终止符, 否则C不认为该语句结束;
一个较完整的程序大致包括:变量定义、控制流程语句语句等;
注释部分包含在"/*"和"*/"之间, 单行的注释可以用//开始.
变量在使用之前必须先定义其数据类型,未经定义的变量被当成浮点数组使用。定义变量类型可在任意位置,一旦定义,后面的语句都可使用.
大、小写字母是有区别的, 相同字母的大、小写代表不同的变量。
书写格式非常灵活, 没有严格限制。
条件语句
条件语句的一般形式为:
if(表达式)
语句1;
else
语句2;

上述结构表示: 如果表达式的值为非0(TURE)即真, 则执行语句1, 执行完语句1从语句2后开始继续向下执行; 如果表达式的值为0(FALSE)即假, 则跳过语句1而执行语句2。所谓表达式是指关系表达式和逻辑表达式的结合式, 关于表达式前面已作过介绍, 这是不再重复。

注意:

1. 条件执行语句中"else 语句2;"部分是选择项, 可以缺省, 此时条件语句变成:
if(表达式) 语句1;
表示若表达式的值为非0则执行语句1 , 否则跳过语句1继续执行。

2. 如果语句1或语句2有多于一条语句要执行时, 必须使用"{"和"}" 把这些语句包括在其中, 此时条件语句形式为:
if(表达式)
{
语句体1;
}
else
{
语句体2;
}

3. 条件语句可以嵌套, 也就是语句体中还可以包含条件语句。
例如:
if(x>20||x < -10)

int a;
if(y < =100&&y >x)
a = 1;
else
a = 0;


4. 可用阶梯式if-else-if结构。
阶梯式结构的一般形式为:
if(表达式1)
语句1;
else if(表达式2)
语句2;
else if(表达式3)
语句3;
.
.
.
else
语句n;

这种结构是从上到下逐个对条件进行判断, 一旦发现条件满点足就执行与它 有关的语句, 并跳过其它剩余阶梯; 若没有一个条件满足, 则执行最后一个else 语句n。最后这个else常起着"缺省条件"的作用。

同样, 如果每一个条件中有多于一条语句要执行时, 必须使用"{"和"}"把这些语句包括在其中。

[yao_page] 循环语句
C提供三种基本的循环语句: for语句、while语句和do-while语句。

1.for循环
for循环是开界的。它的一般形式为:
for(< 初始化 >; < 条件表过式 >; < 增量 >)
语句;
初始化总是一个赋值语句, 它用来给循环控制变量赋初值; 条件表达式是一个关系表达式, 它决定什么时候退出循环; 增量定义循环控制变量每循环一次后按什么方式变化。这三个部分之间用";"分开。
例如:
for(i=1; i< =10; i++)
语句; http://www.dzb.com.cn收集整理

上例中先给i赋初值1, 判断i是否小于等于10, 若是则执行语句, 之后值增加1。再重新判断, 直到条件为假, 即i>10时, 结束循环。

注意:
1. for循环中语句可以为语句体, 但要用"{"和"}"将参加循环的语句括起来。
2. for循环中的"初始化"、"条件表达式"和"增量"都是选择项, 即可以缺省,但";"不能缺省。省略了初始化, 表示不对循环控制变量赋初值。 省略了条件表达式, 则不做其它处理时便成为死循环。省略了增量, 则不对循环控制变量进行操作, 这时可在语句体中加入修改循环控制变量的语句。
3. for循环可以有多层嵌套。
例:
int i, j, k,sum=0;
printf("i j k\n");
for (i=0; i< 2; i++)
for(j=0; j< 2; j++)
for(k=0; k< 2; k++)
sum++;

while循环
while循环的一般形式为:
while(条件)
语句;
while循环表示当条件为真时, 便执行语句。直到条件为假才结束循环。并继续执行循环程序外的后续语句。
例:
int i = 0;
while(i< 10) /*等于10结束循环*/
i++;
上例中, while循环是以检查i是否小于10, 因其事先被初始化为0, 所以条件为真, 进入循环累加i一旦大于等于10, 条件为假, 循环便告结束。
与for循环一样, while循环总是在循环的头部检验条件, 这就意味着循环可能什么也不执行就退出。
注意:
1. 在while循环体内也允许空语句。
例如: http://www.dzb.com.cn收集整理
while(i < 10);
当然,如果没有其他线程为i赋值,这个语句将导致死循环。
2. 可以有多层循环嵌套。
3. 语句可以是语句体, 此时必须用"{"和"}"括起来。

do-while 循环
do-while 循环的一般格式为:
do
语句;
while(条件);
这个循环与while循环的不同在于: 它先执行循环中的语句, 然后再判断条件是否为真, 如果为真则继续循环; 如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。
同样当有许多语句参加循环时, 要用"{"和"}"把它们括起来。

开关语句(分支语句)
在编写程序时, 经常会碰到按不同情况分转的多路问题, 这时可用嵌套if-else-fi语句来实现, 但if-else-if语句使用不方便, 并且容易出错。对这种情况, C提供了一个开关语句。开关语句格式为:
switch(变量)
{
case 常量1:
语句1或空;
case 常量2:
语句2或空;
.
.
.
case 常量n;
语句n或空;
default:
语句n+1或空;
}
执行switch开关语句时, 将变量逐个与case后的常量进行比较, 若与其中一 个相等, 则执行该常量下的语句, 若不与任何一个常量相等, 则执行default 后 面的语句。
注意:
1. switch中变量可以是数值, 也可以是字符。
2. 可以省略一些case和default。
3. 每个case或default后的语句可以是语句体, 但不需要使用"{"和"}"括起 来。
下例的switch中变量为整数型。
例:
int test;
for(test=0; test< =10; test++)
{
switch(test) /*变量为整型数的开关语句*/
{
case 1:
...;
break; /*退出开关语句*/
case 2:
... ;
break;
case 3:
... ;
break;
default:
...;
break;
}
}
}

[yao_page]  break语句
break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时, 可使程序跳出switch而执行switch以后的语句; 如果没有break语句, 则将成为一个死循环而无法退出。break在switch 中的用法已在前面介绍开关语句时的例子中碰到, 这里不再举例。

当break语句用于do-while、for、while循环语句中时, 可使程序终止循环而执行循环后面的语句, 通常break语句总是与if语句联在一起。 即满足条件时便跳出循环。
例:
int i=0;
while(1) /*设置循环*/
{
i++;
if(i==13)
break;
}
这个例子实际上执行13次就结束了
注意:
1. break语句对if-else的条件语句不起作用。
2. 在多层循环中, 一个break语句只向外跳一层。

continue 语句
continue语句的作用是跳过循环本中剩余的语句而强行执行下一次循环。continue语句只用在for、while、do-while等循环体中, 常与if条件语句一起使用, 用来加速循环。
例:
int i=0,j=0;
while(i< 18)
{
i++;
if(i == 10)
continue; //等于10的时候,不再执行下面语句,直接执行下一个循环.
j++;
}
执行的结果j将等于17.

 看过这篇文章的还看过
© 2004-2024 www.94zw.com.cn All Rights Reserved