[АРХИВ]Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 5. - страница 81

 
artmedia70:

Если я верно понял ваши фигурные скобки, то:




после выполнения PlaySound("alert.wav");  следующие if выполняться уже не будут? 

 

if (1<2) 
{
   if(2<3)
      {
      if (3<4) PlaySound("alert.wav");  
           { 
            if (X)....
                {
                    if (Y)
                }
            }
       }
}

 
charter:

Индикатор краснеет, когда его значения уменьшаются, и зеленеет, когда значения растут.

 


действительно...так все просто) спасибо!
 
Stomatolog:
Здравствуйте уважаемые!  может вы поможете в моём вопросе ?  Я новичёк в MQL4, пишу советник , чтобы он не открывал сделку на каждом новом тике пришлось написать int total=OrdersTotal();total<1. Теперь советник открывает одну сделку в терминале и всё . А как сделать чтобы сделки открывались по всем валютным парам где установлен советник. И на отдельно взятой валютной паре можно было открывать несколько сделок.  

Для того чтобы не открываться на каждом тике, и быстрее оптимизировать советник, я часто использую такую конструкцию:

datetime t;                     // переменная для запоминания значения времени
int start()
{
  if (t == Time[0]) return;     // если "старое" время и текущее совпадают, выходим из start
  else t = Time[0];             // иначе присвоим переменной текущее время

Т.о. при появлении нового бара код будет выполняться один раз.

Почитайте как использовать MagicNumber в ордерах и тогда использование total < 1 будет давать возможность открывать советником ордер и по каждой валютной паре и по одной валютной паре, но открытой в разных окнах. Образец можно здесь посмотреть.

 
lottamer:


после выполнения PlaySound("alert.wav");  следующие if выполняться уже не будут? 

 

if (1<2) 
{
   if(2<3)
      {
      if (3<4) PlaySound("alert.wav");  
           { 
            if (X)....
                {
                    if (Y)
                }
            }
       }
}

Ваш код неверен. Открывающие скобки должны быть до операторов, а не после.

//+----------------------------------------------------------------------------+
if (1<2) {                                // Если один меньше два и ...
   if(2<3) {                              // ... два меньше три, ...
      if (3<4) PlaySound("alert.wav");    // Если три меньше четыре - врежем рок в этой дыре ... (С), 
                                          // Далее пойдём проверять остальные условия:
      if (4<5)                            // Если четыре меньше пять и ...
      if (5<6) Print("Истина");           // ... пять меньше шесть - верно, блин...
      }
   }
//+----------------------------------------------------------------------------+

Блок с Саунд`ом и Принт`ом выполнится только, если 1 меньше 2 и 2 меньше 3. Саунд выполнится если 3 меньше 4.
Но принт выполнится ещё и при условии, если 4 меньше 5 и 5 меньше 6

 
artmedia70:

Ваш код неверен. Открывающие скобки должны быть до операторов, а не после.

Блок с Саунд`ом и Принт`ом выполнится только, если 1 меньше 2 и 2 меньше 3. Саунд выполнится если 3 меньше 4.
Но принт выполнится ещё и при условии, если 4 меньше 5 и 5 меньше 6



мне кажется что если 4>5 , а 5<6 то при данной записи Принт все равно будет выполняться, ибо машина будет отрабатывать все 3 if подряд независимо от их ТРУ -ФОЛС результата - СКОБОК-то НЕТ! 
 
а можно ли вывести локальную переменную в глобальное использование? 
 
lottamer:

мне кажется что если 4>5 , а 5<6 то при данной записи Принт все равно будет выполняться, ибо машина будет отрабатывать все 3 if подряд независимо от их ТРУ -ФОЛС результата - СКОБОК-то НЕТ! 
Если (4<5) истинно, то выполняется следующая строка: if(5<6), но ... ежели (4<5) ложно, то следующий if () вместе с его принтом не обрабатываются, а переходим на закрывающую скобку от if (2<3).
 
lottamer:
а можно ли вывести локальную переменную в глобальное использование? 
Можно, главное следить, чтобы логика при этом не нарушилась. Могут быть две и более локальных переменных (каждая объявлена в своей функции) с именами, совпадающими с именем одной глобальной переменной. Тут нужно быть внимательным и обращать внимание на их видимость.
 
Как правильно через iCustom(), прикрепить один индикатор к другому?
У меня есть один индикатор в котором все 8 индикаторных массива заняты. Как правильно создать второй, чтобы в нём, в 1 индикаторном массиве, рисовалась кривая из первого индикатора?
Оба индикатора #property indicator_chart_window.
Самое наглядное объяснение, это аналог в виде кода двух связанных индикаторов.
Заранее, СПАСИБО!!!
 
Leo59:
Как правильно через iCustom(), прикрепить один индикатор к другому?
У меня есть один индикатор в котором все 8 индикаторных массива заняты. Как правильно создать второй, чтобы в нём, в 1 индикаторном массиве, рисовалась кривая из первого индикатора?
Оба индикатора #property indicator_chart_window.
Самое наглядное объяснение, это аналог в виде кода двух связанных индикаторов.
Заранее, СПАСИБО!!!

Считывайте в индикаторный буффер второго индюкатора тот буфер первого индюкатора, линию из которого хотите отобразить.