请教高手,这个代码有什么错误?
这是我写的,根据前根K的高点决定开多仓,盈利30点止盈,亏损10点止损。时间限制是白盘和夜盘都是开盘后五分钟开始执行,收盘前10分钟结束。但实际执行下来,全部都是在每天第6或第7分钟开仓,到了收盘前9分钟平仓。
我找不出错误,请教各位老师,各位高手,问题在哪?Params
Numeric D1(5);
Numeric D2(5);
Numeric EARNPOINT(30);
Numeric LOSSPOINT(10);
Vars
BoolSeries KDALLOW(False);
BoolSeries PDALLOW(False);
NumericSeries BKPRICE;
Numeric SKPRICE;
Numeric STOPPRICE;
Numeric EARNPRICE;
Bool Time1(False);
Bool Time2(False);
Begin
Time1=(Time>=0.0905) And (Time<=0.1450);
Time2=(Time>=0.2105 And Time<=0.2320);
IF(Time1 Or Time2)
{
If(High>Highest(High,D1))
{
KDALLOW=True;
}
If(Low<Lowest(Low,D2))
{
PDALLOW=True;
}
If(KDALLOW==True And PDALLOW==True)
{
KDALLOW=False;
PDALLOW=False;
}
If(KDALLOW==True And MarketPosition==0)
{
SellShort(1,Open);
KDALLOW=False;
BKPRICE=Open;
Commentary("开仓价:"+Text(BKPRICE));
}
If(MarketPosition==1)
{
EARNPRICE=BKPRICE+EARNPOINT*MinMove*PriceScale;
STOPPRICE=BKPRICE-LOSSPOINT*MinMove*PriceScale;
If(LOW<STOPPRICE)
{
SKPRICE=Min(STOPPRICE,Open);
BuyToCover(1,SKPRICE);
BKPRICE=0;
Commentary("止损:"+Text(SKPRICE));
}
Else If(High>EARNPRICE)
{
SKPRICE=Max(EARNPRICE,Open);
BuyToCover(1,SKPRICE);
BKPRICE=0;
Commentary("止盈:"+Text(SKPRICE));
}
}
}
Else If(MarketPosition<>0)
{
SKPRICE=Open;
BuyToCover(1,SKPRICE);
BKPRICE=0;
Commentary("时间平仓:"+Text(SKPRICE));
KDALLOW=False;
PDALLOW=False;
}
Commentary("BKPRICE"+Text(BKPRICE));
Commentary("KDALLOW"+IIFString(KDALLOW,"True","False"));
Commentary("PDALLOW"+IIFString(KDALLOW,"True","False"));
End
页:
[1]