投资者咨询:帮忙修改为wh6指标 (文华财经)
来源:文华财经 日期:2020-10-2 6:28
int len=pData->m_nNumData; 定义数组的长度,随数据量的大小而变
float *kh=new float[len]; 包含处理后的K线最高值
float *kl=new float[len]; 包含处理后的K线最低值
int *qk=new int[len]; K线是否有缺口
int *qkx=new int[len]; 顶底K线最左侧K线有缺口标志位
int *qky=new int[len]; 顶底K线最右侧K线标志位
int *qkz=new int[len]; 顶底K线最左侧K线标志位
int *sx=new int[len]; 向上还是向下K线,向上为1,向下为-1
int *bhs=new int[len]; K线处于包含关系中的第几根
int *bh=new int[len]; 与前K线是否是包含关系,不包含为0,包含为1
int *ks=new int[len]; K线是第几根K线
int *bs=new int[len]; K线是包含处理后的第几根K线
int *nfx=new int[len]; 分型,顶分为1,底分为-1
int *qd=new int[len]; 是否是跳空形成的笔
int i,j,k=0,hlvbars,kk,kkk,jj=0;
int an=0,int bn=0,int aan=0,int bbn=0,int as=0,int aaan,int bbbn;
float hl,hhl;
for ( i = nPeriod; i < pData->m_nNumData; i++ )
{
nfx[i]=0,qk[i]=0,qkx[i]=0,qky[i]=0,qkz[i]=0,qd[i]=0;
}起始赋为0
ks[0]=5,bs[0]=5,bh[0]=1,sx[0]=1,bhs[0]=1,qk[0]=1;
kh[0]=pData->m_pData[0].m_fHigh,kl[0]=pData->m_pData[0].m_fLow; 第一根K线赋值
for ( i = 1; i < pData->m_nNumData; i++ )
{
if(pData->m_pData[i].m_fHigh>kh[i-1]&&pData->m_pData[i].m_fLow>kl[i-1])
{ 此为向上K线的处理
bh[i]=1,sx[i]=1,bhs[i]=1;
kh[i]=pData->m_pData[i].m_fHigh,kl[i]=pData->m_pData[i].m_fLow;
if(pData->m_pData[i].m_fLow-pData->m_pData[i-1].m_fHigh>0.015&&pData- >m_pData[i].m_fLow-kh[i-1]>0.015)
qk[i]=1;本人的缺口要求上跳空必须大天前H和KH值,向下同理
}
else if(pData->m_pData[i].m_fHigh<kh[i-1]&&pData->m_pData[i].m_fLow<kl[i-1])
{ 此为向下K线的处理
bh[i]=-1,sx[i]=-1,bhs[i]=1;
kh[i]=pData->m_pData[i].m_fHigh,kl[i]=pData->m_pData[i].m_fLow;
if(pData->m_pData[i-1].m_fLow-pData->m_pData[i].m_fHigh>0.015&&kl[i-1]-pData->m_pData[i].m_fHigh>0.015)
qk[i]=-1;
}
else if((pData->m_pData[i].m_fHigh>=kh[i-1]&&pData->m_pData[i].m_fLow<=kl[i-1])||(pData->m_pData[i].m_fHigh<=kh[i-1]&&pData->m_pData[i].m_fLow>=kl[i-1]))
bhs[i]=bhs[i-1]+1,bh[i]=0,qk[i]=0,sx[i]=sx[i-1]; 此为包含K线的处理
if(bh[i]==0)此为包含K线的处理
{
if(sx[i]==1)向上包含
{
if(pData->m_pData[i].m_fHigh>=kh[i-1])
kh[i]=pData->m_pData[i].m_fHigh;
else
kh[i]=kh[i-1];
if(pData->m_pData[i].m_fLow>=kl[i-1])
kl[i]=pData->m_pData[i].m_fLow;
else
kl[i]=kl[i-1];
}
if(sx[i]==-1)向下包含
{
if(pData->m_pData[i].m_fHigh<kh[i-1])
kh[i]=pData->m_pData[i].m_fHigh;
else
kh[i]=kh[i-1];
if(pData->m_pData[i].m_fLow<kl[i-1])
kl[i]=pData->m_pData[i].m_fLow;
else
kl[i]=kl[i-1];
}
}
}
float *kh=new float[len]; 包含处理后的K线最高值
float *kl=new float[len]; 包含处理后的K线最低值
int *qk=new int[len]; K线是否有缺口
int *qkx=new int[len]; 顶底K线最左侧K线有缺口标志位
int *qky=new int[len]; 顶底K线最右侧K线标志位
int *qkz=new int[len]; 顶底K线最左侧K线标志位
int *sx=new int[len]; 向上还是向下K线,向上为1,向下为-1
int *bhs=new int[len]; K线处于包含关系中的第几根
int *bh=new int[len]; 与前K线是否是包含关系,不包含为0,包含为1
int *ks=new int[len]; K线是第几根K线
int *bs=new int[len]; K线是包含处理后的第几根K线
int *nfx=new int[len]; 分型,顶分为1,底分为-1
int *qd=new int[len]; 是否是跳空形成的笔
int i,j,k=0,hlvbars,kk,kkk,jj=0;
int an=0,int bn=0,int aan=0,int bbn=0,int as=0,int aaan,int bbbn;
float hl,hhl;
for ( i = nPeriod; i < pData->m_nNumData; i++ )
{
nfx[i]=0,qk[i]=0,qkx[i]=0,qky[i]=0,qkz[i]=0,qd[i]=0;
}起始赋为0
ks[0]=5,bs[0]=5,bh[0]=1,sx[0]=1,bhs[0]=1,qk[0]=1;
kh[0]=pData->m_pData[0].m_fHigh,kl[0]=pData->m_pData[0].m_fLow; 第一根K线赋值
for ( i = 1; i < pData->m_nNumData; i++ )
{
if(pData->m_pData[i].m_fHigh>kh[i-1]&&pData->m_pData[i].m_fLow>kl[i-1])
{ 此为向上K线的处理
bh[i]=1,sx[i]=1,bhs[i]=1;
kh[i]=pData->m_pData[i].m_fHigh,kl[i]=pData->m_pData[i].m_fLow;
if(pData->m_pData[i].m_fLow-pData->m_pData[i-1].m_fHigh>0.015&&pData- >m_pData[i].m_fLow-kh[i-1]>0.015)
qk[i]=1;本人的缺口要求上跳空必须大天前H和KH值,向下同理
}
else if(pData->m_pData[i].m_fHigh<kh[i-1]&&pData->m_pData[i].m_fLow<kl[i-1])
{ 此为向下K线的处理
bh[i]=-1,sx[i]=-1,bhs[i]=1;
kh[i]=pData->m_pData[i].m_fHigh,kl[i]=pData->m_pData[i].m_fLow;
if(pData->m_pData[i-1].m_fLow-pData->m_pData[i].m_fHigh>0.015&&kl[i-1]-pData->m_pData[i].m_fHigh>0.015)
qk[i]=-1;
}
else if((pData->m_pData[i].m_fHigh>=kh[i-1]&&pData->m_pData[i].m_fLow<=kl[i-1])||(pData->m_pData[i].m_fHigh<=kh[i-1]&&pData->m_pData[i].m_fLow>=kl[i-1]))
bhs[i]=bhs[i-1]+1,bh[i]=0,qk[i]=0,sx[i]=sx[i-1]; 此为包含K线的处理
if(bh[i]==0)此为包含K线的处理
{
if(sx[i]==1)向上包含
{
if(pData->m_pData[i].m_fHigh>=kh[i-1])
kh[i]=pData->m_pData[i].m_fHigh;
else
kh[i]=kh[i-1];
if(pData->m_pData[i].m_fLow>=kl[i-1])
kl[i]=pData->m_pData[i].m_fLow;
else
kl[i]=kl[i-1];
}
if(sx[i]==-1)向下包含
{
if(pData->m_pData[i].m_fHigh<kh[i-1])
kh[i]=pData->m_pData[i].m_fHigh;
else
kh[i]=kh[i-1];
if(pData->m_pData[i].m_fLow<kl[i-1])
kl[i]=pData->m_pData[i].m_fLow;
else
kl[i]=kl[i-1];
}
}
}
能改成wh6吗
技术人员回复
日期:2020-10-2 8:27