MultiCharts编程-PowerLanguage-Strategy Performance策略绩效
- UID
- 2
- 积分
- 2892817
- 威望
- 1396440 布
- 龙e币
- 1496377 刀
- 在线时间
- 13326 小时
- 注册时间
- 2009-12-3
- 最后登录
- 2024-12-26
|
MultiCharts编程-PowerLanguage-Strategy Performance策略绩效
策略绩效关键字,可以帮助我们更好的管理资金。比如我们希望按资金的百分比来管理进场,可参考如下程序: - Input: initialcap(1000000),entrypercent(0.5),marginpercent(0.15);
- Var: totalequity(0),entrysize(0),marginpercontract(0);
- Totalequity=initialcap+netprofit+openpositionprofit;
- Marginpercontract= close*bigpointvalue*marginpercent;
- Entrysize=IntPortion(totalequity*entrypercent/Marginpercontract);
- If h>h[1] and condition1 then
- Buy("LE") entrysize contracts next bar at market;
复制代码
其中,condition1是其他的买入进场条件,entrypercent是进场的百分比,marginpercent是保证金比例,totalequity是目前账户总权益,marginpercontract是每手合约所占用的保证金,entrysize是可进场的总手数。 使用者可以根据资金状况和策略思想,结合本章提供的关键字,来构建有效的资金管理模型。 本章的关键字有些可写入函数中,再被信号调用,不可以写在指标中或所在函数不可以被指标调用。 AvgBarsEvenTrade | 说明 | 返回一个数值,表示损益两平交易的平均持仓时间(以K棒数量表示)。 | 语法 | AvgBarsEvenTrade | 注意 | 此功能只能用于信号。 | 范例 | 如果有4笔损益两平交易,分别持仓时间为2,5,3,4根K棒,则AvgBarsEvenTrade
将返回数值3.5。
|
AvgBarsLosTrade | 说明 | 返回一个数值,表示亏损交易的平均持仓时间(以K棒数量表示)。 | 语法 | AvgBarsLosTrade | 注意 | 此功能只能用于信号。 | 范例 | 若有四笔亏损交易,分别持仓时间为2,5,3,4根K棒,则 AvgBarsLosTrade将返回数值3.5。
|
AvgBarsWinTrade | 说明 | 返回一个数值,表示获利交易的平均持仓时间(以K棒数量表示)。 | 语法 | AvgBarsWinTrade | 注意 | 此功能只能用于信号。 | 范例 | 若有四笔盈利交易,分别持仓时间为2,5,3,4根K棒,则 AvgBarsWinTrade
将返回数值3.5。
|
AvgEntryPrice/i_AvgEntryPrice | 说明 | 返回目前未平仓部位的平均成本。 | 语法 | 信号:AvgEntryPrice 函数或指标:i_AvgEntryPrice | 范例 | 若有三笔未平仓交易,进场价各为95,105,103,则AvgEntryPrice返回数值101。 |
AvgEntryPrice_at_Broker | 说明 | 返回目前商品在经纪商处未平仓部位的平均价格。 返回正值表示多头持仓,返回负值表示空头持仓。 当持仓平掉或自动交易关闭时,返回数值”0”。 | 语法 | AvgEntryPrice_at_Broker | 注意 | *此功能只能用于信号和函数。 *此功能只能用于 Interactive Brokers, Patsystems和Zen-Fire经纪商。 | 重要提示 | 如果用户手动关闭自动交易,关键字返回值不再改变,有可能保持非0值。 | 范例 | 如果某交易的商品当前在经纪商处有一笔未平仓交易,进场价102,则AvgEntryPrice_at_Broker
返回值为102。
|
AvgEntryPrice_at_Broker_for_The_Strategy | 说明 | 返回目前经纪商处此策略的未平仓部位的平均价格。 返回正值表示多头持仓,返回负值表示空头持仓。 当持仓平掉或自动交易关闭时,返回数值”0”。 | 语法 | AvgEntryPrice_at_Broker_for_The_Strategy | 注意 | *此功能只能用于信号和函数。 *需开启自动交易才可取到值。 *计算未平仓的平均价依据交易追踪器的委托中的「已成交」栏位的价格。 | 重要提示 | 如果用户手动关闭自动交易,关键字返回值不在改变,有可能保持非0值。 | 范例 | 若当前策略在经纪商处有两笔未平仓多头交易,分别为一手进场价为98,一手进场价为102,则AvgEntryPrice_at_Broker_for_The_Strategy
返回值为 100 。 |
GrossLoss | 说明 | 返回目前亏损交易总金额(毛损)。 | 语法 | GrossLoss | 注意 | 此功能只能用于信号。 | 范例 | 若有四笔亏损交易,分别亏损10,5,20及15,则GrossLoss会返回-50 若在整个交易期间内没有亏损交易,则GrossLoss会返回0 |
GrossProfit | 说明 | 返回目前盈利交易总金额(毛利)。 | 语法 | GrossProfit | 注意 | 此功能只能用于信号 | 范例 | 若有四笔盈利交易,分别盈利10,5,20及15,则GrossProfit会返回50 若在整个交易期间内没有盈利交易,则GrossProfit会返回0 |
i_AvgEntryPrice_at_Broker | 说明 | 返回目前经纪商处未平仓部位的平均价格。 | 语法 | i_AvgEntryPrice_at_Broker | 注意 | *i_AvgEntryPrice_at_Broker
只返回未平仓部位的平均进场价。 *i_AvgEntryPrice_at_Broker
只能用在指标中。 *i_AvgEntryPrice_at_Broker
只在有信号的数据中才有返回值。 *测试结果:无论是否开启自动交易,在有未平仓的持仓时,返回值都是0。不建议使用。 | 范例 | 如果当前有3笔未平仓交易,进场价分别为140,170及200,则i_AvgEntryPrice_at_Broker
返回值为 170。 如果当前有4笔未平仓交易,进场价分别为54,48,60及50,则i_AvgEntryPrice_at_Broker返回值为 53。 |
i_AvgEntryPrice_at_Broker_for_The_Strategy | 说明 | 用来在指标中提取信号信息。 返回值与AvgEntryPrice_at_Broker_for_The_Strategy一致。 |
i_ClosedEquity | 说明 | 返回目前已实现的损益(已平仓的总净利)。 | 语法 | i_ClosedEquity | 注意 | 测试结果:该关键字可用于函数、信号、指标中任何一个。 | 范例 | 若已平仓部位的获利为100元,则i_ClosedEquity会返回100 |
i_CurrentContracts/i_CurrentShares | 说明 | 与CurrentContracts/CurrentShares 功能相同,用于函数脚本中。 | 注意 | 测试结果:该关键字可用于函数、信号、指标中任何一个。 |
i_MarketPosition/MarketPosition | 说明 | 返回代表指定部位多空状态的数值。 | 语法 | 信号或函数或指标中:i_MarketPosition 信号或函数中:MarketPosition(PosBack) | 参数 | PosBack——数值表达式,用来指定部位: 0——未平仓部位; 1——上一个平仓部位(最后一个平仓部位); 2——上二个平仓部位,依次类推。 若PosBack未指定,则预设为未平仓部位。 | 返回 | 1——多头部位 0——无持仓 -1——空头部位 | 注意 | i_MarketPosition 没有参数,只能用在当前部位情况。 | 范例 | 若目前无持仓,则MarketPosition将会返回0 若目前部位为多头,则MarketPosition或i_MarketPosition返回1 若上一个平仓部位为空头,则MarketPosition(1)会返回-1 |
i_OpenEquity | 说明 | 返回目前未实现的损益(净利+未平仓损益)。 | 语法 | i_OpenEquity | 注意 | 此功能可用于函数、信号、指标中。 i_OpenEquity=netprofit+openpositionprofit | 范例 | 若当前未实现的获利为100元,则i_OpenEquity会返回100 若当前未实现的亏损为100元,则i_OpenEquity会返回-100 |
LargestLosTrade | 说明 | 返回亏损交易中的最大亏损金额(单笔最大亏损交易)。 | 语法 | LargestLosTrade | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若四笔亏损交易,分别亏损10,5,20,15,则LargestLosTrade会返回-20 若无亏损交易,则LargestLosTrade会返回0 |
LargestWinTrade | 说明 | 返回获利交易中的最大获利金额(单笔最大盈利交易)。 | 语法 | LargestWinTrade | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若四笔获利交易,分别亏损10,5,20,15,则LargestWinTrade会返回20 若无获利交易,则LargestWinTrade会返回0 |
MaxConsecLosers | 说明 | 返回最大连续亏损交易次数。 | 语法 | MaxConsecLosers | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若交易最多曾连续3笔亏损,则MaxConsecLosers会返回3 若无任何交易,则MaxConsecLosers会返回0 |
MaxConsecWinners | 说明 | 返回最大连续盈利交易次数。 | 语法 | MaxConsecWinners | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若交易最多曾连续3笔盈利,则MaxConsecWinners会返回3 若无任何交易,则MaxConsecWinners会返回0 |
MaxContractsHeld/MaxSharesHeld | 说明 | 返回曾经同时持有的最大未平仓手数(最大持有合约数量)。 | 语法 | MaxContractsHeld 或 MaxSharesHeld | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若未平仓部位最大有10手,则MaxSharesHeld会返回10 |
MaxIDDrawDown | 说明 | 返回在交易期间内出现的最大权益资金减损金额,返回负值。 即策略最大潜在亏损。 | 语法 | MaxIDDrawDown | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若整个交易期间,权益资金最大减损为500,则MaxIDDrawDown会返回-500 |
NetProfit | 说明 | 返回交易净利总金额(总净利)。 | 语法 | NetProfit | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若有两笔获利交易,分别获利25及10,有两笔亏损交易,分别亏损5及10,则NetProfit会返回20 若有两笔交易,分别获利10及5,有两笔亏损交易,分别亏损20及15,则NetProfit会返回-15 若未进行任何交易,则NetProfit会返回0 |
NumEvenTrades | 说明 | 返回损益两平交易的总笔数。 | 语法 | NumEvenTrades | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若有10笔损益两平交易,则NumEvenTrades会返回10 若无损益两平交易,则NumEvenTrades会返回0 |
NumLosTrades | 说明 | 返回亏损交易的总笔数。 | 语法 | NumLosTrades | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若投资组合有5笔亏损交易,则NumLosTrades会返回5 若投资组合无任何交易,则NumLosTrades会返回0 |
NumWinTrades | 说明 | 返回盈利交易的总笔数。 | 语法 | NumWinTrades | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若投资组合有5笔盈利交易,则NumWinTrades会返回5 若投资组合无任何交易,则NumWinTrades会返回0 |
PercentProfit | 说明 | 返回获利交易次数的比例。 | 语法 | PercentProfit | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若总交易笔数为10笔,其中7笔为获利交易,则PercentProfit会返回70 |
TotalBarsEvenTrades | 说明 | 返回损益两平交易的总持仓时间(以K棒数量表示)。 | 语法 | TotalBarsEvenTrades | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若有4笔损益两平交易,持仓时间各为2,5,3及4根K棒。则TotalBarsEvenTrades会返回14。 若无损益两平交易,则TotalBarsEvenTrades会返回0。 |
TotalBarsLosTrades/TotalBarsLosTrade | 说明 | 返回亏损交易的总持仓时间(以K棒数量表示)。 | 语法 | TotalBarsLosTrades 或 TotalBarsLosTrade | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若有4笔亏损交易,持仓时间各为2,5,3及4根K棒。则TotalBarsLosTrades会返回14。 若无亏损交易,则TotalBarsLosTrades会返回0。 |
TotalBarsWinTrades/TotalBarsWinTrade | 说明 | 返回盈利交易的总持仓时间(以K棒数量表示)。 | 语法 | TotalBarsWinTrades 或 TotalBarsWinTrade | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若有4笔盈利交易,持仓时间各为2,5,3及4根K棒。则TotalBarsWinTrades会返回14。 若无盈利交易,则TotalBarsWinTrades会返回0。 |
TotalTrades | 说明 | 返回目前交易总笔数。 | 语法 | TotalTrades | 注意 | 此功能只能用于信号或函数中。 | 范例 | 若总共交易5笔,则TotalTrades会返回5 若无交易记录,则TotalTrades会返回0 |
|
论坛官方微信、群(期货热点、量化探讨、开户与绑定实盘)
|
|
|
|
|
|