MultiCharts编程-PowerLanguage-Strategy Position策略部位
- UID
- 2
- 积分
- 2874674
- 威望
- 1387366 布
- 龙e币
- 1487308 刀
- 在线时间
- 13156 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-11-24
|
MultiCharts编程-PowerLanguage-Strategy Position策略部位
第24章 Strategy Position策略部位 策略部位信息包括:进出场名称、进出场日期时间(可锁定图表的横坐标)、进场场点位(锁定图表的纵坐标)、进出场后至今的K线数目、持仓方向(marketposition)和大小(currentcontracts)、最大的盈亏金额、图表策略的指定部位的盈亏状况等。 策略部位的信息是指某信号策略插入到图表后,图表上对应的部位信息,并不对应任何实盘或模拟账号。策略部位和经纪商部位可能不一致(因保证金不足或滑价等原因导致),一种方法是,可以结合第1章的取得实盘账户资金和部位的函数,当策略部位和经纪商账户部位不一致时,进行仓位调整或加入更严谨的策略逻辑。另外一种方法:结合本章的MarketPosiont_at_Broker_for_The_Strategy关键字,取得自动交易对应的策略所在图表的经纪商部位(实际取得是交易追踪器目前已成交后的部位情况)。 本章节的关键字多是针对单进单出的策略,对于有加仓或分批出场的策略,无法取到更详细的策略部位信息。若取加仓或分批出场的信息,请至第26章中PosTrade系列中查看对应的关键字。 BarsSinceEntry | 说明 | 返回指定部位进场至今的k棒数量的数值。 | 语法 | BarsSinceEntry(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 取得目前仓位进场后的K棒数量,并存于变量 Value1: Value1= BarsSinceEntry; 取得最近一笔平仓部位距今多少根K棒数量的,并存入变量Value1: Value1= BarsSinceEntry(1); |
BarsSinceExit | 说明 | 返回指定部位出场至今的k棒数量的数值。 | 语法 | BarsSinceExit(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 取得最近一笔平仓部位距今多少根K棒数量的,并存入变量Value1: Value1= BarsSinceExit(1); |
ContractProfit | 说明 | 返回指定部位的每手平均损益。 | 语法 | ContractProfit | 注意 | 此功能只能用于信号或函数中。 | 范例 | 计算目前未平仓部位每手平均损益,并存入变量Value1: Value1= ContractProfit; |
CurrentContracts/CurrentShares | 说明 | 返回目前部位手数数值。 | 语法 | 函数或信号脚本:CurrentContracts或CurrentShares 函数或信号或指标脚本:i_CurrentContracts或i_CurrentShares | 范例 | CurrentContracts在部位为多头1手时,返回1 CurrentContracts在部位为空头3手时,返回3 |
CurrentEntries | 说明 | 返回目前部位的进场笔数。 | 语法 | CurrentEntries | 注意 | 此功能只能用于信号或函数中。 | 范例 | 取的目前部位的进场笔数,并存于变量Value1: Value1= CurrentEntries; |
EntryDate | 说明 | 返回指定部位第一笔进场的日期。 | 语法 | EntryDate(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 将目前部位第一笔进场日期存入变量Value1;若进场日期为2008年10月,则Value1=1081030:
Value1= EntryDate; 将最后一个平仓部位第一笔进场的日期存入变量Value1;若进场日期为1999年4月2日,则Value1=990402:
Value1= EntryDate(1); |
EntryName | 说明 | 返回指定部位第一笔进场的信号名称。 | 语法 | EntryName(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 将目前部位第一笔进场信号名称存入变量Value1;若进场信号名称为Buy1,则Value1=”Buy1”:
Value1= EntryName; 将最后一个平仓部位第一笔进场的信号名称存入变量Value1;若进场信号名称为Buy1,则Value1=”Buy1”:
Value1= EntryName(1); |
EntryPrice | 说明 | 返回指定部位第一笔进场的价格。 | 语法 | EntryPrice(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 将目前部位第一笔进场价格存入变量Value1:
Value1= EntryPrice; 将最后一个平仓部位第一笔进场的价格存入变量Value1: Value1= EntryPrice(1); |
EntryTime | 说明 | 返回指定部位第一笔进场的时间。 | 语法 | EntryTime(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 将目前部位第一笔进场时间存入变量Value1;若进场时间为上午10:15,则Value1=1015:
Value1= EntryTime; 将最后一个平仓部位第一笔进场的时间存入变量Value1;若进场日期为下午2:45,则Value1=1445:
Value1= EntryTime(1); |
ExitDate | 说明 | 返回指定部位最后一笔出场的日期。 | 语法 | ExitDate(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 将上一个平仓部位最后一笔出场日期存入变量Value1: Value1= ExitDate(1); 若出场日期为2008年10月,则Value1=1081030 |
ExitName | 说明 | 返回指定部位最后一笔出场的信号名称。 | 语法 | ExitName(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 将最后一个平仓部位最后一笔出场的信号名称存入变量Value1: Value1= ExitName(1); 若出场信号名称为Sell1,则Value1=”Sell1” |
ExitPrice | 说明 | 返回指定部位最后一笔出场的价格。 | 语法 | ExitPrice(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 将上一个平仓部位最后一笔出场的价格存入变量Value1: Value1= ExitPrice(1); |
ExitTime | 说明 | 返回指定部位最后一笔出场的时间。 | 语法 | ExitTime(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 | 注意 | 此功能只能用于信号或函数中。无法取加仓的信息。 | 范例 | 将最后一个平仓部位最后一笔出场的时间存入变量Value1: Value1= ExitTime(1); 若出场时间为下午2:45,则Value1=1445 |
MarketPosition | 说明 | 请参看第23章中关键字i_MarketPosition/MarketPosition |
i_MarketPosition _at_Broker MarketPosition _at_Broker | 说明 | 返回目前商品在经纪商的部位数量及状态。 返回正值表示多头持仓,返回负值表示空头持仓。 当持仓平掉或自动交易关闭时,返回数值”0”。 | 语法 | 信号脚本:MarketPosition _at_Broker 函数及指标脚本:i_ MarketPosition _at_Broker | 注意 | *此功能和MarketPosition不同,仅能获取的目前最新的状态,无法透过参数取得历史交易资料。 *此功能只能用于 Interactive Brokers, Patsystems和Zen-Fire经纪商。 | 范例 | 目前部位为多头3手,则MarketPosition _at_Broker会返回3 目前部位为空头3手,则i_ MarketPosition _at_Broker会返回-3 目前部位为空手,则MarketPosition _at_Broker
会返回0 |
i_ MarketPosition _at_Broker_for_The_Strategy MarketPosition _at_Broker_for_The_Strategy | 说明 | 返回目前商品在经纪商的部位数量及状态。 返回正值表示多头持仓,返回负值表示空头持仓。 当持仓平掉或自动交易关闭时,返回数值”0”。 | 语法 | 信号脚本:MarketPosition _at_Broker_for_ The_Strategy 函数及指标:i_ MarketPosition _at_Broker_for_ The_Strategy
| 注意 | 此功能和MarketPosition不同,仅能获取的目前最新的状态,无法透过参数取得历史交易资料。 | 重要提示 | 如果用户手动关闭自动交易,关键字返回值不再改变,有可能保持非0值。 | 范例 | MarketPosition _at_Broker_for_ The_Strategy当部位为多头3手时,将会返回3 MarketPosition _at_Broker_for_ The_Strategy当部位为空头3手时,将会返回-3 MarketPosition _at_Broker_for_ The_Strategy当无持仓或自动交易未开启时,将会返回0 |
MaxContractProfit | 说明 | 返回目前部位曾获得的每手最大获利。 | 语法 | MaxContractProfit | 注意 | 此功能只能用于信号或函数中。 | 范例 | 计算目前未平仓部位曾获得的每手最大获利,并存于变量Value1: Value1= MaxContractProfit; |
MaxContracts/MaxShares | 说明 | 返回指定部位最大手数的绝对值。 | 语法 | MaxContracts (PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若目前无持仓,则MaxContracts会返回0 若最后一次平仓的部位最大曾有10手多头或空头, 则MaxContracts (1) 会返回10 |
MaxEntries | 说明 | 返回指定部位总共进场的笔数。 | 语法 | MaxEntries(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若最后一次平仓的部位是分2笔进场,则MaxEntries (1)会返回2 |
MaxPositionsAgo | 说明 | 返回过去曾经交易过的次数。 | 语法 | MaxPositionsAgo | 范例 | 若策略过去总共交易过2次,则MaxPositionsAgo会返回2 |
MaxPositionLoss | 说明 | 返回指定部位持有期间内出现的最大亏损数值。 | 语法 | MaxPositionLoss(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若最后一次平仓的部位持有期间的最大亏损为20, 则MaxPositionLoss(1)会返回-20 |
MaxPositionProfit | 说明 | 返回指定部位持有期间内出现的最大获利数值。 | 语法 | MaxPositionProfit(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若最后一次平仓的部位持有期间的最大获利为20, 则MaxPositionProfit(1)会返回20 |
OpenPositionProfit | 说明 | 返回目前未平仓部位的获利(亏损)金额。 | 语法 | OpenPositionProfit | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若目前无持仓,即OpenPositionProfit会返回 0 若目前部位获利5,即OpenPositionProfit会返回 5 若目前部位亏损10,即OpenPositionProfit会返回 -10 |
PositionProfit | 说明 | 返回指定部位的获利(亏损)金额。 | 语法 | PositionProfit(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若目前无持仓,则PositionProfit会返回 0 若目前未平仓部位获利5,则PositionProfit会返回 5 若目前未平仓部位亏损5,则PositionProfit会返回 -5 |
|
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|