如图所示,我的策略都是再59分平仓的,但是这个回测显示了昨天还没平,拿到今天了。然后我把策略单元关了重开,这个情况就消失了?
不知实盘会不会影响很大
最后一个信号,因为你持仓没平,就是按现价给你结算一下,
不是的,这不是同一个信号,图1的头寸已经拖到24号未平,但是在图2里23日当天已经平了,我用的是同一个策略,但是偶尔会出现不平仓
策略首先一定不能有信号闪烁问题,否则没法讨论。
Params
Numeric BH(150);
Numeric dh(40);
Numeric lot(0);
Numeric FastLen(60); // 分钟线
Numeric SlowLen(30); //分钟
Numeric NomLen(20); //日线
Numeric NomL(10); //10日高低点
Numeric Ch(5); //前多少根日线
Numeric Length(100); //多少根分钟线
Numeric signbuy(0);
Numeric signsell(0);
Numeric ReBar(200);
Vars
Numeric MinPoint(0); // 声明变量MinPoint,一个最小变动单位,也就是一跳。
Numeric MyEntryPrice(0); // 声明变量MyEntryPrice,英文好的,看英文意思都知道的,开仓价格,本例是开仓均价,也可根据需要设置为某次入场的价格。
Series<Numeric> FastMA; // 快速均线
Series<Numeric> SlowMA; // 慢速均线
Numeric NomMA;
Series<Numeric> sig(1);
Series<Numeric> h1;
Series<Numeric> l1;
Series<Numeric> CCC;
Series<Numeric> ReEntryCount; // 跟踪止损后记录BAR序号
Numeric MyExitPrice; // 声明变量MyExitPrice,平仓价格。
Series<Numeric> ATR;
Series<Numeric> StopPri; //跟踪止损价
Series<Numeric> StopLPri;
Series<Numeric> stopwin;
Series<Numeric> HighValue; //多头进场之后的盈利峰值价
Series<Numeric> AF; //跟踪Acceleration
Series<Numeric> HighestAfterEntry; //声明序列变量HighestAfterEntry,开仓后出现的最高价。
Series<Numeric> LowestAfterEntry; //声明序列变量LowestAfterEntry,开仓后出现的最低价。
Numeric StopPrice(0);
Series<Bool> Condition1(False);
series<Bool> Yun(False);
Numeric StopATR;
Series<Numeric> HH;
Numeric HHH; // 最近N根BAR的高点
Series<Numeric> LL;
Numeric PP; // 最近N根BAR的低
Numeric DDH;
Numeric Bigbar;
Series<Numeric> PPP;
Series<Numeric> LD;
Series<Numeric> H1d;
Series<Numeric> H2d;
Series<Numeric> L1d;
Series<Numeric> L2d;
Series<Numeric> op;
Series<Numeric> HD;
Series<Numeric> lld;
Series<Numeric> hhd;
Series<Bool> shang; //锤子线阳
Series<Bool> xia;// 吊头线阴
// Series<Bool> Condition1; // 条件1
// Series<Bool> Condition2; // 条件2
Numeric MyRange; //K线幅度
Events
OnInit()
{ Array<Numeric> timepoint;
timepoint[0] = 0.145950;
SetTriggerBarClose(timepoint);
}
OnBar(ArrayRef<Integer> indexs)
{
range[0:0]
{HD=Highest(high[1],dh);
LD=Lowest(Low[1],dh);
H2d=Highest(high[1],BH);
L2D=Lowest(Low[1],BH);
FastMA = Average(Close, FastLen);
SlowMA = Average(Close,SlowLen);
MyRange = High - Low; //K线幅度
shang=abs(min(open,close)-low)>2*abs(close-open);
xia=abs(high-min(open,close))>2*abs(close-open) ;
MinPoint = MinMove*PriceScale;//固定的最小跳动价公式。
}
range[1:1]
{
H1D=Highest(high[1],2);
L1D=Lowest(Low[1],2);
}
if(time==0.0900)
{ op=close[1] ;
h1=high;
l1=low;}
If(MarketPosition ==0 And Time >= 0.1130 And Time <=0.1330) // 开仓/
{
If(High>HD and high>=h1 )
{
{ Buy(0,HD+MinMove*PriceScale);
lld=low[1];
}
If(Low<LD and low<l1 )
{SellShort(0,LD-MinMove*PriceScale);
hhd=high[1];
}
}
}
OnBarClose(ArrayRef<Integer> indexs)
{
If(MarketPosition==1 AND VOL >0 And time >= 0.1459 AND TIME <0.1500 ) // 有多仓的情况下。
{Sell(0,Close);
}
If( MarketPosition==-1 AND VOL >0 And time >= 0.1459 AND TIME <0.1500)
{BuyToCover(0,Close);}
}
请问这个写法会有闪烁吗
这个写法会有闪烁吗