Easylanguage的下单指令
1 基本指令
Mc新版本中,开仓指令是BuySellShort,平仓指令是SellBuyToCover
下面是mcts两个版本的下单指令对比:
指令版本
TradeStation
2000i
TradeStation
8
Multicharts
Multicharts实例
建多仓
Buy
Buy
Buy
Buy(“war1”) next bar at market;
建空仓
Sell
SellShort
SellShort
SellShort(“war2”) next bar
at market;
平多仓
ExitLong
Sell
Sell
Sell(“war3”) next bar at market;
平空仓
ExitShort
BuytoCover
BuytoCover
BuyToCover(“war4”) next bar
at market;
2. 指令详细分析
Buy(“Buy”) 2 contracts next bar at Market; //在下个bar刚开始以市价买入2editor bar
Buy
下单动作,代表开多仓。这一类关键字还有:
SellShort 开空仓;Sell 平掉多仓;BuyToCover平掉空仓
“BUY”
动作标识(EntryLabel,通常注明为什么入场/出场)。该标识紧跟在下单动作后面,并置于小括弧中, 是用来区分多个入场/出场情景的,不能重复。
2 Contracts
头寸大小(TradeSize)。当前代表交易2手,2 contracts=2 contract=2 shares=2 share
该字段可以省略,省略代表使用默认头寸大小(默认头寸大小,请参见信号属性)
Next Bar
下单时间。只有两个选择:this bar next bar 每句下单指令必有这二者之一。
At market
下单价位。
如果下单时间是this bar,则下单价位只能是on closethis bar on close=this bar close=this bar,代表当前bar结束时进行市价交易;如果下单时间是next bar则很灵活,可以分为市价和限价,市价例如: at open ,at market等,限价例如:at 4330 stop, at 4550 limit , at 4660, at High+5;
3 仓位管理
假设当前已开多仓(marketPostion=1),则:
>>可执行Buy 指令来加仓
Buy(“buy1”) 2 contracts next bar at market; 执行该指令相当于在原来的仓位基础上增加2手(和第一次开仓指令没啥区别,但是需要注意:信号属性中必须选中复选框“同一时刻,允许最大N个同向进场”)。
>>可执行Sell指令来平仓
Sell(“sell2”) next bar at market; 执行该指令相当于平掉所有的多仓。
Sell(“sell3”) 4 contracts next bar at market; 执行该指令相当于平掉每个Buy进场的4手多仓(若某个进场Entry不满4手,则有几手平几手)
Sell(“sell4”) 4 contracts total next bar at market; 执行该指令相当于平掉前4手多仓。
Sell(“sell5”) From Entry(“war1”) next bar at market; 执行该指令相当于平掉进场War1的所有仓位。
Sell(“sell5”) From Entry(“war2”) 4 contracts next bar at market; 执行该指令相当于平掉进场War24手仓位(若不满4手,则有几手平几手)
>>可执行SellShort指令来反转仓位,变多仓为空仓。
SellShort(“sellShort6”) 5 contracts next bar at market;执行该指令相当于先平掉所有多仓,再建5手空仓。注意:这里信号必须保留有过去的仓位记录,如果中途因某种原因丢失了仓位记录,那系统只会直接建5手空仓。
4.市价与限价
Buy(“Buy1”) this bar on close;
Buy(“Buy1”) this bar close;
Buy(“Buy1”) this bar;
Buy(“Buy2”) next bar at open;
=Buy(“Buy2”) next bar at market;
这些是市价交易,而限价交易都有价格限定:
Buy(“Buy3”) next bar at 4300;
=Buy(“Buy3”) next bar at 4300 limit;(表示在4300的范围内可交易)
=Buy(“Buy3”) next bar at 4300 or lower;
Buy(“Buy4”) next bar at 4300 stop; stop单,表示超出4300的范围则可交易)
=Buy(“Buy4”) next bar at 4300 or higher;
注意:上海交易所本身不支持市价交易,达钱进行了变相处理,比如市价买入,相当于使用涨停价去限价买进,市价卖出,相当于使用跌停价去限价卖出。
5StopLimit
Limit 标准限价单的标识,可省略。
Stop 限价单的反向扩展,常称为stop单。
按照我的个人理解,限价单的作用无非就是限制滑价, Stop单的用途完全不同,stop单主要用于突破系统,如下图多方与空方在阻挡线3600处争夺,你现在还不知道战争的结局,但这时候你可以确定自己的战略:只要向上突破3600超过2点,就认为后期是趋势上升的,立刻买进!那么现在就可以下stop:
If(marketpostion<>1)then
buy(“breakoutLong”) next bar at 3600+2 stop;//只要下个bar达到3600+2 就系统自动
买进
可以从另一个角度再去理解limitstop
Buy(“Buy3”) next bar at 4300;
=Buy(“Buy3”) next bar at 4300 limit;(表示在4300的范围内可交易)
=Buy(“Buy3”) next bar at 4300 or lower;
Buy(“Buy4”) next bar at 4300 stop; stop单,表示超出4300的范围则可交易)
=Buy(“Buy4”) next bar at 4300 or higher;
SellShort(“Short3”) next bar at 4300;
=SellShort(“Short3”) next bar at 4300 limit;(表示在4300的范围内可交易)
=SellShort(“Short3”) next bar at 4300 or higher;
SellShort(“Short4”) next bar at 4300 stop; stop单,表示超出4300的范围则可交易)
=SellShort(“Short4”) next bar at 4300 or lower;
6.细微区别
This bar on close next bar at open next bar at market
首先,next bar at open =next bar at market,其次this bar on close是在当前bar的结束时间进行市价交易,next bar at open(market)是在下一个bar的开始时间进行市价交易。
对于连续k线来说(假设无跳空)当前bar的收价和下个bar的开价是一样的,所以交易价格上保持一致。不过,毕竟this bar就是this barnext bar就是next bar,交易的时间是计算在了不同的bar上,在同一条件下执行这两条指令,二者在同时刻的barssinceentry是不同的。
对于有跳空的k线来说,this bar on close真的能在当前bar交易成功吗?还是和next bar at open一样到了下个bar才实际交易成功?我也不知道!这需要清楚其指令的内部原理才会明白。。。
7.内置止损