Board logo

标题: MC用户求助:可以解析buy,sell,sellshort,buytocover的用法吗? [MC] [打印本页]

作者: 龙听    时间: 2018-10-26 10:06     标题: MC用户求助:可以解析buy,sell,sellshort,buytocover的用法吗? [MC]

MC用户求助:
1. buy
1.1 定义

建立一个多头仓位;进场的点位会在图表上以箭头和价位标示;箭头表示进场时间,价位表示进场价格。 在多头进场箭头的下方,有标签显示进场名称和仓位数量。当一个buy指令成交时,其他持有的空头仓位,将会被平仓。"buy[("EntryLabel")] [TotalSize] EntryType;"是一个完整的买入语句,其中被[ ]括起来的参数是任选的(也可以写成"buy EntryType;"),举例就是"buy("entryname") 3 shares next bar at market;",也可以写成"buy next bar at market;";

1.2 EntryLabel
EntryLabel —— 可选用参数,字符串表达式;给当次进场的信号一个专属名称。若 EntryLabel 未指定,则会依进场语句的先后顺序依序命名为 "Buy" 、"Buy#1" 、 "Buy#2" 、 "Buy#3" ..,见图1和图2,对比代码和图表的区别和联系。

1.3 TradeSize

TradeSize —— 可选用参数,数值表达式;指定买进的数量,必须搭配: Share, Shares, Contract 或 Contracts 任一个使用。若 TradeSize 为0或负值,并不会建立任何多头仓位,但现有的空头仓位会被平仓。 若 TradeSize 未指定,交易数量将会是使用者在策略属性的属性中设定的委托数量。由于buy是平仓反向进场语句,使用buy进场的时候,会将之前的所有空头全部平仓,然后建立指定手数的多头头寸。详细的请看图3,图4和图5,针对代码和图表的对比学习。

1.4 Entrytype

EntryType —— 必需参数;指定进场的时间和价位,一共有五种类型:

This Bar on Close
Next Bar at Open 或 Next Bar at Market
Next Bar at Price  Limit
Next Bar at Price  Stop
next bar at price1 stop price2 limit
这里使用的price代指委托进场价格,at、on是MC跳跃字,可以省略,只是为了方便用户看代码,公式编译的时候会直接跳过。“This Bar on Close”是指定在当根结束的时候以收盘价发送委托单;"Next Bar at Open" 或 "Next Bar at Market"是指定以下一根bar的开盘价发送委托;"Next Bar at Price  Limit"是指定在下一根bar开始时发送限价单;"Next Bar at Price  Stop"是指定在下一根bar开始时发送停损单;还有一种是停损限价单是可以通过停损单和限价单组合的类型,即"next bar at price1 stop price2 limit";除了这五种,其它类型的Entrytype都是禁止的,在公式编译的时候就会报错。

2. sell
2.1 定义

全部或部分平仓特定或全部的多头仓位。出场的价位会在图表上以箭头和价位表示,箭头表示出场时间,价位表示出场价格。在多头出场箭头的上方,有标签显示出场名称及仓位数量。"Sell[("ExitLabel")][From Entry("EntryLabel")][TradeSize[Total]]Exit;"是一个完整的平仓语句,被[ ]括起来的参数都是可以省略的,可以是"sell Exit;",举例为"sell("sellname") from entry("entryname") 3 shares total next bar at market;",也可以是"sell next bar at market;"。

2.2 ExitLabel

ExitLabel —— 可选用参数,字符串表达式;予当次出场信号一个专属名称。信号名称会显示在出场箭头上方。若 ExitLabel 未指定,则会依出场信号语句的先后顺序依序命名为 "Sell"、"Sell#1"、"Sell#2"…… ;ExitLabel的定义可以参考一下1.2 EntryLabel;有一点特别注意一下,在同一个信号脚本中,所有的进场出场名称都要求不一样,进场和出场名称也要求不一样。

2.3 EntryLabel

EntryLabel —— 可选用参数,字符串表达式;表示出场信号是针对特定EntryLabel 名称的进场信号; 进场信号名称须紧连在 "From Entry"之后, "from" 是跳跃字,可省略。一个出场信号仅能指定一个进场信号。若 EntryLabel 未指定进场信号名称,则该sell出场语句是针对当前所有未平仓的进场(第一笔进场,第二笔进场等等),sell出场语句指定进场情况请看图6和图7,sell出场未指定进场情况请看图8和图9。

2.4 TradeSize

TradeSize —— 可选用参数,数值表达式;指定平仓的数量,必须搭配: Share, Shares, Contract 或 Contracts任一个使用,这四个关键字完全一样,没有区别;当tradesize指定的平仓的手数是负数或者0时,不会平仓任何手数;当tradesize指定的平仓的手数是0.5或者其它分数,那么sell会平仓四舍五入后的手数;当然,如果当前没有多头持仓,那么sell不执行任何操作。

2.5 Total

total必须紧跟关键字 Share, Shares, Contract 或 Contracts任一个后面,不能单独使用;tradesize后面未加total的情况下,TradeSize 参数指定的数量会平掉每一个多头进场语句的仓位,详细的请对比图10和图11;如果如果 TradeSize  后加上 Total,只会平仓 TradeSize  参数指定的数量,忽略多头进场数量。指定数量超过多头持仓,则全部平仓。在依进场信号的顺序平仓,即先进先出,详细的见图12和图13。若tradesize未指定,将会平仓全部的多头进场。

2.6 Exit

Exit和1.4 Entrytype完全一样。

3. Sellshort和buytocover

buy和sellshort都是平仓反向语句,也就是先平仓再开仓,这两个关键字的使用除了买卖方向不一样,其它的用法和逻辑完全一样,在此就不再赘述。sell和buytocover都是平仓语句,只是单纯的平仓,这两个关键字的使用除了平仓的方向不一样,其它的用法和逻辑完全一样,在此不再赘述。

图1 entrylabel_代码

图1 entrylabel_代码





图2 entrylabel_图表

图2 entrylabel_图表



图3 tradesize_代码

图3 tradesize_代码





图4 tradesize_图表

图4 tradesize_图表





图5 策略属性

图5 策略属性





图6 sell指定进场名称_代码

图6 sell指定进场名称_代码





图7 sell指定进场名称_图表

图7 sell指定进场名称_图表





图8 sell未指定进场名称_代码

图8 sell未指定进场名称_代码





图9 sell未指定进场名称_图表

图9 sell未指定进场名称_图表





图10 tradesize total_代码

图10 tradesize total_代码





图11 tradesize total_图表

图11 tradesize total_图表





图12 tradesize total_代码(紧跟total)

图12 tradesize total_代码(紧跟total)





图13 tradesize total_图表(紧跟total)



图13 tradesize total_图表(紧跟total)



图14 search.png

图14 search



MC回复讨论一:
1. buy
1.1 定义

建立一个多头仓位;进场的点位会在图表上以箭头和价位标示;箭头表示进场时间,价位表示进场价格。 在多头进场箭头的下方,有标签显示进场名称和仓位数量。当一个buy指令成交时,其他持有的空头仓位,将会被平仓。"buy[("EntryLabel")] [TotalSize] EntryType;"是一个完整的买入语句,其中被[ ]括起来的参数是任选的(也可以写成"buy EntryType;"),举例就是"buy("entryname") 3 shares next bar at market;",也可以写成"buy next bar at market;";

1.2 EntryLabel
EntryLabel —— 可选用参数,字符串表达式;给当次进场的信号一个专属名称。若 EntryLabel 未指定,则会依进场语句的先后顺序依序命名为 "Buy" 、"Buy#1" 、 "Buy#2" 、 "Buy#3" ..,见图1和图2,对比代码和图表的区别和联系。

1.3 TradeSize

TradeSize —— 可选用参数,数值表达式;指定买进的数量,必须搭配: Share, Shares, Contract 或 Contracts 任一个使用。若 TradeSize 为0或负值,并不会建立任何多头仓位,但现有的空头仓位会被平仓。 若 TradeSize 未指定,交易数量将会是使用者在策略属性的属性中设定的委托数量。由于buy是平仓反向进场语句,使用buy进场的时候,会将之前的所有空头全部平仓,然后建立指定手数的多头头寸。详细的请看图3,图4和图5,针对代码和图表的对比学习。

1.4 Entrytype

EntryType —— 必需参数;指定进场的时间和价位,一共有五种类型:

This Bar on Close
Next Bar at Open 或 Next Bar at Market
Next Bar at Price  Limit
Next Bar at Price  Stop
next bar at price1 stop price2 limit
这里使用的price代指委托进场价格,at、on是MC跳跃字,可以省略,只是为了方便用户看代码,公式编译的时候会直接跳过。“This Bar on Close”是指定在当根结束的时候以收盘价发送委托单;"Next Bar at Open" 或 "Next Bar at Market"是指定以下一根bar的开盘价发送委托;"Next Bar at Price  Limit"是指定在下一根bar开始时发送限价单;"Next Bar at Price  Stop"是指定在下一根bar开始时发送停损单;还有一种是停损限价单是可以通过停损单和限价单组合的类型,即"next bar at price1 stop price2 limit";除了这五种,其它类型的Entrytype都是禁止的,在公式编译的时候就会报错。

2. sell
2.1 定义

全部或部分平仓特定或全部的多头仓位。出场的价位会在图表上以箭头和价位表示,箭头表示出场时间,价位表示出场价格。在多头出场箭头的上方,有标签显示出场名称及仓位数量。"Sell[("ExitLabel")][From Entry("EntryLabel")][TradeSize[Total]]Exit;"是一个完整的平仓语句,被[ ]括起来的参数都是可以省略的,可以是"sell Exit;",举例为"sell("sellname") from entry("entryname") 3 shares total next bar at market;",也可以是"sell next bar at market;"。

2.2 ExitLabel

ExitLabel —— 可选用参数,字符串表达式;予当次出场信号一个专属名称。信号名称会显示在出场箭头上方。若 ExitLabel 未指定,则会依出场信号语句的先后顺序依序命名为 "Sell"、"Sell#1"、"Sell#2"…… ;ExitLabel的定义可以参考一下1.2 EntryLabel;有一点特别注意一下,在同一个信号脚本中,所有的进场出场名称都要求不一样,进场和出场名称也要求不一样。

2.3 EntryLabel

EntryLabel —— 可选用参数,字符串表达式;表示出场信号是针对特定EntryLabel 名称的进场信号; 进场信号名称须紧连在 "From Entry"之后, "from" 是跳跃字,可省略。一个出场信号仅能指定一个进场信号。若 EntryLabel 未指定进场信号名称,则该sell出场语句是针对当前所有未平仓的进场(第一笔进场,第二笔进场等等),sell出场语句指定进场情况请看图6和图7,sell出场未指定进场情况请看图8和图9。

2.4 TradeSize

TradeSize —— 可选用参数,数值表达式;指定平仓的数量,必须搭配: Share, Shares, Contract 或 Contracts任一个使用,这四个关键字完全一样,没有区别;当tradesize指定的平仓的手数是负数或者0时,不会平仓任何手数;当tradesize指定的平仓的手数是0.5或者其它分数,那么sell会平仓四舍五入后的手数;当然,如果当前没有多头持仓,那么sell不执行任何操作。

2.5 Total

total必须紧跟关键字 Share, Shares, Contract 或 Contracts任一个后面,不能单独使用;tradesize后面未加total的情况下,TradeSize 参数指定的数量会平掉每一个多头进场语句的仓位,详细的请对比图10和图11;如果如果 TradeSize  后加上 Total,只会平仓 TradeSize  参数指定的数量,忽略多头进场数量。指定数量超过多头持仓,则全部平仓。在依进场信号的顺序平仓,即先进先出,详细的见图12和图13。若tradesize未指定,将会平仓全部的多头进场。

2.6 Exit

Exit和1.4 Entrytype完全一样。

3. Sellshort和buytocover

buy和sellshort都是平仓反向语句,也就是先平仓再开仓,这两个关键字的使用除了买卖方向不一样,其它的用法和逻辑完全一样,在此就不再赘述。sell和buytocover都是平仓语句,只是单纯的平仓,这两个关键字的使用除了平仓的方向不一样,其它的用法和逻辑完全一样,在此不再赘述。

图1 entrylabel_代码

图1 entrylabel_代码





图2 entrylabel_图表

图2 entrylabel_图表



图3 tradesize_代码

图3 tradesize_代码





图4 tradesize_图表

图4 tradesize_图表





图5 策略属性

图5 策略属性





图6 sell指定进场名称_代码

图6 sell指定进场名称_代码





图7 sell指定进场名称_图表

图7 sell指定进场名称_图表





图8 sell未指定进场名称_代码

图8 sell未指定进场名称_代码





图9 sell未指定进场名称_图表

图9 sell未指定进场名称_图表





图10 tradesize total_代码

图10 tradesize total_代码





图11 tradesize total_图表

图11 tradesize total_图表





图12 tradesize total_代码(紧跟total)

图12 tradesize total_代码(紧跟total)





图13 tradesize total_图表(紧跟total)



图13 tradesize total_图表(紧跟total)



图14 search.png

图14 search




欢迎光临 龙听期货论坛 (http://www.qhlt.cn/) Powered by Discuz! 7.2