Анализ работоспособности индикатора - страница 5

 
Кароче здаюсь..... Ктонить может конкретно показать где и что нужно поменять чтоб заработало???? Хватит мне теории не понимаю я нифига. Ктонибуть может конкретно написать строки кода чтоб заработало вычитание???? Сдесь то, тут нужно вот так..... А то обратился за помощью, и начинается почитай здесь, посмотри сюда. Хватит.... Кто нибуть может дать конкретный ответ ввиде кода????
 
nikelodeon:
Кароче здаюсь..... Ктонить может конкретно показать где и что нужно поменять чтоб заработало???? Хватит мне теории не понимаю я нифига. Ктонибуть может конкретно написать строки кода чтоб заработало вычитание???? Сдесь то, тут нужно вот так..... А то обратился за помощью, и начинается почитай здесь, посмотри сюда. Хватит.... Кто нибуть может дать конкретный ответ ввиде кода????
да забудьте вы об этих индикаторах!!не работают они их написали специально чтоб вы сливали свои депозиты!!учитесь безындикаторной торговле, юзайте обёмы!вот верный путь к успеху
 
Melnuk45:
да забудьте вы об этих индикаторах!!не работают они их написали специально чтоб вы сливали свои депозиты!!учитесь безындикаторной торговле, юзайте обёмы!вот верный путь к успеху
Вы просто не умете их готовить......
 
barabashkakvn:


Знамо так. Пишу для МТ4. Вот код индикатора который расчитывает МО, Профит Фактор и Z-score. Главное передать в индикатор прибыль сигнала, ну не суть....

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property copyright "nikelodeon"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers   4
#property indicator_type1     DRAW_LINE   // тип графического построения - линия
#property indicator_color1    clrGreen    // цвет линии
#property indicator_style1    STYLE_SOLID // стиль линии
#property indicator_width1    2           // толщина линии
#property indicator_plots     3
double Buffer0[];
double Buffer1[];
double Buffer2[];
double Buffer3[];
double Zscore;
   
double Nprof,Nloose,SredP,SredL,GrosProf,GrosLoose,Rscore;
double b,Nobchee,XZscore;
//int i,limit;

int OnInit()
  {
   SetIndexBuffer(0,Buffer0,INDICATOR_DATA);
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);
   SetIndexBuffer(1,Buffer1,INDICATOR_DATA);
   PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0.0);
   SetIndexBuffer(2,Buffer2,INDICATOR_DATA);
   PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0.0);
   SetIndexBuffer(3,Buffer3,INDICATOR_DATA);
   PlotIndexSetDouble(3,PLOT_EMPTY_VALUE,0.0);
   ArraySetAsSeries(Buffer2,true);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(
                const int rates_total,       // размер входных таймсерий
                const int prev_calculated,   // обработано баров на предыдущем вызове
                const datetime& time[],      // Time
                const double& open[],        // Open
                const double& high[],        // High
                const double& low[],         // Low
                const double& close[],       // Close
                const long& tick_volume[],   // Tick Volume
                const long& volume[],        // Real Volume
                const int &spread[]          // Spread
                )
 { 
   int i;
   if(prev_calculated==0) // первый расчёт
     {
      for(i=rates_total-1; i>0; i--)
        {
       if (iCustom(NULL, 0, "TDSEQUENTA v2015 Fileswrire",5,8,12,7,3,3,3,1,i)>0)  {Nprof=Nprof+1;
                                                    
                                                      SredP=(SredP+iCustom(NULL, 0, "TDSEQUENTA v2015 Fileswrire",5,8,12,7,3,3,3,1,i))/Nprof;
                                                      GrosProf=GrosProf+iCustom(NULL, 0, "TDSEQUENTA v2015 Fileswrire",5,8,12,7,3,3,3,1,i);
                                                     } 
                                                     
       if (iCustom(NULL, 0, "TDSEQUENTA v2015 Fileswrire",5,8,12,7,3,3,3,1,i)<0)  { Nloose=Nloose+1;
                                                     
                                                      SredL=(SredL+(iCustom(NULL, 0, "TDSEQUENTA v2015 Fileswrire",5,8,12,7,3,3,3,1,i)*-1))/Nloose;
                                                      GrosLoose=GrosLoose+(iCustom(NULL, 0, "TDSEQUENTA v2015 Fileswrire",5,8,12,7,3,3,3,1,i)*-1);
                                                     } 
       Nobchee=Nprof+Nloose;
       XZscore=2*Nprof*Nloose;
       Rscore=Rscore+iCustom(NULL, 0, "TDSEQUENTA v2015 Fileswrire",5,8,12,7,3,3,3,8,i);
       // if (((Nprof+Nloose)!=0)&&(SredL!=0)) Buffer0[i]=(1+(SredP/SredL))*(Nprof/(Nprof+Nloose))-1; //MO
      // if (GrosLoose>0) Buffer1[i]=GrosProf/GrosLoose; //ProfitFactor
   
        if ((Nobchee>3)&&(XZscore>3)) Buffer2[i]=sqrt((Nobchee * (Rscore - 0.5) - XZscore) / ((XZscore * (XZscore - Nobchee)) / (Nobchee -1))); // Zscore
      
        
        }
       
     }
 return(rates_total);    
     }
МО и Профит фактор считает нормально, Да и Z-score считает тоже нормально (хотя я не уверен, а подсказать некому, правильно ли он считает) он записывается в Buffer2. Вроде бы всё хорошо. Но мне нужно сделать  вычитание Buffer2[i]-Buffer2[i+1], тоесть из текущего бара вычеть предыдущий. Тем самым получить направление и сумму изменения. Тоесть насколько значение Zscore вырасло или снизилось по отношению к предыдущему бару..... Другими словами выяснить насколько вырос Зсчёт или упал. Величина изменения. Как это расчитать для МТ4????
 
И ещё не совсем понятно почему, но на 5 минутках отрисовывает а на Н1 рисовать не хочет.....???? Как так???
 
И ещё... При каждой активации вид графика не меняется, а вот значения скачут..... Эх... беда с этим новым компилятором :-(
 
Нет не подвела, я видел этот пост и даже попытался разобратся. Но видать тяму не хватает. Не могли бы Вы мне показать как это делается на примере моего индикатора, чтоб заработало всё правильно???? Один раз показать чтоб я потом уже знал как это оформляет. Заранее благодарен....
 
barabashkakvn:

У Вас есть два вида получения хендла, которые немного отличаются:

Это ошибка или нужно два хендла? 

Володя. Это четверка
 
Да действительно это четвёрка и я уже говорил это не однократно.... Просто переходить сейчас на 5-ку времени нет. Если гипотиза потвердится то буду переходить на пятёрку однозначно, потому что время пришло. Но чтоб переходить нужно просто знать, как оформляется то что работало не четвёрки для пятёрки. Веть алгоритмические операции не изменились. Просто с новыйм компилятором изменилось представление кода и всё. Тут дописать, тут добавить, слделать вот так и будет работать как и в четвёрки. Лично я програмирование воспринимаю только так...... И особо не заморачиваюсь теориями, хендлами (что для меня вообще ново, я знаю что это индетификатор, но как он может быть массивом ума не пойму) и всякой ерундой..... Что некоторые называют теорией.... Да я видел коды которые делали тоже самое что и мои, но гораздо красивей были описаны, потому как програмер я посредственный, честно признатся...... НО, чем меньше строк кода в програме, тем она надёжней это ОСНОВЫ ПРОГРАМИРОВАНИЯ!!!!!! Зачем было усложнять такую простую операцию как вычитание лага??? Не понимаю......
 
Ну прикольно, только хотел прийти домой поработать. Как барабашка стёр все свои посты..... Вот умора и это он называет помощью????? Ладно бывает. Очередное признание того что ВЫ зазнайки и тупо не можете человеку помощь при переходи с 5 ки на четвёрку.....