[CODE]input price = close;
input fLength = 9;
input sLength = 18;
input displace = 0;
input FAverageType = {default SMA, EMA};
input SAverageType = {default SMA, EMA};
input Label = Yes;
input ShowVerticalLine = No;
input ShowArrow = No;
plot fastAvg;
plot slowAvg;
switch (FAverageType) {
case SMA:
fastAvg = Average(price[-displace], fLength);
case EMA:
fastAvg = ExpAverage(price[-displace], fLength);
}
switch (SAverageType) {
case SMA:
slowAvg = Average(price[-displace], sLength);
case EMA:
slowAvg = ExpAverage(price[-displace], sLength);
}
fastAvg.SetDefaultColor(GetColor(1));
slowAvg.SetDefaultColor(GetColor(0));
AddLabel(Label, if fastAvg > slowAvg[1] then " Bullish " else " Bearish ", if fastAvg > slowAvg[1] then Color.Green else Color.Red);
AddVerticalLine(Crosses(fastAvg,slowAvg) && fastAvg>slowAvg && ShowVerticalLine, "", Color.UPTICK);
AddVerticalLine(Crosses(slowAvg,fastAvg) && slowAvg>fastAvg && ShowVerticalLine, "", Color.LIGHT_RED);
plot Buy = if ShowArrow and Crosses(fastAvg,slowAvg)and fastAvg > slowAvg then low else double.nan;
buy.setLineWeight(5);
buy.setDefaultColor(color.green);
buy.setPaintingStrategy(paintingStrategy.BOOLEAN_ARROW_UP);
plot Sell = if ShowArrow and Crosses(slowAvg,fastAvg)and slowAvg > fastAvg then high else double.nan;
sell.setLineWeight(5);
sell.setDefaultColor(color.red);
sell.setPaintingStrategy(paintingStrategy.BOOLEAN_ARROW_DOWN);[/CODE]
Пересечение двух SMA. Для ToS. Без перерисовки, более гибкие настройки чем в MT4.