
等级: 新手上路
- 注册:
- 2022-1-6
- 曾用名:
|
后台模型,组合多个品种,按照以下算法计算当前监控品种的手数变量
// 波动率调仓
AVGTR := REF(MA(TR,20),1) ; // 上一个ATR
Qty := max(1,INTPART((1000000*RiskRatio/100) / (AVGTR*MULTIPLIER))); // 利用ATR计算手数
// 最大市值
maxQty := MAX(1,INTPART(300000/(Open*MULTIPLIER)));//按照市值计算开仓手数
vQty := min(20,MIN(Qty,maxQty)); // 控制最大手数不超过20手
今天在IM2211合约上发出了买入多单,结果开出了20手,只有一个原因就是就是计算公式超出了20手,才会用20来限制。但是在IM2211合约上,按照上面的公式计算出的手数只可能是1,按照当时IM价格6480计算,
maxQty := MAX(1,INTPART(300000/(Open*MULTIPLIER))) = max(1,300000/(6480*200)) = max(1,0.23)=1
,那么超过20的从哪里来的?会不会因为是后台模型,把其他品种的计算手数给算到IM合约里面了呢?
|
|