[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 333

 
drknn:

Представьте себе, что какой-то из индикаторов так заточен, что для него таймфрейм Д1 - это страшное место. :) Короче, код смотреть нужно - скорее всего причина там.
Меня смутило,что на других терминалах все работает.Только что нашел в чем косяк - котировка за 1970 год в районе по GBP 14000.На днях не прокручивал так далеко,а как переключил не недели-месяцы прокрутил подальше все всплыло.Походу теминал не в силах был расчертить такой диапазон линий объектов,что у меня в шаблоне.Нужно в техпо обращаться,чтоб убрали.
 

Опять, наверное, что-то с буферами напутал. Посмотрите, пожалуйста.

Задача такова:

1) Рассчитывается LSMA. Если [i]>[i+1] - цвет зеленый, если [i]<[i+1] - цвет красный. С этим все понятно.

2) Нужно найти длину серии зеленых и красных значений и сохранить их в массив. Вот с этим и возникает проблема, с которой самостоятельно справиться пока не удалось.

//+------------------------------------------------------------------+
//|                                                   LSMA_Stat2.mq4 |
//|                                                       silhouette |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "silhouette"
#property link      "http://www.metaquotes.net"

#property copyright "silhouette"
#property link      "http://www.metaquotes.net"

#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Yellow
#property indicator_color2 Green
#property indicator_color3 Red
//+------------------------------------------------------------------+
double BufferYellow[],BufferGreen[], BufferRed[];
int GreenSeries[], RedSeries[], g=0, r=0, gc=0, rc=0;
string Symb;

int init()
  {
   Symb=Symbol();
   
   SetIndexBuffer(0,BufferYellow);
   SetIndexBuffer(1,BufferGreen);
   SetIndexBuffer(2,BufferRed);
   
   SetIndexStyle(0,DRAW_LINE,EMPTY,2);
   SetIndexStyle(1,DRAW_LINE,EMPTY,2);
   SetIndexStyle(2,DRAW_LINE,EMPTY,2);  
   return(0);
  }

int deinit()
  {

   return(0);
  }

int start()
  {
   double tmp1, tmp2, LSMA;
   
   int counted_bars=IndicatorCounted();
   int limit=Bars-counted_bars-1;
   if (limit>1) 
      limit=Bars-1;
      
   for(int i=limit; i>0; i--)
    {
     tmp1=iMA(Symb,Period(),34,0,MODE_SMA,0,i);
     tmp2=iMA(Symb,Period(),34,0,MODE_LWMA,0,i);
     LSMA=3.0*tmp2-2.0*tmp1;
      
     BufferYellow[i]=LSMA;
     BufferGreen[i]=LSMA;
     BufferRed[i]=LSMA;

     if(BufferYellow[i]>BufferYellow[i+1])
      {
       BufferRed[i]=EMPTY_VALUE;
      }
     else if(BufferYellow[i]<BufferYellow[i+1])
      {
       BufferGreen[i]=EMPTY_VALUE;
      }
     else
      {
       BufferRed[i]=EMPTY_VALUE;
       BufferGreen[i]=EMPTY_VALUE;
      }                        
      
     if(BufferGreen[i]!=EMPTY_VALUE && BufferRed[i]==EMPTY_VALUE)
      {
       g++;
      }
     if(BufferGreen[i]==EMPTY_VALUE && BufferRed[i]!=EMPTY_VALUE)
      {
       r++;
      }
     if(BufferGreen[i]==EMPTY_VALUE && BufferRed[i]==EMPTY_VALUE)
      {
       if(BufferGreen[i+1]!=EMPTY_VALUE)
        {
         GreenSeries[gc]=g;
         gc++;
         g=0;
        }
       if(BufferRed[i+1]!=EMPTY_VALUE)
        {
         RedSeries[rc]=r;
         rc++;
         r=0;
        }
      }              
    }
   return(0);
  }
 
silhouette:

Опять, наверное, что-то с буферами напутал. Посмотрите, пожалуйста.

Задача такова:

1) Рассчитывается LSMA. Если [i]>[i+1] - цвет зеленый, если [i]<[i+1] - цвет красный. С этим все понятно.

2) Нужно найти длину серии зеленых и красных значений и сохранить их в массив. Вот с этим и возникает проблема, с которой самостоятельно справиться пока не удалось.


А чем этот не понравился индикатор
 
Vinin:

А чем этот не понравился индикатор

Vinin, я собственно и делал его по вашему образцу, но суть в другом: мне важен не сам метод расчета (будь там самая простая МА), а решение задачи в пункте 2.

Нужно получить массив, в котором хранится длина зеленых или красных серий для последующего анализа.

 
Подскажите пожалуйста. Есть 2 виртуальных граффика баланса (для ордеров sell и buy) в реале они могут сильно расходиться. Как можно перевести их в какие либо относительные единицы, чтобы иметь возможность засекать момент пересечения этих граффиков.
 
silhouette:

Vinin, я собственно и делал его по вашему образцу, но суть в другом: мне важен не сам метод расчета (будь там самая простая МА), а решение задачи в пункте 2.

Нужно получить массив, в котором хранится длина зеленых или красных серий для последующего анализа.


А зачем нужен массив?
 
Vinin:

А зачем нужен массив?
Для последующего статистического анализа. Например, в Экселе.
 

Есть библиотека для торговли мышкой https://www.mql5.com/ru/code/9671

У меня категорически не получается ее подключить, помогите пожалуйста.

Все нужные файлы скачиваю в папку expert затем компилирую, но все равно у индикаторов черные окна без данных.

Очевидна какая то детская ошибка, но я ее уже не могу сутки найти


 
TheXpert:

Разносить по папкам ничего не надо. В архиве все файлы уже разнесены, все, что вам необходимо сделать, распаковать архив в папку терминала и скомпилировать.

Компилируются только файлы индикаторов, библиотеки (mqh) компилировать не надо. Попробуйте поставить новый терминал и на нем потренироваться.

 

Подскажите, пожалуйста! В терминале кнопка "MQL4.community", нажав на которую открывается Word с соответствующей страницей, но при попытке нажать на любую ссылку выскакивает окно, которое говорит об ограничении на компе! ???

Как с этим бороться? Спасибо.

Причина обращения: