Каталог файлов форума

Список вложений в сообщениях, оставленных на этой конференции.

Все файлы форума: 1233

Добавлено: K_R_L » 24 дек 2021, 17:15

Тема: Re: Renko Levels

Текст сообщения:

Сделал код как в tradingview .

Пофиг, всё равно пляшет.

Написал в суппорт

Код: Выделить всё

function Initialize()
{
 IndicatorName = "RenkoLevels_US";
 PriceStudy=false;
 AddInput("Input", Inputs.Candle);

// AddParameter("DEMAperiod", 1);
 AddParameter("ATRperiod", 14);
// AddParameter("Sens", 1.0);

 AddSeries("RenkoBuySell", DrawAs.Custom, Color.Black, AxisType.ZeroBased);
 AddSeries("RenkoUp", DrawAs.Custom, Color.LightGray, true, Axes.Parent);
 AddSeries("RenkoDn", DrawAs.Custom, Color.LightGray, true, Axes.Parent);

 AddGlobalVariable("Global_ATR", Types.Double);
 AddGlobalVariable("Global_UP", Types.Double);
 AddGlobalVariable("Global_DN", Types.Double);
 AddGlobalVariable("Global_COLOR", Types.Int);

 
}

function Evaluate()
{
 double ATR;
 double UP;
 double DN;
 double H;
 int bs;
 var TR = 0.0;
 Color c = Color.LightGray; ;
 int Change;
 
 
  if (CurrentIndex < 1)
     ATR = Input.High[0]-Input.Low[0];
  else
  { 
     TR = ( Math.Max(Input.High[0] , Input.Close[-1]) - Math.Min(Input.Low[0], Input.Close[-1]));
      ATR = ((ATRperiod-1.0) * Global_ATR + TR)/ATRperiod;
  }
 
 
Global_ATR=ATR;

if (CurrentIndex == 0)
{

  UP = ((Input.High[0]+Input.Low[0])/2.0) + (ATR/2.0);
  DN = ((Input.High[0]+Input.Low[0])/2.0) - (ATR/2.0);
 
  H = UP - DN ;
 
  bs=0;
 }
 else
 {

  UP = RenkoUp[-1];
  DN = RenkoDn[-1];
  H= UP - DN ;
 
  bs=(int)RenkoBuySell[-1];
 }

Change = 0;

if ( (Change < 1 ) && (Input.Close[0] >= UP+H*3) )
{
    Change = 1;
    Global_COLOR = 1;
    Global_UP = UP+Global_ATR*3;
    Global_DN = UP+Global_ATR*2;
    c = Color.LightGreen;
}

if ( (Change < 1) && (Input.Close[0] <= DN-H*3) )
{
// ShowMessage("минус 3  " + (UP  + H *3) );

    Change = 1;
    Global_COLOR = 0;
    Global_DN = DN-Global_ATR*3;
    Global_UP = DN-Global_ATR*2;
    c = Color.LightCoral;
}


if ( (Change < 1) & (Input.Close[0] >= UP+H*2) )
{
// ShowMessage("плюс 2  " + (UP  + H *2) );

    Change = 1;
    Global_COLOR = 1;
    Global_UP = UP+Global_ATR*2;
    Global_DN = UP+Global_ATR;
    c = Color.LightGreen;
}

if ( (Change < 1) && (Input.Close[0] <= DN-H*2) )
{
// ShowMessage("минус 2  " + (UP  + H *2) );

    Change = 1;
    Global_COLOR = 0;
    Global_DN = DN-Global_ATR*2;
    Global_UP = DN-Global_ATR;
    c = Color.LightCoral;
}


if ( (Change < 1) && (Input.Close[0] >= UP+H) )
{
// ShowMessage("плюс 0  " + (UP  + H) );

    Change = 1;
    Global_COLOR = 1;
    Global_UP = UP+Global_ATR;
    Global_DN = UP;
    c = Color.LightGreen;
}


if ( (Change < 1) && (Input.Close[0] <= DN-H) )
{
// ShowMessage("минус 0  " + (UP  + H) );

    Change = 1;
    Global_COLOR = 0;
    Global_DN = DN-Global_ATR;
    Global_UP = DN;
    c = Color.LightCoral;
}

if (Change < 1)
{
if (Global_COLOR == 1)
{
c = Color.LightGreen;
}
else
{
c = Color.LightCoral;
}
}


//ShowMessage("усё");
// int Up, Dn;
// 
//  Up=(int)((Input.Close[0]-UP)/H); if(Up>3) Up=3;
//  Dn=(int)((DN-Input.Close[0])/H); if(Dn>3) Dn=3;
//   
//ShowMessage("UP  " + UP );
//ShowMessage("DN  " + DN );
// if(Up>0)
// {
//  UP+=Global_ATR*Up;   
//  DN=UP-Global_ATR;
// }
// if(Dn>0)
// {
//  DN-=Global_ATR*Dn;
//  UP=DN+Global_ATR;
// }
//

RenkoUp[0]=Global_UP;
RenkoDn[0]=Global_DN;
//RenkoBuySell[0]=bs;

RenkoDn.DrawChannel(RenkoUp, c, 50);
}



RenkoLevels_US.script
(3.3 КБ) 1141 скачивание