- 精华
- 0
- 在线时间
- 38 小时
- UID
- 264520
- 积分
- 29
- 帖子
- 18
- 阅读权限
- 10
- 注册时间
- 2018-4-16
- 最后登录
- 2021-2-26
- 精华
- 0
- UID
- 264520
- 积分
- 29
- 帖子
- 18
- 主题
- 11
- 阅读权限
- 10
- 注册时间
- 2018-4-16
- 最后登录
- 2021-2-26
|
本帖最后由 a2456cn 于 2018-4-23 16:13 编辑
模型中相关语句:
Numeric MoneyUsedRatio(0.01); //资金比例。
Numeric Unit(10); // 交易单位
Begin
TR = max(max((High-low),abs(close[1]-high)),abs(close[1]-low)); //求atr
ATR = AverageFC(TR,26); // 26周的atr平均值
TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin(); //求可用资金
Units = IntPart((TotalEquity*MoneyUsedRatio)/(Unit*ATR)); //按照资金比例计算可以开仓的手数量。
else if ( CurrentContracts<(4*Units) ) //没有超过连续建仓4次头寸的时候。
{
dTmp = EtPrice[BarsSinceLastEntry]+atr[BarsSinceLastEntry]*NAtrOfAddPosition;
//多头加仓,实时的最高价格超过最近一次开仓价格+开仓价格的atr的0.5倍则继续建立头寸。
if( High>dTmp )
{
EtPrice = max(open,dTmp);
Buy(Units,EtPrice);
}
}
}
else if ( CurrentContracts<(4*Units) )
{
dTmp = EtPrice[BarsSinceLastEntry]-atr[BarsSinceLastEntry]*NAtrOfAddPosition;
if( low<dTmp )
{
EtPrice = min(open,dTmp);
SellShort(Units,EtPrice);
}
}
}
End
发现这个else if ( CurrentContracts<(4*Units) )控制根本不起作用,只要超过0.5倍ATR就一直连续开仓,稍微有点趋势就多达十次以上。到底是哪里出了问题呢? |
|