Code:

```
declare lower;
input length = 25;
Assert(length > 0, "'length' must be positive: " + length);
def aroonUp = reference AroonIndicator(length = length).Up;
def aroonDown = reference AroonIndicator(length = length).Down;
plot UpDownDiff = aroonUp - aroonDown;
plot OverBought = 50;
plot MiddleLine = 0;
plot OverSold = -50;
UpDownDiff.SetDefaultColor(GetColor(1));
OverBought.SetDefaultColor(GetColor(8));
MiddleLine.SetDefaultColor(GetColor(8));
OverSold.SetDefaultColor(GetColor(8));
plot crossing = crosses(UpDownDiff,OverBought) and UpDownDiff >= OverBought;
crossing.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
plot ccrossing = crosses(UpDownDiff,OverBought) and UpDownDiff <= OverBought;
ccrossing.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
plot cccrossing = crosses(UpDownDiff,OverSold) and UpDownDiff >= OverSold;
cccrossing.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_UP);
plot ccccrossing = crosses(UpDownDiff,OverSold) and UpDownDiff <= OverSold;
ccccrossing.SetPaintingStrategy(PaintingStrategy.BOOLEAN_ARROW_DOWN);
```