EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx

上传人:b****6 文档编号:20084341 上传时间:2023-01-16 格式:DOCX 页数:14 大小:202.72KB
下载 相关 举报
EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx_第1页
第1页 / 共14页
EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx_第2页
第2页 / 共14页
EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx_第3页
第3页 / 共14页
EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx_第4页
第4页 / 共14页
EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx

《EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。

EasyLanguage重要功能指令与语法解析Word文档下载推荐.docx

邏辑值变數的使用,如:

Condition1=Close>

High[1]+(High[1]–Low[1])/2;

Condition2=Volume>

Volume[1]*1.5;

IfCondition1AndCondition2ThenBuyNextBaratMarket;

Value1=(High[1]–Low[1])/2;

Variables则可以同时储存邏辑值与數值,需做变數宣告同时可做起始值设定,如:

Variables:

PreBarRange(0);

PreBarRange=High[1]–Low[1]

IfClose>

High[1]+PreBarRange/2ThenBuyNextBaratMarket;

Y=f(x)

‰算术、比较与邏辑运算符与复合表达式

1.同时使用算术与比较运算符。

High[1]+(High[1]–Low[1])/2ThenBuyNextBaratMarket;

2.使用复合表达式

1

High[1]+High[1]–Low[1])/2;

IfCondition1ThenBuyNextBaratMarket;

其中,Condition变數可由Condition1~Condistion99,默认值为False。

3.使用邏辑运算符(AND,OR)

Condition2=Volumn>

Volumn[1]*1.5;

IfCondition1ANDCondition2ThenBuyNextBaratMarket;

‰内置函數使用(在哪裡找?

程序代码是什么?

EasyLanguage中包含大量内置函數用于建立技术分析指标,例如:

「Value1=Highest(Close,5);

」可取得最近5天收盘最高。

又如:

IfAverage(Close,9)CrossesOverAverage(Close,18)ThenBuyNextBaratMarket;

函數亦可于执行时才取得參數输入(动态输入),例如:

Inputs:

FastLen(9),SlowLen(18);

IfAverage(Close,FastLen)CrossesOverAverage(Close,SlowLen)ThenBuyNextBarat

Market;

使用Input指令可以藉由接口改变參數,并做參數优化。

‰多前提条件(Conditions)与多执行行动(Actions)的处理(也可藉由多Signal组合)

当买卖条件与其指令众多时,可使用区块指令(Begin…End),如:

Variable:

CountTheBuy(0);

High[1]+Range[1];

IfCondition1ThenBegin

BuyNextBaratMarket;

CountTheBuys=CountTheBuys+1;

End;

BarCount(0);

IfMarketPosition<

0ThenBeginBarCounter=BarCounter+1;

IfClose<

Close[1]ThenBegin

ExitLongNextBaratMarket;

ExitShortNextBaratMarket;

‰下单(Orders)种類(何时、何价、何量)

Buy建立多头部位;

Sell建立空头部位;

ExitLong结清多头部位;

ExitShort结清空头部位。

2

买卖可在当日收盘或隔日开盘,分别如:

IfCondition1ThenBuy;

与IfCondition1ThenBuyThisBaronClose;

相同,均为当日。

IfCondition1ThenSellatMarket;

则以隔日开盘价交易。

此外,OrHigher,用于Buy-Stop与Sell-Limit,例:

IfCondition1ThenBuyat45orHigher;

表「>

=45」则BuyStop。

IfCondition1ThenSellat68orHigher;

=68」则SellLimit。

OrLower,用于Buy-Limit与Sell-Stop,例:

IfCondition1ThenBuyat33orLower;

=33」则BuyLimit。

IfCondition1ThenSellat42orLower;

=42」则SellStop。

买进卖出可指定点數,分为Point(为最小增减量,Minimummovement,在EasyLanguage中股票以0.001之便量为point)与BigPoints(期货选择权使用之,在在EasyLanguage中最小跳动单位对应的价值衡量),如:

IfCondition1ThenBuyNextBaratHigh+1pointorHigher;

IfCondition1ThenBuyNextBaratHigh+1Stop;

(不写默认为BigPoint)

也可指定量(Quantity),如:

IfCondition1ThenSell100Sharesat66orHigher;

IfCondition1ThenBuy12ContractsNextBaratMarket;

MarketPosition用以确认市场部位狀况,1,-1,0分别表示买进、卖出或无部位。

可藉由继续加仓或連续减仓(pyramiding),分批进出,做资金管理。

‰前提(Setup)条件与进场(Entry)条件

交易条件之执行可分为环境设定(Set-up)与触发(Entry),Set-up用以确认触发的前提条件,但并不实际触发行动;

可以Setup条件评估市况,再由Entry实际下单。

通常会以一个Set-up「AND」連结多个以「OR」連结的Entry信号,如:

IfFastAvgCrossesAboveSlowAvgANDClose>

OpenThenBuyNextBaratMarket;

前面为Setup条件,后者为Entry条件。

‰进场信号(EntrySignal)与離场信号(ExitSignal)

最基本的交易策略应该包含进场策略以及停利加上止损的策略;

部位结清条件可能为:

「出场条件满足」、「止盈」、「止损」或「市场过度震荡」。

建立部位方式可藉由Buy与Sell。

Buy与Sell分别建立多头与空头策略,无論如何均会建立部位,而非只是平仓而已,因此不能在同一个Bar中又Sell又Buy。

3

在Buy与Sell动作被驱动时,可以在图形上加上文字卷标,欲在图上标注(Buy/Sell)买卖之理由,例如:

High[1]ThenBuy(“HigherClose”)atMarket;

IfVolumn>

Volumn[1]ThenBuy(“Volimnup”)100sharesatMarket;

OpenThenSell(“DownBar”)at48orLower;

藉此,也可指定要平仓的是对应什么进场条件,当同时存在多组操作信号时,就不会全

部平仓。

如:

「IfClose>

High[1]ThenBuy(“CloseUp”)NextBaratOpen;

」与以下卖出信号对应:

IfClose<

Low[1]ThenExitLongFromEntry(“CloseUp”)NextBaratMarket;

藉此,可让多组买卖信号同时存在。

至于部位结清部位,可使用ExitLong与ExitShort分别结清多头部位与空头部位。

出场信号范例如下:

IfCondition1ThenExitLongThisBaronClose;

IfCondition1ThenExitShortNextBaratMarket;

以上作法将结清所有多头或空头部位,但由于在交易过程可能陸续建立多次买进部位

(OpenOrder),而每次买进部位又交易多个单位(Contracts或Shares),例如3次交易,每次各建立5个Contracts,则可用「IfCondition1ThenExitLong2Constracts;

」语法,将会让3次交易各剩下3(5-2)个Contracts;

而「IfCondition1ThenExitLong2ConstractsTotal;

」语法,将只会结清第一次交易的2个Contracts;

亦即,第一次交易剩下3个Contracts,而其他兩次交易剩下5个Contracts。

‰自定义函數(CustomFunction)

EasyLanguage中包含大量内置函數,使用者也可自定义函數。

当使用者希望撰写一个判断是否連续3天上涨的程序,可以写成:

Variable:

CloseUp(False);

CloseUp=Close>

Open;

IfCloseUp[1]ANDCloseUp[2]ANDCloseUp[3]ThenBuyNextBaratMarket;

但如果要弹性的设定天數,可以写自建函數,程序为以菜单「File¾

New」在图1窗口中选择「General」分页夹,选择「Function」,按「Ok」键,即可带出图2窗口,给予自建函數一个名称Name(如,_CloseUps),并设定函數输出资料型态为「TrueFalse」,按「Ok」键,即可进入自建程序编辑窗口。

Y=f(x)

在程序编辑窗口中输入以下程序代码:

Input:

Length(Numeric);

IfCountIf(Close>

Open,Length)=LengthThen

_CloseUps=True

Else

_CloseUps=False;

4

图1

图2

「Verify」(F3按键)无误后,即可使用。

例如,写一个Signal程序如下(命名为

「_CloseOpen」):

If_CloseUps(3)ThenBuyNextBaratMarket;

「Verify」(F3按键)无误后,进入StrategyBuilder建立一名为_UpTrend的操作策略,此策略以「_CloseOpen」信号作为多头部位进场条件,再选择「FixedBarExit」为多头部位出场条件。

最后,进入TradeStation中,选取分析线图后,調用此策略进行分析,即可完成,如图3

所示。

图3

5

‰調用多资料(Multi-data)來源的交易策略(在哪裡设定资料序号)

交易的执行可能參考一个以上的资料來源,例如某股票(Data1)买卖依据指數(Data2)相对决定,语法如下:

Condition1=CloseofData1>

Close[1]ofData1;

Condition2=LowofData2<

Low[1]ofData2ANDCloseofData2>

Close[1]ofData2;

IfCondition1ANDCondition2ThenBuyNextBaratMarket;

又如,透过以下语法调用特定资料來源的资料,

Value1=Average(Close,10)ofData2;

主要DataStream为Data1,Data2~Data50作为辅助DataStream。

‰进阶语法与资料型态

1.文字资料(TextValues)

MyString1(“”),MyString2(“”);

MyString1=“Aseriesofcharters”;

MyString2=“Kuas”;

MyString3=MyString1+MyString2;

又如,

MyText=“StockName:

”Print(MyText,GetSymbolName);

将可在MessageLog出现「StockName:

TTXN」。

2.「If…Then…Else」进阶程序结构例:

Close[1]Then

Buy20SharesatMarket;

Sell10SharesatMarket;

例:

High[1]ThenBegin

Value1=10;

Condition1=True;

End

ElseBegin

Value1=20;

Condition1=False;

6

3.进阶Loops结构

ForValue1=0To5Begin

Actions;

End;

MyValue(0);

ForMyValue=5DownTo1Begin

以下为「Average」Function:

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

SimpleMovingAverage

ProvidedBy:

OmegaResearch,Inc.(c)Copyright1999

********************************************************************}Inputs:

Price(NumericSeries),Length(NumericSimple);

Sum(0),Counter(0);

Sum=0;

Forcounter=0ToLength-1Begin

Sum=Sum+Price[counter];

IfLength>

0Then

Average=Sum/Length

Average=0;

4.「While…Begin」指令写一名为「_VolumeWeek」的Indicator:

DaysAgo(0),TotalVolume(0);

TotalVolume=Volume;

DaysAgo=1;

WhileDayOfWeek(Date)>

DayOfWeek(Date[DaysAgo])Begin

TotalVolume=TotalVolume+Volume[DaysAgo];

DaysAgo=DaysAgo+1;

Plot1(TotalVolume);

Date保留字用以传回目前的Bar的日期,例如1999/01/07,则传回990107(若在2000年

后,例如2001/3/4,传回1010304)。

5.数组(Arrays)变數例如:

Array:

Prices[3](0);

宣告名为Prices的阵列变數,包含3个Element,初值均为0。

值的设定如下:

7

Prices[1]=100;

Prices[2]=200;

Prices[3]=300;

Array常用以储存不同Bars的值,Close、Volume等亦为Array。

‰策略解析举例(还可再找「RSIOscillator」、「TrendLinesAutomatic」)

藉由EasyLanguage语言可以设计交易信号,组合交易信号则形成交易策略,以下以「MovAvgCrossover」策略为例,解析策略的组成。

此策略以「黄金交叉建立多头部位,以3日(预设值,可更改亦可优化)追踪止损结清多头部位」,其为系统内置的策略,透过现成策略的解析,可以学习EazyLanguage的语法。

欲打开交易策略,可透过菜单「Go¾

TradeStationStrategyBuilder」的操作(即进入TradeStation的StrategyBuilder),打开如图1的窗口。

在图1中选取名为「MovAvgCrossover」的策略,按下「Edit」按键,可打开「Strategy

Properties」(即策略属性)的窗口,可在不同分页夹中作相关设定。

图2「General」分页夹可以设定,策略名称(Name)、策略批注(Notes)、策略分析最大前置资料需求笔數(Maximumnumberofbarsstudywill)。

8

图3「General」分页夹可以观察策略系由哪些交易信号组成,不同信号提供的交易行动(LongEntry、LongExit、ShortEntry、ShortExit等四种)设定,在此透过「Add」按键,亦可继续增减策略的信号组成,使用「Remove」按键,可移除既有的操作信号。

图4

图4「General」分页夹可以观察组合策略的交易信号包含哪些输入(Input)参数,并可做更动。

图5

图5「General」分页夹可以设定是否可以允许在现有部位继续加仓(默认为不可),若设定为可继续加仓(选取图5的检核框),则可继续设定是否允许在同一交易信号启动的部位上加

码,或只允许在不同交易信号启动的部位上加仓。

9

`

图6

图6「General」分页夹可以设定最多未结清部位數以及每一部位最大合约數。

由图3可知,此交易策略系由「MABullishCrossover」与「TrailingStopLX」兩交易信号(Signal)组成,欲了解这兩个信号的EasyLanguage原始码,可回到EasyLanguagePowerBuilder中,使用菜单「File¾

Open」操作打开图7的窗口,下拉选取「Signal」類别。

分别找到此兩Signal档案,以「Open」按键打开,即可看到源文件。

图7

「MABullishCrossover」交易信号的程序代码如下:

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

MovingAverageCrossover(2Line)LongEntry

ProvidedBy:

Price(Close),FastLen(9),SlowLen(18);

IfCurrentBar>

1ANDAverageFC(Price,FastLen)CrossesAboveAverageFC(Price,SlowLen)Then

Buy("

MAC"

)ThisBaronClose;

「TrailingStopLX」交易信号的程序代码如下:

TrailingStopLongExit

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

10

Length(3),ShowText(False);

Variables:

OrderPrice(0),StopText(0);

OrderPrice=LowestFC(Low,Length);

ExitLong("

Trl"

)NextBaratOrderPriceSt

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1