请问老师策略里定义了初始资金,也添加了: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这几个变量,把它们的值显示出来,然后核算一下,问题在哪就都清楚了。