azzx_davr_1_0

Indicators Used
Moving average indicator
0 Views
0 Downloads
0 Favorites
azzx_davr_1_0
// ---------------------------------------------------------------------------
//  Èíèäèêàòîð äèíàìè÷åñêîé ñðåäíåé.
//
//  Áóôåðû èíäèêàòîðà:
//  0 - Ïîâûøåíèå âåëè÷èíû ââåðõ (ðàñêðàñêà).
//  1 - Ïîíèæåíèå âåëè÷èíû âíèç (ðàñêðàñêà).
//  2 - Çíà÷åíèå âåëè÷èíû (ðàñ÷¸òíîå).
// ---------------------------------------------------------------------------

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1  Red
#property indicator_color2  Blue
#property indicator_width1  2
#property indicator_width2  2

// Ïåðèîäû ñðåäíèõ.
extern int PERIOD_FROM = 5;
extern int PERIOD_TO   = 15;

// Áóôåðû èíäèêàòîðà.
double buf_up[], buf_dn[], buf_av[];
// ×èñëî îáñ÷èòûâàåìûõ ñðåäíèõ.
int sma_count;

// Èíèöèàëèçàöèÿ.
int init() {
  if(PERIOD_FROM > PERIOD_TO) {
    int t = PERIOD_FROM;
    
    PERIOD_FROM = PERIOD_TO;
    PERIOD_TO   = t;
  }

  IndicatorShortName(StringConcatenate(
    "AZZX - D-AVR v1.0 (", PERIOD_FROM, ", ", PERIOD_TO, ")"));
  IndicatorBuffers(3);

  SetIndexBuffer(0, buf_up);
  SetIndexBuffer(1, buf_dn);
  SetIndexBuffer(2, buf_av);
  
  SetIndexLabel(0, "UP-MOTION");
  SetIndexLabel(1, "DOWN-MOTION");

  SetIndexEmptyValue(0, -1);
  SetIndexEmptyValue(1, -1);
  
  sma_count = PERIOD_TO - PERIOD_FROM + 1;

  return(0);
}

// Ãëàâíûé öèêë.
int start() {
  int i, j;

  for(i = Bars - IndicatorCounted() - 1; i >= 0; i--) {
    // Âû÷èñëåíèå âåëè÷èíû.
    buf_av[i] = 0;
    
    for(j = PERIOD_FROM; j <= PERIOD_TO; j++) {
      buf_av[i] += iMA(NULL, 0, j, 0, MODE_SMA, PRICE_CLOSE, i);
    }
    
    buf_av[i] /= sma_count;
    
    // Ðàñêðàñêà.
    if(i < Bars - 1) {
      if(buf_av[i] >= buf_av[i + 1]) {
        buf_up[i] = buf_av[i];
        buf_dn[i] = -1;
        
        if(buf_up[i + 1] < 0) buf_up[i + 1] = buf_av[i + 1];
      } else {
        buf_up[i] = -1;
        buf_dn[i] = buf_av[i];

        if(buf_dn[i + 1] < 0) buf_dn[i + 1] = buf_av[i + 1];
      }
    } else {
      buf_up[i] = -1;
      buf_dn[i] = -1;
    }
  }

  return(0);
}


Comments

Markdown supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---