我想开10%的仓位,用了下面的函数得到仓位。但是加载策略是报错”小于最小开仓限制“,也就是说算出来的是0。请问为什么呢
Params
numeric open_position(0.1);
numeric max_position(0.8);
Vars
numeric marketvalue_unit;
numeric margin_unit;
Begin
marketvalue_unit = close * ContractUnit * BigPointValue;
margin_unit = marketvalue_unit * MarginRatio; // 每手保证金x
if ((1 - A_FreeMargin / A_CurrentEquity) <= (max_position - open_position)){
return Round((A_CurrentEquity * open_position / margin_unit), 0);
}
else if ((1 - A_FreeMargin / A_CurrentEquity) <= open_position and (1 - A_FreeMargin / A_CurrentEquity) > (max_position - open_position)){
return Round((A_CurrentEquity * (A_FreeMargin / A_CurrentEquity - (1 - max_position)) / margin_unit), 0);
}
else {
return 0;
}
End
旗舰版 无法登陆了
老师 旗舰版 的语句怎么转换成 TB QUANT语句
旗舰版新用户不能使用了
旧版语法复制到quant公式编辑器内,工具栏上方有一个代码升级,点一下自动转换。
部分变量命名如果和新的关键字冲突,手动自己改一下
你把下面代码放到策略中,调用执行一下,然后打开【控制台】把输入的日志从【开始】到【结束】部分截图发出来先看看再说。
Params
Numeric open_position(0.1);
Numeric max_position(0.8);
Vars
Numeric marketvalue_unit;
Numeric margin_unit;
Begin
marketvalue_unit = close * ContractUnit * BigPointValue;
margin_unit = marketvalue_unit * MarginRatio; // 每手保证金x
Print(\"==================开始==========================\");
Print(\"最新价 = \" + Text(close));
Print(\"每张合约单位数量 = \" + Text(ContractUnit));
Print(\"合约整点价值 = \" + Text(BigPointValue));
Print(\"保证金比率 = \" + Text(MarginRatio));
Print(\"每手保证金 = \" + Text(margin_unit));
Print(\"可用资金 = \" + Text(A_FreeMargin));
Print(\"动态权益 = \" + Text(A_CurrentEquity));
Print(\"最大仓位 = \" + Text(max_position));
Print(\"开仓仓位 = \" + Text(open_position));
Print(\"==================结束==========================\");
if((1 - A_FreeMargin / A_CurrentEquity) <= (max_position - open_position)){
return Round((A_CurrentEquity * open_position / margin_unit), 0);
}else if((1 - A_FreeMargin / A_CurrentEquity) <= open_position and (1 - A_FreeMargin / A_CurrentEquity) > (max_position - open_position)){
return Round((A_CurrentEquity * (A_FreeMargin / A_CurrentEquity - (1 - max_position)) / margin_unit), 0);
}else{
return 0;
}
End
老师,可用资金和动态权益Print出来后都是N/A,请问怎么解决