加下面这两句就会信号闪烁,不加就不会闪,啥子问题呢
if(BarsSinceToday == t1)
if(BarsSinceToday >t1)//开仓
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);
}
}
}

你确定是上面这个的原因吗



直播课上老师就是这样写的呀
那么老师是怎么说的呢
就是研究过了搞不清楚,希望指点一下,而且直播课里面的四个日内策略视频都看过几次了,理论这样写是不会出问题的,但是实盘会闪,搞不明白
我用SetBasePeriod("1m");函数测试也不会闪,实际开仓跑就会闪
你可以展示下怎么个闪烁法
开仓信号出现了,马上又消失了
我去掉
if(BarsSinceToday == t1)
if(BarsSinceToday >t1)//开仓
这两个判断条件就不会闪烁了
这个案例逻辑上是告诉你们如何利用计数控制次数
我知道,我虽然不怎么会写代码,但是也不是一点点都不会呀,老师我是来请教问题的😇
全局变量设置后,前后影响都是即时的,也就是你下次运行大概率情况会不同,所以这个程序就是临时的控制日内交易次数