Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 907

 
nikelodeon:
Бодрого времени суток!!! Ребята помогите исправить индикатор. При старых билдах работал исправно, но дёрнуло меня перекомпилировать его в новом компиляторе и сразу вылезла ошибка о переполнении стека. Как её теперь исправить ума не приложу. В индикаторах стек увеличить нельзя :-(. Очень надеюсь на помощь. Спасибо
Кое-что исправил. Осталось два замечания с логикой.
Файлы:
 
Спасибо большое!!!!!
 
Помогите с кодом! Мне нужно найти минутный бар среди от нулевого до первого этого дня с максимальным тиковым объемом!
 

А чем тебе не нравится ответ на пятом форуме?

Можешь конечно в цикле перебрать все свечки, но так куда я тебя послал гораздо проще. Копируешь все объёмы в массив и функцией ArrayMaximum находишь максимальное значение в массиве.

 
AlexeyVik:

А чем тебе не нравится ответ на пятом форуме?

Можешь конечно в цикле перебрать все свечки, но так куда я тебя послал гораздо проще. Копируешь все объёмы в массив и математической функцией находишь максимальное значение в массиве.

 Блин, я сам не смогу написать такой код с массивом. туговато для меня, если бы пример какой нибуть, а там по ссылке не понятно че куда.
 
sashasonik:
 Блин, я сам не смогу написать такой код с массивом. туговато для меня, если бы пример какой нибуть, а там по ссылке не понятно че куда.

Ну извини, не сочти за грубость. А зачем тогда вообще заниматься тебе программированием?

Хотя, здесь много таких которые пишут куски кода вместо того чтобы объяснить что для чего. Надо ж.дать.

А я предпочитаю объяснить, но не писать кусочки.

 
Добрый день всем. Вопрос такой, есть у кого нибудь индикатор расчёта коэфицента шарпа???? Напи сал индикатор, который берёт сигналы от другого индикатора и расчитывает Z-score для каждого сигнала. Очень полезная штука оказалась при применении НС, полезная НО не достаточная. Попробовал соорудить кэф шарпа, но что о не получилось. Может быть кто нить уже писал подобное, в замен могу поделиться наработкой по НС.... 
 
А ещё лучше коэфициент СОРТИНО..... Было бы вообще класно...
 
AlexeyVik:

Ну извини, не сочти за грубость. А зачем тогда вообще заниматься тебе программированием?

Хотя, здесь много таких которые пишут куски кода вместо того чтобы объяснить что для чего. Надо ж.дать.

А я предпочитаю объяснить, но не писать кусочки.

 Разобрался! Как то так. Спс.

      int bar1=iBarShift(Symbol(),PERIOD_M1,iTime(Symbol(),PERIOD_D1,0));//Print(bar1); //первый бар 
  int MaxVol=0;
      int i=0, n=0;
      for (i=bar1; i>0; i--)
         {
          //if (i<bar);
          //if (TimeMinute(Time[i])!=Minute()) break;
          if (iVolume(Symbol(),0,i)>MaxVol)
            {
             MaxVol=iVolume(Symbol(),0,i);
             n=i;
            }
          //Print(MaxVol," MaxVol ", n, " n");
         }
          datetime MaxVolT = iTime(NULL, PERIOD_M1, n);

 
sashasonik:

 Разобрался! Как то так. Спс.

      int bar1=iBarShift(Symbol(),PERIOD_M1,iTime(Symbol(),PERIOD_D1,0));//Print(bar1); //первый бар 
  int MaxVol=0;
      int i=0, n=0;
      for (i=bar1; i>0; i--)
         {
          //if (i<bar);
          //if (TimeMinute(Time[i])!=Minute()) break;
          if (iVolume(Symbol(),0,i)>MaxVol)
            {
             MaxVol=iVolume(Symbol(),0,i);
             n=i;
            }
          //Print(MaxVol," MaxVol ", n, " n");
         }
          datetime MaxVolT = iTime(NULL, PERIOD_M1, n);

Ну вот и чудненько.

Теперь можно и о сокращении, упрощении кода подумать.

Вот нашёл ты первый бар. Значит столько баров надо копировать в массив. Вот и получается код сокращается до трёх строк.

1. находим первый бар.

2. копируем в массив объёмы по первому примеру

int  CopyTickVolume(
   string           symbol_name,      // имя символа
   ENUM_TIMEFRAMES  timeframe,        // период
   int              start_pos,        // откуда начнем (с нулевого или первого)
   int              count,            // сколько копируем(первым пунктом определили)
   long             volume_array[]    // массив для копирования тиковых объемов(предварительно объявляем массив глобального уровня или локального)
   );

3. ArrayMaximum(из этого массива)


И непонятно для чего ты используешь переменную n