Трейдинг: Звуковые сигналы в индикаторах - страница 3

 
bor-ix писал(а):

может есть всетаки какие нибуть другие варианты?

Проигрывать звук не функцией PlaySound, а через какую-нибудь внешнюю программу или ф-цию, вызывая ее из кода.

Больше ничего в голову не приходит.

 
уважаемый komposter, очень извиняюсь, если ответ есть в Вашем описании, но как выключить свук и окошко уведомлений совсем у индикатора sFractals.mq4 ? буду очень признателен за внимание.
 
Если вы уже когда-нибудь пользовались сигналами в индикаторах, то наверняка сталкивались с их чрезмерной частотой, особенно, если речь идет о мелких таймфреймах. Решается эта проблема несколькими способами:
  • Сигналы определять на основании сформировавшихся баров. Это наиболее правильное решение;
  • Чередовать сигналы - после покупки только продажа, и наоборот (тоже очень логичный ход, его можно использовать одновременно с другими);
  • Делать паузу между сигналами (не очень хорошая идея);

Эта цитата из статьи:"Сигналы определять на основании сформировавшихся баров. Это наиболее правильное решение;".Но такие алерты дают сигнал с задержкой которая может быть равна таймфрейму на котором он установлен, например я работаю на таймфрейме 4часа,алерт сработает через 4часа после начала тренда,когда он закончится.Это наиболее правильное решение!!!Кому нужны такие алерты!

Делать паузу между сигналами (не очень хорошая идея); Это то что нужно!Лучше признайтесь что Вы такой Alert cоздать не способны!Сигнал нужен своевременный, а не через 2 часа.

 
Извиняюсь за резкую критику.Индикаторы хорошие.В коде можно заменить #define SIGNAL_BAR 1 на #define SIGNAL_BAR 0, и будут работать по нулевому бару.Автор проделал большую работу, Большое Ему Спасибо!
 
Спасибо очень помогло! А не подскажете ли как сделать чтобы сигнал звучал не один раз, а несколько, с паузой в 10 секунд ?
 
Andrey Khatimlianskii:

Если бы из эксперта, можно было бы Sleep() вставить, а из индикатора - даже не знаю.

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

Здравствуйте. Как из эксперта проверить буферы стрелочного индикатора на наличие стрелки? так правильно?


extern string indicator_name="любой_индикатор.ex4";
extern int upbufferorder=0;
extern int downbufferorder=1;
...
double indicatorupbuffer1=iCustom(NULL,0,indicator_name,upbufferorder,1);

double indicatordownbuffer2=iCustom(NULL,0,indicator_name,downbufferorder,1);

if indicatorupbuffer1>0 { indicatorupbuffer1=-1; alert ("buy"); }
if indicatordownbuffer2>0 { indicatorupbuffer2=-1; alert ("sell");}}
 
greeng2016:
Здравствуйте. Как из эксперта проверить буферы стрелочного индикатора на наличие стрелки? так правильно?


extern string indicator_name="любой_индикатор.ex4";
extern int upbufferorder=0;
extern int downbufferorder=1;
...
double indicatorupbuffer1=iCustom(NULL,0,indicator_name,upbufferorder,1);

double indicatordownbuffer2=iCustom(NULL,0,indicator_name,downbufferorder,1);

if indicatorupbuffer1>0 { indicatorupbuffer1=-1; alert ("buy"); }
if indicatordownbuffer2>0 { indicatorupbuffer2=-1; alert ("sell");}}
  1. Правильно передать в индикатор все параметры.
  2. Распечатать значения всех буферов (например, от 0-го до 7-го) на нескольких последних барах и сопоставить их с картинкой.
 
Добрый день уважаемые!!!

Делал по Вашей инструкции из статьи, но не получилось... Подскажите, будьте добры, как исправить, что бы заработал индикатор?


Заранее благодарен, мудрейшие!

Файлы:
 
valentineyermol:
Добрый день уважаемые!!!

Делал по Вашей инструкции из статьи, но не получилось... Подскажите, будьте добры, как исправить, что бы заработал индикатор?


Заранее благодарен, мудрейшие!


Уже ответил почтой:

Вы пропустили ту часть кода, в которой объявляются используемые переменные:


     //---- Статические переменные, в которых хранятся

     //---- время последнего бара и направление последнего сигнала

     static int PrevSignal = 0, PrevTime = 0;


И вот тут:

> Кстати, саму переменную SIGNAL_BAR мы объявили намного раньше, ещё до функции init:

  double     SignalBuffer[];

  //---- Номер бара, по которому будет искаться сигнал

  #define SIGNAL_BAR 1



Просто еще раз внимательно пробегитесь по статье и коду.

 

Доброго времени суток! Очень пригодилась Ваша статья о создании алертов,тем более,что я полный профан в этом,но пытаюсь разобраться! БОЛЬШОЕ Вам за это СПАСИБО!!!

Но у меня вопрос! Как будет выглядеть формула для уровней с отрицательным значением? То-есть,если будет не 30,а (-30) и не 70,а (-70). Нужны-ли дополнительные скобки или еще,что нибудь??? Заранее благодарен!!!

 if(PrevSignal <= 0)
      {
        if(MainBuffer[SIGNAL_BAR] - 30.0 > 0 && 
           30.0 - MainBuffer[SIGNAL_BAR+1] >= 0)
          {
            PrevSignal = 1;
            Alert("sStochastic (", Symbol(), ", ", Period(), ")  -  BUY!!!");
          }
      }
    if(PrevSignal >= 0)
      {
        if(70.0 - MainBuffer[SIGNAL_BAR] > 0 && 
           MainBuffer[SIGNAL_BAR+1] - 70.0 >= 0)
          {
            PrevSignal = -1;
            Alert("sStochastic (", Symbol(), ", ", Period(), ")  -  SELL!!!");
          }
      }