优化编写2 - 头寸管理

头寸管理即交易中资金的使用计划,通常涉及资金回撤控制和交易手数,通过对头寸的管理可以让交易风险在可控范围内盈利最大化。

常见的头寸管理需求以及编写如下:

思路1:权益回撤控制

例如:

权益回撤比,超过一定比例清仓,停止模型运行

HM:=HHV(MONEYTOT,BARPOS);

QY:(HM-MONEYTOT)/HM;//权益回撤比

QY>0.2,SP;//权益回撤超过20%,多头止损

QY>0.2,BP;//权益回撤超过20%,空头止损

思路2:开仓仓位管理

开仓仓位的管理手段,通常是按资金使用率计算下单手数;

可以在模型中写入SETDEALPERCENT函数实现开仓仓位管理,可按资金使用率计算每次下单手数,合理控制开仓头寸;

用法:SETDEALPERCENT(fPercent,N):按理论资金比例下单,每次按当前理论资金的fPercent比例下单,且最大为N手。

例如:

SETDEALPERCENT(20); //每次按理论资金比例的20%下单

思路3:根据上一次交易的盈亏,动态调整开仓手数

例如:

固定手数开仓,亏损后下一次开仓手数+1,最大下单10手

N:=1;//固定开仓手数

Q:=TNUMSEQLOSS;//持续亏损的次数

T:=IF(LASTOFFSETPROFIT>=0||(COUNTSIG(BK,BARPOS)+COUNTSIG(SK,BARPOS)=0),N,N+Q);

//亏损+1手,盈利恢复默认1手

TC:=MIN(T,10);//最大持仓10手

T_COMMAND(TC);//首次建仓手数

CROSS(CLOSE,MA(C,10)),BK;

CLOSE<=BKPRICE-15*MINPRICE,SP;

CROSSDOWN(CLOSE,MA(C,10)),SK;

CLOSE>=SKPRICE+15*MINPRICE,BP;

AUTOFILTER;