[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 226

 
Pavel447 писал(а) >>

Всем добрый день!У меня вопрос:Что дужно добавить в коде индикатора NonLagAma(он дает сигналы на покупку и продажу изменением цвета линии ) что бы выдавался какой то звуковой сигнал или графический(например в отдельном окне) при соответствующем сигнале индикатора. Хочеться,допустим, привязаться к определенному таймфрейму, но что бы оповещение касалось нескольких валютных пар....

Если кто чем поможет или подскажет, буду очень благодарен!

А то я пока совсем не могу понять как это реализовать...:)

Должно помочь :)

Файлы:
 
mgribachev писал(а) >>

Должно помочь :)

Это уже модифицированная версия?

Во входных праметрах в значениях Alert Mode i Warning MOde стоят нули.Нужно ли менять это значение?

В этой версии сигнал звуковой?

А вообще спасибо за скорый ответ на первое сообщение!:)

 
alsu >>:

две последние по времени открытия или по времени закрытия?

Два последние по времени закрытия( сделки состоялись - прибыль или убытки взяты)

 
Помогите пожалуйста с кодом?! Стандартное отклонение по данным, помощённым в массив, не рассчитывается. В задаче необходимо, чтобы каждому К-му Максимуму(минимуму) соответствовало своё стандартное отклонение, рассчитанное на том же промежутке, где производится поиск абсолютных значений. Спасибо!
int start()
  {
   int i,k, counted_bars=IndicatorCounted();
//----   
   double num_array[5000],MAXR8,MINR8,StdDev8;
//---- 
   i=Bars-Period1+1;
   if(counted_bars>Period1-1) 
   i=Bars-counted_bars-1;
//----       
   while(i>=0)
        {
//----
        k=i+Period1-1; 
        while(k>=i) 
             {
             num_array[k]=Close[k]/Close[i+1];
             
             MAXR8=num_array[ArrayMaximum(num_array,8,k)];
             MINR8=num_array[ArrayMinimum(num_array,8,k)];
             
             // стандарстное отклонение не работает
             StdDev8=iStdDevOnArray(num_array,0,8,0,MODE_SMA,k);
             
             k--;
             }  
//----
       Buffer[i]=;
       i--;
       }
//----
   return(0);
  }
 
001 писал(а) >>

Ребята, объясните что значит такая ситуация.

Код:

if(High[0] > enve_start && enve_start > Low[0]) -> пытаюсь поймать пересечение ценой линии энвелопес.

Запись в журнале: High[0] = 1.0726 enve_start =1.0751 Low[0] = 1.0726.

Т.е. хай и лоу в свече одинаковы. И так любая свеча.

High[0] & Low[0] будут в большинстве случаев одинаковыми, так как свеча нулевая считайте с первой

 

А как можно выбрать 2 последние сделки закрытые уже (из списка история счета)

Должно быть что -то в этом роде -

OrderSelect(Parametr,SELECT_BY_POS,MODE_HISTORY)==true
как правильно написать параметр для выбора?
 

xrust писал(а) >>

High[0] & Low[0] будут в большинстве случаев одинаковыми, так как свеча нулевая считайте с первой

Спасибо за ответ. А на сколько правильно будет написать так

if ((High[0] > enve_stop > Low[1]) или лучше обе первые?

 
skifodessa >>:

Всем доброго дня Подскажите пожалуста как прописать значения двух уровней ( картинку прилогаю). - Хай последнего зеленого бара по АО ( если текущий красный) и Лоу последнего красного бара перед зелеными. Спасибо.

Вам нужно определить на каком баре меняется цвет, найти время через iTime(от найденого бара) и уже зная время устанавливать метку.

 
001 >>:

Спасибо за ответ. А на сколько правильно будет написать так

if ((High[0] > enve_stop > Low[1]) или лучше обе первые?

Я сделал бы так:

if ( Close[2]>=enve_stop && Close[1]<enve_stop )  {//пересечение сверху вниз  
 
Mr-Franklyn >>:
Помогите пожалуйста с кодом?! Стандартное отклонение по данным, помощённым в массив, не рассчитывается. В задаче необходимо, чтобы каждому К-му Максимуму(минимуму) соответствовало своё стандартное отклонение, рассчитанное на том же промежутке, где производится поиск абсолютных значений. Спасибо!

код совсем сырой.

смотрите: i=Bars-Period1+1 при первой же итерации цикла получаем k=i+Period1-1=Bars-Period1+1+Period1-1=Bars и дальше - Close[k], то есть уже выбиваемся из массива.

Правильно: i=Bars-Period1-1

Дальше - почему на каждой итерации по i мы заполняем массив заново Period1 значениями (со сдвигом всего лишь на 1 - i--)?

Почему на каждой итерации по k считаем стандартное отклонение по всему массиву - он ведь длиной 5000, а там - нули! (число 500, как я понимаю, выбрано как "заведомо" большее Bars)?

Правильно - сначала заполнить массив, а потом (в новом цикле) производить вычисления.

На каждой итерации по k расичитывается StdDev8 - вопрос: зачем? мы ведь теряем это значение при каждой смене k, а использовать его, как я понимаю, собираемся только после окончания цикла.


Совет: нарисуйте себе блок-схему алгоритма, пройдите по ней, записывая на бумажке все, что происходит, в том числе в циклах. Убедитесь, что алгоритм делает именно то, что вам надо. Только после этого приступайте к переводу на язык программирования. Стесняться не надо - с этого все начинают, а многие, оценившие пользу метода - и не прекращают:)))

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