以下代码为何只能显示下突破的提示 而去掉有关下突破的代码后所有K线包括下跌的K线都会显示上突破 要实现上下突破后每根K线都显示或上或下突破的提示直到回踩跌破或涨破前高前低应该怎么修改代码
........
preHigh = Highest(High[1],20);//表示当前最高价大于前20个周期最高价的最大值时返回当前最高价
preLow = Lowest(Low[1],20);//表示当前最高价大于前五个周期最高价的最大值时返回当前最高
/* 1. 首次突破 */
if (!UpBreakDone And Close > preHigh)//if (H[1]<preHigh And High > preHigh And XSTP)
{
UpBreakDone = True;
UpBreakPrice = preHigh; // 记住“防线”
}
/* 2. 仍在突破区域:涨势未受干扰且未跌破前高 */
else if (UpBreakDone[1] And Close >= UpBreakPrice[1])
{
UpBreakDone = True; // 保持
UpBreakPrice = UpBreakPrice[1];
}
/* 3. 跌破前高:复位 */
else // if (SXGR Or (UpBreakDone[1] And Close < UpBreakPrice[1]))
{
UpBreakDone = False;
UpBreakPrice = 0;
}
/* 4. 画文字——只在有效突破期间显示 */
if (UpBreakDone)
PlotString("突破","上突破",sellPrice,Red);
else
PlotString("突破","",sellPrice,Red); // 空串=隐藏
/* 1. 首次向下突破 */
if (!DownBreakDone[1] And Close < preLow)
{
DownBreakDone = True;
DownBreakPrice = preLow; // 记下“防线”
}
/* 2. 仍在突破区域:未涨回前低 */
else if (DownBreakDone[1] And Close <= DownBreakPrice[1] And XXTP)
{
DownBreakDone = True;
DownBreakPrice = DownBreakPrice[1];
}
/* 3. 涨回前低:复位 */
else //if (DownBreakDone[1] And Close > DownBreakPrice[1] Or XXGR)
{
DownBreakDone = False;
DownBreakPrice = 0;
}
/* 4. 画文字——只在有效向下突破期间显示 */
if (DownBreakDone)
PlotString("突破","下突破",buyPrice,Green);
else
PlotString("突破","",buyPrice,Green); // 空串=隐藏
PlotString("突破","上突破",sellPrice,Red);
不要用同一个名字, "突破”
谢谢
能不能加上标点符号啊....这个阅读起来好吃力....
以下代码为何只能显示下突破的提示? 而去掉有关下突破的代码后,所有K线包括下跌的K线都会显示上突破。要实现上下突破后每根K线都显示或上或下突破的提示。直到回踩跌破或涨破前高前低,应该怎么修改代码
........
preHigh = Highest(High[1],20);//表示当前最高价大于前20个周期最高价的最大值时返回当前最高价
preLow = Lowest(Low[1],20);//表示当前最高价大于前五个周期最高价的最大值时返回当前最高
/* 1. 首次突破 */
if (!UpBreakDone And Close > preHigh)//if (H[1]<preHigh And High > preHigh And XSTP)
{
UpBreakDone = True;
UpBreakPrice = preHigh; // 记住“防线”
}
/* 2. 仍在突破区域:涨势未受干扰且未跌破前高 */
else if (UpBreakDone[1] And Close >= UpBreakPrice[1])
{
UpBreakDone = True; // 保持
UpBreakPrice = UpBreakPrice[1];
}
/* 3. 跌破前高:复位 */
else // if (SXGR Or (UpBreakDone[1] And Close < UpBreakPrice[1]))
{
UpBreakDone = False;
UpBreakPrice = 0;
}
/* 4. 画文字——只在有效突破期间显示 */
if (UpBreakDone)
PlotString("突破","上突破",sellPrice,Red);
else
PlotString("突破","",sellPrice,Red); // 空串=隐藏
/* 1. 首次向下突破 */
if (!DownBreakDone[1] And Close < preLow)
{
DownBreakDone = True;
DownBreakPrice = preLow; // 记下“防线”
}
/* 2. 仍在突破区域:未涨回前低 */
else if (DownBreakDone[1] And Close <= DownBreakPrice[1] And XXTP)
{
DownBreakDone = True;
DownBreakPrice = DownBreakPrice[1];
}
/* 3. 涨回前低:复位 */
else //if (DownBreakDone[1] And Close > DownBreakPrice[1] Or XXGR)
{
DownBreakDone = False;
DownBreakPrice = 0;
}
/* 4. 画文字——只在有效向下突破期间显示 */
if (DownBreakDone)
PlotString("突破","下突破",buyPrice,Green);
else
PlotString("突破","",buyPrice,Green); // 空串=隐藏
谢谢