поставьте фракталы с периодом 1 и тоже самое будет
 погрешность 1 бар
 погрешность 1 бар погрешность 1 бар
 погрешность 1 барна следующем баре прошлый бар уже может стать не экстремумом

Код: Выделить всё
function Initialize()
{
IndicatorName = "COUNT";
AddInput("Input1", Inputs.Candle);   
   
PriceStudy = true;   
AddSeries("H", DrawAs.Custom, Color.Coral);   
AddSeries("L", DrawAs.Custom, Color.LightGreen);   
}
function Evaluate()
{
var lastLVal = MY.COUNT_II(Input1).GetLastValues ("L", 1)[0];
var lastHVal = MY.COUNT_II(Input1).GetLastValues ("H", 1)[0];
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.COUNT_II(Input1).GetLastValues ("H", 1)[0].Y) )
if ((MY.COUNT_II(Input1).GetLastValues ("H", 2)[0].Y > MY.COUNT_II(Input1).GetLastValues ("H", 2)[1].Y)) 
if ((MY.COUNT_II(Input1).GetLastValues ("H", 1)[0].Y != MY.COUNT_II(Input1).GetLastValues ("L", 1)[0].Y)) 
 
    
          H[1] = MY.COUNT_II(Input1).GetLastValues ("H", 1)[0].Y;
          
             
if ( (lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == (MY.COUNT_II(Input1).GetLastValues ("L", 1)[0].Y) )
if ((MY.COUNT_II(Input1).GetLastValues ("L", 2)[0].Y < MY.COUNT_II(Input1).GetLastValues ("L", 2)[1].Y)) 
if ((MY.COUNT_II(Input1).GetLastValues ("H", 1)[0].Y != MY.COUNT_II(Input1).GetLastValues ("L", 1)[0].Y)) 
     
 
         L[1] = MY.COUNT_II(Input1).GetLastValues ("L", 1)[0].Y;
        
      
H.DrawArrowDown(Color.Fuchsia, LineStyles.Solid, 10, Color.Fuchsia, 100);             
L.DrawArrowUp(Color.Lime, LineStyles.Solid, 10, Color.Lime, 100);
}
Код: Выделить всё
function Initialize()
{
IndicatorName = "COUNT";
AddInput("Input1", Inputs.Candle);   
   
PriceStudy = true;   
AddSeries("H", DrawAs.Custom, Color.Coral);   
AddSeries("L", DrawAs.Custom, Color.LightGreen);   
}
function Evaluate()
{
var lastLVal = MY.COUNT_II(Input1).GetLastValues ("L", 1)[0];
var lastHVal = MY.COUNT_II(Input1).GetLastValues ("H", 1)[0];
if ((lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == lastHVal.Y)
if (lastHVal.Y > MY.COUNT_II(Input1).GetLastValues ("H", 2)[1].Y) 
if (lastHVal.Y != lastLVal.Y) 
 
          H[1] = lastHVal.Y;
         
if ((lastHVal.X > lastLVal.X ? lastHVal.Y : lastLVal.Y) == lastLVal.Y)
if (lastLVal.Y < MY.COUNT_II(Input1).GetLastValues ("L", 2)[1].Y) 
if (lastHVal.Y != lastLVal.Y) 
 
         L[1] = lastLVal.Y;
              
H.DrawArrowDown(Color.Fuchsia, LineStyles.Solid, 10, Color.Fuchsia, 100);             
L.DrawArrowUp(Color.Lime, LineStyles.Solid, 10, Color.Lime, 100);
}

Код: Выделить всё
if (MY.COUNT_II(Input).GetLastValues ("L", 20)[0].Y != MY.COUNT_II(Input).GetLastValues ("H", 20)[0].Y)
D = MY.COUNT_II(Input).GetLastValues ("H", 20)[0].Y - MY.COUNT_II(Input).GetLastValues ("L", 20)[1].Y;
Вернуться в «Общие вопросы по разработке»
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 29 гостей