同一秒内既开仓又平仓的问题
老师。我的公式出现同一秒既卖出开仓又平空仓(买入开仓与平多没问题)。请问问题在哪?----------------------------
malong=Average(close,longlen); //计算长均线
mashort=Average(close,shortlen); //计算短均线
conCrossOver=CrossOver(mashort,malong); //金叉
conCrossUnder=CrossUnder(mashort,malong); //死叉
…………
if(A_TotalPosition()==0)
{
if(buycondition and GetGlobalVar(2) == 0)
{
SetGlobalVar(0,2);
A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
SetGlobalVar(2,1);
SetGlobalVar(1,CurrentTime);
Return;
}
if(sellcondition and GetGlobalVar(2) == 0)
{
SetGlobalVar(0,3);
A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);
SetGlobalVar(2,1);
SetGlobalVar(1,CurrentTime);
Return;
}
}
if(A_SellPosition()>0 and GetGlobalVar(0) == 3 and GetGlobalVar(3) == 0)
{
If(conCrossOver)
{
A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);
SetGlobalVar(3,1);
SetGlobalVar(1,CurrentTime);
Return;
}
if(High-EntryPrice>=i_reverse)
{
A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);
SetGlobalVar(3,1);
SetGlobalVar(1,CurrentTime);
Return;
}
}
if(A_BuyPosition()>0 and GetGlobalVar(0) == 2 and GetGlobalVar(3) == 0)
{
If(conCrossUnder )
{
A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
SetGlobalVar(3,1);
SetGlobalVar(1,CurrentTime);
Return;
}
if(EntryPrice-Low>=i_reverse)
{
A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
SetGlobalVar(3,1);
SetGlobalVar(1,CurrentTime);
Return;
}
}
已经解决 concrossover,与concorssunder声明的是bool 还是boolseries? 在这里,
concrossover,与concorssunder声明的是bool 还是boolseries,会有区别吗?我声明的是bool,但没有发现问题.
我发现同一秒既开仓又平仓,是因为EntryPrice用的不对.这是一个超级图表信号,而我用的是A函数发单,结果EntryPrice每次估计都为0 后来,我将EntryPrice改为A_SellAvgPrice,就正常了
页:
[1]