问题:
Condition1 = MA4[1]<MA2[1]&&MA4[2]>MA2[2];
Condition2 = MA4[1]<MA3[1]&&MA4[2]>MA3[2];
If( MarketPosition ==0 && Condition1 ==True)
{
SellShort(CC,Open);
}
If(MarketPosition == -1)
{
If(Condition2 == true)
{
BuyToCover(CC,Open);
}
网友回答:
如果条件都满足了,是有可能同一根K线开仓的。
楼主可以在公式里增加一些调试语句,看看条件的满足情况。
另, MarketPosition 的值同一根K线上,开仓之后就会改变的,仅靠它控制不了同一根K线开平仓
您好,我这样改写之后还是同一根k线反复开平,请看看哪里出错了谢谢
NumericSeries MA1;
NumericSeries MA2;
NumericSeries MA3;
NumericSeries MA4;
Begin
MinPoint = MinMove*PriceScale;
MyEntryprice = AvgEntryPrice;
MA1 = AverageFC(CLOSE,N1);
MA2 = MA1+N3*AvgTrueRange(N2);
MA3 = MA1-N3*AvgTrueRange(N2);
MA4 = AverageFC(CLOSE,5);
Condition1 = MA4[1]<MA2[1] && MA4[2]>MA2[2] && MA4[1]>MA3[1] && MA4[2]>MA3[2];
Condition2 = MA4[1]>MA3[1] && MA4[2]<MA3[2] && MA4[1]<MA2[1] && MA4[2]<MA2[2];
If( MarketPosition <>-1 && Condition1 ==True)
{
SellShort(CC,Close);
}
If(MarketPosition == -1)
{
If(Condition2 == true)
{
BuyToCover(CC,Open);
}
要用A函数,你这系统在实盘之中,buy函数几乎有着严重的滞后性!