: | : | :期货程序化 | :期货程序化研究 | :期货量化学习 | :期货量化 |
返回列表 发帖

MultiCharts编程-PowerLanguage-Strategy Position Trades策略部位交易

MultiCharts编程-PowerLanguage-Strategy Position Trades策略部位交易

本章关键字可取得指定进场的委托价格、手续费、日期、最大最小盈亏等信息。PosTrade系列的关键字,还可以取得加仓的进出场价格、日期、名称、多空状态、大小等。
若程序中含有加仓语句,信号所在图表窗口的加仓限制需要被打开。方法:至“格式”->“策略属性”->“属性”中,将“部位限制”打勾,并输入同方向的总得进场笔数。



26.1 启用加仓限制

  OpenEntriesCount  
  

CurrentEntries用法一样。

  


  OpenEntryComission  
  

说明

  
  

返回一个数值,表示未平仓部位的指定交易手续费金额(以美元表示)。

  
  

语法

  
  

OpenEntryComission(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

若策略属性的属性中设定的手续费为$60每股/每手,当前共3笔未平仓进场,分别为1手、2手、3手,则当前第二笔未平仓部位的手续费是2*60 OpenEntryComission(1)将返回120

  


  OpenEntryContracts  
  

说明

  
  

返回一个数值,表示当前未平仓部位中指定进场的委托手数。

  
  

语法

  
  

OpenEntryContracts(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位为3手,由1手和2手的两笔进场产生,则OpenEntryContracts会返回1,表示第一笔进场为1手。

  

如果当前未平仓部位为3手,由1手和2手的两笔进场产生,则OpenEntryContracts(1)会返回2,表示第二笔进场为2手。

  


  OpenEntryDate  
  

说明

  
  

返回一个数值,表示当前未平仓部位中指定进场的委托日期。

  

日期格式显示为YYYMMddYYY表示自1900年开始的年份,MM表示月份,dd表示当月第几日。

  
  

语法

  
  

OpenEntryDate(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场委托在201142日产生,则OpenEntryDate(1)返回值为1110402

  


  OpenEntryMaxProfit  
  

说明

  
  

返回数值,表示从进场委托执行开始到当前时间,OpenEntryProfit的最大值。

  
  

语法

  
  

OpenEntryMaxProfit(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位的第一笔进场曾经达到20dollar的最大利润,则OpenEntryMaxProfit返回值为20

  


  OpenEntryMaxProfitPerContract  
  

说明

  
  

返回一个数值,表示从进场委托执行开始到当前时间,[url=file:///D:/MC8/Strategy_Position_Trades/OpenEntryProfitPerContract.htm]OpenEntryProfitPerContract[/url]  的最大值。

  
  

语法

  
  

OpenEntryMaxProfitPerContract(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场曾经达到每手1.5  dollar的最大利润,则OpenEntryMaxProfitPerContract(1)返回值为1.5

  


  OpenEntryMinProfit  
  

说明

  
  

返回一个数值,表示从进场委托执行开始到当前时间,OpenEntryProfit的最小值。

  
  

语法

  
  

OpenEntryMinProfit(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场曾经最大损失达到15 dollar,则OpenEntryMinProfit(1)返回值为-15

  


  OpenEntryMinProfitPerContract  
  

说明

  
  

返回一个数值,表示从进场委托执行开始到当前时间,[url=file:///D:/MC8/Strategy_Position_Trades/OpenEntryProfitPerContract.htm]OpenEntryProfitPerContract[/url]  的最小值。

  
  

语法

  
  

OpenEntryMinProfitPerContract(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场曾经最大损失达到每手1.5 dollar,则OpenEntryMinProfitPerContract(1)返回值为-1.5

  


  OpenEntryPrice  
  

说明

  
  

返回一个数值,表示当前未平仓部位中指定进场的委托价格。

  
  

语法

  
  

OpenEntryPrice(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位的第一笔进场委托价格为101,则

  

OpenEntryPrice返回值为101.

  

如果当前未平仓部位的第二笔进场委托价格为101.5,则OpenEntryPrice(1)返回值为101.5

  


  OpenEntryProfit  
  

说明

  
  

返回一个数值,表示当前未平仓部位中指定进场的委托盈利(负值表示损失)。

  
  

语法

  
  

OpenEntryProfit(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位的第一笔进场的当前利润为10  dollar,则OpenEntryProfit返回值为10

  

如果当前未平仓部位的第二笔进场的当前损失达到10  dollar,则OpenEntryProfit(1)返回值为-10

  


  OpenEntryProfitPerContract  
  

说明

  
  

返回一个数值,表示当前未平仓部位中指定进场的每手盈利(负值表示损失)。

  
  

语法

  
  

OpenEntryProfitPerContract(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位的第一笔进场的当前利润为每手1 dollar,则OpenEntryProfitPerContract返回值为1

  

如果当前未平仓部位的第二笔进场的当前损失达到每手0.5 dollar,则OpenEntryProfitPerContract(1)返回值为-0.5

  


  OpenEntryTime  
  

说明

  
  

返回一个数值,表示当前未平仓部位中指定进场的时间。

  

时间为HHmm格式,HH24小时制时,mm为分钟。

  
  

语法

  
  

OpenEntryTime(EntryIndex)

  
  

参数

  
  

EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

此关键字只能用在信号中。

  

检测未平仓部位总笔数可以用OpenEntriesCount

  
  

范例

  
  

如果当前未平仓部位的第一笔进场时间为10:15AM,则

  

OpenEntryTime返回值为1015

  

如果当前未平仓部位的第二笔进场时间为3:45PM,则

  

OpenEntryTime(1)返回值为1545

  


  PosTradeCommission  
  

说明

  
  

返回一个绝对数值,表示指定部位和指定委托的手续费。

  
  

语法

  
  

PosTradeCommission(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

此关键字只能用在信号中。

  

检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场手续费为5  dollars,则PosTradeCommission(0,1)返回值为5

  


  PosTradeCount  
  

说明

  
  

返回一个数值,表示指定部位的总交易笔数。

  
  

语法

  
  

PosTradeCount(PosBack)

  
  

参数

  
  

PosBack——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个平仓部位);

  

2——前第二个平仓部位,依次类推。

  
  

注意

  
  

此关键字只能用在信号中。

  
  

范例

  
  

如果最近的已平仓部位有两笔进场,则PosTradeCount(1)返回值为2

  


  PosTradeEntryBar  
  

说明

  
  

返回一个绝对数值,表示指定部位和指定进场委托的BarNumber

  
  

语法

  
  

PosTradeEntryBar(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场开仓在第25Bar(即BarNumber=25),则

  

PosTradeEntryBar(0,1)返回值为25

  


  PosTradeEntryCategory  
  

说明

  
  

返回一个绝对数值,表示指定部位和指定进场的委托类别。

  

可能的委托类别有以下几种:

  

1 = Stop order (buy next Bar at close - 1 point stop)  停止单

  

2 = Limit order (buy next Bar at close + 1 point limit)  限价单

  

3 = Market order (buy next Bar market)  市价单

  

4 = Market at Close order (buy this Bar at close)  市价单

  

5 = Market at Open order (buy next Bar open)  市价单

  

6 = Reserved for special orders   为特殊委托单保留

  

7 = Reserved for special orders   为特殊委托单保留

  

8 = StopLimit order (buy 1 contracts next Bar at close - 2 point  stop close + 2 point limit)  停损限价单

  
  

语法

  
  

PosTradeEntryCategory(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场委托为停止单,则PosTradeEntryCategory(0,1)返回值为1

  


  PosTradeEntryDateTime  
  

说明

  
  

返回指定部位和指定进场委托的儒略日。作为例子请参看ComputerDateTime

  
  

语法

  
  

PosTradeEntryDateTime(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场委托的日期时间为2008/1/1,6:00AM,则PosTradeEntryDateTime(0,1)返回值为39448.25000000

  


  PosTradeEntryName  
  

说明

  
  

返回指定部位和指定进场委托名称,进场名称会显示在图表和交易追踪器委托窗口中。

  
  

语法

  
  

PosTradeEntryName(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

此关键字只能用在信号中。

  

检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场委托名称为"buy LE",则PosTradeEntryName(0,1)返回值为"buy  LE"

  


  PosTradeEntryPrice  
  

说明

  
  

返回指定部位和指定进场的价格。

  
  

语法

  
  

PosTradeEntryPrice(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

此关键字只能用在信号中。

  

检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场价格为100.2

  

PosTradeEntryPrice(0,1)返回值为100.2

  


  PosTradeExitBar  
  

说明

  
  

返回一个绝对数值,表示指定部位和指定出场委托的BarNumber

  
  

语法

  
  

PosTradeExitBar(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场在第28Bar(即BarNumber=28被平仓,则

  

PosTradeExitBar(0,1)返回值为28

  


  PosTradeExitCategory  
  

说明

  
  

返回一个绝对数值,表示指定部位和指定出场的委托类别。

  

可能的委托类别有以下几种:

  

1 = Stop order (buy next Bar at close - 1 point stop)  停止单

  

2 = Limit order (buy next Bar at close + 1 point limit)  限价单

  

3 = Market order (buy next Bar market)   市价单

  

4 = Market at Close order (buy this Bar at close)   市价单

  

5 = Market at Open order (buy next Bar open)   市价单

  

6 = Reserved for special orders    为特殊委托单保留

  

7 = Reserved for special orders    为特殊委托单保留

  

8 = StopLimit order (buy 1 contracts next Bar at close - 2 point  stop close + 2 point limit)   停损限价单

  
  

语法

  
  

PosTradeExitCategory(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔出场委托为停止单,则PosTradeExitCategory(0,1)返回值为1

  


  PosTradeExitDateTime  
  

说明

  
  

返回指定部位和指定出场委托的儒略日。

  
  

语法

  
  

PosTradeExitDateTime(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果最近的已平仓部位的第二笔出场委托的日期时间为2008/1/1,6:00AM,则

  

PosTradeExitDateTime(1,1)返回值为39448.25000000

  


  PosTradeExitName  
  

说明

  
  

返回指定部位和指定出场的委托名称,出场名称会显示在图表和交易追踪器委托窗口中。

  
  

语法

  
  

PosTradeExitName(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔进场委托名称为"sell LX",则PosTradeExitName(0,1)返回值为"sell  LX"

  


  PosTradeExitPrice  
  

说明

  
  

返回指定部位的指定出场的价格。

  
  

语法

  
  

PosTradeEntryPrice(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔交易出场价格为100.2,则PosTradeExitPrice(0,1)返回值为100.2

  


  PosTradeIsLong
  
  

说明

  
  

如果指定部位和指定交易为买单进场,则返回true,否则,返回false

  
  

语法

  
  

PosTradeIsLong(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔交易为买单进场,则

  

PosTradeIsLong(0,1)返回值为true

  


  PosTradeIsOpen  
  

说明

  
  

如果指定部位和指定交易未平仓,则返回true,已平仓,返回false

  

此关键字只对未平仓部位有意义,其他已平仓部位返回值一直为false

  
  

语法

  
  

PosTradeIsOpen(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔交易还未平仓(没有平仓委托),

  

PosTradeIsOpen(0,1)返回值为true

  


  PosTradeProfit  
  

说明

  
  

返回一个绝对数值,表示指定部位和指定交易的盈利(负值表示亏损)。

  
  

语法

  
  

PosTradeProfit(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔交易盈利为3dollars,则

  

PosTradeProfit(0,1)返回值为3

  


  PosTradeSize  
  

说明

  
  

返回一个绝对数值,表示指定部位和指定交易的合约手数。

  
  

语法

  
  

PosTradeSize(PosAgo,TradeNumber)

  
  

参数

  
  

PosAgo——数值表达式,用来指定部位:

  

0——未平仓部位;

  

1——前一个平仓部位(最后一个已平仓部位);

  

2——前第二个平仓部位,依此类推

  

TradeNumber——数值表达式,表示指定交易是第几笔进场(从0开始)。

  
  

注意

  
  

*此关键字只能用在信号中。

  

*检测指定部位总交易笔数可以用PosTradeCount

  
  

范例

  
  

如果当前未平仓部位的第二笔交易的委托合约手数为2手,

  

PosTradeSize(0,1)返回值为2

  

论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
 
期货论坛 - 版权/免责声明   1.本站发布源码(包括函数、指标、策略等)均属开放源码,用意在于让使用者学习程序化语法撰写,使用者可以任意修改语法內容并调整参数。仅限用于个人学习使用,请勿转载、滥用,严禁私自连接实盘账户交易
  2.本站发布资讯(包括文章、视频、历史记录、教材、评论、资讯、交易方案等)均系转载自网络主流媒体,内容仅为作者当日个人观点,本网转载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网不对该类信息或数据做任何保证。不对您构成任何投资建议,不能依靠信息而取代自身独立判断,不对因使用本篇文章所诉信息或观点等导致的损失承担任何责任。
  3.本站发布资源(包括书籍、杂志、文档、软件等)均从互联网搜索而来,仅供个人免费交流学习,不可用作商业用途,本站不对显示的内容承担任何责任。请在下载后24小时内删除。如果喜欢,请购买正版,谢谢合作!
  4.龙听期货论坛原创文章属本网版权作品,转载须注明来源“龙听期货论坛”,违者本网将保留追究其相关法律责任的权力。本论坛除发布原创文章外,亦致力于优秀财经文章的交流分享,部分文章推送时若未能及时与原作者取得联系并涉及版权问题时,请及时联系删除。联系方式:http://www.qhlt.cn/thread-262-1-1.html
如何访问权限为100/255贴子:/thread-37840-1-1.html;注册后仍无法回复:/thread-23-1-1.html;微信/QQ群:/thread-262-1-1.html;网盘链接失效解决办法:/thread-93307-1-1.html

返回列表