qwas121 发表于 2018-11-11 16:18:23

请教高手,这个代码有什么错误?

这是我写的,根据前根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]
查看完整版本: 请教高手,这个代码有什么错误?