请问可以帮忙修改下这个指标吗?在最新标记的圈或者×上画一条白色的直线, 如果还能图中的最高点,最低点也画一条直线的话更好,Params
Numeric turnpoint(4);//转折点数
Numeric minpoint(1);//最小区间
Vars
plot plt;
Array<Numeric> xdata;
Array<Numeric> ydata;
Global Array<Array<Numeric>> qx(0);
Global Numeric k;
Tick tickdata;
Series<Numeric> flag;
global Numeric baseprice;
Global Numeric lastdatetime;
Numeric i;
Numeric j;
Numeric n;
Numeric tempprice;
Numeric tempdatetime;
Events
OnInit()
{
plt.figure();//独立画板
//data[0].HideKline;
}
OnBar(ArrayRef<Integer> indexs)
{
GetTick(tickdata,0);
tempprice=IIF(Frequency=="tick",tickdata.last,Close);
tempdatetime=IIF(Frequency=="tick",tickdata.datetime,date+time);
if(BarStatus==0)
{
baseprice=tempprice;
k=-1;
flag=0;
qx[0][0]=baseprice;
}
Else
{
if(lastdatetime<>tempdatetime)
{
if(flag<>-1 and tempprice<=baseprice-turnpoint)
{
flag=-1;
k=k+1;
qx[0][k]=baseprice;
qx[1][k]=0;
}
if(flag<>1 and tempprice>=baseprice+turnpoint)
{
flag=1;
k=k+1;
qx[0][k]=baseprice;
qx[1][k]=0;
}
if(flag==1)
{
while(tempprice>=baseprice+minpoint)
{
qx[1][k]=qx[1][k]+1;
baseprice=baseprice+minpoint;
//Commentary("baseprice="+text(baseprice));
}
}
Else if(flag==-1)
{
while(tempprice<=baseprice-minpoint)
{
qx[1][k]=qx[1][k]-1;
baseprice=baseprice-minpoint;
}
}
lastdatetime=tempdatetime;
}
}
//PlotNumeric("baseprice",baseprice);
if(BarStatus==2)
{
//Commentary(TextArray(qx));
for i=0 to GetArraySize(qx[0])-1
{
n=qx[1][i];
for j=1 to abs(n)
{
xdata[0]=(i+1)*10;
ydata[0]=qx[0][i]+j*n/abs(n)*minpoint;
if(n > 0 )
plt.icon(Text(j), xData[0], yData[0], "ICO14");
Else
plt.icon(Text(j), xData[0], yData[0], "lvyuan");
}
}
}
}
请走收费代码,谢谢
这是你们自带的指标,CIRCLECROSS, 只想在最新画的圈或者叉,加一条白色横线,更好的识别最新价
嗯呢, 但你可以看到, 它最后画图的时候是通过for循环一把画出来的, 所以你这个需求, 相当于重写这个公式, 所以才推荐你走收费代编的,🙏