MultiCharts编程-PowerLanguage-Strategy Orders策略委托
- UID
- 2
- 积分
- 2893117
- 威望
- 1396590 布
- 龙e币
- 1496527 刀
- 在线时间
- 13326 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-12-26
|
MultiCharts编程-PowerLanguage-Strategy Orders策略委托
第22章 Strategy Orders策略委托 一句完整的策略委托语句,要指定买卖、时间、价格类别、委托数量信息,策略委托的类别信息已在PowerLanguage概述中介绍,本章主要对各个关键字的使用做解说。 策略委托是写在信号中,经编译成功后,插入到图表上,进行买卖交易。
此外,对内置的止盈止损Set系列的出场函数也一一给出案例说明。这些函数可以在Bar内满足条件时,即时发出委托单,无需等到Bar完成时才执行。 Set系列函数包括:SetBreakeven(损益两平出场)、SetDollarTrailing(跟踪止损出场)、SetPercentTrailing(跟踪止盈或固定比例回撤出场)、SetProfitTarget(停利止盈出场)和SetStopLoss(停损出场);另外一个是SexExitOnClose(收盘时出场),只能用于回测。 Set系列函数在触发价(满足条件的价位)和执行价的计算结果会受策略属性中所设定的手续费和滑价影响。触发价只计算进场单边的交易成本。执行价会计算进场和出场的双边的交易成本。 Set系列出场函数 | 价格计算公式 | SetBreakeven | (1)多头持仓的出场: 触发价=进场价-(获利金额+手续费+滑价)/整点价值 停损价=进场价+(手续费*2+滑价*2)/整点价值 (2)空头持仓的出场: 触发价=进场价+(获利金额+手续费+滑价)/整点价值 停损价=进场价-(手续费*2+滑价*2)/整点价值 | SetDollarTrailing | 停利价=多单进场后的最高价-(获利回吐金额-手续费-滑价)/整点价值 停利价=空单进场后的最低价+(获利回吐金额-手续费-滑价)/整点价值 | SetPercentTrailing | (1)多头持仓的出场: 触发价=进场价+(获利金额+手续费+滑价)/整点价值 停利价=触发价-(获利金额*停利百分比-手续费-滑价)/整点价值 (2)空头持仓的出场: 触发价=进场价-(获利金额+手续费+滑价)/整点价值 停利价=触发价+(获利金额*停利百分比-手续费-滑价)/整点价值 | SetProfitTarget | 停利价=多头进场价+(获利金额+(手续费+滑价)*2)/整点价值 停利价=空头进场价-(获利金额+(手续费+滑价)*2)/整点价值 | SetStopLoss | 停损价=多头进场价-(停损金额-(手续费+滑价)*2)/整点价值 停损价=空头进场价+(停损金额-(手续费+滑价)*2)/整点价值 |
ALL | 说明 | 用在策略出场语句中,在Shares或Contracs前面出现,来表示所有的合约包含没有明确指明实际仓位的合约。 | 语法 | All Contracts 或 All Shares | 范例 | 在下根Bar开始时以市价单卖出平仓所有的仓位: Sell All Shares Next Bar At Market; 或 Sell All Contracts Next Bar At Market; |
Buy | 说明 | 建立一个多头仓位。 进场的点位会在图表上以箭头和价位标示。箭头表示进场时间,价位表示进场价格。在多头进场箭头的下方,有标签显示进场名称和仓位数量。 委托会在参数指定的点位执行,若委托在指定的Bar内无法成交,该笔委托将被取消。 当一个Buy指令成交时,其他持有的空头仓位,将会被平仓。 | 语法 | Buy [(“EntryLabel”)] [TradeSize] EntryType; 中括号([])内的参数是任选的。 | 参数 | EntryLabel——可选用参数,字符串表达式;给予当次进场的信号一个专属名称。信号名称会显示在进场箭头下方,出场信号可以因此指定搭配有专属名称的进场信号,更多信息请看Sell。 若EntryLabel未指定,则会依进场语句的先后顺序依序命名为”Buy”、”Buy#1”、”Buy#2”…… TradeSize——可选用参数,数值表达式;指定买进的数量,必须搭配Share、Shares、Contract或Contracts任一个使用。 若TradeSize为0或负值,并不会建立任何多头仓位,但现有的空头仓位会被平仓。 若TradeSize未指定,交易数量将会是使用者在策略属性的属性中设定的委托数量。 EntryType——必需参数;指定进场的时间和价位,一共有四种类型: 1)This Bar [On] Close 其中:On是跳跃字,可省略 即在当根Bar的收盘价Close多头进场,并标记Buy的箭头。 2) Next Bar [At] Open 或 Next Bar [At] Market 其中:关键字”Open”和”Market”可以互换 At是跳跃字,可省略 即在下根Bar的开盘价Open多头进场,并标记Buy的箭头。 3) Next Bar [At] Price Limit 其中:Price是数值表达式,指定限价进场价格 At是跳跃字,可省略 若下根Bar的第一笔价格小于或等于Price,则在下根Bar多头进场,并标记Buy的箭头;若下根Bar内并无价格满足条件,则委托会被取消。 4) Next Bar [At] Price Stop 其中:Price是数值表达式,指定停止价进场价格 At是跳跃字,可省略 若下根Bar的第一笔价格大于或等于Price,则在下根Bar多头进场,并标记Buy的箭头;若下根Bar内并无价格满足条件,则委托会被取消。 | 范例 | 在当根Bar结束时,以市价建立使用者指定数量的多头仓位: Buy This Bar On Close; 在下根Bar开始时,以市价建立一手多头仓位,并标记进场名为”Entry”: Buy (“Entry”) 1 Share Next Bar At Open; 在下根Bar开始时,以市价建立一手多头仓位,并标记进场名为”Entry”: Buy (“Entry”) 1 Contract Next Bar At Market; 在下根Bar开始时,以小于等于100的价格建立2手多头仓位: Buy 2 Shares Next Bar At 100 Limit; 在下根Bar开始的价格大于等于50时,以市价建立10手多头仓位: Buy 10 Contracts Next Bar At 50 Stop; |
BuyToCover | 说明 | 全部或部分平仓特定或全部的空头仓位。 当一个Buy指令成交时,其他持有的空头仓位,将会被平仓。 出场的点位会在图表上以箭头和价位标示。箭头表示出场时间,价位表示出场价格。在空头出场箭头的下方,有标签显示出场名称和仓位数量。 委托会在参数指定的点位执行,若委托在指定的Bar内无法成交,该笔委托将被取消。 | 语法 | BuyToCover [(“ExitLabel”)] [From Entry(“EntryLabel”)] [ TradeSize[Total]] Exit; 或: Buy To Cover [(“ExitLabel”)] [From Entry(“EntryLabel”)] [ TradeSize[Total]] Exit; | 参数 | ExitLabel——可选用参数,字符串表达式;予当次出场信号一个专属名称。信号名称会显示在出场箭头下方。 若ExitLabel未指定,则会依出场信号语句的先后顺序依序命名为”Cover”、”Cover#1”、”Cover#2”…… EntryLabel——可选用参数,字符串表达式;表示出场信号是针对特定EntryLabel名称的进场信号;进场信号名称须紧连在From Entry之后,From是跳跃字,可省略。 一个出场信号仅能指定一个名称进场信号。更多信息请看SellShort 若EntryLabel未指定进场信号名称,则所有的空头仓位都将会被平仓。 TradeSize——可选用参数,数值表达式;指定买平的数量,必须搭配Share、Shares、Contract或Contracts任一个使用。 默认(未加Total),TradeSize参数指定的数量会平掉每一个空头进场语句的仓位。 如果TradeSize后加上Total,只会平仓TradeSize参数指定的数量,忽略空头进场数量。指定数量超过空头持仓,则全部平仓。在依进场信号的顺序平仓,即先进先出。 若TradeSize未指定,将会平仓全部的空头进场。
Exit——必需参数;指定出场的时间和价位,一共有四种类型: 1)This Bar [On] Close 其中:On是跳跃字,可省略 即在当根Bar的收盘价Close买平出场,并标记Cover的箭头。 2) Next Bar [At] Open 或 Next Bar [At] Market 其中:关键字”Open”和”Market”可以互换 At是跳跃字,可省略 即在下根Bar的开盘价Open买平出场,并标记Cover的箭头。 3) Next Bar [At] Price Limit 其中:Price是数值表达式,指定限价出场价格 At是跳跃字,可省略 若下根Bar的第一笔价格小于或等于Price,则在下根Bar买平出场,并标记Cover的箭头;若下根Bar内并无价格满足条件,则委托会被取消。 4) Next Bar [At] Price Stop 其中:Price是数值表达式,指定停止价出场价格 At是跳跃字,可省略 若下根Bar的第一笔价格大于或等于Price,则在下根Bar买平出场,并标记Cover的箭头;若下根Bar内并无价格满足条件,则委托会被取消。 | 范例 | 在当根Bar结束时,以市价平仓所有的空头仓位,并标识出场为”Complete Exit”: BuyToCover (”Complete Exit”) This Bar On Close; 在下根Bar开始时,以市价平仓所有以”Original Entry” 命名的空头进场仓位: BuyToCover From Entry (“Original Entry”) Next Bar At Market; 在下根Bar开始时,以市价平仓10手以” Entry” 命名的空头进场仓位: BuyToCover Entry (“Entry”)
10 Contracts Next Bar At Market; 在下根Bar开始时,对每个空头进场仓位以市价平仓5手: BuyToCover 5 Contracts Next Bar At Market; 无论有多少空头进场仓位,在下根Bar开始时,以小于或等于100的价位,平仓1手: BuyToCover 1 Share Total Next Bar At 100 Limit; 在下根Bar开始时,以大于或等于50的价位,平掉所有空头仓位: BuyToCover Next Bar At 50 Stop; |
Contracts/Contract/Shares/Share | 说明 | 在策略进场或出场的语句指定委托的数量。 | 语法 | TradeSize Contracts | 参数 | TradeSize——数值表达式,指定委托的数量 | 范例 | 下根Bar开盘时以市价买进2手: Buy 2 Contracts Next Bar At Market; |
Cover | 说明 | 和Buy To 一起用;同BuyToCover。 | 语法 | Buy To Cover [(“ExitLabel”)] [From Entry(“EntryLabel”)] [ TradeSize[Total]] Exit; |
Enrty | 说明 | 使用在策略的出场语句中,指定进场信号名称EntryLabel。一个出场信号仅能搭配一个进场信号;更多请看Buy或Sellshort。 | 语法 | From Entry(“EntryLabel”) | 参数 | EntryLabel——字符串表达式;指定要平仓的进场信号名称 From——跳跃字,可省略 | 范例 | 在下根Bar开始时,以市价平仓所有以”Original Entry” 命名的多头仓位: Sell From Entry (“Original Entry”) Next Bar At Open; |
Higher | 说明 | 使用在策略的进场或出场指令中,指定一个进场或出场的价格范围,前面必须要跟Or | 语法 | At Price Or Higher | 参数 | Price——数值表达式,指定的基准价 At——跳跃字,可省略 | 注意 | At Price Or Higher: *当和Sell或SellShort一起用时相当于Limit; *当和Buy或BuyToCover一起用时则相当于Stop。 | 范例 | 在下根Bar开始时,以大于或等于100的价格买进一手: Buy 1 Contract Next Bar At 100 Or Higher; 在下根Bar开始时,以大于或等于50的价格卖出一手: SellShort 1 Contract Next Bar At 50 Or Higher; |
Limit | 说明 | 在策略进场或出场的语句使用限价单委托。 限价单会在指定的价格或更优的价格成交。限价单的买单成交不会高于使用者指定的价格,卖单成交价不会低于使用者指定的价格。 | 语法 | At Price Limit | 参数 | Price——数值表达式,指定委托的限价单价格 At——跳跃字,可省略 | 范例 | 在下根Bar开始时,以小于或等于100的价格买进: Buy Next Bar At 100 Limit; 在下根Bar开始时,以大于或等于50的价格卖出: SellShort Next Bar At 50 Limit; |
Lower | 说明 | 使用在策略的进场或出场指令中,指定一个进场或出场的价格范围,前面必须要跟Or | 语法 | At Price Or Lower | 参数 | Price——数值表达式,指定的基准价 At——跳跃字,可省略 | 注意 | At Price Or Lower: 当和Buy或BuyToCover一起用时相当于Limit; 当和Sell或SellShort一起用时则相当于Stop。 | 范例 | 在下根Bar开始时,以小于或等于100的价格买进: Buy Next Bar At 100 Or Lower; 在下根Bar开始时,以小于或等于50的价格卖出: SellShort Next Bar At 50 Or Lower; |
Market | 说明 | 在策略进场或出场的语句指定市价单委托。 买进市价单会在市场的委托价或更高的价格成交。卖出市价单会在市场的委托价或更低的成交。 | 语法 | At Market | 参数 | At——跳跃字,可省略 | 范例 | 在下根Bar开始时,以市价建立使用者指定数量的多头仓位: Buy Next Bar At Market; |
Sell | 说明 | 全部或部分平仓特定或全部的多头仓位。 出场的价位会在图表上以箭头和价位表示,箭头表示出场时间,价位表示出场价格。在多头出场箭头的上方,有标签显示出场名称及仓位数量。 委托会在参数指定的点位执行,若委托在指定的Bar内无法成交,该笔委托将被取消。 | 语法 | Sell [(“ExitLabel”)] [From Entry(“EntryLabel”)] [ TradeSize[Total]] Exit; 中括号[]内的参数为可选用参数 | 参数 | ExitLabel——可选用参数,字符串表达式;予当次出场信号一个专属名称。信号名称会显示在出场箭头上方。 若ExitLabel未指定,则会依出场信号语句的先后顺序依序命名为”
Sell”、” Sell#1”、” Sell#2”…… EntryLabel——可选用参数,字符串表达式;表示出场信号是针对特定EntryLabel名称的进场信号;进场信号名称须紧连在From Entry之后,From是跳跃字,可省略。 一个出场信号仅能指定一个进场信号。更多信息请看Buy。 若EntryLabel未指定进场信号名称,则所有的多头仓位都将会被平仓。 TradeSize——可选用参数,数值表达式;指定买平的数量,必须搭配Share、Shares、Contract或Contracts任一个使用。 默认(未加Total),TradeSize参数指定的数量会平掉每一个多头进场语句的仓位。 如果TradeSize后加上Total,只会平仓TradeSize参数指定的数量,忽略多头进场数量。指定数量超过多头持仓,则全部平仓。在依进场信号的顺序平仓,即先进先出。 若TradeSize未指定,将会平仓全部的多头进场。 Exit——指定出场的时间和价位,一共有四种类型: 1)This Bar [On] Close 其中:On是跳跃字,可省略 即在当根Bar的收盘价Close卖平出场,并标记Sell的箭头。 2) Next Bar [At] Open 或 Next Bar [At] Market 其中:关键字”Open”和”Market”可以互换 At是跳跃字,可省略 即在下根Bar的开盘价Open卖平出场,并标记Sell的箭头。 3) Next Bar [At] Price Limit 其中:Price是数值表达式,指定限价出场价格 At是跳跃字,可省略 若下根Bar的第一笔价格大于或等于Price,则在下根Bar卖平出场,并标记Sell的箭头;若下根Bar内并无价格满足条件,则委托会被取消。 4) Next Bar [At] Price Stop 其中:Price是数值表达式,指定停止价出场价格 At是跳跃字,可省略 若下根Bar的第一笔价格小于或等于Price,则在下根Bar卖平出场,并标记Sell的箭头;若下根Bar内并无价格满足条件,则委托会被取消。 | 范例 | 在当根Bar结束时,以市价平仓所有的多头仓位,并标识出场为”Complete Exit”: Sell (”Complete Exit”) This Bar On Close; 在下根Bar开始时,以市价平仓所有以”Original Entry” 命名的多头进场仓位: Sell From Entry (“Original Entry”) Next Bar At Market; 在下根Bar开始时,以市价平仓10手以” Entry” 命名的多头进场仓位: Sell Entry (“Entry”)
10 Contracts Next Bar At Market; 在下根Bar开始时,对每个多头进场仓位以市价平仓5手: Sell 5 Contracts Next Bar At Market; 无论有多少多头进场仓位,在下根Bar开始时,以大于或等于100的价位,平仓1手: Sell 1 Share Total Next Bar At 100 Limit; 在下根Bar开始时,以小于或等于50的价位,平掉所有多头仓位: Sell Next Bar At 50 Stop; |
SellShort | 说明 | 建立一个空头仓位。 进场的点位会在图表上以箭头和价位标示。箭头表示进场时间,价格表示进场价格。在空头进场箭头的上方,有标签显示进场名称和仓位数量。 委托会在参数指定的点位执行,若委托在指定的Bar内无法成交,该笔委托将被取消。 当一个SellShort指令成交时,其他持有的多头仓位,将被会被平仓。 | 语法 | SellShort [(“EntryLabel”)] [TradeSize] Entry; 中括号([])内的参数是任选的。 | 参数 | EntryLabel——可选用参数,字符串表达式;给予当次进场的信号一个专属名称。信号名称会显示在进场箭头上方,出场信号可以因此指定搭配有专属名称的进场信号,更多信息请看BuyToCover。 若EntryLabel未指定,则会依进场语句的先后顺序依序命名为”Short”、” Short#1”、” Short#2”…… TradeSize——可选用参数,数值表达式;指定买进的数量,必须搭配Share、Shares、Contract或Contracts任一个使用。 若TradeSize为0或负值,并不会建立任何空头仓位,但现有的空头仓位会被平仓。 若TradeSize未指定,交易数量将会是使用者在策略属性的属性中设定的委托数量。 Entry——必需参数;指定进场的时间和价位,一共有四种类型: 1)This Bar [On] Close 其中:On是跳跃字,可省略 即在当根Bar的收盘价Close空头进场,并标记Short的箭头。 2) Next Bar [At] Open 或 Next Bar [At] Market 其中:关键字”Open”和”Market”可以互换 At是跳跃字,可省略 即在下根Bar的开盘价Open空头进场,并标记Short的箭头。 3) Next Bar [At] Price Limit 其中:Price是数值表达式,指定限价进场价格 At是跳跃字,可省略 若下根Bar的第一笔价格大于或等于Price,则在下根Bar空头进场,并标记Short的箭头;若下根Bar内并无价格满足条件,则委托会被取消。 4) Next Bar [At] Price Stop 其中:Price是数值表达式,指定停止价进场价格 At是跳跃字,可省略 若下根Bar的第一笔价格小于或等于Price,则在下根Bar空头进场,并标记Short的箭头;若下根Bar内并无价格满足条件,则委托会被取消。 | 范例 | 在当根Bar结束时,以市价建立使用者指定数量的空头仓位: SellShort This Bar On Close; 在下根Bar开始时,以市价建立一手空头仓位,并标记进场名为”Entry”: SellShort (“Entry”) 1 Share Next Bar At Open; 在下根Bar开始时,以市价建立一手空头仓位,并标记进场名为”Entry”: SellShort (“Entry”) 1 Contract Next Bar At Market; 在下根Bar开始时,以大于等于100的价格建立2手空头仓位: SellShort 2 Shares Next Bar At 100 Limit; 在下根Bar开始的价格小于等于50时,以市价建立10手空头仓位: SellShort 10 Contracts Next Bar At 50 Stop; |
SetBreakEven | 说明 | 当从指定的最大获利拉回至损益两平点时,平仓部分或所有仓位。依仓位的多空不同使用对应的停止单进行委托。 由SetStopPosition、SetStopContract或SetStopShare
决定停损是所有仓位合并计算或个别仓位分开计算;默认是所有仓位合并计算。 SetBreakEven指令在Bar内就会即时触发,而不是仅仅在Bar结束时才执行,所以可以在进场的当根Bar马上出场。 | 语法 | SetBreakEven(Profit) | 参数 | Profit——数值表达式,停损前必须先达到的获利金额 | 注意 | *此函数只能在信号中使用。 *触发停利条件的价位仅考虑进场手续费及滑价成本。 *实际委托价格会考虑进场及出场的手续费和滑价成本。 | 范例 | 当所有仓位的最大获利达到50元之后,若再拉回到损益两平点,执行平仓所有仓位的委托: SetStopPosition; SetBreakEven(50); 当个别仓位的最大获利达到10元之后,若再拉回至损益两平点,产生平仓该进场仓位的委托: SetStopContract; SetBreakEven(10); |
SetDollarTrailing | 说明 | 当从仓位进场后的最大获利拉回到指定金额后,平仓部分或所有仓位。依仓位的多空不同,使用对应的停止单进行委托。 例如:若指定的金额为50元,而仓位曾出现的最大获利金额为120元;一旦获利回吐剩下70元时会平仓仓位。 由SetStopPosition、SetStopContract或SetStopShare决定停损是所有仓位合并计算或是个别仓位分开计算;默认是有仓位合并计算。 SetDollarTrailing
指令是在Bar内就会即时触发,而不是仅仅在Bar结束时才执行,所以可以在进场的当根Bar马上出场。 | 语法 | SetDollarTrailing (Amount) | 参数 | Amount——数值表达式,自最大获利高点拉回要停利的金额,即获利回吐金额 | 注意 | *此函数只能在信号中使用。 *实际委托价格会考虑进场手续费及滑价成本。 | 范例 | 当整体仓位的最大获利回吐50元之后,产生平仓所有仓位的委托: SetStopPosition; SetDollarTrailing (50); 当个别仓位的自最大获利回吐10元之后产生平仓该进场仓位的委托: SetStopContract; SetDollarTrailing (10); |
SetExitOnClose | 说明 | 在当日图表中,于交易时段最后一根Bar的收盘价tick,结束目前仓位,会依仓位的多空不同时用对应的市价单进行委托。 SetExitOnClose指令是使用QuoteManager中设定的交易结束时段资讯。 | 语法 | SetExitOnClose | 注意 | MC中要等到下一根Bar的第一笔tick到来,才会判断本根Bar的结束,若5分钟内等不到,也认为本根Bar结束;那么对应15:00、15:15等当日收盘的Bar来说,5分钟内是不会有下一笔tick,所以若使用函数SetExitOnClose,无法在当日平仓,而会在收盘后5分钟发委托因非交易时段而被拒绝。 *交易不建议使用此函数。只可回测使用。 |
SetPercentTrailing | 说明 | 当从指定的最大获利拉回特定的百分比后,平仓部分或所有仓位。依仓位的多空不同使用对应的停止单进行委托。 例如:若指定的百分比为25%,则若最大获利为120元,当获利回吐剩下90元时会平仓仓位。 由SetStopPosition、SetStopContract或SetStopShare决定停损是所有仓位合并结算或是个别仓位分开计算;默认是所有仓位合并计算。 SetPercentTrailing指令是在当根Bar内就会即时触发,而不是仅仅在Bar结束时才执行,所以可以在进场的当根Bar马上出场 | 语法 | SetPercentTrailing (Profit,Percentage) | 参数 | Profit——数值表达式,停利前必须先满足的获利金额。 Percentage——数值表达式,自最大获利高点拉回要停利的百分比,即停利百分比 | 注意 | *触发停利价位仅考虑进场的手续费及滑价成本。 *实际委托价格会考虑进场及出场的手续费和滑价成本。 | 范例 | 当整体仓位的最大获利达到25元之后,拉回50%,产生平仓所有仓位的委托: SetStopPosition; SetPercentTrailing (25,50); 当个别仓位的最大获利达到5元之后,拉回25%,产生平仓该进场仓位的委托: SetStopContract; SetPercentTrailing (5,25); |
SetProfitTarget | 说明 | 当从仓位进场后的最大获利达到特定金额时,平仓部分或所有仓位。依仓位的多空不同使用对应的限价单进行委托。 由SetStopPosition、SetStopContract或SetStopShare决定停损是所有仓位合并计算或是个别仓位分开计算;默认是所有仓位合并计算。 SetProfitTarget指令是在Bar内就会即时触发,而不是仅仅在Bar结束时才执行,所以可以在进场的当根Bar马上出场。 | 语法 | SetProfitTarget (Amount) | 参数 | Amount——数值表达式,要停利的获利金额 | 注意 | 实际委托价格会考虑进场及出场的手续费和滑价成本。 | 范例 | 当整体仓位的最大获利达到100元时,产生平仓所有仓位的委托: SetStopPosition; SetProfitTarget (100); 当个别仓位的最大获利达到10元时,产生平仓该进场仓位的委托: SetStopContract; SetProfitTarget (10); |
SetStopContract/SetStopShare | 说明 | 指定策略出场函数SetBreakeven、SetDollarTrailing、SetPercentTraling、SetProfitTarget和SetStopLoss是个别仓位分开计算。 | 语法 | SetStopContract | 参数 | 若SetStopPosition、SetStopContract和SetStopShare未被声明,默认出场函数,是所有仓位合并计算。 若SetStopPosition、SetStopContract和SetStopShare被多次声明,或是在同一个图表上的不同信号分别声明,会以最后一次的声明状态为最后状态。 | 范例 | 指定SetStopLoss策略出场函数是个别仓位分开计算,当个别仓位损失达10元时,产生平仓委托: SetStopContract; SetStopLoss (10); |
SetStopLoss | 说明 | 当损失达到指定金额时,平仓部分或全部的仓位;会依仓位的多空产生对应的停止单。 由SetStopPosition、SetStopContract、或SetStopShare决定停损是所有仓位合并计算或是个别仓位分开计算;默认是所有仓位合并计算。 SetStopLoss指令是在Bar内就会即时触发,而不是仅仅在Bar结束时才执行,所有可以在进场的当根Bar马上出场。 | 语法 | SetStopLoss(Amount) | 参数 | Amount——数值表达式,指定停损的金额 | 注意 | 实际委托价格会考虑及出场的手续费和滑价成本。 | 范例 | 当整体仓位损失达100元时,平仓所有仓位: SetStopPosition; SetStopLoss (100); 当个别仓位损失达10元时,平仓出场: SetStopContract; SetStopLoss (10); |
SetStopPosition | 说明 | 指定策略出场函数SetBreakeven、SetDollarTrailing、SetPercentTraling、SetProfitTarget和SetStopLoss是所有仓位合并计算。 | 语法 | SetStopPosition | 注意 | *若SetStopPosition、SetStopContract和SetStopShare未被声明,默认出场函数,是所有仓位合并计算。 *若SetStopPosition、SetStopContract和SetStopShare被多次声明,或是在同一个图表上的不同信号分别声明,会以最后一次的声明状态为最后状态。 | 范例 | 指定SetStopLoss策略出场函数是所有仓位合并计算,当所有仓位总损失达到10元时,产生出场委托: SetStopPosition; SetStopLoss(10); |
Short | 说明 | 和Sell一起使用;同SellShort。 | 语法 | Sell Short [(“EntryLabel”)] [TradeSize] Entry; |
Stop | 说明 | 在策略进场或出场的语句指定使用停止单委托。 停止单会在指定的价格或更差的价格(滑价)成交。滑价会导致买在更高的价格或是卖在更低的价格。 | 语法 | At Price Stop | 参数 | Price——数值表达式,指定委托的停止单价格 At——跳跃字,可省略 | 范例 | 在下根Bar开始时,以小于或等于100的价格卖出: Sell Next Bar At 100 Stop; 在下根Bar开始时,以大于或等于50的价格买进: BuyToCover Next Bar At 50 Stop; |
Total | 说明 | 用在策略出场陈述式中,指定要平仓的总手数。若有多笔进场仓位,依先进先出的顺序平仓。 若未使用Total时,则每笔进场仓位都会平仓相同手数的仓位。 | 语法 | TradeSize Shares Total | 参数 | TradeSize——数值表达式,指定委托的数量 | 范例 | 若有三笔多头进场仓位,依序为一手,一手,三手,语句为: Sell 3 Shares Total Next Bar At Market; 则:剩余仓位分别为0手,0手,两手,共平仓3手。 若有三笔多头进场仓位,依序为一手,一手,三手,语句为: Sell 3 Shares Next Bar At Market; 则:剩余仓位为0手,0手,0手,共平仓5手。 |
|
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|