请问老师个关于自动计算账户资金最大可开仓手数的问题
请问老师策略里定义了初始资金,也添加了:Lots=max(1,intpart(Fund/(O*ContractUnit*BigPointValue*MarginRatio))); 代码,为啥开仓时还是1手? 谢谢
请问老师策略里定义了初始资金,也添加了:Lots=max(1,intpart(Fund/(O*ContractUnit*BigPointValue*MarginRatio))); 代码,为啥开仓时还是1手? 谢谢
怎么说呢要么是软件有bug,要么是你代码写错了如果觉得软件有bug,请提交代码demo证明软件有bug。如果是代码写错了,也要提交代码,看到代码才能分析你哪里写错了。所以为啥开仓还是1手?我也不知道为什么。
回复:Numeric NC(11); // 用于计算成交量加权指数的周期参数 Numeric N(60); // 计算最高价和最低价的周期参数 Numeric Fund(5000); // 初始资金(单位:元) //Numeric ProfitPoints(30); // 盈利目标点数(这里假设价格变动单位与点数一致,如需调整根据实际情况) //Numeric LossPoints(10); //亏损20点平仓 Vars //此处添加参数 Series<Numeric> VJQ; // 成交量加权指数 bool B(false); // 多头势判断变量 bool S(false); // 空头势判断变量 Series<bool> BuyPK(false); // 多头入场信号 Series<bool> SellPK(false); // 空头入场信号 Series<bool> BuyP(false); // 多头持仓且出现多头势的信号(用于反手等逻辑判断,可根据实际需求调整使用方式) Series<bool> SellP(false); // 空头持仓且出现空头势的信号(用于反手等逻辑判断,可根据实际需求调整使用方式) Series<Numeric> HH; // 最高价序列 Series<Numeric> LL; // 最低价序列 Series<Numeric> Lots; //定义手数,计算可开仓手数 Events onBar(ArrayRef<Integer> indexs) { //此处添加代码正文 //Lots=max(1,intpart(Fund/(O*ContractUnit*BigPointValue*MarginRatio))); VJQ=XAverage(V*(C-C[NC]),N); //定义成交量加权指数为VJQ B=VJQ>0; //定义多头势 S=VJQ<0; //定义空头势 HH=Highest(C,N); LL=Lowest(C,N); BuyPK=MarketPosition<=0 and CurrentBar>N and B and H>=HH; SellPK=MarketPosition>=0 and CurrentBar>N and S and L<=LL; BuyP=Marketposition==-1 and B; SellP=Marketposition==1 and S; //入场 If (BuyPK[1]) { Buy(Lots,Open); Commentary("BK"); } 请帮我看看是哪里的问题 谢谢老师
回复:你这是注释掉了,注释后的语句是没有任何效果的
回复:没有注释也只开1手,这里是我故意注释的,其他的没什么问题吗?谢谢老师
回复:和Lots的计算结果有关的,就是Fund、O、ContractUnit、Bigpointvalue、marginRatio这几个变量,把它们的值显示出来,然后核算一下,问题在哪就都清楚了。