开仓会信号闪烁,啥子原因呢
Params
Numeric t1(30);
Numeric atrmul(2);
Numeric minusx(2);
Numeric t2(15);
Numeric cishu(3);
Vars
Series<Numeric> tem_h;
Series<Numeric> tem_1;
Series<Numeric> my_h;
Series<Numeric> my_1;
Series<Numeric> my_h15;
Series<Numeric> my_115;
Global Numeric s1(0);
Series<Numeric> atr;
Series<Numeric> my_exitprice;
Series<Numeric> x1(1);
Events
OnBar(ArrayRef<Integer> indexs)
{
Numeric mindiff;
mindiff = MinMove*PriceScale;
Numeric atrx;
atrx = Average(TrueRange,t1);
tem_h=highest(h[1],t1);
tem_1 =lowest(L[1],t1);
my_h15 = highest(h[1],t2);
my_115 = lowest(L[1],t2);
PlotNumeric("my_h15",my_h15);
PlotNumeric("my_h115",my_115);
//Commentary("BarsSinceTodav-"+text(BarsSinceTodav))
if(BarsSinceToday == t1)
{
my_h= tem_h;
my_1=tem_1;
atr = atrx;
s1 = cishu;
PlotNumeric("my_h",my_h);
PlotNumeric("my_1",my_1);
}
if(BarsSinceToday >t1)//开仓
{
if(h >=my_h15 and MarketPosition ==0 and s1 >0)
{
buy(1,max(o,my_h15));
s1=s1 - 1;
my_exitprice=l - atrmul * atr[1]; //28
//my_exitprice = my_1 - atrmul * atr[1]; //28
}
if(L <=my_115 and MarketPosition ==0 and s1 >0)
{
SellShort (1,min(o,my_115));
s1 = s1 -1;
my_exitprice =h + atrmul * atr[1]; //28
//my_exitprice = my_h + atrmul * atr[1]; //28
}
}
////
//操作exitprice
if(MarketPosition>0)
{
if(EntryPrice + my_exitprice >100)
{
x1=(1+0.2);
//x1=0.95;
}
if( my_exitprice < l - x1 * atrmul*atr[1])
{
my_exitprice = L - x1 * atrmul * atr[1];
}
//my_exitprice =my_exitprice + minusx * mindiff * barssinceentry; //*barssinceentry
//Commentary("minusx*mindiff*barssinceentry="+text(minusx*mindiff*barssinceentry));
}
else if(MarketPosition<0)
{
if(EntryPrice - my_exitprice >100)
{
x1=(1-0.2);
//x1=0.95;
}
if( my_exitprice > h + x1 * atrmul*atr[1]) //+ x1 *
{
my_exitprice = h + x1 * atrmul*atr[1]; // + x1 *
}
//my_exitprice =my_exitprice - minusx * mindiff * barssinceentry;
}
//////
if(MarketPosition <> 0)
{
PlotNumeric("my_exitprice",my_exitprice);
}
/////
if(MarketPosition >0)
{
if(l <= my_exitprice and BarsSinceEntry >0)
{
sell(0,min(o,my_exitprice));
}
}
else if(MarketPosition <0)
{
if(h >=my_exitprice and BarsSinceEntry >0 )
{
BuyToCover(0,min(o,my_exitprice));
}
}
////收盘离场
if(MarketPosition >0)
{
if(time ==0.1459)////收盘离场
{
sell(0,open);
}
}
else if(MarketPosition<0)
{
if(time == 0.1459)////收盘离场
{
BuyToCover(0,open);
}
}
}
先搞清楚用这个的前提
就是研究过了搞不清楚,希望指点一下,而且直播课里面的四个日内策略视频都看过几次了,理论这样写是不会出问题的,但是实盘会闪,搞不明白
案例是特定情况用的
你把global改成序列
Series<Numeric> s1(0);
一个帖子的内容就不要发两个帖子了
前面刷新没看到,感谢老师花时间回复,还需要学的太多了,我觉的逻辑是正确的嘛,一点细节就是找不到问题在哪里😅