0

我正在编写一个简单的指标

  • 条件:收盘价高于 MA50、MA144 和 MA200 时
  • 愿望:画一个向上的箭头

但是当应用如下源代码时,这是错误的

我是新手,感谢您的帮助!

_SECTION_BEGIN("test");

MA50 = MA (C,50);
MA144 = MA (C, 144);
MA200 = MA (C,200);

val1 = LastValue(MA50);
val2 = LastValue(MA144);
val3 = LastValue(MA50);
val4 = LastValue(Close);

Plot(MA50, "MA50", colorRed, styleLine, Null, Null, 0 );
Plot(MA144, "MA144", colorRed, styleLine, Null, Null, 0 );
Plot(MA200, "MA200", colorRed, styleLine, Null, Null, 0 );

if (val4 > val1 AND val4 > val2 AND val4 > val3)
{
    PlotShapes(shapeUpArrow,ParamColor("UpArrow",10),0,L);  
}
else
{
    PlotShapes(shapeDownArrow,ParamColor("DownArrow",10),0,L);
}

_SECTION_END();
4

1 回答 1

0

PlotShapes 为每个条形图采用一组形状。

这将创建一个向上或向下箭头数组,然后通过将条形索引与最后一个 barIndex 进行比较,创建另一个仅显示最后一个条形上的形状的数组。

_SECTION_BEGIN("test");

MA50 = MA (C,50);
MA144 = MA (C, 144);
MA200 = MA (C,200);

Plot(MA50, "MA50", colorRed, styleLine, Null, Null, 0 );
Plot(MA144, "MA144", colorRed, styleLine, Null, Null, 0 );
Plot(MA200, "MA200", colorRed, styleLine, Null, Null, 0 );

bar = BarIndex();
isLastBar = LastValue(bar) == bar;
isUp = Close > MA50 AND Close > MA144 AND Close > MA200;
shape = IIf(isUp, shapeUpArrow, shapeDownArrow);

shapeColor = IIf(isUp, ParamColor("UpArrow", colorLime), ParamColor("DownArrow",colorBlue));

PlotShapes(IIf(isLastBar, shape, shapeNone), shapeColor, 0, Low);

_SECTION_END();
于 2021-08-18T23:22:45.363 回答