Федь, привет. У меня просьба. Можешь переделать индюк чтобы не перерисовывался? На сколько я знаю там надо где-то минуса перед цифрами убрать или наоборот поставить.
Посмотри , пожалуйста
Вот первый вариант!!
declare Upper;
input AlertsOn = no;
input TypeMA = {default EMA, SMA};
input MA_length = 8;
input MO_length = 25;
input PC_length = 14;
input BB_Period = 20;
input BB_Dev = 2.0;
input CMAFactor = 0.004;
input useDisplacement = yes;
def price = Close;
def UMOBR = Highest(high[1], PC_length);
def LOMOB = Lowest(low[1], PC_length);
def MSMOB = (UMOBR + LOMOB) / 2;
def displacement = (MO_length / 2) + 1;
def dPrice = if useDisplacement then hl2[displacement] else hl2;
rec CMA = if !IsNaN(dPrice) then Average(dPrice, AbsValue(12)) else CMA[1] + (CMA[1] - CMA[2]);
#def ExtremeBand = CMA * 0.004 / 100;
def EOMOB = CMA * CMAFactor / 100;
#def NIMOB = CMA * 0.008 / 100;
def UMGOOB = if !IsNaN(price) then CMA + EOMOB else Double.Nan;
def LMGOOB = if !IsNaN(price) then CMA - EOMOB else Double.Nan;
def sDev = stdev(data = price, length = BB_Period);
def JMMOL = ExpAverage(data = price, length = BB_Period);
def JCMOL = JMMOL + -BB_dev * sDev;
def JCMOU = JMMOL + BB_Dev * sDev;
plot MOUp = If low <= LMGOOB and Price crosses below LOMOB then low else Double.NaN;;
MOUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
MOUp.SetDefaultColor(Color.WHITE);
MOUp.SetLineWeight(3);
Alert( MOUp, "MOMAIN UP", Alert.BAR, Sound.ding);
MOUp.HideBubble();
MOUp.HideTitle();
plot MODn = If high >= UMGOOB and Price crosses above UMOBR then high else Double.NaN;;
MODn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
MODn.SetDefaultColor(Color.WHITE);
MODn.SetLineWeight(3);
Alert( MODn, "MOMAIN DN", Alert.BAR, Sound.ding);
MODn.HideBubble();
MODn.HideTitle();
plot MOMUp = If low <= LMGOOB and price crosses below MSMOB then low else Double.NaN;;
MOMUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
MOMUp.SetDefaultColor(Color.YELLOW);
MOMUp.SetLineWeight(3);
Alert( MOMUp, "MOMAIN UP", Alert.BAR, Sound.ding);
MOMUp.HideBubble();
MOMUp.HideTitle();
plot MOMDn = If high >= UMGOOB and Price crosses above MSMOB then high else Double.NaN;;
MOMDn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
MOMDn.SetDefaultColor(Color.YELLOW);
MOMDn.SetLineWeight(3);
Alert( MOMDn, "MOMAIN DN", Alert.BAR, Sound.ding);
MOMDn.HideBubble();
MOMDn.HideTitle();
plot JCMOUp = If low <= LMGOOB and Price crosses below JMMOL then low else Double.NaN;;
JCMOUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
JCMOUp.SetDefaultColor(Color.YELLOW);
JCMOUp.SetLineWeight(3);
Alert( JCMOUp, "MOADIT UP", Alert.BAR, Sound.ding);
JCMOUp.HideBubble();
JCMOUp.HideTitle();
plot JCMODn = If high >= UMGOOB and Price crosses above JMMOL then high else Double.NaN;;
JCMODn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
JCMODn.SetDefaultColor(Color.YELLOW);
JCMODn.SetLineWeight(3);
Alert( JCMODn, "MOADIT DN", Alert.BAR, Sound.ding);
JCMODn.HideBubble();
JCMODn.HideTitle();
plot MA;
switch (TypeMA) {
case EMA:
MA = ExpAverage(price[-0], MA_length);
case SMA:
MA = Average(price[-0], MA_length);
}
MA.AssignValueColor(if MA > MA[1] then Color.UPTICK else Color.DOWNTICK);
MA.SetLineWeight(3);
MA.HideBubble();
MA.HideTitle();
plot UpperBand = UMOBR;
UpperBand.SetDefaultColor(GetColor(5));
UpperBand.SetLineWeight(2);
UpperBand.HideBubble();
UpperBand.HideTitle();
plot LowerBand = LOMOB;
LowerBand.SetDefaultColor(GetColor(6));
LowerBand.SetLineWeight(2);
LowerBand.HideBubble();
LowerBand.HideTitle();
Вот второй вариант!!
declare Upper;
input AlertsOn = no;
input TypeMA = {default EMA, SMA};
input MA_length = 8;
input MO_length = 25;
input PC_length = 14;
input BB_Period = 20;
input BB_Dev = 2.0;
input CMAFactor = 0.004;
input useDisplacement = yes;
def price = Close;
def UMOBR = Highest(high[1], PC_length);
def LOMOB = Lowest(low[1], PC_length);
def MSMOB = (UMOBR + LOMOB) / 2;
def displacement = 0;
def dPrice = if useDisplacement then hl2[displacement] else hl2;
rec CMA = if !IsNaN(dPrice) then Average(dPrice, AbsValue(12)) else CMA[1] + (CMA[1] - CMA[2]);
#def ExtremeBand = CMA * 0.004 / 100;
def EOMOB = CMA * CMAFactor / 100;
#def NIMOB = CMA * 0.008 / 100;
def UMGOOB = if !IsNaN(price) then CMA + EOMOB else Double.Nan;
def LMGOOB = if !IsNaN(price) then CMA - EOMOB else Double.Nan;
def sDev = stdev(data = price, length = BB_Period);
def JMMOL = ExpAverage(data = price, length = BB_Period);
def JCMOL = JMMOL + -BB_dev * sDev;
def JCMOU = JMMOL + BB_Dev * sDev;
plot MOUp = If low <= LMGOOB and Price crosses below LOMOB then low else Double.NaN;;
MOUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
MOUp.SetDefaultColor(Color.WHITE);
MOUp.SetLineWeight(3);
Alert( MOUp, "MOMAIN UP", Alert.BAR, Sound.ding);
MOUp.HideBubble();
MOUp.HideTitle();
plot MODn = If high >= UMGOOB and Price crosses above UMOBR then high else Double.NaN;;
MODn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
MODn.SetDefaultColor(Color.WHITE);
MODn.SetLineWeight(3);
Alert( MODn, "MOMAIN DN", Alert.BAR, Sound.ding);
MODn.HideBubble();
MODn.HideTitle();
plot MOMUp = If low <= LMGOOB and price crosses below MSMOB then low else Double.NaN;;
MOMUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
MOMUp.SetDefaultColor(Color.YELLOW);
MOMUp.SetLineWeight(3);
Alert( MOMUp, "MOMAIN UP", Alert.BAR, Sound.ding);
MOMUp.HideBubble();
MOMUp.HideTitle();
plot MOMDn = If high >= UMGOOB and Price crosses above MSMOB then high else Double.NaN;;
MOMDn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
MOMDn.SetDefaultColor(Color.YELLOW);
MOMDn.SetLineWeight(3);
Alert( MOMDn, "MOMAIN DN", Alert.BAR, Sound.ding);
MOMDn.HideBubble();
MOMDn.HideTitle();
plot JCMOUp = If low <= LMGOOB and Price crosses below JMMOL then low else Double.NaN;;
JCMOUp.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
JCMOUp.SetDefaultColor(Color.YELLOW);
JCMOUp.SetLineWeight(3);
Alert( JCMOUp, "MOADIT UP", Alert.BAR, Sound.ding);
JCMOUp.HideBubble();
JCMOUp.HideTitle();
plot JCMODn = If high >= UMGOOB and Price crosses above JMMOL then high else Double.NaN;;
JCMODn.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);
JCMODn.SetDefaultColor(Color.YELLOW);
JCMODn.SetLineWeight(3);
Alert( JCMODn, "MOADIT DN", Alert.BAR, Sound.ding);
JCMODn.HideBubble();
JCMODn.HideTitle();
plot MA;
switch (TypeMA) {
case EMA:
MA = ExpAverage(price[-0], MA_length);
case SMA:
MA = Average(price[-0], MA_length);
}
MA.AssignValueColor(if MA > MA[1] then Color.UPTICK else Color.DOWNTICK);
MA.SetLineWeight(3);
MA.HideBubble();
MA.HideTitle();
plot UpperBand = UMOBR;
UpperBand.SetDefaultColor(GetColor(5));
UpperBand.SetLineWeight(2);
UpperBand.HideBubble();
UpperBand.HideTitle();
plot LowerBand = LOMOB;
LowerBand.SetDefaultColor(GetColor(6));
LowerBand.SetLineWeight(2);
LowerBand.HideBubble();
LowerBand.HideTitle();