Скачать MetaTrader 5

Нужна помошь по индикатору

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Узнай, как вставлять видео в редакторе сообщений
Alexey Oreshkin
3922
Alexey Oreshkin 2014.01.19 00:46 

Подскажите где я туплю, реально убил уже несколько часов и не понимаю всей силы mql5 и прочего.

вот скрин: https://www.mql5.com/ru/charts/1319161/gbpusd-m30-metaquotes-software-corp-temp-file-screenshot-8769

вот код индикатора

//+------------------------------------------------------------------+
//|                                                     iSpread2.mq5 |
//|                                                     Орешкин А.В. |
//|                                                   vk.com/mtforex |
//+------------------------------------------------------------------+
#property copyright "Орешкин А.В."
#property link      "vk.com/mtforex"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers   7
#property indicator_plots     7
#property indicator_label1    "SNT";
#property indicator_label2    "L1 UP";
#property indicator_label3    "L2 UP";
#property indicator_label4    "L3 UP";
#property indicator_label5    "L1 DN";
#property indicator_label6    "L2 DN";
#property indicator_label7    "L3 DN";
#property indicator_color1    clrAqua
#property indicator_color2    clrRed
#property indicator_color3    clrYellow
#property indicator_color4    clrGreen
#property indicator_color5    clrRed
#property indicator_color6    clrYellow
#property indicator_color7    clrGreen
#property indicator_style1    STYLE_SOLID
#property indicator_style2    STYLE_SOLID
#property indicator_style3    STYLE_SOLID
#property indicator_style4    STYLE_SOLID
#property indicator_style5    STYLE_SOLID
#property indicator_style6    STYLE_SOLID
#property indicator_style7    STYLE_SOLID
#property indicator_type1     DRAW_LINE
#property indicator_type2     DRAW_LINE
#property indicator_type3     DRAW_LINE
#property indicator_type4     DRAW_LINE
#property indicator_type5     DRAW_LINE
#property indicator_type6     DRAW_LINE
#property indicator_type7     DRAW_LINE
#property indicator_width1    1
#property indicator_width2    1
#property indicator_width3    1
#property indicator_width4    1
#property indicator_width5    1
#property indicator_width6    1
#property indicator_width7    1
        
input bool Screen=true;

double   BF[],          //Конечный массив для вывода
         L1up[],L2up[],L3up[],L1dn[],L2dn[],L3dn[];//массивы для уровней

int OnInit()
  { 
   SetIndexBuffer(0,BF,INDICATOR_DATA);
   SetIndexBuffer(1,L1up,INDICATOR_DATA);
   SetIndexBuffer(2,L2up,INDICATOR_DATA);
   SetIndexBuffer(3,L3up,INDICATOR_DATA);
   SetIndexBuffer(4,L1dn,INDICATOR_DATA);
   SetIndexBuffer(5,L2dn,INDICATOR_DATA);
   SetIndexBuffer(6,L3dn,INDICATOR_DATA); 
  
   ArraySetAsSeries(BF,false);   
   ArraySetAsSeries(L1up,false);
   ArraySetAsSeries(L2up,false);
   ArraySetAsSeries(L3up,false);
   ArraySetAsSeries(L1dn,false);
   ArraySetAsSeries(L2dn,false);
   ArraySetAsSeries(L3dn,false);
   /*
   ZeroMemory(L1up);
   ZeroMemory(L2up);
   ZeroMemory(L3up);
   ZeroMemory(L1dn);
   ZeroMemory(L2dn);
   ZeroMemory(L3dn);   
   */
   return(INIT_SUCCEEDED);
  }
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {

   int limit=prev_calculated;
   if (limit>0) limit--;
   
   //for(int pos=1;pos<rates_total-limit;pos++)
   for(int pos=1;pos<rates_total;pos++)
      {
      //
      if (Screen)
         {
         BF[pos]=0;  
         L1up[pos]=1;
         L2up[pos]=2;
         L3up[pos]=3;
         L1up[pos]=-1;
         L2up[pos]=-2;
         L3up[pos]=-3;  
         }      
      }
                   
   return(rates_total);
  }

 то есть индикатор просто рисует в отдельном окне 7 ровных линий с шагом 1 от -3 до +3. В окне же индикатора твориться полный хаос. У линий вообще странные значения, что прекрасно видно в окне данных, причём при смене периода или пары картинка меняется и всё это происходит ка то произвольно. Судя по всему я реально чего то непонимаю. Подскажите, что именно ?

График GBPUSD, M30, 2014.01.18 23:38 UTC, MetaQuotes Software Corp., MetaTrader 5, Demo
График GBPUSD, M30, 2014.01.18 23:38 UTC, MetaQuotes Software Corp., MetaTrader 5, Demo
  • www.mql5.com
График GBPUSD, M30, MetaQuotes Software Corp.: temp_file_screenshot_8769.png
Sergey Dzyublik
4817
Sergey Dzyublik 2014.01.19 03:19  

для массива тайм серии кажись не надо определять направления ArraySetAsSeries()

а проблема у вас в:

         L1up[pos]=1;
         L2up[pos]=2;
         L3up[pos]=3;
         L1up[pos]=-1;
         L2up[pos]=-2;
         L3up[pos]=-3; 
Alexey Oreshkin
3922
Alexey Oreshkin 2014.01.19 07:32  
ALXIMIKS:

для массива тайм серии кажись не надо определять направления ArraySetAsSeries()

а проблема у вас в:

Ёпт, знал же что где то какая то лажа. всё же в 4 утра надо спать а не работать. Спасибо огромное, а то весь день с утра пишу индюк и остался этот последний элемент и так встрял !)

Про индексацию - это по желанию, иногда это удобно иногда нет. 

 

Тему можно удалять. Проверил. Всё работает.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий