搜档网
当前位置:搜档网 › 实例讲解EasyLanguage入门

实例讲解EasyLanguage入门

实例讲解EasyLanguage入门
实例讲解EasyLanguage入门

Know How EasyLanguage PowerEditor

简介

OmegaResearchTradeStation系列产品是交易者公认最好用的交易工具整合环境。你不只可以拿它来看盘,使用它内建的诸多技术指针协助分析交易,你也可以自行开发属意的指标,只要你想的到的。最重要的你可以用它来开发交易系统协助你进入机械化交易的世界。把交易构想付之实现并量化,你可以给自己交易最重要的东西──信心!

这个开发并实现交易梦想的核心就存在它内含的EasyLanguagePowerEditor当中。它不是一般点选内建指针,再加一些逻辑运算选项的阳春交易系统设计平台。它是透过一个类似Pascal语法的所谓EasyLanguage来书写你的程序代码,然后透过内部的编译器产生执行效率高的机码(这就是让它屹立不摇的卖点)。甚至连它的竞争者如Equis的MetaStock等多年来也只能不敢吭声的当老二。

虽然它名为「容易语言」,可是对许多没有程序语言经验的人来说它还真是宛如火星语一般的叫人直呼「不容易」。特别对我们这些非英语系的地区又多一曾障碍可称为最高级的「真不容易」。你的英语能力我没办法帮你改善的,至于EasyLanguage我可以助你一臂之力!不过你的计算机概念我也无能为力,基本上你还是要靠你自修加强,如果还是拿过去的理由让自己逃避,那省点事就干脆不要交易了吧!因为你放弃的是一条通往成功交易的不二法门,那就「学海无涯、回头是岸」吧。

以下所附的几则程序代码是未来全文所拿来探讨的样本,你可以节录列以便对照文章内的解说达事半功倍之效。对了、这些程序你都可以在你的PowerEditor找到,因为这些都是TS2000i所内建的。

MACD指标:

{*******************************************************************

Description :ThisIndicatorplotsMACD

ProvidedBy :OmegaResearch,Inc.(c)Copyright1999

********************************************************************}

Inputs:FastMA(12),SlowMA(26),MacdMA(9);

Plot1(MACD(Close,FastMA,SlowMA),"MACD");

Plot2(XAverage(MACD(Close,FastMA,SlowMA),MacdMA),"MACDAvg");

Plot3(Plot1-Plot2,"MADiff");

{AlertCriteria}

IfPlot3CrossesOver0Then

Alert("MACDhasgeneratedabullishalert")

Else

IfPlot3crossesunder0Then

Alert("MACDhasgeneratedabearishalert");

{MACDExpertCommentary}

#BeginCmtry

Commentary(ExpertMACD(Plot1));

#End;

MACD函数之1:

{******************************************************************* Description:MovingAverageConvergenceDivergence

ProvidedBy:OmegaResearch,Inc.(c)Copyright1999

********************************************************************} Inputs:Price(NumericSeries),FastMA(NumericSimple),SlowMA(NumericSimple); MACD=XAverage(Price,FastMA)-XAverage(Price,SlowMA);

MACD函数之2

{******************************************************************* Description:ExponentialAverage

ProvidedBy:OmegaResearch,Inc.(c)Copyright1999

********************************************************************} Inputs:Price(NumericSeries),Length(NumericSimple);

Variables:Factor(0);

IfLength+1<>0ThenBegin

IfCurrentBar<=1ThenBegin

Factor=2/(Length+1);

XAverage=Price;

End

Else

XAverage=Factor*Price+(1-Factor)*XAverage[1];

End;

MACD多头交易讯号

{******************************************************************* Description :MACDLongEntry

ProvidedBy :OmegaResearch,Inc.(c)Copyright1999

********************************************************************} Inputs:FastMovAvg(12),SlowMovAvg(26),MACDMovAvg(9);

Variables:XMACD(0);

IfCurrentBar>2ANDMACD(Close,FastMovAvg,SlowMovAvg)CrossesAboveXAverage(MACD(Close,FastMovAvg,SlowMovAvg ),MACDMovAvg)[1]Then

Buy("MACD")ThisBaronClose;

MACD空头交易讯号

{*******************************************************************

Description :MACDShortEntry

ProvidedBy :OmegaResearch,Inc.(c)Copyright1999

********************************************************************}

Inputs:FastMovAvg(12),SlowMovAvg(26),MACDMovAvg(9);

IfCurrentBar>2ANDMACD(Close,FastMovAvg,SlowMovAvg)CrossesBelowXAverage(MACD(Close,FastMovAvg,SlowMovAvg ),MACDMovAvg)[1]Then

Sell("MACD")ThisBaronClose;

待续

第一章:指标写作

现在开始我会逐行解说每一行程序代码的意义。我不想用一般手册的说明方法,因为那样子让我觉得没有效率;它让你懂一些方法,却也让你合上书后忘的一乾二净。我让你在实做中学习,马上披挂上阵!有成就感你就不容易忘。然后我会举一反三拿一些实例加强你的观念进入深植,想忘都不可能!至于手册、我希望你不要丢掉它,放在身边你会常常用它的;爱因斯坦说:不要去背找得到的数据来增加大脑的负担。相信我!我这二十多年涉猎许多计算机语言,没有手册我一行码都掰不出来的。让我们系上安全带,飞上天HI一下!

MACD指标:

Indicato r?什么是Indicator?它就是指标、技术指标。不过在TS2000i它更泛指「可以显示在图型工作区的指针」,也就是说它不只是包含计算指标部份,更包括了显示部份(画图PLOT)。以下就是一个完整的MACD指针程序,使用EasyLanguage语法完成的。

{*******************************************************************

Description :ThisIndicatorplotsMACD

ProvidedBy :OmegaResearch,Inc.(c)Copyright1999

********************************************************************}

这一段我们称为『备注』、『批注』(Remark)。在PowerEditor中它会显示为绿色,因为它不会被理会或被编译,但它方便我们阅读,知道自己在这段程序企图得到或想表现些什么。

批注被包围在大括符里头{}。只要你把一段文字用大括符包围起来,就是告诉PowerEditor不要去执行这段东西,就算它里面是计算式也不必去鸟它。因为它是写给我这有血有肉的人看的,不是给你这大脑装满海沙的家伙看的。

Inputs:FastMA(12),SlowMA(26),MacdMA(9);

Inputs:『外来参数输入』。

文法Inputs加冒号『:』之后输入外来参数『FastMA』后加括符内填初设值『(12)』。如果有一个以上的参数需要被代入,参数间用逗点隔开『,』。最后结束时以分号终止『;』。

Inputs的部份是代表这些数据未来在我们使用该指标时是可以被更改的。如本例可以看到12,26,9就是一般MACD 的惯用参数。特别说明的是当我们在设定参数名称(FastMA)时虽然没人管你要命什么名称,但设定一些可读性高的名称对你未来使用会是一件好事的。FastMA一条快速的移动平均线比用abc来的叫人会意些吧?

初值一般也引用常用数据来代入,如此在使用上你也会方便自己许多。为什么我们要设外来参数呢?因为它方便你在使用时迅速的更改配合当时需要。也许你有天想看看以6,13,5计算的MACD会长得如何?那好你直接在图形页改参数便可。如果你不用Inputs、那抱歉你只有再进入PowerEditor改新参数,然后重新编译一次才可以使用,当然你要是每到阴天闲的发慌我不阻止你如此干,至少你孩子会对我感激涕零。

Plot1(MACD(Close,FastMA,SlowMA),"MACD");

Plot1 呼叫Plot1函式(函式未来会提,现在你就当自己是皇上吆喝各司其职的小太监上场。有侍衣、侍食、侍寝、、之类的他们有自己的专属工作,只待你一声令下,只是你要叫对人)。函式后面紧跟括符『()』,同样以分号结束叙述。括符内加入函式本身需要的参数或变量。加什么呢?这时手册就派上用场了!每一个函式要加的参数是不一定的,所以手册会帮你找到。你也可以利用在线手册,点选右上像一本书的图示或是选单的Tool s>EasyLanguageDictionar y。

文法Plot1(代入要显示的数据,”显示的文字字符串”);同样的各参数间以逗点相隔,以分号结束。这里有一个不同;字符串输入必须包含在“”之间。它藉以区隔特别是数字以文字不被处理而直接表现。比如说”3-2”会表现3-2而不是变成1。

Plot1它有许多兄弟姊姊,排行由1到4。为什么呢?因为TS200i设计成每个指针的显示个数最大为4,无法显示更多。对了这四条线的当然包括你喜欢加在如RSI的超买或超卖的水平线,珍惜物资喔。

这例子中第一个代入的数值变量,我们的MACD数据由另一个函式完成运算。也就是说函式之中另有函式!其实不用大惊小怪,在程序语言这是很正常的事。你叫来服侍你吃饭的小太监当然需要再找御膳房的小太监帮你张罗,不是这样吗?

MACD()这个函式需要输入三个参数。后两个是我们提过的外部输入的天数参数,就是算12天平滑平均减26天平滑平均。那用什么来算呢?『收盘价』不是吗?所以第一个参数我们置入Clos e。在EasyLanguage中Ope n、High、Low、Close、IF、THEN等被称为保留字(ReservedWord),也就是说这些字被定义为具专门用途的用语,其意义被永久固定无法更改或被指定他用。不要怀疑这里的他就是指你!所以在此这个Close就是代表收盘价,无论你在任一程序中发现它都是那个意思。

待续

Plot2(XAverage(MACD(Close,FastMA,SlowMA),MacdMA),"MACDAvg");

Plot2自然是要画第二条线,所以不再解释Plot用法。这里特别的是再加入一名采买食物的小太监XAverage()。它是『平滑系数平均值』的计算函式,代入两个参数,第一数据是被运算的基数如同刚才的Close。是呀!如果你是

写XAverage(Close,9);就是要计算9天的收盘平滑系数平均数(EMA)了。这里因为我们要计算MACD指标,所以我们必须把计算结果的MACD再做一条它的9天平均。所以、我们第一个参数代入Plot1相同的函式求出MACD。第二参数就代入外部参数的MacdMA,它的意义就是9天。咦?我刚才说溜嘴提到跟Plot1相同这句话吗?隐藏多年的秘密竟然、、好吧!其实你的身世是、、、喔这不是秘密啦?你都知道了?好吧既然移不开话题我只好坦白啦!你也可以这么写。

Plot2(XAverage(Plot1,MacdMA),"MACDAvg");

这个意义是一样的。因为现在Plot1的数据就是代表MACD的运算结果。你可以尝试改写,将发现输出结果并没有改变。不信?那往下看!

Plot3(Plot1-Plot2,"MADiff");

Plot3看到了吧?我没骗你吧!这里是在表示我们MACD的『柱状图』部份。柱状图便是MACD减去MACD平均的差值,表现这两数据的差离、乖离(OffSet)。所以我们直接精简表示为Plot1–Plot2。

好!讨论到此这个指标的核心已经结束。其它的程序代码是指针附加功能,我也会解释。只是到此你应该有利用现成函式自己写个指标亮相的能力了。所以我想在此先谈一些运用变化,让你举一反三增加几个甲子的功力。

让我们来尝试用不同的方式改写这个指标。行动前我再解释一个重要的部份,就是除外部参数外我们还必须了解及

学会运用内部参数或变量的运用。内部参数文法如同Inputs,只不过它不用Inputs是用Vars。例

Vars:Macd_Now(0),Macd_Xavg(0),Macd_Diff(0);

是不是差不多?我们一般会给变量初值为零,算是一个重置(ReSet)的动作。当然你如有特殊需要是可以直接代入需要的数据不一定设为零。上点BCC计算机基本概念;Vars就是我们向计算机要求分配一个记忆区供我们置放一些运算结果。就像我们跟计算机要一张椅子,我拿椅子当比方就是它是张单人椅,请不要尝试跟你的阿那答想亲蜜的挤一张椅子。所以啦、椅子永远是要到的那一张,坐的人可以是任何一个人。以下例子说明内部变量使用文法。

Vars:Macd_Now(0);

Macd_Now=3.14<正确的代入,椅子正被3.14所坐。

3.14=Macd_Now<错误!3.14正被椅子坐?

Macd_Now=Macd_Now+2000<正确!Macd_Now增肥2000公斤后变了另一个家伙,虽然他妈妈都认不出他了,他还是有资格坐在椅子上。

这样了解变量的运算了吧?现在我就来改写MACD的指标。点选File>New>General下选Indicator产生一个空白的指标公式书写页。CreateaNewIndicator窗口下输入指针名称(Name)『My_MACD』,Short_Name可不要或输入简短的花名如『Nmacd』。Note嘛、就自己心情舒发啦,像是仅将此程序献给我的小花之类的。就是说嘛!第一次写TS2000i的指标耶!

改写MACD指标:

{*******************************************************************

Description :ThisIndicatorplotsMACD

ProvidedBy :OmegaResearch,Inc.(c)Copyright1999

********************************************************************}

Inputs:FastMA(12),SlowMA(26),MacdMA(9);

Vars:Macd_Now(0),Macd_Xavg(0),Macd_Diff(0);

Macd_Now=MACD(Close,FastMA,SlowMA);

Macd_Xavg=XAverage(Macd_Now,MacdMA);

Macd_Diff=Macd_Now–Macd_Xavg;

Plot1(Macd_Now,"MACD");

Plot2(Macd_Xavg,"MACDAvg");

Plot3(Macd_Diff,"MADiff");

Plot4(0,”0”);

如何?是不是一样的东西?我们甚至用了第四条线来画零轴中线。最后你必须按『F3』进行,记住!所有新写或改写的程序都必须按一下F3让PowerEditor帮你检视并编译才可以使用。当回应你Excellen t!你就可拍拍手鼓鼓掌,因为它签了通行证给你。快去TS2000i打开一张图然后按F7看看Indicator有没有你的大作出现?找到My_MACD点选有没有热泪盈眶呀?

不过打击接踵来到。你的柱状图为啥跟MACD一样是条线呢?嗯、再回到我们的PowerEditor点选File>Properties在IndicatorProperties–My_MACD窗口下选ChartStyle>Plots>MADiff>Type>Histogram。记得改完按确定后还是要按F3再编译一次。自己可以尝试看看如何把零轴改成点状的线段表示。

待续

接下来、我们再举一个例子写另一个通用指标Stochasti c,就是我们惯称的KD指标。我们设定通用天数为9天,我们知道必须要运算RSV(不成熟随机值)、与得到9天范围的最高与最低。完成程序如下

Inputs:Length(9),OverSold(20),OverBought(80);

Vars:RnHi(0),RnLo(0),RSV(0),sK(0),sD(0);

IfCurrentBar>1thenbegin

RnHi=Highest(High,Length);

RnLo=Lowest(Low,Length);

RSV=(Close-RnLo)/(RnHi-RnLo)*100;

sK=((sK[1]/3)*2)+(RSV/3);

sD=((sD[1]/3)*2)+(sK/3);

end;

Plot1(sK,"%K");

Plot2(sD,"%D");

Plot3(OverBought,"OverBought");

Plot4(OverSold,"OverSold");

以上程序代码大致应该没问题,不需再逐行解说了。所以我挑重点说明。这里出现一个新东西,我们第一个接触的『判别式』;I F(逻辑判断)THEN(执行)。我们把这个运算译成白话就是:如果(IF)今天下雨?(事实判断)那么(THEN)我们出门就要打伞(行动)。写成程序为:

IF今天下雨?THEN我们出门就要打伞;

在『今天下雨?』这个条件判别将产生『真TRUE』或『伪FALSE』的结果,如果结果为真(TRUE),我们则执行随后要求的动作,如伪(FALSE)随后动作将不会被执行。再看以下例子:

My_Count=12;

IFMy_Count>10THENMy_Count=My_Count+10;(TRUE>执行)

IFMy_Count<10THENMy_Count=My_Count/100;(FALSE>不被执行)

再插个花谈谈EasyLanguage『操作数』!在四则运算没有什么问题,顺序也依习惯做先乘除后加减。在『条件式』写法中可用逻辑操作数连接几个条件判断;如AND、OR等。特别的是大于或等于写成>=,不可以写=>。

拉回来再谈下去。如果THEN之后我们要执行的不只是担一步骤,那要如何解决?难道我们要一条一个IF~THEN的写下去?当然不必如此!我们用一个方式来告诉它执行某范围的动作,我们用BEGIN跟END来界定多个动作。

IF今天下雨?THENBEGIN

我们出门就要打伞;

出门前提醒家人外出也要带伞;

检查家里的窗户关了没;

END;

上面的条件判断后将执行三个动作。当然你还可以在IF-THEN中再加入另一个IF-THE N,形成所谓的『巢状判别式』,往后碰到例子再加强说明吧。除上面谈的IF-THEN之外我们又看到几个常用函式,介绍一下用法!

CurrentBar是一个常常会呼叫的函式,不过它不必引入参数,它回传的是一个数字,这数字跟你计算指针的起始有效日数有关。在此例中、我们在数据开始的第9天后才能开始计算出KD的值,所以CurrentBar回传为1时就是第9天。所以我们在第9天之后开始计算KD(CurrentBar>1),如此你就不会在第9天之前看到乱七八糟的指针数据了。

Highest(比较数据,范围天数)。这个函式很容易了解因为它用High+Est。这里的High不是指我们说的当日最高,而是一堆数据里的最高值将被发现出来。所以我们如果输入Highest(Close,9);将会寻找出过去9天中最高的收盘价。而相对的Lowest()便是找出输入范围的最低值。

最后一个是sK与sK[1]、sD与sD[1]。其中的不同点在于后面加了一个中括符。在EasyLanguage中,我们用中括符[X]来表示取前X天的数据或数据。所以当我们运算%K的时候需要昨天的%K数据,所以我们代入sK[1]就是得到1天前的%K数据。同理sD[1]也是这个意思。这个符号使用范围很广,几乎所有的变量都可以使用如此的表示。如Close[10]表10天前的收盘价、High[6]表6天前的当日最高值。好啰这段程序到现在应该没有感觉陌生的语法了吧?老写原来已经有的指标是否有点少些新鲜感?我们在继续推进前最后再举一个例子;它是在寰宇财金[45]-『最新技术分析指标』中的【随机RSI摆荡指

标--P133】。

Name:StochRSI

Inputs:Price(close),Length(9);

Vars:ToRSI(0),HiRSI(0),LoRSI(0);

ToRSI=RSI(Price,Length);

HiRSI=Highest(ToRSI,Length);

LoRSI=Lowest(ToRSI,Length);

Value1=(ToRSI-LoRSI)/(HiRSI-LoRSI);

Value2=.8;

Value3=.2;

Plot1(value1,"StRSI");

Plot2(value2,"O.B");

Plot3(value3,"O.S");

依惯例介绍个新朋友。『Value1』是EasyLanguage里一个贴心的变量设定。还记得我们要使用变量前都必须在Vars:后先『宣告变量使用』的动作。不然编译器在你按F3时会给你错误讯息,非法使用变量一类的。不过这个Value1不必经过这道手续,它是例外的;EasyLanguage留下Value1~Value999给你「滥用」。为什么说滥用呢?就是它虽然使用方便,但会养成你写程序的坏习惯,降低你的程序可读性。像这几行完成的程序当然无妨,如果你未来写个老太婆的缠脚布那么长的程序,而你不停的、快乐的用上Value X;嘿嘿!你在写完的半年后想修改个内容你就会吃尽苦头了,因为你的作品像极了结绳记事,那个长的像肉包子大的结到底是记录发生的那条大事?它会让你悔不当初。

接下来继续谈我们的MACD指标后半段。

{AlertCriteria}

IfPlot3CrossesOver0Then

Alert("MACDhasgeneratedabullishalert")

Else

IfPlot3crossesunder0Then

Alert("MACDhasgeneratedabearishalert");

这段是在设定TS2000i发出警讯(Alert)的部份。当条件吻合的时候TS2000i会产生一个浮动窗口给你讯息。还记得Plot3是那个数值吗?对了它就是MACD的柱状图,也就是MACD–MACD的9天平均;也就是我们一般定义空或多的方式。当Plot3穿越零轴(昨天于零下)时我们启动警讯功能,提示我们行情翻多。这里我们不用Plot3>0,因为会产生只要Plot3持续大于零,那你的警报器就会响个不停。我们在此使用CrossesOver(或CrossesAbove都为穿越向上)。这个语法会在未来经常用到,它与>判别不同的就是它只在穿越的那一天为『真值TRUE』。那向下穿越便是CrossesUnder或CrossesBelow!如果我们非得用大小于表示的话,那CrossesOver便可同义于:

IFPlot3[1]<0andPlot3>0Then

这里我们看到一个『生字』-『ELSE』解读为如果不成立的话;它是配合着IF-THEN一起使用的。就是说我们的IF条件式在判读时,如果不能为真则不会执行后续动作。但如果我们需要在不为真时执行另一个动作,我们便可以使用这ELSE来解决。原先还不认识ELSE前我们可能如此去写程序:

IfPlot3CrossesOver0ThenAlert("MACDhasgeneratedabullishalert");

IfPlot3CrossesUnder0ThenAlert("MACDhasgeneratedabearishalert")

现在透过ELSE的语法,我们便可以结合上面两行变成一个完整的叙述,如指标内的写法。

{MACDExpertCommentary}

#BeginCmtry

Commentary(ExpertMACD(Plot1));

#End;

最后一段叙述是在指针中加入一些指针功能解说。它可以方便新手或对你独创指标不甚了解的使用者得到一些使用信息。#BeginComtry~#End; 是说明档专属的写法,所有的说明叙述被包括在这个范围里。而Commentary()函式是输入说明文字文件的地方,不要忘了文字字符串要加“”。在此范例,当中输入的是另一个函式ExpertMACD(Plot1),它是一个互动的说明文件,可以告诉你点选的MACD代表什么意义或如何运用。当然我们可以如此简单的去写说明功能:

#BeginCmtry

Commentary(“MACD零轴以上为多头,以下为空头”);

#End;

如此我们在TS2000i中开启一个图形,插入(F7)MACD指标。然后我们在上面的菜单中选择Drawin g>ExpertCommentray 便可发现一个说明的浮动窗口,随着我们点选不同日期数据说明也会跟着不同;这是比较复杂写作的TS2000i专家说明互动文件。

对了,有一个事情你应该知道!TS2000i无法处理双字符的文字;也就是说它看不懂中文,所以我们无法在程序中输入中文字符串,它将会以乱码呈现。当然这包括了我们所谈过的批注或以上的说明运用。

待续

第二章:函式写作

我进入了解EasyLanguage是在TS4的时代,因为在此之前TS的程序写法还是阳春的、跟MetaStock一样。不过我的学习进步的很快,我几乎一夜之间就学会了;因为我有一位好老师。谁呢?就是EasyLanguagePowerEditor本身!它的求助文件提供了方便及迅速的知识支持。最可爱的是它内建的所有链接库,我拿我熟悉的技术指标开始阅读学习;于是语法、技巧与函式建立与呼叫一次搞定。

其实计算机的语言世界,跟我们人类的真实世界语言使用是大同小异的。不同语言间有许多的相似点,只要你掌握变量、运算、条件、循环、程序与函式等这些使用方法,你便几乎已经学会该语言技巧。EasyLanguage是一个衍生自Pascal的语言,所以各位学会EasyLanguage在交易的圈子是特别有用的。因为许多知名的交易开发程序它都不约而同的使用类Pascal 的语法。比如你再往WealthLab学习时就会了解我所说的,当然更是容易学会使用AmiBroker等程序。

在进入主题前提一堆这些事是鸡婆,也是希望学习能下点耐心与苦功,相对的学习也是必须花点心让它Smart点,善用程序提供的资源。很多好程序都提供了求助的现上资源,可是很少看到有人会去使用它。

这一章谈的是EasyLanguage一个重要的语法运用-『函式Function』。想象你是个恋MACD癖、使用MACD狂。三餐缺了MACD就食不知味,从指标、PaintBa r、ShowMe到交易策略交易系统你都要代入MACD才甘心、才有安全感?那你有没有想过要写几次MACD的基本运算?因为每一个开头起点你的资源永远只有开高低收几个数据,你都要重新算12天、26天的平滑系数平均值,然后相减再做9天平均,对吧?为什么不让这些核心表达式独立成一个部份,然后我们不论何时都可以把它呼叫达到程序书写简化的目的?人有错手嘛、你也没把握每一次写的时候都对。这个上面题的独立成为一个部份就是我们现在要学的函式的使用。

函式里面包括许多运算,可能是简单也可能复杂。你可以把它看成一个包含许多表达式的黑盒子(BlackBox),它可能有一个以上的输入端(Inputs)但只能有一个输出端(Outputs)。记得我们的MACD指标叙述吗(我改写过的)?

Macd_Now=MACD(Close,FastMA,SlowMA);

Macd_Xavg=XAverage(Macd_Now,MacdMA);

上叙中MACD跟XAverage便是函式,我先前谈的小太监。以MACD函式来说;括符内的Close,FastMA,SlowMA便是输入值(Inputs),是提供MACD函式运算的数据。我们在前头使用一个变量空间(Macd_Now)来接收MACD的计算结果输出值(Outputs)。函式输出值在任何程序语言中返回值永远只能有一个。所以我们不可能只写一个函式就把MACD与MACD 的9天平均一起丢回来,我们必须再使用另一个函式XAverage来帮我们求得9天的MACD均值。有趣的是呆会我们会看到XAverage这个函式可忙的很,它是EasyLanguage的内建通用函式;它的设计目的就是专门运算平滑系数平均值,你说、在MACD全都用平滑系数运算的指标里,它会不会有够热闹跟忙碌呀?

MACD函数之1:

{*******************************************************************

Description:MovingAverageConvergenceDivergence

ProvidedBy:OmegaResearch,Inc.(c)Copyright1999

********************************************************************}

对上面这个满脸发绿的家伙我就不再解释了。不错它就是批注,给人涂鸦写些到此一游之类的地方。

Inputs:Price(NumericSeries),FastMA(NumericSimple),SlowMA(NumericSimple);

Inputs我们也不再有疑问,就是外部数据输入的设定,逗点区隔用分号结束叙述。不过函式有一些差异喔,看到NumericSerie s?它可不是像指针用法直接输入数据(Value)而是输入格式(Format)。函式只宣告未来使用时你只可以给我喂些什么饲料?不合规格的饲料我才不肯吃进肚子里。除了NumericSerie s(数值序列,就是数字啦!给我“阿花我爱妳”之类的踢!)之外函式也可以宣告输入格式为TrueFalse(逻辑真伪值)与String(Text文字),输出值也相同这三类;它在

你File>New>General选Function时出现的窗口便会提示你设定回传值类别(ReturnType),在此我们希望它回传数值所以勾选Numerric。

MACD=XAverage(Price,FastMA)-XAverage(Price,SlowMA);

我们在MACD函式中只有这可怜的一行就解决了。不过这一行要注意的可也不少喔!首先你会发现等式左边『MACD』在此为什么没有用Vars宣告呢?因为在此的MACD是有特殊意义的,别忘了这个函式名称就叫做『MACD』!语法规定回传值它就是使用函式名称,所以不必再使用变量宣告手续脱裤子哺哺了。而且函式中不得再使用MACD做为其它变量使用,回传动作也只许一次。所以我们不能把上式写成了:

MACD=XAverage(Price,FastMA);

MACD=MACD–Xaverage(Price,SlowMA);

如此将导致MACD回传值被动作两次,导致非预期的不确定性。如果你是非得把简单变复杂的个性,我建议你改写成如下:

Vars:MACD_Temp(0);

MACD_Temp=XAverage(Price,FastMA);

MACD_Temp=MACD_Temp–Xaverage(Price,SlowMA);

MACD=MACD_Temp;(唯一的一次回传)

或者写成:

Vars:MACD_Temp(0);

MACD_Temp=XAverage(Price,FastMA);

MACD=MACD_Temp–Xaverage(Price,SlowMA);(唯一的一次回传)

记住、无论你写的是什么,从函式到指针、ShowMe、交易讯号等,写完都需要按一下F3!编译后才可以让TS2000i使用。再继续看下去!

MACD函数之2

{*******************************************************************

Description:ExponentialAverage

ProvidedBy:OmegaResearch,Inc.(c)Copyright1999

********************************************************************}

先复习一下这个函式的运算;平滑系数平均数。我们必须先由天数参数求得我们称为的『平滑因子』,它是如此得到的:平滑因子(F或Factor)=2/(天数+1)。然后我们将今天的数据(一般是Close)乘平滑因子+平滑因子补码(1-Factor)乘上昨日的平滑系数平均数,这也就是我们一般称的EMA公式(ExponentialMovingAverage)。

Inputs:Price(NumericSeries),Length(NumericSimple);

Variables:Factor(0);

Variables的简写就是Var s,在意义上同样是做变量使用宣告。在这里我们宣告一个名为Factor的变量,初值设为零。

IfLength+1<>0ThenBegin

这行的目的就是防止丢一些不知所云的饲料进来,比如说负数。如果你真的白目的丢进0这种鸭蛋、、我也会帮你自动加1,反正就是怕你做傻事啦。

IfCurrentBar<=1ThenBegin

CurrentBar不懂就翻上一章复习一下。这里就是设定还没到计算天数满足之前我们要做什么事呢?这里已经是让你看到IF之中的IF『巢状的条件判断写法』重点要记的是:每一个Begin都会对应一个En d,可是呢、有没有注意只有第一个IF (主要判别)结束部份才能冠上分号(;)。这是EasyLanguage的文法一定要记住。

Factor=2/(Length+1);

上面说的平滑因子计算。

XAverage=Price;

如果还没有到开始计算的天数前,我们先用Price(在此通常为Close)代入。

End

Else

不然的话,也就是说进入可计算的天数之后,我们可以做正常计算了。

XAverage=Factor*Price+(1-Factor)*XAverage[1];

回传XAverage值。在你眼光所及,上面没几行也有一个Xaverage的回传程序;我不是刚提不可能做两次回传吗?呵!我可不会自打嘴巴,看倌自己看仔细来,这两个回传的条件是不可能同时发生的,所以同一时间只会有一个数据被传回。

End;

吐气、收拳、、结束。只有这里的End被加上分号,切记。

好啰!函式部份总算交代过去了。现在再课外补习一下;这次函式谈的是平均价的函式,所以我再举一个最常用的算术平均(简单算术平均)的函式来解读一下。大家应该现在的功力都不错了,所以我只挑重要的来解读。

{*******************************************************************

Description:SimpleMovingAverage

ProvidedBy:OmegaResearch,Inc.(c)Copyright1999

********************************************************************}

Inputs:Price(NumericSeries),Length(NumericSimple);

Variables:Sum(0),Counter(0);

Sum=0;

Forcounter=0ToLength-1Begin

Sum=Sum+Price[counter];

End;

IfLength>0Then

Average=Sum/Length

Else

Average=0;

看了一看,有一位新朋友不介绍可不行。就是程序的重要语法帮助我们累记或计次运算的灵魂FOR『循环』(Loop)。如果我们要得到一个数目,它是1+2+3+4、、、+10的总和,请问程序该如何写?

Total=1+2+3+4+5+6+7+8+9+10;

好小子有你的,你够狠!你要我怎么讲下去?好吧那加到1000怎么写?哼!傻眼了吧?看我的:

Vars:Total(0),Count(0);

Total=0;(不放心在Reset一次,变数归零)

ForCount=1to1000Begin

Total=Total+Count;

End;

白话文解释上头程序就是:

宣告使用两个变量Total与Coun t。

将Total的值设为0。

给(For)你一个变数它叫Count,它初值为1,但每次回来跟我报到之后都会被加1(变成2,第三次变成3),一直加到它变成1000为止。当然还没数到1000之前你只能在我画的圈圈里(Begin..End;)活动,不可以偷跑。

新的Total值等于原来的Total值加上Count的值。

文法:FOR『指定变量』= 初始值To循环结束值Begin…End;

Forcounter=0ToLength-1Begin

Sum=Sum+Price[counter];

End;

假设我们要求的是算6天收盘的平均价,Length代入6、Price代入Clos e,程序可表现为:

Forcount=0to6-1Begin

Sum=Sum+Close[count];

End;

当count=0时sum=0+Close[0](就是今天的收盘Close[0]=Close同义)

当count=1时sum=Close[0]+Close[1](sum在上一行已经代入Close[0])

当count=2时sum=(Close[0]+Close[1])+Close[2]

当count=3时sum=(Close[0]+Close[1]+Close[2])+Close[3]

、、、一直到count=5循环结束。

它称为循环(Loop)的原因就是因为它会让程序在此产生一个回路、一个停留。一直等待循环条件满足它才会放行让程序执行下一个部份。现在我们介绍的是单纯的向上计数的循环,它也有往下数越算越小的,也有跳着数的;这些比较特别的运用你可以翻手册找找。下一章我们开始要谈最兴奋的话题──交易系统程序语法。

第三章:交易讯号介绍

没有了这一部份,TS2000i充其量不过是一套所谓还不错的实时软件罢了。所以你花的两千多美金绝大部份是买在它拥有的交易系统开发设计能力。不然几百块美金或万把块台币你就可以买第二首选的MetaStock啦。所以你一定要用心的把开发写作技巧学起来,才对得起自己的银子。

交易系统是实现你机械化交易的能力。看看你有没有办法把自己的交易构想白纸黑字化(量化、数据化)?你在做这件事的时候你是没有办法用灰色地带表达交易过程的,所以你对自己做了坦白、交易者最忌欺骗自己的。第二、你很懒我知道,因为我也不怎么勤快!当我们建立起一套交易系统的时候绝对是非常沾沾自喜的。感觉世界就在你脚下,抱着螺丝起子大喊我是世界之王!但、等等你今天吃蔬菜了吗?不是啦!是你的系统有做过历史数据测试(Back-Testing)吗?不同的商品市场不同的时间单位?不要告诉我你有啦,没有人会用手工去做那些事。现在给你介绍世界级的交易系统泼冷水大师TS2000i!短短的几秒钟它就会把你从世界之王的宝座将你打到波斯市场里窝在街头乞食的乞丐,原来天堂到地狱不过是眨眼的功夫。可是、相信我它是为了你好。不要用它没点头说好的系统在真实世界交易,不然恶梦它会成真。最后我会告诉你在TS2000i 所提供的系统效能报告里的一些有用数据,让你的系统早日获得它的首肯,真正的让自己变成世界之王。

在TS4跟TS2000i之间是OMEGA对交易系统设计上做了最大的改良。TS4是把交易讯号跟交易系统混合一个部份完成,方便但它被锁在程序代码长度64K的梦魇。64K就相是一间两个褟褟米大的小套房,你很快就会有窒息感的,随便放个冰箱、电视呀什么的。EasyLanguage的变量根本就是个败家子,当你想呼叫昨天的收盘价用Close[1]是不是觉得很方便呀?在许多正统的程序语言里〔〕代表的是数组(Array)的意思。也就是说TS2000i里所有的变量(内建与使用者自建Vars:)都是宣告数组的方式在进行。所以不像正统的Pascal它宣告一个实数的变量只占两个Byte s,TS2000i每宣告一个变量就切割一个乘上你数据天数为个数的数组。所以以前动不动TS4就会跳出来哭着说『没地方睡觉啦』!

现在、TS2000i把交易讯号(Signal)跟交易系统(Strategy)设计跟成两个部份,所以你想飙个几千行的程序代码都不会有问题的。告诉你这些是要你知道写完也编译好后的交易讯号是必须要送到StrategyBuilder里做后续的引入与其它条件

参数设定后才能使用的。我们开始谈吧!

MACD多头交易讯号

{*******************************************************************

Description :MACDLongEntry

ProvidedBy :OmegaResearch,Inc.(c)Copyright1999

********************************************************************}

Inputs:FastMovAvg(12),SlowMovAvg(26),MACDMovAvg(9);

Variables:XMACD(0);

IfCurrentBar>2ANDMACD(Close,FastMovAvg,SlowMovAvg)CrossesAboveXAverage(MACD(Close,FastMovAvg,SlowMovAvg ),MACDMovAvg)[1]Then

Buy("MACD")ThisBaronClose;

我发现OMEGA公司把这段程序写的有点心不在焉。所以我改写如下:

Name:MACDBullish(Signal)

Inputs:FastMovAvg(12),SlowMovAvg(26),MACDMovAvg(9);

Vars:XMACD(0),MACD_Avg(0);

XMACD=MACD(Close,FastMovAvg,SlowMovAvg);

MACD_Avg=XAverage(XMACD,MACDMovAvg);

IfCurrentBar>2ANDXMACDCrossesAboveMACD_Avg[1]Then

Buy(“MACD”)ThisBaronClose;

这样看是不是清爽一点?看起来写交易讯号其实跟写指针没两样。差别在于指标拿结果来『画』(PLOT),讯号拿计算结果来做(TRADE)。所以上面的程序唯一可让我大书特书的就只有最后的叙述了。

IfCurrentBar>2ANDXMACDCrossesAboveMACD_Avg[1]Then

B uy(“MACD”)ThisBaronClose;

我尝试用普通话再翻译一次。假如(IF)进入正常计数模式下的第二天(CurrentBar在此约为26+9天,35天从数据起始日起算),然后又(AND)发现今天的MACD穿越过(CrossesAbove)昨天的9天MACD平均价的话(THEN)标示为“MACD”的买进讯号(BUY)将被启动,我们将在这个交易时段(ThisBar)结束前以收盘价买进一口(未标示口数将以内定值最小单位执行)。

这一叙述实在有太多要讲给大家听的,不过复杂的让我不知从何说起。就从头说吧,BUY是其中的一个买卖方向指令;基本方向指令约有四个(TS8不只)Bu y、Sell、ExitLong、ExitShort,再加买卖条件指令(如Market、Limit等后面会说)就可以包括所有我们一切交易动作所需。

Buy与Sell望文生意就是我们要买跟卖出。ExitLong是平仓指令,就是当你手上的部位是多头时,卖出部位对冲了结(或称Cover);当然如果你手上没部位或者不是多头部位,这个指令就算条件被满足了也不会被执行。说到部位方向我就需要再介绍一个好用的内部函式『MarketPosition』它的传回值是0=没部位、1=多头部位(Long)、跟-1=空头部位(Short)。以下两个叙述的意义是相同的:

IfMarketPosition=1ANDClose>Close[1]ThenSellThisBarAtClose;

IfClose>Close[1]ThenExitLongThisBarAtClose;

是不是用ExitLong比较容易了解并且精简呢,这就是ExitLong跟Sell的使用不同点。对了!ExitShort不必我再提一次了吧?接下来我们谈接在Buy或ExitLong之后可以放什么?我们可以用括符代入字符串如(”MACD_Buy”)。这有什么好处呢?未来在TS2000i上执行交易策略时它会在进出场时间的那跟在线标示向上(Buy或ExitShort)与向下(Sell或ExitLong)的箭头,如果你的讯号不只一组;比如像BillWilliams的『鳄鱼』交易系统,除了你知道图上长满痘痘外根本分不清那一个进场讯号是谁发的?A O?AC?所以我们可以加这样的识别标签来方便我们辨识;当然标示功能是选项要加不加随你高兴。到此我们知道了两个东西写起来像这样Buy(”MACD_Buy”)。

再往后、我们可以再加一个也是选项的东西『部位规模』。如果你不想加那么TS2000i会以一口最小的单位来做进出仿真。如果你的交易构思包括部位的调整那你可以在此设定你的进出口数用Contracts(合约数);如果是股票就用Share为单位。到此我们的指令成长到Buy("MACD_Buy")5Contracts。

再来必填的进场(出场)时间点,就只有ThisBar(现在这根线)跟NextBar(下一根线的交易段)。通用合法叙述约有以下几个ThisBarOnClose(本时段收盘)、NextBarAtMarket(下一时段市价,其实就是下一根的开盘)、NextBarAt720.5Stop (下一时段停损720.5成交)、NextBarAt720.5Limit(下一时段720.5限价成交)。我举这些例子要你清楚看到ThisBar的叙述接的只有Close,其它的几乎都无法设定成立。所以你要今天停损出场请你提早订座,在昨天就要设定啦。现在我们学到Buy("MACD_Buy")5ContractsThisBarAtClose。完了吗?还没!

你不会想一辈子都只傻乎乎用Close进来又出去吧?比如说你要用停损单,那你要如何填价格呢?比如我们的停损在720.5我们就写成At720.5Stop或限价停损为At720.5StopLimit。再如果、720.5是你算出来的停损点,你现在是做空,该商品为小麦最小跳动点值为1/4美分或0.25美分。所以你停损应该是720.5加一点720.75,那你如何写?

ExitShortNextBarAt720.5+1PointStop;

只要写1Point,TS2000i就会自己去找对应的商品信息,自己帮你加上一个最小跳动点值。记住这叫最小最小跳动点值(TickVaule),对应的叫一大点跳动值用BigPointValue表示。以小麦为例Point=0.25美分,而BigPointValue=1美分。如果你想设一个停损点在突破三日最高价被突破时,写成:

ExitShortNextBarAtHighest(High,3)+1PointStop;

大概就是这样啰,其实还有清明上河图那么长还没讲。以后吧!以后慢慢说,反正写这系列我就有漫长抗战的打算;现在先充实大家的基本战技要紧。交易讯号写好编译OK之后我们就要用到策略架构功能(StrategyBuilder),准备看看我们的成果。选单>GO>TradeStationStrategyBuilder>New>Name填入My_System,Note自己掰>下一步>Add>勾选我们的

两个讯号MACDBullish跟MACDBearish,你会发现讯号增加进来后LongEntry跟ShortEntry被点选,而Exit部份空着,没错!我们是只写了进场讯号>下一步>哗!看到一堆我们设定的Inputs参数,确认无误后>下一步>Pyramiding金字塔交易,到埃及去吗?当然不是啦!是指你有没有要做加码的策略?没有不要鸟它直接到下一关,如果有选的话请再选你的加码讯号是可以允许来自相同的讯号组吗?>下一步(真烦到底要走几步呀?)>第一格预设的50指最大的开仓数,第二格65000是设定最大部位建立口数或股票股数。下面打勾的是当你进场时要不要通知TS2000i的大掌柜TrackingCneter知道,如此你可以在那里看到你的实时损益,内定为勾选>下一步>讯号计算的最大起始值内定为50>终于按完成。又回到开始的窗口,我们可以发现我们的My_System已经在合格可使用策略名单了。

开启TS2000i我们在工作表上开一个商品图。按F7加入MACD指针(方便我们对照讯号)。再一次F7选Strategy部份点选我们的My_System,看到箭头了吗?那就是我们的设定进出讯号。

好、我想在这里结束基础课程,谈完我们的MACD系列从指针、函式、交易讯号到策略架构运用。因为OMEGA附的系统实在不怎么会振奋民心,所以我在此先结束我们的新兵入伍课程,告一段落。未来将进入实用课程,也就是我会实例加说明一步一步架构一个真正可用的交易系统;当然会包括指标写作的深入技巧与TS2000i的其它常用功能。好!稍息后解散!

第一部份完

TS2000i交易系统开发123──VIDYA(弹性指数动态平均)

开场白:从一个闪过脑海的念头开始

从这篇开始,我们进入中级的课程。我尝试用一个『空白』的角度,从零开始一步步的从无到有建立起一套完整的交易系统;到最佳化系统与报表评估。当然我采取的是呈现事实的角度,而不是提供一套保证获利的系统。如果你是喜欢与期待有人把饭煮好并拜托你吃的;孩子、长大些、成熟些!天下没有白吃的午餐。

像每一个人的过程一般,我们从一个交易概念开始出发。也许你看了我的文章『使用Vidya概念强化你的F1赛车』,觉得VIDYA是个不错的新概念指标,但不知道开发成交易系统会如何呢?于是、、你打开了TS2000i开始一段探索之旅。

首先、我们一般会先写成指针功能,方便我们先『面试』一下,未来我们也可以拿来核对讯号使用。我们要把核心VIDYA 的运算写成一个函式(UserFunction),因为我们会在『指标』、『PaintBar』、『ShowMe』与『交易讯号』里重复呼叫使用。这个函式应该会是长的像这样:

{UserFunctionName:SS_Vidya}

Inputs:Length(NumericSimple),Smooth(NumericSimple);

Vars:Up(0),Dn(0),UpSum(0),DnSum(0),AbsCMO(0),SC(0);

Up=IFF(Close>Close[1],Close-Close[1],0);

Dn=IFF(Close

UpSum=Summation(Up,Length);

DnSum=Summation(Dn,Length);

AbsCMO=AbsValue((UpSum-DnSum)/(UpSum+DnSum));

SC=(2/(Smooth+1))*AbsCMO;

If Currentbar=Length then SS_Vidya=Close;

If Currentbar>Length then SS_Vidya=(SC*Close)+((1-SC)*SS_Vidya[1]);

首先我们要像RSI计算一样,把今天收盘高或低于昨日分开记录并予以加总。UP变量记录今天比昨天收高的部份,DN 记录下跌。这里我们使用一个到处看得到的判断语法『IFF』(Lotus、Excel到MetaStock都有)文法如下:

IFF(判断式,为真处理式,为伪处理式);

Up=IFF(Close>Close[1],Close-Close[1],0);

Up变量=IFF(如果今天收盘>昨日收盘,成立的话Up为今收减昨收,不成立的话Up代入零);

Dn= IFF(Close

Dn变量=IFF(如果今天收盘<昨天收盘,成立的话Dn为今收减昨收的绝对值,不成立的话Dn代入零);

其实上式可以写成:

Dn= IFF(Close

但是我故意这样做想来跟你介绍另一个常用的数学函式『AbsValue绝对值』。经过绝对值函式运算,我们只会得到正数不会出现带负号的数字。比如我们写AbsValue(3)或AbsValue(-3)我们都将得到『3』。

过来我们会常常用到『总和』的运算。Summation就是提供如此的功能运算函式。所以我们的UpSum记录几天的收盘上涨总和,而DnSum记录的是几天的收盘下跌总和。

UpSum=Summation(Up,Length);

DnSum=Summation(Dn,Length);

Summation必需代入两个参数,加总的数据(Up)与加总个数(Length)。如果我们要算9天的收盘平均,可以这样处理;

Summation(Close,9)/9;

我们在AbsCMO又再使用了AbsValue函式一次,之后巴拉巴拉的应该大家都看得懂吧?不懂的话请跳回前面初级重修。没问题就按F3编译后继续看下去。

完成核心函式后,我们开始写我们的指针功能。

{

IndicatorName:SS_Vidya

Chande'sVariableIndexDynamicAverage(VIDYA)

}

Inputs:Length(21),Smooth(5);

Value1=SS_Vidya(Length,Smooth);

If Value1>0 then begin;

Plot1(Value1,"VIDYA");

End;

这一段应该没问题,写完直接按F3编译。好啰,你应该可以在TS2000i里呼叫像以下的图形:

如此,我们看到我们的交易构思慢慢的完成。

1.已修正,应该是复制时出了问题。谢谢抓虫!

2.一些讯号问题我后面都会提到,这位同学我们这里没有资优跳级的!嘿嘿!不过你的这段语法,有些明显的逻辑错误与文法修正的须要。

IF Condition1=True then Buy("买") this bar at Market lowest(low,10) Stop

首先、Condition1不须加=TRU E;如果你的结果是取真值的话。所以你只要写这样If Condition1 Then…….。其次你真的不能跳级,因为我前面有谈及,EasyLanguage中关于今天你能做的坏事只有收盘成交,at Close(收盘买进或卖出)没有其它的指令可以使用。所以你的This Bar at Market是禁止的。再来、既然你已经使用Market了,就不可能再有后面的设价叙述。所以我不知道你这个指令的确实意图?如果照你后来的解释,我们也不可能设定一个停损买进是在我们现在的市价之下的,因为那将会被直接执行。所以我能想到的是以下几种可能,你参考看看:

If Condition1 Then Buy Nex tBar at Market;条件一被满足,明天市价买进。

If Condition1 Then Buy This Bar at Close;条件一被满足,今天收盘价买进。

If Condition1 Then Buy Next Bar at Lowest(Low,10);条件一被满足,明天在最近10日低价限价买进。

If Condition1 Then Sell Next Bar at Low(Low,10) Stop;条件一被满足,明天在最近10日低价停损卖出。

所以我劝你打好基础,有耐心点慢慢看下去。一般我们需要了解的语法与技巧我都会提及的。

第二部份:别让你的眼睛欺骗了你

曾经在台湾期货开放元年,我必须大老远的跑到台北,并备妥『身家调查』去办开户。有一位业务拉着我去看他的发现,让我这南部上来的乡下人长见识。他把KD指标天数调到45天左右,告诉我每一个交叉点是如何完美的相对于图上的高低点。当下我实在很想告诉他:老兄!你的近视度数最近有去复检吗?事后我想了一想,我是错了!他有的是斜视,跟近视无关。

其实我们都常常跟上面的那位仁兄一样,只是他是少数我碰到眼睛健康比较差的罢了。我们的眼睛经常有意无意的『对不准』价格与技术指针的日期轴,特别是如果你处于发现新世界的兴奋中时。所以我们必须要TS2000i的一些功能来帮我们做视力矫正,让我们看清事实的残酷。

上一章我们架好了指标的部份后,只发现一条紧贴价格的VIDY A,至于它的效果是否真如电视说的,真的可以迅速的美白呢?我们来用科学证明它的效果吧!这一章要跟你介绍TS2000i的两个验证专用工具,PaintBar跟ShowMe。是的、我一开头就告诉过你,这篇文章是模拟我们一步步开发系统的过程写的。一般我们不论用什么手段『取得』指标公式,我们都必须严厉的测试它的成效与特性。开启你的PowerEditor建立一个PaintBar空白页,编辑以下程序代码:

{***************************************

Writtenby:ParksonDow

Name:Vidya_BB

****************************************}

Inputs:Length(21),Smooth(5);

Value1=SS_Vidya(Length,Smooth);

Condition1=Close>Value1;

Condition2=Close

If Condition1 OR Condition2 Then Begin

value2=High;

value3=Low;

PlotPaintBar(value2,value3,"Vidya_BB");

If Condition1 Then

SetPlotColor(1,Blue)

Else

If Condition2 Then

SetPlotColor(1,Red);

End;

唉!又要开始依文解释了。这里又出现一位新朋友,TS2000i的另一个特殊使用变量Condition X。我们有介绍过他的兄长ValueX,这次它也有当纲。Value是使用在一般的变量,就是数字一类的;而Condition则是专司逻辑变量,也就是说它只存放真伪判断值(TRUE或FALSE)。Condition英文做『条件』的解释,所以在使用上后面会放上它的条件判断。所以我们的Condition1是判断收盘是否大于VIDYA?Condition2则是判断收盘是否是在VIDYA之下。

If Condition1 OR Condition2 Then Begin

这条读成:如果条件一或条件二其中一个成立的话,我们就、、。我们在EasyLanguage会常用到两个逻辑判断,AND 跟O R。如果我们要所有的条件都为真才执行动作,我们就必须把每一个条件用AND连接起来;它代表无论你是否建立上百上千的条件判断,只要当中有一个条件不为真(TRUE)则整条判别都不被成立。相反的不管你是否有上千上百的条件,而你用OR连接它们;结果是只要其中一个条件为真,则整个条件判断成立。

Condition在使用上,我们只须写IFCondition1Then、、,而无须注明Condition=TRUE。如果你要使用伪(FALSE)值运算,可以用IFCondition1<>TRUEThen表示。如果你不用TRUE或FALSE的保留字,那么告诉你外国人的TRUE值是-1、FALSE值为1,不要鸡婆给它写错怪我没跟你说。就像外国人上涨是绿色表现,下跌是红色,如果你还没去修正TS2000i 的设定而且没觉得很奇怪,快去改正吧,不然你不觉得奇怪吗?为什么你的K线是绿线带领上涨的?

上段的程序当收盘大于或小于都会被带进来处理,例外的便是收盘等于VIDYA的日子。接下来的Value2与Value3是设定你到时要画的PaintBar是这跟线的那一个价位到那一个价位,我们设成高点到低点。

PlotPaintBar(value2,value3,"Vidya_BB");

这句是PaintBar的主要语法,我们在这个符合条件的线(Bar)上涂鸦;命名为Vidya_B B,范围由当日最高画到当日最低。涂什么颜色在下面的式子里。

If Condition1 Then

SetPlotColor(1,Blue)

Else

If Condition2 Then

SetPlotColor(1,Red);

完整版初中英语语法大全知识点总结

英语语法大全 初中英语语法 学习提纲 一、词类、句子成分和构词法: 1、词类:英语词类分十种: 名词、形容词、代词、数词、冠词、动词、副词、介词、连词、感叹词。 1、名词(n.):表示人、事物、地点或抽象概念的名称。如:boy, morning, bag, ball, class, orange. :who, she, you, it . 主要用来代替名词。如): 2、代词(pron.3、形容词(adj..):表示人或事物的性质或特征。如:good, right, white, orange . 4、数词(num.):表示数目或事物的顺序。如:one, two, three, first, second, third, fourth. 5、动词(v.):表示动作或状态。如:am, is,are,have,see . 6、副词(adv.):修饰动词、形容词或其他副词,说明时间、地点、程度等。如:now, very, here, often, quietly, slowly. 7、冠词(art..):用在名词前,帮助说明名词。如:a, an, the. 8、介词(prep.):表示它后面的名词或代词与其他句子成分的关系。如in, on, from, above, behind. 9、连词(conj.):用来连接词、短语或句子。如and, but, before . 10、感叹词(interj..)表示喜、怒、哀、乐等感情。如:oh, well, hi, hello. 2、句子成分:英语句子成分分为七种:主语、谓语、宾语、定语、状语、表语、宾语补足语。 1、主语是句子所要说的人或事物,回答是“谁”或者“什么”。通常用名词或代词担任。如:I'm Miss Green.(我是格林小姐) 2、谓语动词说明主语的动作或状态,回答“做(什么)”。主要由动词担任。如:Jack cleans the room every day. (杰克每天打扫房间) 3、表语在系动词之后,说明主语的身份或特征,回答是“什么”或者“怎么样”。通常由名词、 代词或形容词担任。如:My name is Ping ping .(我的名字叫萍萍) 4、宾语表示及物动词的对象或结果,回答做的是“什么”。通常由名词或代词担任。如:He can spell the word.(他能拼这个词) 有些及物动词带有两个宾语,一个指物,一个指人。指物的叫直接宾语,指人的叫间接宾语。间接 宾语一般放在直接宾语的前面。如:He wrote me a letter . (他给我写了 一封信) 有时可把介词to或for加在间接宾语前构成短语,放在直接宾语后面,来强调间接宾语。如:He wrote a letter to me . (他给我写了一封信)

小学英语语法知识点专项练习

小学英语语法知识点专项练习 一、名词复数规则 写出下列各词的复数 I_________ him_________ this ________ her ______ watch _______ child_______ photo _______ diary ______ day________ foot________ book_______ dress ________ tooth_______ sheep ______ box_______ strawberry_____thief_______ peach______ sandwich______ man______ woman_______ paper_______ juice_______ water________ milk________ rice__________ tea__________ 二、一般现在时用法专练: 写出下列动词的第三人称单数 drink ________ go _______ stay ________ make ________ look _________ have_______ pass_______ carry_________ come________ watch______ plant_______ fly __________ study_______ brush________ do_________ teach_______ drink________ start_______ 用括号内动词的适当形式填空。 1. He often ________(have) dinner at home. 2. Daniel and Tommy _______(be) in Class One. 3. We _______(not watch) TV on Monday. 4. Nick _______(not go) to the zoo on Sunday. 5. ______ they ________(like) the World Cup? 6. What _______they often _______(do) on Saturdays? 7. _______ your parents _______(read) newspapers every day? 8. The girl _______(teach) us English on Sundays. 9. She and I ________(take) a walk together every evening. 10. There ________(be) some water in the bottle. 11. Mike _______(like) cooking. 12. They _______(have) the same hobby. 13. My aunt _______(look) after her baby carefully. 14. You always _______(do) your homework well. 15. I _______(be) ill. I’m staying in bed. 16. She _______(go) to school from Monday to Friday. 17. Liu Tao _______(do) not like PE. 18. The child often _______(watch) TV in the evening. 19. Su Hai and Su Yang _______(have) eight lessons this term. 20. -What day _______(be) it today? -It’s Saturday. 改错(划出错误的地方,将正确的写在横线上) 1. Is your brother speak English? ________________________ 2. Does he likes going fishing? ________________________

英语语法基本基础知识——时态

英语的时态问题 英语的时态可以分为:“时”(time) 和“体”(aspect)(又称为态)。时是指动作发生的时间,体是指动作发生时的状态。时间与体就象是坐标里的横轴和纵轴,它们的结合交织出了瞬息万变的时空,也构成了英语动词的时态问题。 时间分为:过去,现在,将来,过去将来 体分为:一般(在某个时间点), 进行(延续某个时间段), 完成(完成某个时间段) 完成进行(延续某个完成的时间段) 如此以来,英语中就有16种时态变化,现在就用动词为write例,看看它们的形式。 注意:里面的斜体字部分,由于时态过于复杂,几乎没有人真正去应用它们,可以忽略不记。 下面就常用的12种时态,(其中还有三种相对用的较少的,请注意)。具体分析一下。 一.一般现在时 表示现在的时间“点”上发生的动作或者状态,常用于以下的情况 1、经常重复发生的动作或存在的状态,多与often, always, usually, sometimes, everyday, 等时 间状语连用。 He takes a walk after supper everyday My mother and father work at the same company. 2、表示性格,特征,能力。 Mr. Smith hates fish and never eats any. 3、表示客观真理或者普遍事实。

The sun rises in the east. 二.一般过去时 表示过去某时发生的动作或者状态,常和表示过去某个时间“点”的时间状语(yesterday, last week, 3 years ago, in 1987)连用 She bought a car last week. He came to help me at that time. 三.一般将来时 表示将来的时间“点”上发生的动作或者状态。 The train will arrive soon. We shall know the news tomorrow. 四.过去将来时 过去某个时间“点”上将要发生的动作或状态。 I asked her where she would spend her holiday. I told my father that I should go home next Monday. 五.现在进行时 表示现在的时间“段”上正在延续进行的动作或者状态。 I’m doing some washing. What are you doing? 六.过去进行时 在过去某一个时间“段”正在延续进行的动作。 I was working in my office at eight o’clock yesterday evening. He was making a phone call when I saw him. 七.将来进行时 在将来某个时间“段”正在发生的动作,一般表示一种猜测和未来的计划,一般不太常用。What will you be doing at 3 o’clock tomorrow afternoon? (明天下午三点你将在做什么哪) 八.现在完成时 表示动作在一个时间“段”的完成,而且这个时间段是从过去某一点延续到现在的。经常跟时间状语since 1987,for 10 hours , by the last year相连。 My brother has been ill for 3 days. I have not seen her since 1991. 九.过去完成时 在过去的某个时间“段”里动作的完成,从过去的一点再到过去的另一点。或者称为过去的过去。 He said that he had written her a letter. Helen rang me up after I had gone to sleep.

初中英语语法知识—形容词的基础测试题及答案解析

一、选择题 1.Susan never gets upset when she has to wait in line. She is very ______ . A.shy B.honest C.funny D.patient 2.I looked at a few printers, and among them the one from China was ________ to use. A.easy B.easier C.easiest D.the easiest 3.- Do you like the western food, Li Li? - No, I think Chinese food is______ than that of western countries. A.more delicious B.the most delicious C.not as delicious D.much delicious 4.Mother’s Day ______ we are looking forward to is coming. We are going to write a lett er to our mothers in order to show our best love and thank for their_____ care for us. A.which, 15-year B.when, 15 years’C.that, 15-years 5.Choice is life’s ________ gift. It is the ability to choose some actions from a set of things to achieve a goal. A.greater B.greatest C.the greatest 6.All of us are ______ about the ______ news that Beijing will hold the Winter Olympics in 2022. A.excited; exciting B.exciting; excited C.excited; excite D.exciting; excite 7.—Sonia, do you think you are different from Linda? —Yes. I'm ______ at drawing than her. A.better B.good C.well D.best 8.—Judy, what do you think of your junior high school life? —I think it is one of ______ periods in my life. A.wonderful B.the most wonderful C.more wonderful 9.—I really like to watch the TV program I AM A SINGER. —Me, too. It’s one of the ________ TV programs I’ve ever seen. A.least boring B.least interesting C.most boring D.most interesting 10.A walk every day is enough to keep you healthy and in good shape. A.30-minute B.30-minutes C.30 minute's D.30-minutes' 11.Mr. Black’s memory is getting . As a result, he often leaves his keys at home. A.older B.poorer C.greater D.better 12.—How is your head teacher? —Our head teacher is _________ with us and we usually feel nervous in his lesson. A.kind B.pleased C.strict D.good 13.We've got a bedroom, if you'd like to stay.

小学英语语法知识点总结

小学英语语法总结文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

小学英语语法总结 一、时态小结 凡是在must, mustn’t, can, can’t, let’s, don’t, may,will后的一定要用动词的原形二、名词的复数。 名词按其数,可分两种:可数名词和不可数名词. 可数名词的复数变化规则: 1.一般情况下,直接在词尾加-s, 如:girl-girls, book-books, pen-pens 2.以s,x,sh,ch结尾的词,在词后加-es, 如:class-classes, box-boxes, match-matches,

3.以辅音字母+y结尾的,变y 为i 再加-es, 如:city-cities, family-families, country- countries 4.以f或fe结尾的,变f或fe为v再加-es, 如:knife-knives, wife-wives, life-lives, 5.以o 结尾的加-es或-s, 如: radio-radios, tomato-tomatoes, potato-potatoes, zoo-zoos, photo-photos, 6.man-men, woman-women, foot-feet, child-children, 三、形容词的比较级、最高级。 形容词有比较级与最高级之分, 单音节词的变化规则: 1.一般情况下,直接在词尾加-er或-est, 如:small-smaller-smallest, short-shorter-shortest 2.以e结尾的,加-er或-est, 如:large-larger-largest, nice-nicer-nicest. 3.以辅音字母+y结尾的, 变y 为i 再加-er或-est, 如:busy-busier-busiest, heavy-heavier-heaviest. 4.以重读闭音节,一个辅音字母结尾的,双写该字母,再加-er或-est, 如:big-bigger-biggest, thin-thinner-thinnest. 5.多音节的词,前加more, most, 如: beautiful-more beautiful-most beautiful. 6.good-better-best 四、be 动词,助动词。 现阶段be动词形式有: am, is, are, were, was, isn’t, aren’t, weren’t, wasn’t 助动词形式有: do, does, did, don’t, doesn’t, didn’t ※1. 在英语句子中进行变化的时候, 有be动词的就在be动词上变化,变“过去”, “否定”;否定过去否定 am-------am not(第一人称“I” )am, is ------ was --------- wasn’t is ------- isn’t(第三人称)are------ were --------- weren’t are------aren’t(you和其它人称) 2. 没有be动词的就要加助动词;

英语语法知识详解

高中英语语法知识表解 一.名词 I. 名词的种类: 1. 规则名词的复数形式: 名词的复数形式,一般在单数形式后面加-s或-es。现将构成方法与读音规则列表如下: 英语里有些名词的复数形式是不规则的,现归纳如下:

名词在句中表示所有关系的语法形式叫做名词所有格。所有格分两种:一是名词词尾加’s构成,二是由介词of加名词构成。前者多表示有生命的东西,后者多表示无生命的东西。 1. ’s所有格的构成:

用于无生命的东西:the legs of the chair, the cover of the book 用于有生命的东西,尤其是有较长定语时:the classrooms of the first-year students 用于名词化的词:the struggle of the oppressed 二.冠词 冠词分为不定冠词(a, an),定冠词(the),和零冠词。 I. 不定冠词的用法:

三.代词: I. 代词可以分为以下七大类:

1. one, some与any: 1) one可以泛指任何人,也可特指,复数为ones。some多用于肯定句,any多用于疑问句和否定句。One should learn to think of others. Have you any bookmarks? No, I don’t have any bookmarks. I have some questions to ask. 2) some可用于疑问句中,表示盼望得到肯定的答复,或者表示建议,请求等。 Would you like some bananas? Could you give me some money? 3) some 和any修饰可数名词单数时,some表示某个,any表示任何一个。 I have read this article in some magazine. Please correct the mistakes, if any. 4) some和数词连用表示“大约”,any可与比较级连用表示程度。 There are some 3,000 students in this school. Do you feel any better today? 2. each和every: each强调个别,代表的数可以是两个或两个以上, 而every强调整体,所指的数必须是三个或三个以上。 Each student has a pocket dictionary. / Each (of us) has a dictionary. / We each have a dictionary. Every student has strong and weak points. / Every one of us has strong and weak points. 3. none和no: no等于not any,作定语。 none作主语或宾语,代替不可数名词,谓语用单数,代替可数名词,谓语单复数皆可以。 There is no water in the bottle. How much water is there in the bottle? None. None of the students are (is) afraid of difficulties. 4. other和another: 1) other泛指“另外的,别的”常与其他词连用,如:the other day, every other week, some other reason, no other way, the other特指两者中的另外一个,复数为the others。如: He held a book in one hand and his notes in the other. Two students in our class failed, but all the others passed the exam. 2) another指“又一个,另一个”无所指,复数形式是others,泛指“别的人或事”如: I don’t like this shirt, please show me another (one). The trousers are too long, please give me another pair / some others. Some like football, while others like basketball. 5. all和both, neither和either

英语语法知识难点解读

英语语法知识难点解读 词性 一、实词 1.名词(nouns)n.: 名词是词性的一种,也是实词的一种,是指代人、物、事、时、地、情感、概念等实体或抽象事物的词。名词可以独立成句。在短语或句子中通常可以用代词来替代。名词可以分为专有名词(Proper Nouns)和普通名词 (Common Nouns),专有名词是某个(些)人,地方,机构等专有的名称,如Beijing,China等。普通名词是一类人或东西或是一个抽象概念的名词,如:book,sadness等。 2.代词(pronoun)pron.: 代词是代替名词的一种词类。大多数代词具有名词和形容词的功能。英语中的代词,按其意义、特征及在句中的作用分为:人称代词、物主代词、指示代词、反身代词、相互代词、疑问代词、关系代词、连接代词和不定代词九种。 3.数词(numeral)Num.: 表示“多少”和“第几”的词,叫数词。其用法相当于名词或者形容词。数词分为基数词和序数词两种。 4.形容词(adjective)adj.或a.; 很多语言中均有的主要词类中的一种。主要用来修饰名词的词,表示事物的特征。形容词用来修饰名词或代词,表示人或事物的性质、状态,和特征的程度好坏,与否。 5.副词(adverb)adv.: 是一种用来修饰动词、形容词、全句的词,说明时间、地点、程度、方式等概念的词。副词是一种半虚半实的词。副词可分为:时间副词、地点副词、方式副词、程度副词、疑问副词、连接副词、关系副词、频率副词和说明性副词等。 6.动词(Verb)v.: 动词,就是用来形容或表示各类动作的词汇。基本上每个完整的句子都有一个动词,要表示第二个动作时可使用不定词、动名词、对等连接词、从属连接词或增加子句等方法连结。 二、虚词 7.冠词(article) art.: 冠词是虚词,本身不能单独使用,也没有词义,它用在名词的前面,帮助指明名词的含义。 冠词可以说是名词的一种标志,它不能离开名词而独立存在。表示的主语数量或者特征。 8.介词(preposition)prep.: 介词是一种用来表示词与词、词与句之间的关系的虚词,在句中不能单独作句子成分。介词后面一般有名词、代词,或相当于名词的其他词类,短语或从句作它的宾语。介词和它的宾语构成介词词组,在句中作状语,表语,补语或介词宾语。介词可以分为时间介词、地点介词、方式介词、原因介词和其他介词。 9.连词(conjunction)conj: 连词是一种虚词,它不能独立担任句子成分而只起连接词与词,短语与短语以及句与句的作用。连词主要可分为4类:并列连词、转折连词、选择连词和因果连词。 10.助词: 助词是附着在词,短语,句子的前面或后面,表示结构关系或某些附加意义的虚词。助词有结构助词,时态助词,语气助词三种。 11.叹词:(interjection)interj.: 叹词是语法学术语。表示感叹、呼唤、应答的词。

小学英语语法基础知识总结

基础知识 1. 元音音标开头的单词用an,辅音音标开头的单词用a. 2. 肯定句用some, 疑问句和否定句用any. 3. have , has表示某人有,第三人称单数用has , 其他用have. 4. there be表示某地有……单数用there is , 复数用there are. 5. 序数词前要加“the”,序数词一般用于:①日期②第几…③名次 6. 否定句是在肯定句的基础上加上了否定词“not”。有be动词(am\is\are)的句子则“not”加在be后面,可缩写成“isn’t,aren’t”,但am not 一般都分开写。没有be动词的要先在动词前面加助动词(do、does或did),再加上“not”,缩写为“don’t , doesn’t , didn’t ,然后把后面的动词变回原形。 7. 一般疑问句:是指询问事实的句子,用“yes”,或“no”来回答。一般疑问句是在肯定句的基础上进行变化:①把be动词调到首位,其他照写,末尾标点符号变成问号。②没有be动词的句子在句首加上助动词(do,does,did,)再把后面的动词变回原形。 8.be动词I用am, you用are, is跟着他她它, 复数后面都用are 9.助动词(do/does/did)+动词原形…? Do+非第三人称单数 Does+第三人称单数 Did+所有主语 10.情态动词can,must,could,would,may,shall,后面跟动词原形 11.祈使句中动词用原形Let’s\Let me +动词原形… 12. 时间介词①in+年、月、季节\the morning\the afternoon ②on+日期、星期、假期 ③at+点钟\noon\night 13.音节 每个元音音标可以构成一个音节。 开音节:1)以元音字母结尾的音节。例:go,by。 2)以不发音的e结尾的音节。例:make,like。 在重读的开音节中元音字母按字母名称读音。 闭音节:以辅音字母(r 除外)结尾的音节,称为闭音节。例:map,desk,is。重读闭音节是指重音在其上边,在重读的闭音节中元音字母读短元音。如run(辅音+元音+辅音的结构)

高一英语语法基础知识

基础知识 专题一:英语句子的考点集汇,讲解和训练 一. 陈述句的构成形式及基本用法 1. 陈述句: 陈述句是用来陈述一个事实或表达说话人看法(包括肯定和否定)的句子。通常用降调,句末用句号“.”。 Tom has a new car. The flower isn’t beautiful. 二. 祈使句的构成形式及基本用法 祈使句是用来表示命令、请求、建议、号召等的句子,谓语动词用原形,句末用感叹号“!”或句号“.”。朗读时一般用降调。 1. 肯定的祈使句: (1)祈使句主语是you时,you常省略,但如果要特别强调对方或表达某种强烈的情绪时可以 有主语或称呼语。 Be quiet. You be quiet! (2)“Do+祈使句”表示一种强烈的感情或请求,do起强调作用。 Do come back at once! Do be careful. 2. 否定祈使句通常以Don’t或Never开头。其结构 通常是:“Don’t(Never)+动词原形+其他成分” 例如: Don’t do that again! Never leave today’s work for tomorrow! Don’t be late next time! 三. 一般疑问句、特殊疑问句、选择疑问句、反意疑问句的构成形式及基本用法 1. 一般疑问句: (1)一般疑问句的肯定形式

一般疑问句一般是指以助动词、情态动词、be动词或have(有)开始,通常要求以 yes,或no来回答的疑问句,一般疑问句读时 通常用升调。 Do you know Mr. Smith? Can you swim? 2. 特殊疑问句 特殊疑问句由“疑问代词或疑问副词+一般疑问句”构成,句子一般用倒装语序,但如果主语是疑问代词或由疑问代词修饰时,用陈述句的语序。 特殊疑问句不能用yes或no回答,读时用降调。 例如: Who is on duty today? How long have you been in Beijing? What time do you get up every morning? What must I do now? 3. 选择疑问句: 选择疑问句是说话者提出两种或两种以上的不同情况,让对方选择回答的疑问句。其结构是“疑问句+选择部分”。选择部分由or连接,or前面的部分读升调,or后面的部分读降调。 选择疑问句不能用yes或no回答,而必须具体的选择答复。 Is your bag yellow or black? It’s black. Would you like some tea or coffee? Either will do. Which do you like better, singing or dancing? I like dancing better. 4. 反意疑问句: 反意疑问句是指在陈述句之后附加一个意思与之相反的简短问句,问对方是否赞同的疑问句。附加问句的否定式必须缩写。

小学英语语法知识点汇总

小学英语语法知识点汇总 一、名词复数规则 1. 一般情况下,直接加-s,如:book-books, bag-bags, cat-cats, bed-beds 2. 以s. x. sh. ch结尾,加-es,如:bus-buses, box-boxes, brush-brushes, watch-watches 3. 以“辅音字母+y”结尾,变y为i, 再加-es,如:family-families, strawberry-strawberries 4. 以“f或fe”结尾,变f或fe为v, 再加-es,如:knife-knives 5. 不规则名词复数,如: man-men, woman-women, policeman-policemen, policewoman-policewomen, mouse-mice child-children foot-feet,.tooth-teeth fish-fish, people-people, Chinese-Chinese, Japanese-Japanese 二、一般现在时 1.一般现在时表示经常或习惯性的动作,也可表示现在的状态或主语具备的性格和能力。 2.一般现在时中,没有be动词和情态动词,主语为第三人称单数的肯定句,动词要按规则加上s,主语是非第三人称单数的肯定句,动词用原形。 3.在一般现在时中,句中有be动词或情态动词时,否定句在be动词和情态动词后加not,一般疑问句将be动词或情态动词放在句首。 4.在一般现在时中,句中没有be动词或情态动词时,主语为第三人称单数的否定句在动词前加does+not (doesn’t),一般疑问句在句首加does,句子中原有动词用原形;主语为非第三人称单数,否定句用do+not (don’t),一般疑问句在句首加do,句子中动词用原形。 动词+s的变化规则 1.一般情况下,直接加-s,如:cook-cooks, milk-milks 2.以s. x. sh. ch. o结尾,加-es,如:guess-guesses, wash-washes, watch-watches, go-goes 3.以“辅音字母+y”结尾,变y为i, 再加-es,如:study-studies 三、现在进行时 1. 现在进行时表示现在正在进行或发生的动作,也可表示当前一段时间内的活动或现阶段正在进行的动作。 2. 现在进行时的肯定句基本结构为be+动词ing. 3. 现在进行时的否定句在be后加not。 4. 现在进行时的一般疑问句把be动词调到句首。 动词加ing的变化规则 1. 一般情况下,直接加ing,如:cook-cooking 2. 以不发音的e结尾,去e加ing,如:make-making, taste-tasting 3. 如果末尾是一个元音字母和一个辅音字母,双写末尾的辅音字母,再加ing,如:

小学英语语法知识汇总

小学英语语法知识汇总Newly compiled on November 23, 2020

六年级英语语法知识汇总 一、词类: 1、动词:行为动词、be动词、情态动词。 (1)行为动词 原形、+s/es、+ed、+ing,具体判断方法如下: (2)be动词 a、Am--was Is --was Are--were 口诀:我用am, 你用are, is用在他她它,所有复数全用are。 b、肯定和否定句 I am (not) from London. He /She is(not) a teacher. My hair is(not) long. Her eyes are(not) small. c、一般疑问句Am I … Yes, you are. No, you aren’t. Are you/they… Yes,we/ they are. No,we/ they aren’t. Is the cat fat Yes, it is. No, it isn’t. is、am、are为一类,一般用于一般现在时、现在进行时和一般将来时中。 was和were为另一类,一般用于一般过去时。 (3)情态动词 can、must、should、would、may。情态动词后动词总是用原形。(不受其他任何条件影响) 2、名词 这里强调两点:不可数名词都默认为单数,所以总是用is或者was。 如何加后缀: a.一般情况下,直接加-s,如:book-books, bag-bags, cat-cats, bed-beds b.以s. x. sh. ch结尾,加-es,如:bus-buses, box-boxes, brush-brushes, watch-watches

小学英语语法知识整理汇总

v1.0 可编辑可修改 111 六年级英语语法知识汇总 一、词类: 1、 动词:行为动词、be 动词、情态动词。 (1)行为动词 原形、+s/es 、+ed 、+ing ,具体判断方法如下: (2)be 动词 a 、Am--was Is --was Are--were 口诀:我用am, 你用are, is 用在他她它,所有复数全用are 。 b 、肯定和否定句 I am (not) from London. He /She is(not) a teacher. My hair is(not) long. Her eyes are(not) small. c 、 一般疑问句 Am I … Yes, you are. /No, you aren’t .. Are you/they … Yes,we/ they are. No,we/ they aren’t’. Is the cat fat Yes, it is. /No, it isn’t. is 、am 、are 为一类,一般用于一般现在时、现在进行时和一般将来时中。 was 和were 为另一类,一般用于一般过去时。 (3)情态动词 can 、must 、could 、should 、would 、may 。情态动词后动词总是用原形。(不受其他任何条件影响) 情态动词,没有第三人称单数,所有的情态动词都是如此,情态动词不受人称和数的影响, 即不管主语是什么人称它都不变,情态动词,后面只能加动词原型。 动词的变化:

v1.0 可编辑可修改 222 2、 名词 (1). 专有名词和普通名词。 名词根据其意义可以分为专有名词和普通名词。 专有名词:表示特定的人或事物名称的词,专有名词词首的字母要大写。 如:中国:China ; 节日:Children ‵s Day 儿童节 普通名词:凡不属于特定的人或事物名称的词叫普通名词。 (2).可数名词和不可数名词。 名词根据是否能够用数字来计算,可以分为可数名词和不可数名词。 (一) 可数名词 可数名词有单数和复数两种形式。单数名词一般情况下要与表示量的单词a (an )连用, 复数名词的复数形式变化有规则变化和不规则变化之分。 (二)不可数名词 不可数名词指不可以用数字一个一个数出来的名词,它没有单复数之分,但可以借助a cup of ;three pieces of 等名词性短语来表示不可数名词的量。 这里强调两点:不可数名词都默认为单数,所以总是用is 或者was 。

英语基础语法重点知识总结

英语基础语法知识 第一节 词类和句子成分 一、词类 能够自由运用的最小语言单位叫词。根据词的形式、意义及其在句中的作用所作的分类叫 词类( parts of speech )。 英语的词通常分为十大类,即名词、冠词、代词、数词、形容词、副词、动词、介词、连 词和感叹词。现分别叙述如下: (一)名词 名词(n ou n)是表示人、事物、地点或抽象概念的名称。例如: foreig ner 外国 人 soap 肥皂 Newt on 牛顿 law 法律 freedom 自由 peace 和平 英语名词可分为 两大类: 1。普通名词(common noun)是某一类人、事物、某种物质或抽象概念的名称。例 女口: teacher 教师 market 市场 rice 大米 magaz ine 杂志 sound 声音 producti on 生产 2。专有名词(proper noun)是特定的某人、地方或机构的名称。专有名词的第一个字母必 须 大写。例如: Hemingway 海明威 Russia 俄罗斯 New York 纽约 United Nations 联合国 名词又可分为可数名词(countable noun 与不可数名词(uncountable noun 两种。可数名词有 单、复数之分。绝大多数名词的复数形式的构成是在单数名词的后面加 -s 或-es 。 例如: shop — shops 商店 bus — buses 公共汽车 library — librarie 图书馆 toy — toys 玩 具leaf — leaes 树叶英语中有一些名词的复数形式是不规则的。例如: mar — men 男 人tooth — teeth 牙齿datum — data 数据有关名词复数形式构成的具体规则,请参阅有关 的英语语法书。 (二)冠词 冠词(article)放在名词之前,帮助说明该名词所指的对象。冠词分为不定冠词 (indefinite article)和定冠词(definite article)两种。 不定冠词为a/an,用在单数名词之前,表示某一类人或事物的 一个” a 用在以辅音开头 的名词之前,an 用在以元音开头的名词之前。例如: a hotel 一家旅 馆 a cha nee —次机会 a double room 一个双人间 a useful book 一本有用的 书 an exhibiti on —次展览 an hon est man 一 个诚实的人 冠词只有一个,既the ,表示某一类人或事物中特定的一个或一些。可用于单数或复数名 词前,也可用于不可数名词前。例如: the TV programs 那些电视节目 the house 那座房子 the Olympic Games 奥运会 (三) 代词 代词(pro noun)是用来指代人或事物的词。代词包括: I, you, they, it 等; my, his, their, our, mine, hers 等; myself, yourself, itself, ourselves, on eself 等; each other, one ano the 等; this, that, these, those, such, sam 等 ; who, whom, whose, which, what 等; who, whom, whose, which, that 等; some, any, no, all, one, every, many, a little, some one, any thin 等 ; 四)数词 数词(numeral)是表示 数量”和 顺序”的词。前者称为基数词,例如:one 一),twenty ( 十),thirty-five(三十五),one hundred and ninety-five 一百九十五)等;后者称为序数词,例 1。 人称代词,如 2。 物主代词,如 3。 反身代词,如 4。 相互代词,如 5。 指示代词,如 6。 疑问代词,如 7。 关系代词,如 8。 不定代词,如

小学英语语法基础知识大全

小学英语语法基础知识大全

小学英语语法汇总 可数名词与不可数名词“分家” 一、可数名词与不可数名词的区别 普通名词所表示的人或事物是可以按个数计算的,这类名词叫可数名词。可数名词分为个体名词(表示某类人或事物中的个体,如worker, farmer, desk, factory等)和集体名词(表示作为一个整体来看的一群人或一些事物,如people,family 等)。如果普通名词所表示的事物是不能按个数来计算的,这类名词就叫不可数名词。不可数名词分为物质名词(表示无法分为个体的物质,如meat, rice, water, milk, orange 等)和抽象名词(表示动作、状态、情况、品质等抽象概念,如work, homework, time, health, friendship等)。 二、可数名词的家务事 可数名词有单数和复数两种形式。指一个人或一件事物时,用单数形式;指两个或多个人或事物时用复数形式。名词由单数形式变成复数形式的规则如下: 1. 一般的名词词尾直接加-s 。如: book → books room → rooms house → houses day → days 2. 以s,ss, ch,sh, x 结尾的名词,在词尾加-es 。如: bus → buses glass → glasses watch → watches dish → dishes box → boxes 3. 以"辅音字母+y"结尾的名词,要先将y改为i再加-es。如: city → cities body → bodies factory → factories等等。 4. 以f 或fe 结尾的名词,要将f或fe改为v 再加-es。如: half → halves leaf → leaves knife → knives wife → wives 5. 特例[悄悄话:特例常常考,要记住。] ①child → children ②man → men woman → women policeman → policemen (规律:man → men) ③tomato → tomatoes potato → potatoes [悄悄话:初中英语以o 结尾的名词变复数时

相关主题