Пишу индикаторы на заказ
Быстро Недорого ( option )
Индикатор для БО
_ Winrate более 70% _

Создаем индикатор Грааль

Тема в разделе "Индикаторы для бинарных опционов", создана пользователем option, 22 ноя 2017.

  1. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Там, вроде, нет выбора мартина на следующий сигнал.
     
  2. 2058850 . Пользователь

    Сообщения:
    218
    Симпатии:
    50
    ну да, на след сигнал нет, только свечу
     
  3. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Ночное испытание...
    Скриншот 18-12-2018 034400.
     
  4. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Ночь прошла, на удивление, активно. Итог 7+ чистых и 1+ с мартином в 1 колено. Знатоки, помогите с кодом алерта - пробовал по разному а итог один: дублирует сигналы... Скриншот 18-12-2018 052514.
     
  5. voron55 . Пользователь

    Сообщения:
    114
    Симпатии:
    35
    Ты в .mq4 скинь,или код выложи или в личку. А то сделай то,не видя ничего.
     
  6. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Код:
    int start()
      {
        int bars=Bars-IndicatorCounted();
        int i=0;
        for(i=0;i<=bars;i++) 
          {
            ...
          }
    //+----------Signals-------------------------------------------------+   
        for(i=0;i<=bars;i++)
          if(...x[i+0])
            buy[i+0]=Low[i+0] - 5 * MarketInfo(Symbol(),MODE_POINT);
          else
            buy[i+0]=0;
         
        for(i=0;i<=bars;i++)    
          if(...x[i+0])
            sel[i+0]=High[i+0] + 5 * MarketInfo(Symbol(),MODE_POINT);
          else
            sel[i+0]=0;
    //+----------Alerts--------------------------------------------------+   
        for(i=0;i<=bars;i++)    
          if(...x[i+1])
            {
              Alerts("M15 BUY");
            }
        for(i=0;i<=bars;i++)
          if(...x[i+1])
            {
              Alerts("M15 SELL");
            }
        return(0);
      }
    //+------------------------------------------------------------------+
    void Alerts(string AlertText)
      {
        static datetime t;
        if(t<iTime(NULL,0,0))
        {
          t=iTime(NULL,0,0);
          if (enableAlert) Alert("...", Symbol(),AlertText);
          if (enableSendNotification) SendNotification("..."+Symbol()+AlertText);
        }
      }
     
  7. voron55 . Пользователь

    Сообщения:
    114
    Симпатии:
    35

    if(...x[i+0])
    buy[i+0]=Low[i+0] - 5 * MarketInfo(Symbol(),MODE_POINT);
    else
    buy[i+0]=0;

    if(AlertsOn)
    {
    if(AlertsMessage || AlertsEmail || AlertsMobile || AlertsSound)
    {
    string message1 = (WindowExpertName()+" - "+Symbol()+" "+PeriodString()+" - Signal Up");
    if(TimeBar!=Time[0] && buy[SignalBar]!=EMPTY_VALUE && buy[SignalBar+1]==EMPTY_VALUE)
    {
    if (AlertsMessage) Alert(message1);
    if (AlertsEmail) SendMail(Symbol()+" - "+WindowExpertName()+" - ",message1);
    if (AlertsMobile) SendNotification(message1);
    if (AlertsSound) PlaySound("alert2.wav");
    TimeBar=Time[0];
    }
    }
    }
    for(i=0;i<=bars;i++)
    if(...x[i+0])
    sel[i+0]=High[i+0] + 5 * MarketInfo(Symbol(),MODE_POINT);
    else
    sel[i+0]=0;

    if(AlertsOn)
    {
    if(AlertsMessage || AlertsEmail || AlertsMobile || AlertsSound)
    {
    string message2 = (WindowExpertName()+" - "+Symbol()+" "+PeriodString()+" - Signal Dn");

    if(TimeBar!=Time[0] && sel[SignalBar]!=EMPTY_VALUE && sel[SignalBar+1]==EMPTY_VALUE)
    {
    if (AlertsMessage) Alert(message2);
    if (AlertsEmail) SendMail(Symbol()+" - "+WindowExpertName()+" - ",message2);
    if (AlertsMobile) SendNotification(message2);
    if (AlertsSound) PlaySound("alert2.wav");
    TimeBar=Time[0];
    }
    }
    }

    string PeriodString()
    {
    switch (_Period)
    {
    case PERIOD_M1: return("M1");
    case PERIOD_M5: return("M5");
    case PERIOD_M15: return("M15");
    case PERIOD_M30: return("M30");
    case PERIOD_H1: return("H1");
    case PERIOD_H4: return("H4");
    case PERIOD_D1: return("D1");
    case PERIOD_W1: return("W1");
    case PERIOD_MN1: return("MN1");
    }
    return("M" + string(_Period));
    }
    //+------------------------------------------------------------------+

    И в голове
    extern bool AlertsOn = false;
    extern bool AlertsMessage = false;
    extern bool AlertsSound = false;
    extern bool AlertsEmail = false;
    extern bool AlertsMobile = false;
    extern int SignalBar = 0;

    datetime TimeBar;
     
  8. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Спасибо, переписал. Буду тестить.
     
  9. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Я так понял extern int SignalBar = 0; ,в голове, можно скрыть, чтоб случайно не сдвинуть назад?
     
  10. voron55 . Пользователь

    Сообщения:
    114
    Симпатии:
    35
    В принципе да.
    Просто бывают индюки на которых нужен алерт на текущем 0, на следующем 1.
     
  11. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Мне надо чтоб стрела появлялась или исчезала на 0, как подготовительный сигнал, а на 1, уже подтверждение алерт и пуш. Значит надо по умолчанию поставить 1 и скрыть. Просто если я на часовике и стрела за этот час может появляться и исчезать 1000 раз а он все время будет сигналить... Правильно понял?
     
  12. voron55 . Пользователь

    Сообщения:
    114
    Симпатии:
    35
    Я твои условия не видел.
    Попробуй 1 на следующем, если будет поздно, то 0.
    В условиях если на текущем то for(i=0;i >= 0; i--),опять же, какие условия?
    Либо sel[0], я твои условия не знаю.
    По эксперементируй.
     
  13. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    4 сигнала и ни алерта ни пуша не было... Не работает этот вариант...
     
  14. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Скриншот 18-12-2018 080014.
     
  15. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Итог:
    Скриншот 18-12-2018 080336.
     
  16. voron55 . Пользователь

    Сообщения:
    114
    Симпатии:
    35
    Не знаю, уже более 100 индюков сделал для себя и по просьбам, этот вариант алерта работает.
    Может где-то в коде скобками перекрывает?
     
  17. voron55 . Пользователь

    Сообщения:
    114
    Симпатии:
    35
    Тебе на какой индюк алерт?
    Могу через прокладку.
     
  18. alll . Пользователь

    Сообщения:
    368
    Симпатии:
    167
    Спать хочу. Голова уже гудит. позже разберусь. strict объявлен должен быть или нет?
     
  19. voron55 . Пользователь

    Сообщения:
    114
    Симпатии:
    35
    Разницы нет, я с обычной и строгой делал, все работало.
    Возможно где-то скобками перекрыл.
    Либо так
    {
    if(...x[i+0])
    buy[i+0]=Low[i+0] - 5 * MarketInfo(Symbol(),MODE_POINT);
    else
    buy[i+0]=0;
    }
    if(AlertsOn)
    {
    if(AlertsMessage || AlertsEmail || AlertsMobile || AlertsSound)
    {
    string message1 = (WindowExpertName()+" - "+Symbol()+" "+PeriodString()+" - Signal Up");
    if(TimeBar!=Time[0] && buy[SignalBar]!=EMPTY_VALUE && buy[SignalBar+1]==EMPTY_VALUE)
    {
    if (AlertsMessage) Alert(message1);
    if (AlertsEmail) SendMail(Symbol()+" - "+WindowExpertName()+" - ",message1);
    if (AlertsMobile) SendNotification(message1);
    if (AlertsSound) PlaySound("alert2.wav");
    TimeBar=Time[0];
    }
    }
    }
    добавь скоби перед условием .и после
     
  20. AngelaX0 . Гость_

    Сообщения:
    18
    Симпатии:
    0
    Есть ли способ создать сигнал на основе переменных изменения цвета окна данных индикатора .ex4?
     
Загрузка...