日志:
账户透视:
通过日志打印发现在11:06的时候以803.46价格多头建仓了,接着又平仓了,账户透视里没有平仓记录,同时代码里的longCurrentContracts这个参数显示也为0了。这个是什么原因导致的平仓没有记录,但是longCurrentContracts的数字显示平仓了,请帮忙答疑一下这个问题。
以下附上代码:
Params
Numeric FastMA(6); //macd短周期值
Numeric SlowMA(13); //macd长周期值
Numeric AvgMA(12); //MACD慢线周期值
Numeric FastMA2(3); //macd短周期值
Numeric SlowMA2(13); //macd长周期值
//Numeric DuoDiffValue(1.5); // 多头快线入场差值
Vars
Series<Numeric> MACDLine(0);
Series<Numeric> MACDLine2(0);
Series<Numeric> SignalLine(0);
Series<Numeric> SignalLine2(0);
Numeric ATRValue;
Numeric DuoDiffValue(0);
Global Integer BuySignal;
Events
OnBar(ArrayRef<Integer> indexs)
{
Print("当前时间:" + Text(Date)+ "-" + Text(Time));
Print("现有持仓:" + Text(longCurrentContracts));
// 计算macd快线
MACDLine = XAverage( Close, FastMA ) - XAverage( Close, SlowMA );
//计算macd慢线
SignalLine = XAverage( MACDLine, AvgMA );
//当快线上穿慢线的时候,为多头趋势
If (BuySignal == 0) {
If (MACDLine >= SignalLine AND MACDLine[1] < SignalLine[1]) {
Print("快线上穿慢线");
Print("多头建仓。");
Buy(1, Close);
BuySignal = 1;
Print("多头建仓代码已执行。建仓价格:" + Text(Close));
Print("多头建仓后,现有持仓:" + Text(longCurrentContracts));
Print("-------------------------");
}
}
// 死叉出手
If (MACDLine <= SignalLine And BuySignal == 1) {
Sell(1, Close);
BuySignal = 0;
Print("多头平仓后,现有持仓:" + Text(longCurrentContracts));
Print("-------------------------");
}
Print("===当前Bar结束===");
}