MultiCharts编程-PowerLanguage-Strategy Position Trades策略部位交易
- UID
- 2
- 积分
- 2893117
- 威望
- 1396590 布
- 龙e币
- 1496527 刀
- 在线时间
- 13326 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-12-26
|
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 | 说明 | 返回一个数值,表示当前未平仓部位中指定进场的委托日期。 日期格式显示为YYYMMdd,YYY表示自1900年开始的年份,MM表示月份,dd表示当月第几日。 | 语法 | OpenEntryDate(EntryIndex) | 参数 | EntryIndex——数值表达式,表示指定交易是第几笔进场(从0开始)。 | 注意 | *此关键字只能用在信号中。 *检测未平仓部位总笔数可以用OpenEntriesCount。 | 范例 | 如果当前未平仓部位的第二笔进场委托在2011年4月2日产生,则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格式,HH为24小时制时,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。 | 范例 | 如果当前未平仓部位的第二笔进场开仓在第25根Bar(即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。 | 范例 | 如果当前未平仓部位的第二笔进场在第28根Bar(即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 |
|
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|